I created this fully procedural Seaside Rocks Substance. (The source file (.sbs) is now available in Gumroad)
It was quite fun to explore different techniques to create the basic rock shapes and then use tile generator and various techniques to tile them and blend them together.
I was then able to use the same rock I created to cut interesting shapes on top of the rocks to look like they are weathered.
I am quite happy how this turned out except the cracks which need some more work. I am still trying to figure out the most efficient workflow on making those things.
Adding water was really fun and I really like how it added sparkle and additional detail to the material.
In Substance Designer it’s easy to implement more detail to this such as leaves, small debris from sea and really go to town with micro detail. I also think about improving the graph by creating more rock variation, it’s possible to derive them from same base and just change them in graph. Being able to reuse nodes is so nice.
By the way, does anyone know how to split link? I know how to add those split points to make lines flow cleaner but it would be so nice if we could just draw a new line from those split points, so there would be one main line. Making y-like split into a link would be so good for organization sake.
Substance Designer iRay makes substances like these look really, really good. It’s quite easy to forget that actually what we are looking is actually a height map. Even when viewing from perspective, rocks and things like that look almost like they are real rocks with undercuts and bottom, especially when rendered with shadows. Then in game it looks just quite perfect and if real 3D objects are placed on it, the illusion is perfect.
I will make Substance with fully tweakable parameters soon. Also Youtube breakdown of the material is coming soon.
If you want to take a look at the substance I created, grab it from Gumroad now.
Also I recommend these Youtube series by Allegorithmic.
I created this DNA Double Helix 3D model in Blender using modifiers and SSS which was super easy to setup in Principled shader introduced in 2.79 for Cycles renderer.
Modeling DNA double helix 3d model using modifiers in Blender is a breeze. Basically the strand was created using a path. If one wants to animate the strand, adding a basic shape key to the path would allow perfect animation as the geometry will follow the path; nice and easy workflow.
The displacement is taking advantage of the adaptive subdivision which for some reason still considered “Experimental feature” in Cycles. This is super efficient as it subdivides the mesh dynamically based on the camera position. This allows more complex scenes to be rendered fully in GPU. Rendering with dual GPUs it was a breeze to come up with nice looking renders, even with effects like depth-of-field.
Lightwave has had the adaptive subdivision feature since early 9 so Blender certainly isn’t the first one in this camp. And I think this feature should be in the main feature set. However, although being called “experimental” the feature is mostly stable and I didn’t have any big issues as long as I kept the subdivisions in reasonable amount.
I did some searching and found out interesting article which mentions that DNA is actually near white. The colours we traditionally add to DNA molecules is just for labeling purposes. I am big fan of the beginning sequence of Prometheus where the Engineer’s DNA is being rearranged. With things like this we can have some artistic freedom.
The model is a good starting point for more complex CG animation setup in Cycles. One could add particles or volumetric lighting to make the environment look like the strand is in some kind of liquid.
You can buy this DNA Double Helix 3D model royalty free at https://www.turbosquid.com/3d-models/dna-double-helix-blender-3d-model-1211337
You can download this substance at Gumroad.
In this video tutorial I take a look on creating a substance with exposed parameters and input nodes.
Creating materials like these can be extremely useful and time saving because it allows serialized asset texturing with weathering effects or basically any kind of effects that will respect mesh-specific maps such as curvature, normal or AO maps. This is crazy efficient way to create PBR materials for environmental game models, for example.
The graph I created could use some rearranging to make it look more clean, but it works and it’s the most important thing. I have defined the input maps in the left area. The reason why I have basically unnecessary blend node sitting there is just that I can switch some baked maps into the graph if I want to tweak it, because when the input is empty I can’t see anything in the graph. Anyway having nodes like that shouldn’t affect the performance of .sbsar because the algorithm will understand stuff like that, it won’t calculate anything unnecessary like disconnected nodes or so.
So I have defined inputs for Position, World Space Normal, Curvature and AO, and then I apply these to few of the weathering effects, such as mg_metal_edge_wear, a Substance Designer node which I just use as it is, and also the Tri-planar node which I forgot to mention in the video. Basically I just connected Position and World Space Normal maps to the triplanar_grayscale node and used the Rust Level Control node output as the input. This will project the material to the mesh seamlessly, almost no matter how your UVs are laid out. It is possible to do this in Substance Painter but it’s absolutely fantastic to have the control in Designer as well.
Then, basically what I have done in Substance Designer is that I have exposed some of the node parameters, such as the histogram scan which samples (or more appropriately scans) grayscale area from the procedural BW data and some of the mg_metal_edge_wear params, giving me the control. I have also created some of the switches which I have then exposed to turn some effects on and off. Clicking the graph in Substance Designer allows you to further label and organize the sliders and buttons.
What I am especially proud of are the leaks effects. This is simple slope_blur_grayscale which takes gradient map as “Slope”. What this basically defines is which way is up and down in the object. You can feed a simple gradient to this or you can use y channel from position map by using RGBA split node. So again I have connected the Position map input node to this via a switch which allows me to switch to simple gradient if the map is missing.
Rest is pretty much the same thing, blending things together using blend nodes and exposing parameters that I figured I would like to change in future.
Check out this Allegorithmic video on exposing parameters and publishing substances.
One of the more interesting ones is the ability to use anchor points to reference added height detail in those lovely mask generators. This is technique that was introduced by this good video by Allegorithmic (that guy is such a guru!)
I also realized it’s often a good idea to create a fill layer and mask that; in that way the workflow stays non-destructive the whole way.
Anyway I hope you like this video on Substance Painter Material Breakdown.