UE5 Temple Project - 2024
Software used: Unreal Engine 5, Houdini, Zbrush, Substance painter
I hadn't worked in Unreal engine until this project. There was a few things that I wanted to showcase by the time I'm finished. I wanted to show use of Trim Sheets, Modular Assets Assembly, lighting and non-nanite workflow in Unreal.
Walk Around
Final Renders
AOV's for QA
Albedo
Roughness
Re-balancing Light Density Mapping (Before and After)
Base Geo For Assets
Base Geo With Normal Maps Applied
Trim Sheets
This project was the first I'd had used Trim sheets in my workflow. found it easiest to block in the basic forms and project the UV's from Y axis in Houdini, then sending to Zbrush to sculpt the high res geo. In substance painter I'd make the high-poly to a flat plane. The ID map was generated in Houdini and imported to painter for breaking up any repetitive patterning.
Houdini Cloth Sim To UE5
I wanted to bring some movement into the environment through a cloth sim. I have multiple flags through out the scene. The two methods i looked into were Vertex Animated Textures and Bones. I opted for Bones as I haven't really worked with them before and wanted to see how tricky it would be to get from Houdini to UE5.
Upon reflection as the motion for this is really simple and the flags are not key assets, I could have probably optimized this by going for noise turbulence driving a world position offset in UE5.
Shader Set-ups
Decal Material
The Decal Material Set up I wanted to minimize the amount of draw calls I'm doing. I channel packed the image file so that I had different patterns on in different RGB slots. My material set up allows me to blend two of the channels (could be the same or different ones) and apply position, rotation or scale offsets all using one decal actor.
Rock Z-up Layered Material
For the modular rock asset that I had used to form the majority of the environment I wanted to get the look of sand collecting in the crevasses. I knew that this would be two different materials. First I created:
-Master_Material (This is the layers get mixed together)
-Master_MaterialLayer (the core functionality/control needed on a per material basis)
-Master_blendLayer (This with have the functionality/control for the mask between the two materials)
In the Master_MaterialLayer I built this like normal stand along material. I had 'contrast', 'offset' and 'saturation' controls for the various material slots.
I also had a 'staticSwitchParameter' which controlled switching between UV or world align set up. This is because I knew I wanted the rock to use UV's but the Sand to use world align. I had a world align toiling amount parameter.
In the Master_BlendLayer I used the vertexNormalWorldSpace node and maskChannelParameter to extract the axis is needed. I also added some controls for 'contrast' and 'offset'. I also then multiplied this with a curvature map that I had baked out from Substance Painter.
In the Master_Material I set the material node to 'Use Material Attributes ' as we had already defined this attributes in the material layers. To reference those attributes we'll need to chain together these nodes: 'Material Attribute Layers' > 'GetMaterialAttributes' > 'SetMaterialAttributes' > 'Material'.
Now the final steps are to do one material instance of the 'Master_Material' and two Instances of the 'Master_MaterialLayer'. I wasn't sure about the 'Master_BlendLayer' so just used this directly which works. Double clicking the 'Instanced_Material' we can drag and drop the items into the correct slots for the layers and blend.
threedscans.com
There's some really cool scans on threedscans.com. I downloaded this one and cleaned it up in Zbrush. From there I baked a high to low poly texture set out form substance painter and the low poly version is used in the scene.