Albert Soto talked about his beautiful environment Path to Petra and the process of creating rock materials in Substance Designer.
My name is Albert Soto and I’m a 3D Artist and Material Specialist at Lowes Innovation Labs in Kirkland, Washington. I wear many hats and currently contribute to developing the scan/material pipeline for VR/AR applications focused on the future of product visualization at Lowes. My main focus at Lowes Innovation Labs is to build a Lowes material library using Substance Designer that our team can then use and create textures to actual products for Lowes using Substance Painter.
Example of scanned items by Lowes Item used in AR/VR applications:
Scan Cleanup using ZBrush:
Recent Interests & Projects
I have recently become passionate about 3D Printing and have been getting myself more familiar with modeling in CAD applications. I have been sculpting in ZBrush and started to use these sculpts as print exercises as well as prototyping new ideas.
Throughout my career, I have contributed my skill set to games such as Middle-earth: Shadow of War (most recent), Days Gone, Call of Duty: Advanced Warfare, EverQuest II and more. I try to stay active and post personal work whenever I have some free time. I am always looking to draw inspiration from Artstation, Pinterest, and other 3D forums.
Call of Duty: Advanced Warfare
Textures I made for Shadow of War:
Path to Petra
There are two environment references that inspired me to create Path to Petra environment. I wanted to be able to display the materials and how they react to lighting in a simple scene in Marmoset rather than just posting a material ball or cylinder. The first reference was Slot Canyon in Northern Arizona, the second was Petra, a famous archaeological site in Jordan’s southwestern desert. My goal was not to recreate the exact scene from these two references but to take what I saw and try to come up with something simple that represented both elements with my texture sets, and most of all I just wanted to have fun with this project. The walls would be about 12-15 ft high and resemble a narrow canyon path formed from water rushing through rock. What starts off as a tiny crack steadily grows larger from repeat flash floods and erosion over millions of years.
How It Was Made
There are multiple ways you can go about creating a rock face, over time I found that realistic results can be achieved using ZBrush and or combined with Substance Designer to achieve a decent sculpted height map. In this case, I used Substance Designer to create the walls.
I would pick the polygon node and use the blend node to combine it with a linear gradient and use Blend Mode (Min Darken) in the specific parameters drop-down menu, then I would plug that into Tile_Random node (tile sampler and splatter could be used as well) and tweak the setting how I like them. What I like about this setup is it allows you to create many variations of landscape shapes.
After that, I create my tile variation for my height I would use slope blur and combine it with a blend node and use subtract to cut out variation to create surface detail. I will continue using this method (slope/noise to subtract) with noise nodes and masking.
I would then duplicate the node work for these height variations so I can get soft to rough surface details.
The nodes and height results look something like this:
Slope Blur to Subtract
I use the shape height method above but duplicate and offset random positions, then resize the shapes to my liking to create even more surface variation. You could also throw a warp with Perlin noise and a slope blur with another blurred noise variation of your choice to get even more surface variation.
There are so many ways to get the same results it’s just about finding what’s right for you. If I could do things differently, I would utilize the shape extrude node.
I feel that combined with tile sampler or splatter node variations like above can be achieved with ease (displayed below).
I used a direction noise and plugged that into a multi-directional warp node and then played with the strength and angle inputs to get the liner noise to bend to the angle of the height as shown below. I would add slight blur HQ to that and then plug that into a blend node and subtract that from the cliff face which will carve holes into the rock resulting in a porous look.
Using surface detail from the height I am able to use this opportunity to create color variation by taking the height information above and inputting that into a warp node with the micro detail from the directional noise into the warp input, and macro height information in the gradient input to create a grainy noise that that can then be color sampled from the gradient node. I will then utilize HSL and masking multiple times to get the results I like.
I would say some of the tricky and most challenging parts of substance is how to blending shapes properly that overlap like pebbles or rocks.
There are a few ways of doing this, the way I learned how to do this is to create your rocks or pebbles and plug those into a tile sampler. After that you will need to create an invert grayscale node and plug in your previous background into the mask map input of the tile sampler so you can tweak the mask threshold (this will allow you to concentrate where you want your pebbles to gather, it could be the highest point or the lowest point depending how you invert your grayscale map or mask).
Then pick two level nodes and plug your tile sampled rocks/pebbles into the input of the Levels Node 1&2. You will then pick blur HQ and two blend nodes. Your background height will be plugged into the blur HQ and dialed to be fairly blurry then plugged into the foreground input of Blend Node 1. Then drag your background height into background input of Blend Node 1, Levels 1 will be clamped to make your mask and will be plugged into the mask input of Blend Node 1 (This will mask out the blurred background input into the foreground from the background so that your pebble/rock height will lay over your background height properly giving the illusion your rocks are sitting on top of the surface, this can be repeated multiple times to get materials like the grass or rocks I made before).
You will take Blend Node 1 and plug that into the background input of Blend Node 2, From there you will drag down your Level Out High of Levels 2 to be relatively dark and plug that into Blend Node 2 foreground input and set Blend Node 2 to Add (Linear Dodge). This will create a perfect overlay of rocks and pebbles that look like they are sitting directly on top of one another.
Pebble Color through Multi Value Grayscale Map using Tile Sampler
Making color variation based on your pebble height information can be achieved by adding a levels node to your pebble height, clamp the levels node to make a mask, then duplicate your tile sampler and plug the pebble mask you just made into pattern input. Go to your duplicated tile sampler properties, scroll all the way down to color, there you can tweak your color random slider to your liking. This will create your muli value grayscale map that you can then plug a gradient and sample colors to get variation in your diffuse.
Making the Environment
I used Maya to block out a simple scene, exported that into Marmoset to test my materials on. I went back and forth from Maya to Marmoset to get the results I wanted. I took advantage of the Global Illumination features which complimented my scene with a more robust range of lighting.
There is so much I could do to refine my work for this project. I would definitely want to add some ground cover like deadwood, foliage and maybe a prop of some First Nation Shrine type of thing. When it comes to materials, I would add more color variation, lighting could always be improved. I think another pass on just about everything would make this scene pop.
Thanks for generous opportunity to interview with 80.lv, and thank you for all the inspiration you spread for other artists.
Albert Soto, 3D Artist & Material Specialist
Interview conducted by Kirill Tokarev