Introduction to workflow
Holy-moly! That's a lot of nodes!
Indeed! But don't worry, you don't need to know all of these to use SuperGrid. You could simply modify instance parameters to change grid spacing, colors, textures and other settings.
However if you want to know more about SuperGrid then this page will help you better understand how materials are built.
They relies on blending different masks from single TextureSample rather than using this for final texture. Of course each mask requires different UV tiling multiplier, hence the complexity of material graph.
Is there any logic in how materials are built?
Yes-yes, there is! Material graph has several "stages" of building final material
- Generate UV that scales according to mesh size and apply user settings
- Create masks from different channels of TextureSample and apply generated UV
- Apply different color per channel based on logic from different Dye_"ColorBlend" nodes
That's all about core concepts, but let's talks about numerous material functions!
Introduction to channels
Split the channels!
Probably you've noticed that most textures contains 4 channels - RGBA . Usually Red, Green and Blue channels are used to display color and Alpha for transparency. However it's not the case for SuperGrid textures - each channel used as a separate mask for more customizable options in materials:
- R: Grid with default 1m step.
- G: Grid with default 10cm step.
- B: Pattern with default 1m step to add some color variation to the material.
- A: Roughness map
What about colors?
Color parameters have RGBA channels(just like textures), but this time RGB channels are used to actually color masks from Texture and A channel for customizing settings in color blending.
MakeSet? BreakSet? WTFSet?
Don't mind this weird nodes! They are actually BreakOutFloat3Components/ MakeFloat3 analogue, but I found this naming more coherent and easier to write rather than original. Also they are used for merging different SuperGrid channels into single node to easily identify what exactly we're using right now.
UV group - associated with UV coordinates
Function Description UV_ObjectScale Automatically scales UV according to object size UV_WorldScale Automatically scales UV relative to world UV_SetupGrid Allows to specify grid size in centimeters instead of UV tiles UV_CustomTexture Allows to use this node instead of TexCoords for your materials UV_CustomPanner Works like Panner node, but you could control speed
Function Description Dye_4ColorBasic Basic blend between 4 colors using RGB mask Dye_MultiColor Dye with multiple colors using Pattern-Grid-Utility logic Dye_SingleColor Dye with single color using Pattern-Grid-Utility logic Tex_SimpleGrid Assign different UV's to different Textures channels to have big and small grids
Function Description BreakSet Simple macro for breaking Vector3, but with SuperGrid naming convention MakeSet Simple macro for making Vector3, but with SuperGrid naming convention Layout_LocalSides Allows to map different textures to different sides of object Layout_WorldSides Works like Layout_LocalSides, but ignores object rotation Roughness Simple macro for lerp values from black to white in roughness map