logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Creating Realistic Animated Water With Substance 3D Designer & Marmoset Toolbag

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.

Sherif Dawoud, Senior Environment Artist 

Interview conducted by Amber Rutherford

10 armor Nanomesh Brushes all contained within one Multi-mesh brush and Low poly meshes.

Error
(2000-0001)

Join discussion

Comments 0

    You might also like

    Rumor: Possible Release Date for Grand Theft Auto 6 Revealed

    A video game store from Uruguay appears to have disclosed the launch date for the gaming industry's most anticipated title.

    Breaking: Unity Suddenly Lays Off Numerous Developers With a 5 AM Email

    Apparently, the entire Unity Behavior team was cut, alongside many other employees.

    EXCLUSIVE: Unity CEO's Internal Announcement to Staff Amidst the Layoffs

    80 Level has obtained the text of the email sent by Matthew Bromberg to Unity employees, announcing the layoffs and shedding light on Unity's strategy going forward.
    • Metal Damage VDM Brush
      by Nicolas Swijngedau

      40 hand sculpted metal damage brushes all contained within one Multi-Alpha brush. Perfect to speed up your armors creation!

      Error
      (2000-0001)
    • Desert Eagle MAG50
      by Abderrezek Bouhedda

      This game ready weapon will help you in your game or in your renders, just drag and drop it into your game engine. The weapon is modeled part by part including perfect UV Unwrapping and PBR Textures.

      Error
      (2000-0001)

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more

    ×