Professional Services
Order outsourcing

Making A Detailed 3D Swamp Environment From Scratch With ZBrush & UE5

Environment Artist Raghav Verma has shared a quick breakdown of the Swamp Haven project, where every asset, including the foliage, was made by the artist himself with Maya, ZBrush, and Unreal Engine 5.


Hey, my name is Raghav Verma. I'm a passionate Environment Artist and I love to create fantasy worlds for games. I don't have a compelling backstory about me to explain what I do today other than to say that I make environments because I like to see that look on people's faces when they smile at a nice scene, almost as if they are transported there.

For this interview, we will briefly go over my recent game environment named Swamp Haven. I will be explaining how I approached this project over the course of 4 months and some of the techniques that I used to achieve the results on the respective assets.

Before we get started, I made every single asset in this scene and that includes the foliage. No Megascans assets were used.


First task was to find a concept and research all the references regarding it. Research is important so we can plan ahead the technical and artistic requirements for the project. I like fantasy worlds hence I went with the following project. The concept was taken from 三叠色 Size on ArtStation:

After collecting references, my PureRef file looked like this. It contained the type of assets and the quality bar that I would achieve for this project.


Blockout is the first week, where I match the camera angle of the scene in Maya and then place primitive geometry to get an idea of the whole scene in advance. This is also the step where I use "humans" to properly scale my assets in the scene relative to an average human size.

After doing everything, I exported it to Unreal Engine to get the first look at how the scene would look in the engine itself.


All the assets in the project except the herp props are textured in the engine itself using baked information.

This is how it was done:

  1. I modeled the base mesh in Maya.
  2. I sculpted the high poly details in ZBrush.
  3. Made the low-poly by decimating it in ZBrush or by manually creating it using Quad Draw in Maya.
  4. Substance 3D Painter was used to bake all the information on the low-poly meshes.

The Red, Blue, and Green colors in the bake represent the different masks that I pack with the textures. They are for moss, dirt, and miscellaneous gradient noises that are later utilized in the engine when I texture them as different masks for respective textures. My multi-purpose Master Material uses these masks in Unreal Engine to create changes on the go.

Here's a video showing how to change the moss/dirt buildup:

It uses the above-mentioned masks along with engine-generated information like distance-based Ambient Occlusion and distance fields in order to generate proper and realistic buildup. Here's another example showcasing how this works for the shingles:

For more information on how I use different techniques to texture my assets, check out the breakdown I did on my ArtStation.


Foliage was an interesting part of this project and I absolutely enjoyed every bit of it. Here's how I made my foliage.

After doing the research for the types of foliage required in the scene, I started by laying out the base mesh in Maya on square mesh, which has a layout of a 2K texture as shown below.

Then this base mesh is taken into ZBrush to add all the nice details.

Now that the atlas is done, I baked this high-poly on a flat mesh in Substance 3D Painter as shown below.

This atlas plane is then taken back into Maya to make foliage cutouts and further assemble the foliage according to the references.

I'd also like to share some of the Substance 3D Designer materials that I made for this project. More detailed shots of these cool procedural textures can be found here.


Have a look at some final renders below:

Raghav Verma, Environment Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    You might also like

    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