Making a Beautiful Pond in ZBrush & UE4

Inka Sipola showed us how to create a detailed pond and shared advice on water shaders.

Introduction

Hello! I’m Inka, a 3D Environment artist from Finland. I’m self-taught in 3D and art and started my journey at the beginning of 2020. Since then, I’ve been working full time teaching myself all the fundamentals and technical knowledge a 3D artist needs.

Mid-August 2020 I had the amazing opportunity to start working for PurePolygons and help create the Downtown West modular pack that was made available for free on the Unreal Marketplace. Working in a production environment with a team of people was certainly different compared to working on personal projects. It boosted my learning and skills to a whole new level, and I got to encounter and solve problems I otherwise wouldn’t have sought out myself. Working with other people towards a common goal was also something I enjoyed a lot. Receiving and giving feedback and bouncing ideas back and forth, and seeing everything come together piece by piece was pretty cool.

We published everything in January 2021 and, after all, that took a short well-deserved break. More recently, I’ve gotten back to full-time studying and working on my skills, and keeping an eye out for job opportunities.

Monet Pond Project

I got the idea for the Monet Pond project a few months back when I came across a lovely image of a koi pond on Pinterest. What grabbed my attention was the vibrant color palette, and how it was something not often seen recreated in 3D. After all, it was just a water area with some foliage, and it can be very difficult to make something like that look pleasing and not just like a mess.

The goal was to create a unique portfolio piece with mostly organic elements. I wanted to have some artistic freedom with the color palette, and not be locked to 100% realism. Since I wanted to get more comfortable with ZBrush and overall the creation of organic nature assets, this was a great pick.

Looking at my main reference/inspiration for the scene, I already had an idea for composition and how I could deal with the balance between organic chaos and compositional structure. I really liked the spiral-like arrangement of the foliage and decided to go for something similar. The colors in the reference image were clearly altered, but that was something I really liked. If I would’ve made the color palette more muted and realistic, the piece would’ve been a lot less interesting.

After settling on the idea and what I wanted to achieve with this, I started breaking down all the things I needed to create and went to find references for those.

In this case, it meant identifying and googling to find good pictures that would help me create convincing-looking plants. I decided to go with slightly different underwater plants than what you can see in the main reference because I wanted to have something more interesting and more variation below the surface as well.

Working in ZBrush

Creating everything from scratch, and doing it by following a workflow I wasn't super familiar with was certainly daunting. To make everything more clear for myself I made a quick layout sketch for my texture set before going into ZBrush. Everything was going to be baked down to a plane, so I set up a canvas of some sort in ZBrush already, like you would do when creating sculpted tileable textures. Since I roughly knew what I needed, and wanted a lot of variation for my lilypads, I gave a lot of room for just different sized and shaped leaves on the texture set.

The process of sculpting the individual leaves: 

  1. Started with a sphere, and scaled it down on one axis to create a flat shape, and used the PlanarRect brush to quickly flatten it out more.
  2. Got the base for the leaf-like shape by moving the geo around using the Move brush and kept DynaMeshing when the geo was starting to stretch out too much.
  3. Using the inflate deformer with a negative value I quickly got a thin-looking leaf without having to manually do it.
  4. Masked the middle of the lilypad and curved the edges up with the Move brush.
  5. Sculpted the bigger veins and midrib of the leaf using the Standard brush, and simultaneously applied PolyPaint. This gave me a mask I later used in Substance Painter. Since I had the frame plane set up in ZBrush, I could use GrabDoc with the flat color material to get and export the mask.
  6. Kept refining the veins with the Pinch brush, inflated the areas in between, and mostly using the Move brush deformed the edges a bit to get a nice uneven look.

To save time, the smartest and easiest thing to do was to just duplicate similar-looking leaves around, and deform and edit them a bit as I went through them. The ones circled in blue are the only ones I actually made from scratch, even the pointy lilypads are just tapered and deformed round ones.

I didn’t pay too much attention to the variety in the high poly sculpting phase, since the biggest most noticeable differences and variety would be created in the texturing pass and in Unreal Engine.

Unwrapping and Texturing

With this approach, there was really no unwrapping involved. All I had to do was to have the square frame plane unwrapped, and I could bake everything I sculpted down to it. I baked the maps in Marmoset Toolbag and moved on to set everything up for texturing in Substance Painter.

I imported the low poly plane, baked maps, and the mask I had made in ZBrush to SP and set up anchors for the veins and opacity masks, which I could then reference later in the texturing process. And after that moved on to block out the different color variations and various other layer groups. I had subdivided the plane for texturing to easily mask out different leaves on the plane.

Achieving an organic look when texturing can be tricky, and I felt like texturing in Substance Painter instead of Designer gave me a lot more freedom to make customized variations quickly. Most of the texturing was still done procedurally, but I was also able to control super easily where I wanted the holes and damage on the leaves for example, so it looked organic and not procedural.

I utilized a lot of anchor points in the texturing phase. For the holes and damaged bits I set layers up so I could paint on one layer, and the area around a hole would turn brown automatically, and then have some yellow around the brown to blend it all a bit better and so it feels natural. The opacity and veins masks helped me target the edges and give the veins a different color and roughness.

Low poly game-ready plants:

Rendering

I put the scene together in Unreal Engine, starting from an empty level and setting up all the usual elements you need: Skysphere, Post Process Volume, Sphere Reflection Capture, Directional Light, and Sky Light. 

I ended up using some custom lights as well to properly light up areas I wanted to be brighter, like the foliage above the surface. I wanted the water to be clear, but not lose the darker areas where there’s more vegetation, so I set the attenuation radius of my surface lights to a value that wouldn’t reach the bottom. I then also added some rectangle lights to the bottom of the pond to slightly light up the more clear area and give some structure to the shot and composition.

For the water shader, I used node structures from different existing water shaders and added my own edits to them based on what I needed to push the final look closer to the reference. Really helpful ones were the free “Water Materials” and “Soul: Cave” packs with their water shaders. The Koi are also from a pack on the Unreal Marketplace, that I got just for this project since they were a perfect fit. They came with their own animations, that I then set up in the sequencer and placed some keyframes to locations where I wanted them to travel to.

I placed trees I got from the Downtown West pack outside of the camera view to fake reflections with the Planar Reflection actor on the water. Having wind set up for the trees I got some nice moving highlights of the sky. The reflections on the water really helped sell the water shader and gave the illusion of a larger environment and not just a small individual pond.

I placed my underwater plants and the dead leaves on the surface with the foliage tool, which of course sped up the process a lot and is a tool you should use when placing foliage. Being an isolated “portfolio environment”, I took my time placing the water lilies manually on top of the surface, since I wanted full control of the composition and every individual plant, and to be able to quickly edit and move them around, assign different material instances, etc. 

As I mentioned earlier as well, with something like this it is difficult to find the balance between an organic look and a pleasing composition. It took some noodling around and the look I initially had was too clean. But bringing in more chaos and just randomly placing plants around helped a lot. I still made sure to have at least some cleaner areas.

All the shots I took are high-resolution screenshots taken using the CineCameraActors, and I rendered the short cinematics using the Unreal sequencer.

Challenges

Working with vegetation, in general, can be really challenging, as it entails a lot of planning and various stages before reaching the end result. Often when starting out working with foliage you don’t notice the mistakes you’ve made until the end and when you have everything set up in the game engine. Whether it being your foliage ended up looking too dense and noisy when duplicated a bunch or some details stand out too much. If the plant is going to be used a lot it is important to have it look generic at the start, and then variations can later be easily created in the engine. Also having negative space will keep the plant more optimized, and it will read better as it’s not too noisy and you can see the shapes.

It’s important to constantly evaluate and think about how the final plant will end up looking and how it will be used as you’re making creative decisions. Try to think ahead to minimize the back and forth you might have to do and constantly compare it with your reference. Foliage is one of those things that is super daunting when you think about the whole process, but going over it, practicing, experimenting, and repeating it all makes everything a lot more clear over time.

Hope you enjoyed reading the article and found it useful! If you like my work don’t hesitate to check out more of the stuff I’ve made on ArtStation!

Inka Sipola, 3D Environment Artist

Interview conducted by Arti Sergeev

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