WoodMachine is a powerful texture generator for anything made of wood.
It can be used to create either seamless wood textures for all kinds of purposes or mesh-adaptive textures for specific objects. It is fully procedural and comes with many exposed parameters, offering a high level of customizability. Create any kind of wood in any condition from brand-new to torn-up: This substance was made to eliminate the need of a giant library of different specialized wood substances or even photo textures.
- Highly customizable wood pattern generation
- Partial grain rotation: match your object’s UVs’ orientation or create parquet patterns
- Pattern offset for parquet and larger objects made of solid wood
- Also generates matching wood ends
- Aging/Weathering effects
- Mesh-adaptive wear effects
- Can be stained, painted and lacquered
- Ca. 100 exposed parameters in 9 groups
- Examples, tooltips and comments included
How to work with the substance
The masks for grain rotation, ends etc. can be created directly in SD with SVG or Bitmap nodes if you need the transformation functionality. Alternatively, you can do that by applying color to your highpoly mesh in your 3D app and bake it onto a map.
After plugging in your maps and masks, you can adjust the parameters to achieve the look you’re aiming for. The amount of variables and possibilities to customize the wood is quite large, I tried to set things up as logical and clear as possible though. Tooltips are included and I recommend reading them!
The idea behind this substance is that the generated wood surface should behave just like real wood. Here’s some theory:
Wood consists of layers, visible as growth rings on a perpendicularly cut trunk. The bright parts are known as early wood, the darker parts are the late wood. Early wood grows quickly during springtime in a temperate zone, late wood grows slowly towards the end of each growth period.
These two do not just differ in color: early wood is usually softer and less dense than late wood. This means:
- It absorbs more material when wood stain or oil is applied
- It has a rougher surface even when sanded
- It is somewhat more prone to wear and damage
These things matter when working with a real piece of wood and they matter with this substance! Not only does the Roughness slider in the Color & Roughness settings determine how shiny or matte your object is, it also affects the way it will look when wood stain is applied. Setting the Base Roughness is like sanding your piece of wood prior to staining. There’s also a map slot for Roughness Variation.
You can choose the Natural Wood Color from a drop down list or apply custom colors for early and late wood. Of course, you can specify any colors you want but I’d always recommend using natural wood colors and, if needed, applying Stain Color additionally. The results may be slightly less predictable but more natural with more variation and possibilities. As in reality, staining wood makes it darker and more saturated. The darker or more saturated the Stain Color, the greater its effect. You cannot use this parameter to bleach your wood, light gray values will have no effect.
As mentioned above, early wood usually absorbs more color than late wood during the process of staining. The third important parameter for color – Absorption Difference – can be used to control how big this difference is. At some point, the stain color is distributed in a way that practically lets the pattern disappear. From some other point on, the wood pattern may be inverted: the early wood becomes darker / more saturated than the late wood. The position of these points depends on the respective Natural Wood Color / Stain Color combination.
I'd recommend increasing this especially when dealing with bright softwoods such as pine or spruce or generally if you stain it very dark.
Last but not least you can add further variation into your stained wood by limiting its intensity on certain areas with a mask. This is very useful for everything that consists of several pieces of solid wood such as large pieces of furniture or parquet. Because in reality, individual pieces of wood don't necessarily absorb the same amount of stain, especially when taken from different trees. You can also feed this slot with a grunge map for extra color variation and/or dirt.
The Main Pattern settings control the generation of the early / late wood mask. Set them accordingly to the type of wood and object you wish to create. Oak and rosewood, for example, would need some Horizontal Distortion. And when generating spruce wood for violin fronts, Disorder should be kept at a minimum to receive a pattern of relatively even lines.
Micro Grain adds tiny detail to the surface that makes it look more realistic. Set it accordingly to the type, age and finish of your wood.
Depending on what you are creating (natural pine, polished oak, artificial Ikea veneer…) the influence of fibers and pores on Albedo, Roughness and Normal varies. Therefore, you can adjust the intensity separately for each map.
There are also Knots, of course. Amount, size and condition are variable. Knots have a great influence on the flow of the Main Pattern which you can control with the Push, Pull and Swirl settings.
Under Flaws you can find effects that might occur by processing or during aging such as cracks, saw marks, scratches or damages caused by vermin.
Damage & Edges includes the settings that control the built-in edge wear effect. It requires a Curvature and Ambient Occlusion Map to work. You can adjust the settings to achieve slightly worn edges right up to a splintered, destroyed look. Also, Additional Damage can be applied which is independent from edges and curvature.
The Ends settings can be used to adjust the look of wood ends. These need to be defined by a map input first.
Finally, the Paint Layer settings control the look and condition of paint on your wood surface if you have any. The wood surface underneath determines where the paint is prone to flake off.
The main outputs are: Base Color, Normal, Roughness and Cavity (or Specular Level). The generated masks for damage and paint are also available as outputs as these might be handy for further processing.
About the graph
Since wood is an organically grown matter, most of the components influence each other in several ways which often prevented me from combining node groups into individual nodes. Therefore, the graph is a huge thing that might scare your kids and eat your cat. I’ve done my best with frames, comments and docking nodes to make it less of a mess.
Currently there are roughly 100 exposed parameters stacked in 9 groups. Each node with exposed parameters has an according comment so that you know what it does.
There are still some things I’d like to include and some others that might get changed or removed – I’m sure with a substance of this size and complexity there’s always room for improvements and optimization. Feedback is appreciated!
Important things to know
- Substance Designer 2018.3+ required.
- It is not (yet) optimized to work with non-square formats.
- Editing parameters may be a bit slow due to complexity. My machine’s GTX970 and 16GB RAM have been sufficient for 4k. YMMV though especially when using this substance in a greater context. When in doubt, try the demo first!
- The substance is neither designed nor optimized to run directly in realtime engines. Creating and exporting textures from SD only! It is also not intended to be used as a Smart Material in Painter.
Terms & Conditions
The substance files and generated textures may be used for personal and commercial purposes.
However, you are not permitted to sell or distribute the WoodMachine substance .sbs or .sbsar file (modified or not) and / or textures that were generated with it by themselves (e.g. as texture or material packs).
You may sell or distribute 3D models bundled with textures generated with this substance, but only if these are specific to your 3D model (non-seamless) and / or closed source.