Environments in ZBrush: Volcanic
In a working world, an artist must always be prepared to revisit the well. Nothing is taken at face value and every choice can be improved. The ability to quickly, efficiently, and non-destructively create and alter assets is a boon to any creative workflow.
In the following tutorial, you will see techniques that can be used to quickly create and revise assets in ZBrush using traditional sculpting methods and the built-in procedural tools. We will also use ZBrush's tools to unwrap and texture, placing details at key areas without breaking the bank on polys. After that, we will export each asset to finish our project in 3ds Max. In 3ds Max we will set up a clear and organized scene in which to render our final image using mental ray. We will build a quick lighting system to get a believable result as easily and quickly as possible, and tweak those settings to get closer to our target lighting.
After we have our render, we will visit Photoshop to add some post effects and adjustments. We will color-grade our image, adjust our exposure, and add a few cool effects to give our image depth and punch.
By the end of this tutorial, you will have a better idea of how ZBrush's procedural tools and sculpting options can help to speed up your workflow.
Are you ready to get started? Let's do it!
Step 01: Setting up the scene
For every project I start, I start with organization in mind. It's always a great idea to have a clear idea of your project and how you'd like to set it up. First, I create a folder hierarchy in Windows Explorer. For this project I create folders called '3ds Max Files', 'Concepts and Reference', and 'ZBrush Files'.
I let 3ds Max handle its own structure by setting a new project in a folder I've already created. In 3ds Max, go to File > Manage > Set Project Folder and choose my '3ds Max Files' folder. 3ds Max automatically creates the necessary subfolders.
Step 02: Making the blockout
Next is the blockout of the scene. I do this to nail down the composition and scale that I will use going forward. I set 3ds Max's scale to meters using the Customize > Units Setup window. Click System Unit Setup to ensure that 1 Unit is equal to 1 meter. Next, I create the basic elements of the scene. I make a ground plane, foreground piece, two framing pieces, and the shape of the volcano. I create the camera set to the dimensions of the final image. Lastly, I export the entire scene to an OBJ file and import it into ZBrush.
Step 03: Preparing to Sculpt
When you import the layout into ZBrush, it comes in as one large piece. Click Polygroups > Auto Groups, then SubTool > Groups > Groups Split to break the objects into SubTools. The next step is to DynaMesh the ground.
This adds to the resolution while retaining the shape. I usually DynaMesh at a low level (64), then use regular subdivisions to control the resolution. Preserving subdivision levels will make unwrapping and texturing far easier later on. In general, I find that it's always beneficial to be able to step between resolutions for your ZBrush sculpts.
Step 04: Sculpting the ground
I subdivide, and then apply a large-scale surface noise to my mesh. In this case, I want the noise to affect the shape of the mesh, but not drastically. I set the scale of my noise to 65 and apply it to the mesh. After that, I subdivide again, and apply more noise at a scale of 32. I repeat this a few more times until I'm in the millions of polys. When I'm satisfied, I brush the mesh with the Trim Dynamic brush to flatten some areas.
I sculpt the foreground in the same way. Since it will be closer to the camera, I make sure the details are more pronounced, using the Noise Curve to add interest to my noise.
Step 05: Sculpting the volcano
The main difference in process is that I mask out the top of the volcano during the initial noise pass. I also blur the mask to avoid hard edges caused by applying noise to the mesh. I use the Clay Buildup brush set to Zsub to carve out the main crater and channels for the lava. I define surface planes using Trim Dynamic. I subdivide, click on Brush Properties, and set my Gravity Strength high so as I sculpt, the geo slides along the surface normal like a mudslide. This gives my sculpt weight and motion. Next, I use custom alphas to add quick rocky detail. Lastly, I mask the top again, blur, and apply a larger scale noise to create a charred base around the peak.
Step 06: Sculpting igneous rocks
I want these rocks to have a really versatile shape because I plan to use them in various positions all over my scene. This also means I need these to be lower in polycount. I begin with a cube, DynaMesh, apply noise, and then begin sculpting using the Clay Build Up brush. I give this shape separate and unique forms to create an interesting base. When I've finished sculpting the major forms, I DynaMesh, subdivide, and add my main noise pass. Lastly, I use Trim Dynamic to smooth some areas. All told, the result is a more compact 200,000 polys.
Step 07: Preparing for texture
Before texturing, we need UVs. Use ZBrush's UV Master for this. This is one reason why we keep our subdivision levels. To increase precision, I divide my models into Polygroups. On ForegroundRock01, I mask the bottom and go to Polygroups > Group Masked. I repeat the process for the sides. I open the UV Master dialogue and click 'Work on Clone' to work on a copy of my tool. I click on 'Polygroups', then 'Unwrap'. You can check the UVs using the Flatten option. I use the Transpose tools to pack my UVs. When done, I click 'Copy UVs', navigate back to my original tool, re-open UV Master, then 'Paste UVs'.
Step 08: Texturing using Polypaint
Now that we have UVs, we can start painting. I begin by choosing the Standard Brush, turning off 'Zadd' and turning on 'RGB'. Next, I load the textures and make sure to set my tool to the highest subdivision level, then subdivide it again to make sure my Polypaint details are crisp. For these objects, I use textures downloaded from www.cgtextures.com.
When I'm ready to Polypaint, I turn my brush mode to Scatter and saturate the object in the texture. For detailed areas, I change my brush mode to Drag Rectangle. Next, I use the masking tools to isolate cracks and other areas I want to darken. I usually generate masks using PeaksandValleys, Mask by Cavity, and Smoothness. Lastly, I generate a mask using AO (ambient occlusion). If generating the mask takes a long time, you can step your subdivisions down to around 200,000, then step back up to the highest level.
Step 09: Exporting to 3ds Max
After Polypainting, I need to create the texture maps. I click UV Map and select my size. My objects use 2,048 and 4,096 textures. Next, I open the Texture Map roll-out, click Create, and select 'New From Polypaint'. This creates the texture map. Click 'Clone Txtr' to send the texture to the Texture palette. Find the cloned texture in the texture palette and export to 'Save as a PSD' and that's it! We have a texture map.
Note: You'll have to flip the UVs vertically in Photoshop before bringing them into 3ds Max.
Step 10: Rebuilding the scene in 3ds Max
When I bring objects into 3ds Max from ZBrush, they may sometimes come in at the wrong scale. I scale my pieces up by 10,000 to fix that. At the right scale, each piece should fall neatly back into place.
I use the standard shaders with diffuse and spec maps. To give the ground more interest, I add a bump map using the Cellular expression in 3ds Max. This is also a good time to add lights. I add a bluish skylight for ambient lighting, a few smartly placed point lights to get lava lighting, plus one spotlight for edge highlights. If you haven't already, change your renderer to mental ray.
Step 11: Modeling the Lava
To create the main lava stream, I make a plane, extend it along the slope of the volcano, and add segments. I use the Conform brush (found in the Graphite Modeling Tools) to fit the plane to the slope of the volcano, then Turbosmooth it. I then add a Shell modifier and Turbosmooth that. Lastly, I add a Noise modifier and an FFD 2x2x2 to taper the ends.
For the minor lava streams, I draw renderable splines with Turbosmooth and Noise modifiers. I create a plane with a slight bend that intersects the ground to create the pools of lava.
Step 12 Making the lava material
With the lava modeling done, it's time to tackle the material. Since I know I'll adjust the lava in Photoshop later, I want something clean and simple to work with. I use a mental ray material with the surface shader set to Glow. I set the surface color to red and the Glow and Diffuse to orange. I set the Brightness to 5.0.
To enable Glow at render time, go to Render Setup > Renderer > Camera Effects and check the box next to Output. You can drag the Glare map to the Material Editor to tweak its values.
Step 13: Setting up ambient occlusion
With lighting decided, we want to create another render pass for ambient occlusion. I create a new mental ray material and add an Ambient/ReflectiveOcclusion node to the Surface parameter. I use the Measuring Tape found under Helpers > Tape in the Creation panel to get accurate distances. To quickly apply this material to the scene, go to Render Setup > Processing and enable Material Override, then drag an instance of your AO material to the slot. Uncheck the box to render your scene normally again.
Step 14: Adjustments in Photoshop
After rendering, I take the images to Photoshop for adjustments. I darken a few areas that came out light on the render. I also add a background downloaded from www.cgtextures.com. I darken the AO using Curves and multiply it on top of the base render masking out shadow in the lava. Next, I use a special technique to sharpen the image. First, I press Ctrl+Alt+Shift+E to merge all visible layers into a new layer. I duplicate the layer. Next, I group the two layers together and set the group's blending mode to overlay. Inside the group, I change the top layer's blending mode to vivid light and press Ctrl+I to invert the image. I Gaussian Blur the vivid light layer which produces a sharpening effect. Neat!
Step 15: The finishing touches
Next I enhance the lava by painting red-orange in Overlay mode. I adjust the color and lighting using curves adjustment layers. I set one layer to Luminosity blending mode and the other to Color, so I can adjust each independent of the other. Using the color Curves, I increase the red in the highlights and reduce the green in the shadows. Last up are the finishing touches.
I paint more orange to brighten the lava, as well as add smoke, clouds, and some atmospheric distortion to increase the depth of my image. Lastly, I finish with a vignette to frame the completed image.