Bram Zwikker did a breakdown of his vivid environment made with UE4, Substance, and ZBrush and talked in detail about the rocks production.
My name is Bram Zwikker, I’m a 19 years old guy from the Netherlands and I’m currently studying Game Art and Animation at Sint Lucas. Next year will be my final year when I will have my final exams. I’m also currently looking for an internship to graduate on. I first found out about 3D 2 years ago. Before that, I always wanted to do something with traditional 2D since I’ve been drawing my whole life. When I discovered 3D due to a school project I knew this was something for me. We had to make a character but 90% of my time went into the environment. After a year of experimenting and screwing around, I started to take 3D seriously and learned a lot in my free time. I’m currently working as a freelancer and most of my time goes to get my portfolio ready for internship applications.
Goals of the Project
One of the main goals of my environment project was to learn how to make proper rocks in ZBrush, extend my knowledge of Unreal Engine and how to do proper lighting. I’ve always used Unity in the past, but Unreal Engine looked interesting as well! One of the things I wanted to achieve here was an amazing piece for my portfolio since I’m going to look for an internship soon. I’m currently trying to ‘upgrade’ my portfolio and this is the first piece of the process. Since my focus is on environments I thought something like a cliff, ravine or canyon would be perfect for this since there are a lot of rocks in there and a lot of possibilities for lighting.
Reference & Blockout
I first started with gathering all kinds of images, collecting a lot of neat art pieces on Pinterest and putting the most interesting ones on PureRef. One thing I also like to do for inspiration is to start games like Skyrim or Dragon Age: Inquisition and walk around admiring the environment, taking screenshots as I go. Once I had some interesting images I went to Photoshop and started painting some thumbnails. I never did that before, but it really helped to spark my creativity and to get a feel for the scene.
I really liked the third one and started creating assets for the blockout of the scene. I sculpted some very basic rocks in ZBrush and took some foliage I made in the past to create a blockout in Unreal Engine. I think the most challenging part was to create an interesting environment with 80% of rocks.
As a student, I find it important to learn as much about certain software solutions as I can now that I still have all the time to do so. I know that using scans weren’t going to grand me that knowledge. I also find that I have a lot more freedom when making procedural materials and with sculpting the rocks. For example, I could regulate how much stones I wanted my material to have, how many leaves, the size of them etc. in Substance Designer. I miss that freedom with scanned assets and materials. However, now that Quixel Mixer exists it gives a lot more freedom with scanned materials.
I used scanned images for the leaves and grass blades though. I could’ve made them myself in ZBrush or in Substance Designer for example. But the scanned images give a much nicer result and it wasn’t worth the time in my opinion.
Before this project, I never really sculpted any rocks. I always made them in 3ds Max with certain modifiers. But I knew that wouldn’t do the trick with this environment, and besides, as I stated before, I really wanted to learn more about ZBrush. So, I searched a couple of tutorials and articles on how other people go about sculpting and creating rocks. I noticed that a lot of people used similar techniques. With that in mind, I gathered some reference of the rocks and started sculpting blockouts, (the ones I used in my blockout scene). A friend of mine told me that it’s important to get the silhouette right of the rocks. So, I mainly focused on getting the large shapes to look right. It also had to look right on all sides, so I could copy the rock around and get an entirely ‘new’ rock from just rotating it a bit. In the end, I made: 2 large rocks, (these rocks cover 60% of the whole scene,) 3 medium-sized rocks and 3 small rocks, (these 6 where mainly used down the path).
Another thing to keep in mind is the scale. The big rocks have way more curves, details and faces than the small pebbles. I just kept in mind how they would look in the result while sculpting. And this is also why having a good blockout is important: to get a good feel of the scale you’re aiming for.
After that, I started to sculpt in the medium-sized shapes and going over all the flat surfaces with the TrimAdaptive brush. The Crumble brush helped me out a lot with getting nice details in the rocks together with Noise. At the end, I added cracks and other small details with the Slash3 brush and DamStandard. Once I was happy with the rock I made a copy of it to create the low poly. I did the retopology and unwrapping in ZBrush with some minor tweaks in 3ds Max. Once I had the low poly and high poly models, I imported everything in Marmoset and baked the textures. Marmoset does an amazing job at this! You can see your cage live on the low poly and you can preview your bakes on the mesh.
Once that was done I imported all the baked maps to Substance Painter (AO, Normal, Curvature, Thickness and position). From there I did all the texturing work. I made a very basic texture in Designer but, in the end, I managed to do a better job in Painter. Once I had the texture down, I created a smart material. Now I didn’t have to texture each rock, I could just throw on the smart material and make some changes to get the desired result for each rock.
In a way, this project was a continuation of my previous tree study. That study was my first real project in Unreal Engine. The goal there was to learn more about foliage, SpeedTree and the engine itself. The foliage in this project was one of the easiest things in my opinion. SpeedTree is my way to create foliage. It gives you so much possibilities and it does a lot of work for you.
The grass was from my previous project and the same goes for some of the bushes. The trees used in this scene were new. I just gather some reference images of the trees that looked like something I wanted to achieve. Of course, you can’t have a reference of a Maple tree if you’re trying to create an Oak. So, I tried my best to gather reference of similar trees I wanted to create. One thing that really helped for some reason where pictures of the trees for model trains! It’s insane how real some of them look and it’s interesting to ‘deconstruct’ those and see from what components they were created.
The flowers are scanned and made in 3ds Max. I’m still looking and experimenting with better techniques since I’m quite new to foliage creation and find it interesting to do!
All the ground materials are made in Substance Designer. The dirt ground was made before I started this project. When I had all the rocks done I thought the material would fit perfectly within the environment. I also wanted a material that let the rocks blend in nicely with the ground. So, I modified the existing dirt material by adding rocks and tweaking some stuff. With this, I also knew the material would connect perfectly with the other ground material.
The rock material was done in Substance Painter. I first tried some stuff in Designer, but I didn’t get the result I wanted. So, I figured out I could get a much better and faster result if I did it in Substance Painter. I first started with adding some additional details to the normal map. After that, I started adding the basic colors to the rock. When I was happy with the base colors I started playing around with certain generators and smart masks to add dust, highlight the edges a bit, etc.
As this was my second project in Unreal, it was interesting to do the lighting. I always found it an interesting topic as well and I wanted to learn more about it. Lighting can make or break a piece in my opinion. I had some basic lighting going from the blockout stage and first started with experimenting.
I wanted to know what I could achieve, what did what and how some things worked. After screwing around and discovering how things worked, I moved all the lighting, post processing, fog, etc. in a folder and started from scratch. I looked up some interesting photos of landscapes and ravines and made some nodes in Photoshop on how the lighting interacted with it. But I did a big part with just looking at it myself and figuring out what feels natural and what doesn’t.
I first tried to get the overall light to feel right. After that, I started experimenting with Height fog and Volumetric lighting. This was where the magic happened since it gave some amazing effects together with the light sources in the scene.
To finish everything off I placed down some spotlight to highlight interesting areas while keeping the light natural. I put the directional light to Stationary to do a quick bake for some darker shadows between the rocks. I tried to keep everything real-time while still trying to get a good result, so all the other lights and assets are set on movable so I could change whatever I wanted, except for the rocks and the directional light.
After that, I just moved the camera around to get some interesting shots. And the project was done.
To finish off, I like to thank some of my friends and other people who gave me amazing feedback in the process. It helped a lot! Now it’s time to move on to the next project.