Sherif Dawoud returned to 80 Level to discuss his realistic coast material crafted in Substance 3D Designer and Marmoset Toolbag, with animation done in DaVinci Resolve.
Introduction
Hello, everyone. My name is Sherif, and I'm a Senior 3D Artist in the games industry. Since my last 80 Level article, I've been doing lots of anatomy studies and sculptures. Earlier this year, I started making these environment slices in Substance 3D Designer and Marmoset Toolbag as a way to quickly practice making various types of environments and biomes. Today, I'm going to share a breakdown of the Coast project I made recently.
The Coast Project
This project started as a way to practice making water patterns and forms in Substance 3D Designer. I made water materials for the previous waterfall project, but I wasn't entirely happy with how the water turned out, so I thought I should give it another shot.
I was also on vacation at the time and was staying near the beach, so that kind of inspired me to do this scene. It was also a good opportunity to collect some references while I was there. I collected a lot of references from various online sources as well.
I wanted to make both the water and sand materials in the same graph. This way, it should be easier to make large changes like the position of the water and how wet/dry certain areas of the sand are. Eventually, I exposed a few to control the movement of the water and how it affects the sand. To make the sand surface, I started with a simple Tile Sampler node to generate the main dune forms. These are the node parameters I used:
Then, I distorted the main forms with a few Directional Warp nodes to break up the forms a bit:
When I was happy with how the sand's height map looked, it was time to make the water mask.
There are many ways to do this, but this is my setup for the water mask. The good thing about this setup is that the edges of the water mask will look slightly different depending on the y position of the mask, which will make the water movement look a bit more natural in the end.
Now that I have the water mask and sand height map, I used the mask to flatten/smooth the parts of the sand that are wet or underwater and added some small rocks and pebbles and more detail to the sand.
For the sand colors, I mostly used masks generated from the normal and curvature maps with as few Gradient Map nodes.
It took a few attempts to find a good way to make water foam patterns, but the best way I found so far is using normal maps to mask certain parts of any soft noise pattern. I used this setup for all the water patterns in the material.
The initial noise pattern is generated with the Moisture Noise node, which makes it very easy to control the direction and randomness of the noise pattern. I then used a Blur and a Slope Blue node to expand the forms a bit, the amount of blurring applied here determines the scale and detail of the final pattern. Then, I passed that to a normal map node and a grayscale conversion node to mask the crevices in the noise pattern.
If you make 3-4 patterns like that using the same input noise but at different levels of detail and combine them, you can get masks that look like water foam or waves.
In the end, I exposed 4 parameters for this material, mostly parameters that control how much of the surface is covered in water. The waves and foam are automatically updated with the water position to make the animation feel dynamic and realistic.
Now that the material is done, I exported the sand texture, a few masks, and the water textures to Marmoset Toolbag.
Even though the entire material uses the same graph in Substance 3D Designer, I ended up using multiple materials and planes for the Marmoset scene. This way, I could use transparency and refraction effects to add more depth to the water texture and make it look more realistic. The water foam was also a separate layer.
Unfortunately, you can't use SBSAR files directly in Marmoset, so to create the animation, I had to tweak the Substance 3D Designer graph, export the textures again, and then render the scene in Marmoset. Then, I composed all the renders in DaVinci Resolve. These are the final renders.
Conclusion
The project took me a couple of days to complete, and I learned a lot in the process. To my surprise, making water materials in Substance 3D Designer was a lot easier than I thought, and I can't wait to use what I learned here for future projects.
Thanks for reading this article, I hope you found it helpful. And thanks to the 80 Level team for giving me this opportunity to share my workflow with you.