One of the biggest bottle necks for 3d art in game development is the fact you have to manage poly count. The process of retopology and baking normal maps not only wastes time it somewhat degrades the finished product. Not to mention its personally my least favourite part of game art. With the introduction of Nanite the question is, does this put an end to the madness? From my testing I can conclude the following.
Nanite easily allows for high poly count models to be render in real time, however it is limited to Static Meshes. It also reduces the file size of the model so as not to use unnecessary waste disk space. If a model is required to deform for example a character, Nanite will not be supported and Poly Count is important.
While the lack of Nanite functionality for deformation of models is the biggest drawback there are some other factors to consider before going crazy with poly count and in this article we will discuss.
What is UE5 Nanite
Nanite is the Unreal Engine 5 proprietary solution to allow the importing and real time rendering of high polycount static 3d models into a scene.
This allows for multi million or billions of polys to render on screen with considerably less performance degradation when compared to traditional methods.
How is Nanite different from a Normal 3d Asset
Traditionally the way real time rendering works is it relies on the game engine to render each poly in real time. The more polys you have appearing on screen the more computational power required.
With Nanite when you convert a 3d asset to a Nanite asset in Unreal Engine 5, it converts that high poly mesh to a mesh that Nanite creates. Not only does it create a more efficient mesh it dynamically changes the meshes topology depending on haw far away the model is from the screen. This is also known a Level of Detail (LOD).
For a Nanite model the closer the model is to the screen the more polys it has. The further away it is the less polys it has. The Below demonstrates this, you can see there are considerably more polys when we are closer to the model than when far away.
This is incredibly more efficient and requires less optimizing for 3d artists, as opposed to the traditional method which required you to potentially create the LOD’s by hand yourself.
Its important to understand Nanite doesn’t add more polys when there isn’t any it just scales back the amount when they aren’t required.
What is UE5 Nanites Limitations
You can find the fill list here and its important to understand these may be fixed in the years to come. The 2 biggest limitations to Nanite are not being able to apply it to Deforming Models & it Doesn’t Reduce Texture Size
Deforming Models
The biggest limitation is Nanite only works on static objects. Meaning objects that need to deform for animation for example a Character Model cannot be converted to Nanite. While this is not great news for 3d artists its estimated that 90% of assets in a typical game could be converted to Nanite.
This is somewhat understandable as the mesh of a character needs to be carefully managed to ensure the mesh moves in a expected way.
Texture Size
While Nanite is great for managing a large mesh it does not reduce the file size of textures applied to the model. Models with 4k to 8k textures can easily require 100Mb per texture and there can be 3 plus for a single model.
One benefit of Nanite however is the fact it eliminates the need for a Normal Map, which is a type of texture that fakes the fine detail of a model do you can reduce the poly count. You can find more detail on this from my article here. This means you can reduce space by not requiring at least one texture per model.
There are a couple of other limitations such as it is not recommended for finer detail models such as foliage and you have to be aware of stacking models as it may not remove hidden geometry.
Will Large Poly Count Models Make a Unreal Engine Game Use a Lot of Disk Space
Multi million poly count models take up A LOT of of disk space it can be larger than 1Gb for a single model with millions of polys. This is part of the reason for having to retopologize models and baking normal maps before using them in games.
When you convert a model into Nanite this dramatically reduces the models size. Regardless of the size of the source model. Storing a model on your hard drive will still take up a lot of space but the unreal project itself will be smaller. However the texture size does not reduce. Using 4k or 8k texture maps on models still needs to be done with caution.
This is common with photo scanned objects particularly if you are using Quixel Mega Scans. While you can use them more freely with Nanite the texture resolutions applied to the models can still bloat the size of the game.
Does Nanite Make Poly Count Irrelevant
Yes it helps hugely but I wouldn’t say it makes it irrelevant.
Firstly there is the obvious reason being Character Models will still require carefully managed poly counts and topology.
For static objects, for example environmental assets this is fantastic. It allows you to more or less just use them without having to optimise topology and bake normal maps to keep detail (A huge time saver), especially if you are using Quixel Megascans
Its plain to see why Unreal have introduced Nanite and Quixel Magascans into Unreal Engine. It makes environmental art easier than ever for FREE!!
The main limiting factor for game models is editing textures on a multimillion poly count model can be difficult as creating UV’s and editing them can be problematic. Not to mention a lot of 3d programs will struggle handling multimillion poly count models on a basic desktop computer.
Is Nanite a Game Changer
Firstly pun is absolutely intended I’m a dad, I’m allowed to.
Given all the advantages of Nanite its makes game development a lot easier.
However given its few current limitations such as no reducing texture resolutions size it is not going to realize its full potential yet.
Where I think it will really change things is in film. Being able to render high quality assets in real time has countless advantages. This means you could almost film in Unreal Engine in real time without having to wait for each frame to render in the case of more traditional software such as Maya or Blender.
Conclusion
Nanite is exciting as is any innovation. While it doesn’t solve all of the polycount issues it goes a long way to making it easier for 3d artist. Unreal engine is a powerful piece of software and with Nanite its only going to be more so. If you haven’t tried Unreal Engine 5 I strongly suggest you give it a go.