Unreal Engine 5.3 from the Point of View of an FX Artist
If you are reading this I am sure you heard about Unreal Engine and all the cool new real time features it has. I never really dived into game development but was curious to look at Unreal to see if I can use it for my rendering purposes. After all who wants to wait for renders if you can render in real time right?
What’s the big deal with Unreal
If you are like me and have been seeing crazy new features about Unreal and not sure if they work or are skeptical about what they show, let me get you up to speed.
Unreal Engine 4 was an okay program that was used for making games. As far as I know there was nothing super special about it. I also don’t remember seeing anyone making cinematics with Unreal 4. After Unreal 5 was released I am sure you started seeing those rocky landscapes or caves, after a while forests and trees was the hype. These happened because of the new crazy features Unreal 5 has.
Here are the version of Unreal and what was added to it:
UE 5.0
Lumen: global illumination (light bouncing from objects)
Nanite: being able to render millions of polygons
Megascans Quixel: access to Megascans models for freeUE 5.1
Nanite for foliage
Lumen now works with translucent materialsUE 5.2
Procedural Content Generation (PCG): Generating environments in a procedural way like in Houdini. Like creating big cities or forests.UE 5.3
Nanite landscapes
Sparse Volume Textures or VDB support
That’s why at first everyone was putting rocks everywhere with v5.0. Then with 5.1 everyone started creating forests. I never realized 5.2 was released, yes I saw the PCG but as a Houdini artist maybe I didn’t really care or was very busy to take a look at that time. After 5.3 I decided to look into it because of VDBs.
What’s my experience like?
First of all I think the best and most amazing one is Nanite. It really does what is says. You don’t even have to check how many polygons a geo has, if you like the geo just place it in your scene. Nanite works with objects you model yourself or with Quixel Megascans. (Just remember that Nanite requires DirectX 12 which means old PCs will not work with it) Yes, it works with any object whether you model it or buy it from Turbosquid as long as they are not deforming. And that’s why trees and plants of foliage was not an option in Nanite until 5.1. But wait does this mean in 5.1 Nanite works with deforming objects? Unfortunately no. Obviously if you put static foliage in your scenes it’ll look boring and unrealistic. So your option as far as I know is either to use the ready tree assets in the Epic Store marketplace which have fake wind effects on trees or make your own wind effect with shaders. Let me clarify this, I say fake wind because the trees shaking and moving around is not a simulation or physics based effect. It is just some kind of shader trick that makes it feel like foliage move around. And I have to say even though it is not bad it doesn’t look good enough, especially when you are close to the foliage or the wind effect is very strong.
About Lumen, it works pretty good, there are still some shortcomings with performance, some flickering lights or general quality compared to light baking or ray tracing but I think it is good enough. I am sure someone with more real time experience in Unreal can get rid of those issues quickly and can make the Lumen effects look like how Path Tracing works.
About Sparse Volume Textures or VDBs, I feel it is going in the right direction but it is not ready yet. Bringing in a VDB is not that easy. Converting a VDB into Sparse Volume Texture (which Unreal does by itself when you import the VDB) can take a pretty long time and my PC kept crashing especially if I had more than a few volume fields while converting. For static VDBs like clouds I think is works good. I am saying good because there are some shadow issues where the shadows on the smoke is extremely black and it seems the only way to fix it is to fake it by adding some other lights or just using the Path Tracing option which means it won’t render real time. In addition when the VDB files are huge it makes it hard for Unreal to play them so real time viewing becomes an issue which is not a big deal since in all the other softwares it is obviously also not possible but I just wanted to warn you in case your expectations were high for VDBs like me. It is also said that in UE 5.4 shadows issue will be fixed. If a technology like Nanite works with VDBs one day, that will blow my mind.
Tiny Tip 1: If you want to give VDBs a try, let me give you a tip to save you some googling time. Unreal does not accept points between the names of any geo or file you import into Unreal. So if you are used to naming your VDBs like Explosion.####.vdb then it won’t work. Unreal likes seeing _ instead of . . So make sure you name it something like Explosion_####.vdb
Tiny Tip 2: Unreal wants the pyro’s (VDB) bounding box’s center to be static. If you just export with a bounding box that keeps updating its size then because the center changes the VDB will start jumping around. So make sure you keep the VDB bounding box center static.
What if I want to bring my flowing river mesh into Unreal?
This was the question I had in mind since I saw these rocks and boulders videos of Unreal Engine 5. I never really learned the answer until I dived into Unreal. So the harsh truth is, you can’t bring in your FLIP simmed deforming river mesh into Unreal to render with Nanite. And just like VDBs if the geo is very detailed, performance issues will arise. So you might have to sacrifice some quality by lowering your poly counts.
Destruction is similar. You can import your RBD destruction simulations to Unreal but if you have a lot of polygons and details, things can get problematic.
Tiny Tip 3: To import your RBD sims into Unreal the best method I could find is to first fracture your geo. Then with an Assemble SOP make packed geos and make sure to enable Path Attrbute in it. Then do the sim with an RBD Bullet Solver and export with a ROP FBX Output node. Don’t forget to enable “Build Hierarchy from Path Attribute” option in the ROP FBX Output.
About Particles it seems you can’t just export then import into Unreal but Unreal Niagara (it’s real time particle sim system) can import them. I didn’t go into Niagara so can’t say how that works.
Final Thoughts
In my opinion what Unreal did is pretty spectacular. If I was an environment artist I would probbaly be going mad right now, because it seems to me that environment generation and architectural visualisation is the strongest aspects of Unreal. I can’t comment on any game development side. I am more concerned about real time cinematic renders. Nanite and Lumen are game changers but if they can one day support deforming meshes then it would be epic. I think VDBs are in a good spot and after a few versions it feels like VDBs can be rendered properly in real time which I would definitely use a lot.
There is also the option to render with Path Tracing just like your regular “slow” renderers. I haven’t tried it because I wanted to look into the real time rendering stuff. But I heard and saw some pretty good things about it and that VDBs are rendered better that way.
Therefore obviously this is not all for Unreal Engine. It has a lot more features like realtime FX or Rigging or Animation. There is the Metahuman which lets you create super realistic humans and many more. My ideas and thoughts are gathered only in a week of looking into Unreal. Maybe in the future I’ll dive deeper and see how things changed.