Anton Tenitsky explained how he transferred the same scene from Unreal Engine 5 to Blender, talked about the workflow behind it, and compared working on the same environment in UE5 and Blender.
In case you missed it
Check out how the scene looks in UE5
The Lost City Project
This is a continuation of the Ancient City Environment project. The first part was about high poly sculpting and texturing development for Unreal Engine 5.
Since the Unreal scene was rather heavy, I wanted to create a real-time environment as an asset for quick level creation. I wanted to do the whole thing very fast, in about 2 days.
Blender allows the use of UDIMs, so you can have multiple texture sets to keep high texture quality with a very fast setup.
I started with splitting the sculpt done in 3DCoat into chunks that had similar size and texel density.
Then, I decimated them down to around 5-12k tris a piece using 3DCoat export decimation.
UVs were automatically done in Blender since this was the part that I wanted to get done very quickly and Substance 3D Painter does a decent job baking over the seams. But I wish I had time to UV them nicely.
Substance 3D Painter
In SP, I have the mesh kit together and apart. Breaking it apart allows it to paint the areas that are hard to reach. Also, it allows for easy checking of baking artifacts.
Since this geometry is sharing the same UVs if I bake the parts on the right, I get the texture also projected on the geometry on the left.
I already had the smart material that I’d created for some rocks before. I applied it to all 9 UV sets and was done with texturing in 5 minutes. I packed the textures into individual channels to use later in the material setup in Blender.
Blender Material Setup
The material setup that I have here allows me to overlay different textures on top of the existing base UDIM textures. This is where the magic of Blender UDIMs happens because it allows one master material across multiple texture sets with the ability to adjust the amount of snow/moss/sand overlay on the fly.
I also had this shader made prior to the project, so then I was able to just throw it on top of the environment and replug the textures.
These are 10 base textures that I like to play with for different environments:
I have a simple material rig with the ability to intensify the amount of overlaid stuff on top. The Curvature and Ambient Occlusion are used to control the amount of wear and tear.
The most creative and fun part was to layout the city using that small KitBash.
Then, it’s very easy to swap textures and play around with value to change the look.
There are 2 fog volumes like giant cubes around the town. It softens Eevee's real-time look and adds a bit of atmosphere to the scene. There is fog on the ground to form early morning mist and big Atmospheric Fog around.
Otherwise, it’s just one Sun Light source and pretty much the default settings with Eevee.
While here only one type of stone is used across the whole city, you can do the same thing if you have an environment with metal, wood, or plastic. The material setup will be slightly different, but if you are overlaying sand/snow/moss using Curvature, Ambient Occlusion, and Normal Map, then it can be done over various textures across the whole scene using the UDIM setup.
Comparison with Unreal Engine 5
Since this environment was originally sculpted to test high poly texturing in Unreal Engine 5, I have the opportunity to compare both programs.
The problem with high poly is the time that is required to export millions of triangles and then load them to the scene. Also, high poly baking of AO and Curvature in 3DCoat requires minutes of waiting every time you do a new operation while texturing. It obviously also bloats the drive space, though I tried to reuse a relatively small KitBash (17 million triangles). But once the heavy geometry is inside Unreal Engine 5, it runs fast and lighting is instant.
The approach I used in Blender is also quite quick, and if you have the shaders premade, you can have a light scene with a high level of customizability.
However, you definitely get a higher quality render out of high poly meshes in Unreal Engine 5 than from real-time lighting out of optimized geometry.