-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various Pattern nodes for AEC and MFG #1411
Various Pattern nodes for AEC and MFG #1411
Conversation
Not the final version
Added comments Removed unnecessary nodedefs/xpos/ypos tags Nodes moved to Procedurals section
adding imgui.ini to .gitignore
|
This is great, super awesome! Have you considered per-tile variation/randomization? That was the trickiest part of the shape nodes we were working to contribute, hehe, but is pretty important for artists. It's hard to "tack-on" because it's tied to how the tiles/shapes are generated, especially for randomizing individual shape features. I'll link to a gist with our nodes, so they can be inspected for comparison. |
@crydalch I like this suggestion, and perhaps random variation would make a great future contribution, building upon the core nodes defined here? For example, one could imagine a future |
A modular approach to patterns is an interesting topic. Might require a bit of planning before throwing nodes at the problem. I'm all for proceduralism having worked on Substance in the past and knocked my head on other procedural node-based tools. But then we should have a plan for a "prclib" where changes can be more accepted than stdlib, and where a series of well planned foundational nodes can be used to build up a library of patterns. |
Procedural patterns is interesting, but is far beyond where my original comment about randomizing tiles was intended. See our original PR for exmaple images of what I meant by per-tile randomization: #1329 (comment) Apologies if my comment about randomization implied sophisticated procedural patterns/textures. |
In the past, the number of individual node primitives in MaterialX has been raised as a big concern. So I think if we assume that we'll have N shape nodes, then N random-shape nodes, it's going to fly in the face of that guidance. Even setting that aside, it makes sense that tiling and randomization should really be built-into tiling shape nodes... |
@crydalch There's definitely a balance to strike between providing "ubernodes" that can accomplish everything, and providing very granular functionality that promotes reuse and recombination. In this case, I think the |
This changelist removes "uivisible" attributes that are at their default value of "true", just to streamline the declarations of the new nodes.
This changelist removes the update to the root gitignore file for now, as we'd ideally like to address this issue in the graph editor instead, where the INI file for ImGui is written to a more natural folder on the Windows platform.
This changelist removes pre-release versioning data for the new nodes, and we can add release versioning data if needed before merging
I'm curious about the periodic aliasing in the Grecian and Squares samples. Is that a consequence of upload to github, or would it make sense to examine anti-aliasing? I imagine the same question applies to all the shapes, but for those two it's visible to my eye. |
This changelist removes explicit node outputs from the new pattern graphs, as these are not required in MaterialX.
Yes it appears to be so. |
Thanks for uploading that, seeing the good pixels makes me happy :) |
This changelist aligns the node inputs of the tiling 2D shape nodes to align with tiledimage, replacing their "spacing" input with "uvtiling" and "uvoffset" inputs.
@zicher3d I've now made the second proposed change as well, aligning the inputs of the tiling shape nodes with those of |
Ok with the tiling rename. For the uvtiling/offset let me review it tomorrow. The reason of my "Size/Spacing" choice is because, if UVs are used in real-world mode (0-1 matches a scene unit, a technique used in our CAD apps and 3dsMax), those values will create a measured pattern. |
@zicher3d Let me know what you find in testing, and we can likely adjust the graph logic to maintain the consistency of real-world units if that's an important consideration. |
This changelist splits the 'grecian' node into its component parts, 'grid' and 'crosshatch', allowing artists to build a wider set of combinations of these two primitives.
Following up on a discussion with @ashwinbhat and @zicher3d, I've split the original Here are a few renders from the latest set of example materials, giving a sense of how these line patterns look in practice: Union of grid and crosshatch (just one of many possible combinations): |
b1f7275
into
AcademySoftwareFoundation:main
A collection of pattern nodes for lines, circles, cloverleafs, and hexagons
Collection of Pattern nodes for Circles, Hexagons, Cloverleafs, Grecian and Squares
Cloverleafs
Grecian
Hexagon
Squares
Circles