It's been quite some time since my last blog post but 2021 was one of my busiest times so far. Last month I joined the Beyond Extent community with their "Shady Rest Stop" challenge and this blog post is a tech breakdown of the technical bits and bobs that I created for the environment. In case you missed it, click here to see the full environment post!
One really important thing that I'd like to point out is that this was a team effort and I was lucky to have teammates that wanted to focus on asset creation. This gave me the chance to take full responsibility for almost all in-engine aspects and work on materials, lighting, post-processing, cameras, and some set dressing.
Here are the links to the awesome people that the awesome stylized team consisted of!
https://www.artstation.com/nikkitaracquel
https://www.artstation.com/sasho
https://www.artstation.com/edricjoe
https://www.artstation.com/tomseas
https://www.artstation.com/m4njotsinngh
To start with, this environment was the perfect opportunity to dive deep into RVTs (Runtime Virtual Textures) after my brief exposure with them during Artstation Challenge. I managed to extend the landscape blend functionality to also sample proper normal information and roughness. This gave me the 100% seamless blend even on assets that have faces perpendicular to the landscape. This came in extremely handy while trying to blend all these hard architectural surfaces into the landscape.
Some videos showcasing said blending and some parameter tweaking
And here's some of the material setup behind all this magic! I organized this bit on a material function for future re-use.
I had to do a lot of troubleshooting to get the normal blending to work on all meshes but in the end, using World Space normals did the trick. Just keep in mind to use a TransformVector (Tangent -> World Space) in your asset master material before blending it with the landscape normal.
Aside from RVTs, one of the other focus areas of my research in this environment was creating a multi-purpose asset master material. I ended up using it for all opaque meshes, so I'll call that a win. In the video below you can see some parameter tweaking of some of its features.
Ain't it a beaut? Remind me to use MaterialAttributes to hide all that Triplanar textures spaghetti next time.
Lastly, the foliage shader had some interesting challenges for me to tackle but due to time constraints, it wasn't one of the main priorities for this scene. I used a two-level wind distortion (using WPO), similar to that of my Arstation Challenge environment. Since my teammate prepared all base color, form & normal textures, there was no need to have in-depth base color and roughness controls.
Thank you for taking the time to read this and a special thank you to all of my team members and people at the Beyond Extend community, making awesome challenges like this one happen! See you on the next one!
Angelo