Necropolis
Share  

Necropolis

Christopher Wallace
by Christophwallace2 on 9 May 2024 for Rookie Awards 2024

The Project showcased below is a Real-Time Environment I did for my Mentorship Term at Think Tank Online. I had a wonderful experience working on this project. I particularly enjoyed working on the larger assets, incorporating tiling workflows and versatile shaders. I hope you enjoy!

4 223 2
Round of applause for our sponsors

Here is my Mentorship Environment I did at Think Tank Online, under the supervision of Kacper Niepokólczycki. The Necropolis is a Real-Time Game Environment made in UE5. It took me about four months to complete.

Most of the assets in this project was created by myselfTo help me speed up the process I utilized Megascans for the trees and grass as well as a few crack and moss decals. The Crow Asset is from the Unreal Marketplace.

Plugins used: 
Ultra Dynamic Sky
Easy Fog

Necropolis - Breakdown

Slide the Process Slider to cycle through the different stages below ↓

Asset Showcase:


I used a mixture between 0-1 and Tileable Workflows. The Smaller Assets use Unique Bakes and Textures, while the majority of the Larger Assets use Tileables, Weighted Normals, Mesh Decals, and Projected Decals.

Collection of Smaller Assets and Decals ↓

Rock Collection "Unique Bakes and Texture" Rocks share the same Texture set ↓

Fire Brazier "Unique Bakes and Texture | Adjustable Emissive Intensity and Ember Breathing Speed" ↓

Mausoleum "Trimsheet, Tileables, Weighted Normals, Decals and Vertex Paint" 

Medium Gravestones "Unique Bakes and Texture" ↓

Small Gravestones "Unique Bakes, Trimsheet, Tileables, Weighted Normals, Decals, and Vertex Paint"

Large Gravestones "Trimsheet, Tileables, Weighted Normals, Decals, and Vertex Paint" ↓

Crypts and Tower "Trimsheet, Tileables, Weighted Normals, Decals, and Vertex Paint" 

Asset Workflow In a Nutshell:


For all the unique assets, I utilized the standard high-to-low poly workflow. I start with sub-D modeling in 3Ds Max. I then import the mesh into Zbrush and start doing an edge wear pass. Afterwards, I throw it back into Max and start creating the low poly and 0-1 UVs. I use Marmoset for baking and Substance Painter for texturing. The textures consist out of three 2k maps, Albedo, Normal, and a packed ORM. Then lastly in engine, I utilize the master material to layer on further details, like grunge, moss, snow, and vert paint. ↓

For larger assets, I used a Tileable Workflow. Instead of Sub-D, I use Chamfered Edges with Weighted Normals; there's no High Poly Bakes. I rely on Tiling and Trim UVs with a Texel Density of 512. To help sell depth with the Tiling textures, I model according to the texture, e.g., "with the brick texture, I extrude a few bricks to add extra depth and break up the silhouette." The same applies for all the other tileables. To break up the uniform bevels, I added Edge Decals. For finishing touches, I utilize the Master Material and Projected Decals.

Some Larger assets also have Unique Elements. ↓

Master Material:

Almost All The Assets Use This Shader, Both Unique and Tileable. This Master Material allows me to create a plethora of variations with minimal effort by applying Color Tints, Roughness Tweaks, multiple Grunge Maps, World Aligned Moss and Snow, as well as Vertex paint. This shader also blends seamlessly with the terrain using RVT Blending. I incorporated the Ultra Dynamic Sky Plugin with the Shader to add the Water Dripping Effects. ↓

Landscape Material:

I used Unreal 5.2 for this Environment. Since the beginning of this scene, I wanted to use Displacement in the terrain to really make it pop. 5.2 didn't really allow for proper Landscape Displacement. I had to use Texture Volumes and a Virtual Heightfield Mesh. I used this in conjunction with Runtime Virtual Textures to blend all the assets realistically with the landscape. One huge caveat about this "Heightfield Mesh" method is the fact that the Tessellation has no collision. With the release of 5.4, this method has become obsolete.

I'm blending three different materials in the Landscape Material. Soil, Wet Algae Moss, and a Rocky Moss. The Soil Material is completely custom, while the other two materials are heavily modified Megascans Textures. ↓

Tileable Textures:


The Tiling Materials were authored using a combination of Substance Designer, Painter, Zbrush, and Photoshop. I used Designer to do all the heavy lifting, Painter for some subtle details, a little bit of Zbrush here and there especially for the edge decals, and lastly Photoshop for all the alphas.

The Tiling textures consist out of three 2k maps, Albedo, Normal, and a packed ORMH. Decals are packed a tad bit differently. They only have two Texture maps, an Albedo and a Normal map packed with an alpha.

Soil Material ↓

Slide the Process Slider "Albedo, Normal, AO, Roughness, Height" 

Tiling Architecture Materials without Shader Additions ↓

Some examples of the Architecture Tiling Materials After Shader Additions "Color Tints, Roughness Tweaks, Layered Grunges, Z based Moss/Snow, Vert Paint" ↓
"Water Drips are form the Ultra Dynamic Sky Plugin"

World Aligned Snow and Moss used in Master Material, can be Vert Painted ↓

Vertex Painting "r=Moss, g=Snow, b=Grime/Dirt" ↓

Snow Glint "Texture Pans Based on Screen Position" ↓


Water Shader Breakdown:

For the water surface, I used a wave normal map. I sampled this normal three times. Each sample is a different size and scrolls at a different speed. I also layer an additional debris albedo texture on top of the water to give it a more murky look.

The opacity is based on both depth and viewing angles. The water appears more opaque if viewed at a glancing angle. The depth determines the color of shallow water and deep water. I get this depth by using the world space position, camera position, Scene Depth, and Pixel Depth nodes.

For the water foam, I used a packed texture with 3 different foam variations: "Sparce, Medium, and Dense". This Texture gets plugged into a Motion_4WayChaos node, which samples the texture four times and scrolls it. I use a gradient map for extra control, along with a depth mask that allows the foam to accumulate along the water's edges.

For the caustics, I'm using a Deferred Decal object that projects from the top, front, and sides in world space. To create the movement, I'm scrolling two textures with distortion in different directions and speeds. I incorporated the Ultra Dynamic Sky Plugin with the Water Shader to add the Water Splash Ripples.

Water Shader "Adjustable Depth, Foam, Color, Normals, Direction, Ripples and Caustics" ↓

This Environment is based on a Concept by Tian Gan.
https://www.artstation.com/artwork/QzvRQd


Comments (2)