DNA Double Helix 3D model

DNA Double Helix 3D model

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

Rusty Steel Substance with inputs

Creating Substance with Exposed Parameters

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.

Substance graph with Exposed Parameters

This is the graph in Substance Designer with exposed parameters

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.

Barrel textured with rusty steel substance with exposed parameters

Barrel textured with the rusty metal substance with exposed parameters. Single material, no hand painting in Substance Painter

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.

Substance with Exposed Parameters

These are the exposed parameters in Substance Designer. You can change their order by dragging the handle in the left side.

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.

The rusty steel substance with exposed parameters is available to purchase in Turbosquid.