LOD Techniques


VAT LOD workflow


Basically you need to manually build LODs with both UE and Blender.

Building the LOD assets


First, make a new folder in UE to store your intermediate files, probably in the same folder as the asset you are LODing.

{{0xc000595e00 0xc000595e00 image.png  alt text alt text 0xc000820de0} 0 false}

Duplicate your LOD0 mesh into that new folder for as many LODs as you need. A good starting point is an LOD1 at half the vertex count and an LOD2 at the lowest possible (distant viewing), but you can make as many as you need. Append their names with “_LOD1” and so on. Drag your newly copied meshes into the viewport.

{{0xc000595e00 0xc000595e00 image-1.png  alt text alt text 0xc000820cc0} 1 false}
In modeling mode, head to Mesh > Simplify. In Simplifier Type, select “Existing positions”, then set your target percentage of simplification.

Remember to temporarily set up your material to auto animate by turning off AnimationAlpha. This helps you determine if your VAT stuff looks on on the LOD version.

{{0xc000595e00 0xc000595e00 image-2.png  alt text alt text 0xc0009700c0} 2 false}

This 50 percent LOD1 looks ok - usually this one looks fine without much fuss. Hit accept when you are done.

{{0xc000595e00 0xc000595e00 image-3.png  alt text alt text 0xc0008aa480} 3 false}
Onto LOD2. Since this is the last LOD I’m making in this chain I want to set it to the lowest value that still mostly keeps the silhouette - in this case 9 percent. Don’t worry about the weird shading, we’ll fix that later.

Next you need to export both assets into FBX files (annoying but necessary). You can select both, right click, asset actions > export.

{{0xc000595e00 0xc000595e00 image-4.png  alt text alt text 0xc0009717a0} 4 false}
Make sure you have “export source mesh” checked in the exporter and nothing else.

Importing and updating the original mesh


Now you can reimport the exported fbxs as LODs for the original.

{{0xc000595e00 0xc000595e00 image-5.png  alt text alt text 0xc0008aaae0} 5 false}
Right click on the original asset, Level of detail > Import LOD > Add LOD1. Do this for all LODs created.

Now double click the original asset to open the static mesh editor. The LOD’s automatically setup with a different material slot, which is handy for swapping mats (useful later!). For now update the blank material with the original material instance.

Oh no, it’s still broken!


{{0xc000595e00 0xc000595e00 image-6.png  alt text alt text 0xc0008ab3e0} 6 false}
No worries, you’ll need to scroll down and uncheck GenerateLightmapUVs and click ApplyChanges on ALL LODs. Don’t forget this step!

What about that janky shading?


{{0xc000595e00 0xc000595e00 image-7.png  alt text alt text 0xc0008ab9e0} 7 false}
Here is where that additional material comes in handy. Make a child of your original material instance and uncheck bUseVATNormals.
{{0xc000595e00 0xc000595e00 image-8.png  alt text alt text 0xc0008abce0} 8 false}
Tada! The LOD meshes don’t play super nice with the offset normals as the LOD normals end up pretty differant from the original, but at proper LOD distances this shouldn’t matter anyways.

LOD Distances


{{0xc000595e00 0xc000595e00 image-9.png  alt text alt text 0xc000815380} 9 false}
Lastly, you’ll need to manually setup LOD distances. First, uncheck AutoComputeLODDistances

{{0xc000595e00 0xc000595e00 image-10.png  alt text alt text 0xc00050a600} 10 false}
Next you’ll need to set a screensize for each LOD. Easiest way to do this is to zoom out the preview camera to a distance where you can’t really tell the differance between the original and the last LOD. In the top right corner of the screen there is a Current Screen Size display that shows a number. In my case it is .04 - I find that the last in the chain usually is somewhere around this number.

You can do the same for the other LODs, or just kinda find some midway point between 1 (LOD0) and your last LOD screensize. I went with 0.08 for my LOD1.

You can then preview it by switching the view to auto and zooming in and out. Ideally it should look fairly smooth!

Once you got everything in place you can delete your intermediate meshes.

The extra mile


You can perform manual edits on the LODs. In this asset’s case, we know the player won’t ever see the back of them at distance, so let’s go ahead and remove the back in blender.

{{0xc000595e00 0xc000595e00 image-11.png  alt text alt text 0xc000815920} 11 false}

Do NOT move any of the verticies in blender! You can only remove them! This ensures the VAT texture continues to work as expected. If you do not need VAT after a certain LOD this doesn’t apply of course.

I removed the bottom of the mesh (easy to select via UV), exported it, then reimported back into UE. Went from 55 verts to 40. Nice.

Quad mesh billboard


The VAT technique largely works with quad mesh assets as well, with a few catches. Instead of “ExistingPositions”, use “QEM”. Remember to turn off lightmaps again when reimporting!

You can further optimize Quad mesh billboards manually to great effect. Since they are, you know, billboards, you can make your last LOD in the chain more or less just a small collection of planes.

Large detailed aggregate assets (Trees in summer) Quad billboard meshes