When I first came across Time of Contempt, I was impressed with how diverse that setting is. I didn't have any plans on how to realize this setting but it sure sparked an idea. When The Witcher 2 came out I started to wonder why the devs didn’t explore this setting, as I felt it has tons of potential. We probably won't see it in The Witcher 3 either (unless it’s a huge twist). I wanted to suggest the setting to CDPR and I figured that if I made this as fan art it could serve as an actual proof of concept. I still hope we’ll eventually see it in The Witcher if the series continues. In terms of the engine, I started this scene in UDK but I decided to switch to UE4 as soon as it was released. It was a great opportunity to explore the new features and learn the PBR workflow.
One of my motivations behind this project was to create something completely fresh and unique. Oddly enough, I think most of the inspiration comes from Edward Burtynsky’s photography. His photo collection of nickel tailings inspired quite a peculiar color palette that ended up in the scene. At the beginning of the project I started gathering pictures of hot springs and tailings that included peculiar color palettes. Other than that, it was pure improvisation, I just wanted to keep the right balance between realistic and fantasy elements that The Witcher series is known for.
The biggest problem was that I never really modeled an organic environment from scratch. I was always driven away by Zbrush's UI but it was high time for me to get over it. When I finally got a bit more familiar with the software itself, I still had a hard time creating convincing rock formations. Here are some very early mockups. It had taken a lot of practice (about 2 months) before the sculpts had finally gotten the look I was after. You can find a tutorial that helped me significantly with rock sculpting
As always, the solution for that was iteration. This scene went through 15 versions of rocks, 6 versions of the landscape and 3 complete restarts.
I think that most of the stuff in there would still be achievable with UDK. The big chance here was the PBR workflow. I didn't know any specific technique for dealing with physically correct materials. I would usually take Epic's example material as a base and start tweaking Roughness/Spec values until I was happy with the result. A big part of this project were shaders and I couldn’t have made it without this awesome blog.
The actual scene (foreground) uses 4 instanced rock pieces placed on a ground plane with high density which allowed for smooth vertex painting and real-time tessellation. I also added some vegetation using the Foliage system in UE4. All of the high polys for grass and bushes were created using Zbrush fibers, an incredibly fast and easy tool.
Since UE4 carried across a few limitations from UDK, in terms of the landscape system, I used static meshes instead. However, the landscape tools are quite handy when it comes to prototyping and laying out the composition. I started with a great tutorial series on landscape creation but my current workflow is a bit simpler and quicker. I'd recommend starting with a terrain block out in the engine as opposed to Zbrush/Mudbox or World Machine. This way you’ll get the right sense of scale and you’ll be able to iterate quickly.
From there you can export the heightmap and use it as a base in Worldmachine.
The set up in World Machine for the final version of the landscape is actually quite simple. The height map from UE4 went through Terracing, Erosion and Thermal Weathering. I also added the Snow node which acts as accumulated sand. When I was happy with my setup I exported the mesh and did geometry optimization pass in Zbrush. It's worth-while to export as many erosion/color maps as possible if you want to get a perfect result with World Machine. I found it much quicker to mix up everything in Photoshop. In terms of the color map, I'd say that the most handy maps are: slope and gradient masks (smooth sediment transitions based on height range). I tried different Worldmachine macros to get natural noise in my color maps but I find satellite photos much better and faster in that regard.
Having spent some time tweaking it in Photoshop, I had one 4096² color map that was ready to be used in game. Note that the final version doesn't use the 4096² normal map, thus it didn't make much sense to do any Zbrush passes on the terrain. It was quite important for me to keep strong contrast between hard rocks and soft sand so I boosted the crispiness of the rocks by applying detail maps to the slopes and tiling them 64 times across the macro texture. I also added cliff color on top of that in order to unify brightness values across the landscape.
Initially, the plan was to have only one terrain piece but the result was quite flat so I copied the vista mesh a few times and scaled it up significantly to add depth to the landscape. Adding a few additional layers made a huge difference. This solution however, is quite pricey and the backdrop meshes would require further optimization if intended for production. I think that it wraps up my landscape creation process. Feel free to send me an email if you have any questions!
Oh man, I cannot really express how grateful I'm for all the articles and spotlights. Paying tribute to one of my favorite series, catching fan interest as well as encouraging newcomers, is a great feeling. Epic has always been doing a great job with supporting the community. They did feature the scene on their Twitch stream which was absolutely amazing!
It's well a deserved spotlight Krzysztof. I want to thank you for taking the time to do this interview with me and of course for sharing your workflow with all our readers. Also congratulations on shipping Borderlands: The Pre-Sequel and good luck in your future endeavors.
Also, don't forget to check out the video of this scene on YouTube!