The Quarry Pt.4

Work In Progress / 25 July 2022

Hello there! July is nearing it's end, so before I leave for some vacation I wanted to share the latest! If you've been following me on Twitter, you'll have seen the progress made. But here's a summary if you don't :) This time I'm also adding in a larger breakdown of my new cliff creation process for the larger cliff assets in my scene.


There's been further improvements on the composition, a lot of it thanks to feedback from the awesome people over at Beyond Extent. Yet the majority of the work has gone into reworking my assets, making a new trim sheet, as well as making the crane more functional! (shoutout to Simon Grefback and Gavin Harvey for being killer thinkers for helping me figure out the functionality and how to make it work!)

Furthermore I've also been working on a pretty big part of the scene, cliffs! I've really been struggling figuring out how to create giant environment assets like cliff walls and the like, thankfully I've been getting a lot of help from a real rock expert, Derk Elshof

Thanks to him I managed to get down a really solid workflow consisting of creating really extreme heightmaps in Substance Designer, which I could then use to displace simple basemeshes in ZBrush. After that I was doing some minor cleanup using the Planar and TrimSmoothBorder brushes to clean up the worst offenders in terms of noise and weird geo, and then it was ready to make a gameres version! Some lowpoly and UV work later I could bring it into engine! I also decided to play around with the cliff in ZBrush to make a little diorama presentation in order to get a feeling of how it could look like later on. It was also generally just fun doing it!


Since I've been getting quite a few questions about what this workflow would look like in action, I decided to record a short clip in order to demonstrate just how quick it can actually be doing the ZBrush stage! The main thing to keep in mind here is scale in terms of your heightmap vs the scale of your asset, just to make sure things don't look too weird. On a larger cliff for example you'd have to stamp on a lot more of these alphas to keep things consistent.

Once the lowpoly is complete I bring it into the engine and slap on a couple of different detail textures I made in Designer combined with a baked unique normal for every cliff. The detail textures help keep up the fidelity, especially when you have a shader scaling the textures with the asset based on world position and object scale.

The final shader itself is largely based on an article from Vishal Ranga, along with some tweaks of my own like making the shader triplanar for a couple of things. This is mainly because of production efficiency, while I in the future would look at more optimized solutions instead. The final shader has also control for color tinting through an RGB mask, as well as a slight color offset based on world position. These options allow me to create biome variations just through tinting colors, rather than creating brand new textures. Pretty handy! Below is an image of two different groupings of my cliff, with the left and right groupings having different instances on them with different color tints.

Now I'll be going on a short vacation for the next week! After that I'll write down the final remaining pieces as documentation on Notion to keep track of things. (See the picture below for a sneak peek of what awaits) Again a big thank you to everyone in the Beyond Extent community for their great feedback.

Even though some of the feedback has already been implemented (as you can see below) there are still a couple of things left in there for post-vacation ;)  That's it for this update, see you in the next one!