Crafting environments in ZBrush

Tom Nemeth explains the processes involved in vegetation creation using ZBrush, 3ds Max and SpeedTree

Idea

As with any personal project I undertake, I was looking to do a piece that takes me out of my comfort zone and allows me to learn new software and techniques. I chose a jungle environment because it allowed me to learn more about creating vegetation, and to integrate ZBrush more in my environments. The render is based off a concept design for Uncharted by Eytan Zana, a terrific concept artist at Naughty Dog, who I am a big fan of.

The 2D concept

The 2D concept

Modeling

The first step was gathering as much reference as possible, and I kept supplementing that as I moved forward.

The next step was blocking everything out. I set up scale using a reference human figure, modeled basic shapes of the structural components and set up a camera to frame the environment. Having a camera straightaway ensured I didn't waste time modeling elements that wouldn't be seen.

Composing the scene

Composing the scene

Once I was happy with my composition, I started sculpting out all the model blocks using ZBrush, beginning
with this piece.

Modeling individual pieces

Modeling individual pieces

It doesn't look like much yet, but I'll show how I sculpted this piece out to be the bottom right wall structure in my render. This is the same procedure I used on all my structural elements, and I made sure to sculpt out all sides of any element that would be repeated, so I could Instance it around, and Rotate and Mirror it to make it look unique.

To start I needed to make a brick pattern to project onto my walls. ZBrush comes with a handy InsertMultiMesh brush called ‘Bricks', which I used to place various bricks onto a box shape.

Placing bricks onto the box

Placing bricks onto the box

Once placed to my liking, I used the MRGBZGrabber tool to make a depth map, which ZBrush places under the
alphas menu.

Making a depth map

Making a depth map

Then I reloaded my wall tool, subdivided it about 10 times with Smooth turned off for the first 5, and used Projection Master to place and drop the brick alpha onto each side. I added a layer to my tool before projecting so I could adjust the height of my bricks after I picked up the projection.

Projecting the brick alpha onto the wall

Projecting the brick alpha onto the wall

Now it was time to sculpt. I used the TrimCurve and ClipCurve brushes to cut away big chunks of wall, then I went in with the MalletFast and MalletFast2 brushes and started chipping away at it, much like taking a chisel to a cement block. This process left polygons pushed around every which way, so I made sure to run DynaMesh from time to time to retain an evenly distributed surface.

Demolishing the wall

Demolishing the wall

The final step was to decimate the model down to a usable polycount to render in vray, although I kept it quite high to avoid using displacement maps.

Decimating the model

Decimating the model

Vegetation

I decided to use SpeedTree for modeling much of my vegetation, as I needed lots of variation in my trees and plants, and I've also been very interested in learning the tool. I really enjoyed my experience with it, and in conjunction with ZBrush, I was able to add extra detail where needed while still keeping a speedy workflow.

I won't go into detail about the program here, but I can recommend the official SpeedTree youtube channel as a great place to start if you wish to learn more.

Some of the trees

Some of the trees

The grass was made from just a few modeled pieces done in 3ds Max, then scattered on the ground using Multiscatter.

Modeling grass in 3ds Max

Modeling grass in 3ds Max

I also added some tall grass in select areas using Multiscatter with Vertex Paint.

Adding in tall grass

Adding in tall grass

For the ivy I used the 3ds max plug-in, Ivy from Guruware, and procedurally grew ivy on my layout mesh in select areas. I replaced the default textures with leaves scanned from ivy in my own backyard. I also ended up replacing the leaf cards with modeled geo.

Working in the ivy

Working in the ivy

Once all the modeling was done, it was time to texture.

Preparing to texture

Preparing to texture

Texturing

The texturing process for the ruins involved making several different masks for each asset, and plugging them into a composite shader to control color, dirt, moss, etc. I used a plug-in called ‘Tension Modifier' for 3ds Max to make the edge mask. The modifier works best on dense meshes, as it uses vertex color to paint the edges of the mesh.

Making the edge mask

Making the edge mask

I then baked out the vertex color using render to texture.

Baking out the vertex color

Baking out the vertex color

I plugged this mask into my shader along with a brick mask, a cracks mask, a dirt mask, and a moss mask. I hand-painted these either in Photoshop or ZBrush.

Masks that were plugged into the shader

Masks that were plugged into the shader

I used the same basic shader for all the ruins with just a couple of base diffuse maps for stone and brick. The masks add all the detail.

Shader nodes

Shader nodes

Rendering and compositing

I rendered my scene with V-Ray, lit with an HDRI map. I supplemented this with a direct spot light with cards of foliage placed in front to get some speckled lighting on the forest floor.

Working in the lighting

Working in the lighting

Here is the rendered environment before any post-processing and color correction.

The rendered scene, before post-processing

The rendered scene, before post-processing

I brought the image into Photoshop and composited in Volume light, distance fog, air particles, and foreground trees, and then applied color corrections.

Color correction in Photoshop

Color correction in Photoshop

The final touch was grading the image using Magic Bullet Looks.

Color finishing with Magic Bullet Looks

Color finishing with Magic Bullet Looks

Related Links:

Check out Tom's other environments in his portfolio
Learn more about vegetation creation in SpeedTree
Want more advice on creating environments? Try our ebooks

Fetching comments...

Post a comment