Jefferson Smith did a breakdown of his 3D environment Snowy Mountains made with Maya, Substance Designer, and SpeedTree.
In case you missed it
You might find these articles interesting
Introduction
Hi, my name is Jefferson Smith, I live in Los Angeles, CA. I am a 3D Environment Artist. In the past, I assisted in a couple of projects for an advertising and marketing agency modeling assets.
I went through high school and the beginning of college wanting to become an architect, due to always having a fascination with how things were built and the process behind it. I took my first 3D class in my senior year of high school. I really liked it, so during my first semester of college, I decided to take a CAD class for architecture and a 3D modeling class to see where that would lead. CAD classes eventually became monotonous and I found the 3D classes to be much more creatively fulfilling.
About the Project Snowy Mountains
I started this environment the way I approach most projects. First, I spent a while gathering a bunch of concepts I liked and slowly narrowed the list down with the help of some friends. When I started this environment I had a few goals in mind. First, I wanted it to be better than my previous projects. Second, I wanted to try and challenge myself with new things I haven't done before, such as snow and trees. Third, I wanted to get better at sculpting organic rocks and architecture.
The project was done for my first Demo Reel class taught by Anton Napierala. Anton is very knowledgeable and helpful when it comes to a lot of different things, he always takes extra time after classes to aid students and he helped me solve many problems.
Blockout
Once I found the concept I wanted to use, I started blocking out the main forms in Maya. I took a lot of inspiration from God of War and some of their concept art. For the main trees, I gathered reference on four potential trees and decided to recreate two of them. One of the main focal points is the door and what's inside the cave. When I slowly started to block out more of the scene and realized the doors and space were too small, I readjusted some things to help sell the space and scale better.
For the initial blockout, I started with something really simple. I tried to use the most basic shapes I could while still maintaining the overall form. For the ground and rock wall, I used Maya's Sculpt tool to quickly block in some basic forms without having to swap between programs. In this phase, I'm more worried about the size and scale, so I don't care about topology or anything like that since everything in this phase will eventually be replaced. In the next phases, I did rough passes of the trees in SpeedTree, started sculpting bigger props like the rocks, pillar, and stairs. This is all while checking the original concept to see where I'm at.
Rocks
Rocks are still a very hard thing to get right for me. I wanted to become better at it and reach a certain standard, and I was fortunate enough to get help from a past teacher of mine, Raul Aparicio. He gave me some tips on how to sculpt rocks without making them look too muddy or soft.
I start with a cube in ZBrush, trim the edges down, mask and move it as needed, then duplicate, move and dynamesh the subtools. Rinse and repeat a couple of times. After getting a good base shape, I work on a smaller level to add more chips. Sometimes, I used rock alphas to add some detail and go back over them with Planar Cut Shallow brush to reduce the smaller noise. If I want to add cracks I use Orb Cracks brush to get the main shape, then do a second pass with Orb Slash Curve brush for finer and sharper detail. The last thing I usually do is use Surface Noise. I'll mess with the curve to get smaller dips, then mask those out and sculpt them in where I want.
The rocks were mainly used to build the rock wall, with each rock placed by hand. This was my third or fourth attempt at making rocks. I still have a lot to learn but each time I do it I see improvements.
Materials
I made all my materials in Substance Designer. A couple of tutorials helped me along the way: for the snow material, I used Jacob Norris' Forest Snow Ground tutorial and for the bark - Daniel Thiger's Tree Bark tutorial. If I used followed someone else's process, I still made sure to add my own nodes and do my own thing with the material. The rock material had two versions, rough and subtle. The rough rock was used mostly to vertex paint on some rougher areas in Unreal to help break up the uniformity.
To start any material, I would first find good references that have the look I am going for. Afterward, I would try to break that down into the most basic shapes so I could begin replicating it in Substance Designer. My subtle rock material, for example, was fairly simple, my goal was to create a nice-looking rock without going overboard and having more nodes than I needed. For the height, I started with the main shape. I used Fractal Sum Base followed by Quantize Grayscale and a few Blur Slope nodes. Then I added some breakup on the edges, made some dips and lastly added some higher frequency slope blur noise. For the roughness, I started with the Heightmap inverted layering different grunge maps on top at different scales and intensities. To help make it look more interesting in different lighting scenarios I added small dark spots over most of the Roughness map so it would always have some specs of reflection. The Color map was also pretty simple: the Heightmap plugged into a Gradient Map, then more grunge maps overlayed on top of that with some subtle white spots and curvature detail.
In Unreal, to make the snow pop more and look more interesting, I added a grunge mask with very small and sparse dots that were plugged into the Emissive channel. The dots would fade in and out, helping imitate hotspot reflections created by the sun. I used the same ideology to add random hotspot sparkles to the falling snow particles.
Vegetation
I used SpeedTree a lot for this environment. It took about three iterations for each of the two trees to get a look I was satisfied with.
Once I find the reference I'm going to use I start with building the trunk of the tree. I adjust the 'Spine' tab until I get a good amount of interest in the silhouette of the trunk. Then I tweak the 'Displacement' tab to get some secondary details. Next, I move on to the main branches. I look at my reference to get the details I need such as length, width, amount, curvature, noise and where the branches start. Once I have those done I add the leaf and branch cards that I need. I follow the same steps as before to get them to look the way I want.
For the branch and leaf cards, I made my own custom Branch and Leaf Generators in Substance Designer. The last thing I do is go back through all my nodes and make sure I adjust my polycount so it's not too high.
For my grass, I also made a custom Grass Generator in Substance Designer to make quick and easy grass cards, which I then set up in SpeedTree to get a couple of usable patches. The fallen tree was made the same way but I applied a mesh force to the roots to attract them, like roots clinging to the dirt they were uplifted from. I also added a few more subdivisons to the trunk's 'Cap' to add sharp and intense displacement and imitate broken shards.
Props
For the props in my scene, I made a list of what I wanted and what would make sense in this world. For the props that have a pattern, like the door and pillar, I gathered reference on Norse designs, recreated them in Substance Designer, used the Heightmap as a Displacement Map in ZBrush, and then further sculpted in my own unique details.
The stairs were sculpted more or less similar to how I approached the rocks. I made modular low poly stairs so that I could use them in a spline blueprint in Unreal.
The wood assets were sculpted with Clay Buildup, Dam Standard, Trim Smooth Border, and Orb Slash Curve brushes. The biggest challenge was to try to maintain a sharp look, avoiding making it too muddy and soft-looking while also not making anything too noisy. After ZBrush, I would decimate to get a base low poly, then clean up any bad areas in Maya and give any flat area more of a grid-like topology. Next, I move to UVs trying to maintain 512/256 pixels per meter. Last, I would bake in Marmoset Toolbag and import the result into Unreal.
Lighting
This is where I started to stray from the original concept the most. I really liked how the bright sunlight contrasted with the snow. This also provided more opportunities to play with shadow and helped separate the foreground from the midground better.
I am in no way a lighting artist so this process is always difficult for me. I played a lot with lighting angles, color, fog density and bounce light trying to find something I was satisfied with. One of the harder parts was to make the lighting bright enough to imply early Spring sun but not so bright that it'd just blow out all the white snow. To further emphasize the focus on the door and cave I added a fire inside to help draw the eye. I also added a shadow of a character in the cave as a story element to cause speculation on who or what is in the cave. Once I got the lighting right, I added a Post-Process Volume to fine-tune a few things along with adding a custom LUT.
Feedback
I really enjoyed working on this environment and I am overall pleased with the end result. The biggest challenges were definitely the lighting and finding a balance between sculpt and texture details to not make the models look overly noisy and hard to read at a distance.
I realized I should have spent longer in the blockout phase to really nail down the sizing and lighting sooner. I learned a lot in Substance Designer in terms of making my own custom nodes while also realizing how amazing and versatile the program is. I also spent more time than ever in SpeedTree and created game-ready trees for the first time, so that was a fun aspect of the project.
Jefferson Smith, 3D Environment Artist
Interview conducted by Kirill Tokarev
Keep reading
You may find this article interesting