Cars Making car LOD's - simple, quick and clean

Thanks @alekabul, I've never created LODs before but people always seem to consider them a PITA and a time-consuming process. I can't imagine there's a quicker and simpler way than your method, and the results are great. As you said, lights are intact. In VR (Rift) I couldn't see the LOD transition at 30m, possibly 25m, and thats from a 175k tri model down to 30k.
:thumbsup:
It's just a matter of wanting the highest quality result at the shortest switch distance. I dunno what 30m translates to at your fov but the normal transition distance is lod B at 8-10m (30k triangle target), lod C at 40m (10k target), lod D at 100m (2k target, 2 materials). Lod B is about this large onscreen when it appears. You can generally tell that it switched (smoothing changes a bit) but it's not a worse looking model.
FIlnHZe.jpg
 
It's just a matter of wanting the highest quality result at the shortest switch distance. I dunno what 30m translates to at your fov but the normal transition distance is lod B at 8-10m (30k triangle target), lod C at 40m (10k target), lod D at 100m (2k target, 2 materials). Lod B is about this large onscreen when it appears. You can generally tell that it switched (smoothing changes a bit) but it's not a worse looking model.
FIlnHZe.jpg
Thanks for those targets, they'll be a useful reference. Yeah, I'm still testing - never done LODs before, but I'm impressed with what I've seen for 15mins for each. Certainly better than nothing. I might do a couple more (4 total) for this particular car with a higher poly one (compared to the current LOD B) at 10-15ish metres and another at 100m.
Disclaimer: using a CV1 Rift, which can hide a lot of sins. If I switched to my 4k monitor I'd probably have to reconsider. But here and now, I'm impressed - particularly the time/results ratio for cars with no LODs.
 
quicker than that with more practice
As with all such things I will advise to not run "against the clock". Slow and steady wins this race.

Here are some more things to add to the method:

For those rare cases of mods with no lods and with working wipers :laugh: when selecting the objects in Blender try to make the selection without the wiper blades as merging of 2 cm effectively erases them. So start by deselecting all and left-click on one blade, hold Shift and left-click on the other blade to add it to selection. Then use Ctrl+I to invert the selection and hit Tab to enter Edit mode and reach this state before merging

wipers 1.jpg

That was 4 clicks on the blades + 1 on the windscreen before Ctrl+I

Then proceed as usual. The goal is to have the wipers on the first lod intact so they are highly visible when moving in the wet weathers and the newer CSP (that guy Ilja-x4fab is my hero and I don't have many of those).

wipers 2.jpg


Now, that NSX gave me reason to show you how to deal with problematic glass before export from ksEditor
glass 1.jpg


Right-click on the problematic object
glass 2.jpg
glass 3.jpg

Circle around the car and repeat for every such visible defect.
 
Last edited:
matter of wanting the highest quality result at the shortest switch distance
Absolutely true and something for the car mod makers to go by. I only want to propose a quick remedy for the current situation of many released cars with no lods.
And by the way - thanks to your Dodge Monaco this popped in my head as possible solution. If you know of problems that are caused by adding lods made this way (No textures) please share with us the info.

Out of curiosity I tried to extend on the lod the effect of adding replacement wheels with CSP. No, it didn't do the trick even after edit of "ext_config.ini"
Code:
[MODEL_REPLACEMENT_0]
FILE=bmw_m3_e30.kn5
HIDE=WHEEL_LR, WHEEL_RR
INSERT=../../extension/e30stock_rear.kn5
INSERT_AFTER=FRONT_BUMPER

[MODEL_REPLACEMENT_1]
FILE=bmw_m3_e30_lod.kn5
HIDE=WHEEL_LR, WHEEL_RR
INSERT=../../extension/e30stock_rear.kn5
INSERT_AFTER=FRONT_BUMPER

What I see as big advantage of this lod making is the smooth transition between full and lod. It is better than some of the kunos cars.
 
Last edited:
There are some cars that just won't cope with the proposed simple method and don't go to the target 35 000 tris without disintegrating. In those cases you need to use a combination of the proposed method and some of the other means for decreasing geometry in Blender. Firstly select the parts which need to keep the reflections flow intact (ie the doors) and merge by distance on those. Then invert the selection and for the rest of the car use
combo 1.jpg
combo 2.jpg


The protruding vertices under the front needed to be erased by selecting and "X" -> "Delete: Vertices"
combo 3.jpg


In the end the Civic got down from 245000 tris to 28000 for the lod and it remains undetectable for the eye while gaming at 1080p TV 42" with FOV 43 and lod switch at 30 meters.
combo 4.jpg
 
Last edited:
No offense, but this looks horrible. And it is to be expected from a 'merge by distance' command.
Sure, it's better for performance if a car has no LOD models at all. But the quote below from AccAkut should not be disregarded.
It's possily a lot better already when using decimate options (or whatever it's called in the 3D programme of choice), as that can keep edges and wheel arches smooth and not mess up the geometry.

Yes, this may actually work. But an important step in creating LODs is that you can get rid of objects and materials in total. Like much of the cockpit, the instruments, chassis details etc, basically thinning out the object tree you see on the right in Blender.
Merging the way you do there will also often mess up the UV maps which can be very obvious on LOD changing in-game.
You can "easily" increase performance by "just" removing all those tiny details that require not only a handfull of vertices, but more importantly a bucket full of materials, objects, etc (DIP).
 
to be expected from a 'merge by distance' command
That command is what ensures the normals on the lod remain as close as possible to those of the initial model. You try that with "Decimate" and show me better unbroken reflection and I will bow down. But it don't work as you think, tried it already several times on different models. The resulting lod has the edges straight and the normals skewed so it gives off the switch every time in the game and in every kind of light.
Rummaging through the structure is the longer version and has advantages as long as the man don't get carried away removing details. If one emblem removed to save 1000 tris gives out the switch all the time spent on selectively erasing will be wasted. The merge doesn't leave the objects count 100 % intact so by setting the distance to 2-3 cm (0.02-0.03 in Blender) it erases all objects smaller than that. And it does it no matter if the detail is part of bigger object or not, which is not the case with erasing objects from the structure.
 
Last edited:
Merging vertices does not keep normals by definition. It merges them.

Here's a crappy example of a 6000 vertices (left) decimated to 3000 (middle) and merged to 3000 (right). I say crappy, because this model hasn't got the detail AC uses to begin with. But notice how the normals on the front bumper are getting messy? On the A-pillar, too, and on the air intakes on the rear.
1588233152495.png


As I said, it's better than having no LODs, but there are other ways to 'easily' get a better result.


EDIT:
Slightly better example:
This is a 114k tri mesh, subdivided to 615k, decimated to 38k and merged to 49k (numbers differ because I based the modifiers on face count, not tri).
1588233734767.png

Simply by looking at the mesh of the merge operation, you can see the normals will be all over the place.
 
Last edited:
not keep normals by definition. It merges them

I did not say "keep the normals". What I mean is the normals left after merging keep their direction and that is the big difference.

What I suggest to anybody interested is try every method you can think of and export the resulting lods. Then load the game using each one from the exports and watch if you can tell when the switch occurs. Just don't confuse which one is which. Brands Hatch GP track day "Same car" with "Static" F3 cams is good for observing the problems.

The "horrible" Civic lod looks like this when Decimate is used for the whole body
Clipboard01.jpg

That's why I resorted to using Merge on the sides. Otherwise it gives off the switching every time. And no smoothing, resetting and "from faces" editing of normals won't remedy the problem. Maybe it's model-specific as apart from "sts_ek9_typer_spoon.kn5" I didn't get such trouble using Merge on the other 3 STS Civic cars.
 
Last edited:
removing all those tiny details that require not only a handfull of vertices, but more importantly a bucket full of materials, objects, etc (DIP

When you are sitting in your cockpit and run a "Single make race" all materials are called no matter if you have been inside the lod and removed the smaller cockpit meshes with the many respective materials. Of course, deleting all small cockpit objects before simplify it`s useful for the class races where several different car models are loaded.

So to make this discussion more useful for the guys who are new to Blender - here is what this "cockpit" stuff is all about
Clipboard02.jpg


Selecting those and "X" deleting them in "Object Mode". Just watch out not to delete something that is visible from the outside (like that rear view mirror for example). Use the mouse scroll to get a better view on the whole thing after each selecting and before "X" - "Delete". Sometimes what you see selected is part of a bigger object and by deleting it you open a hole on the lod and find yourself starting again by using "Edit" - "Undo History" or re-opening Blender. That consumes a lot more time and gets a bit annoying after a while.
 
Last edited:
At some point when you are preparing the lods you inevitably will encounter a model that has too long names for the objects and they are automatically truncated when loading the model in Blender. The result - lights on the lod don't work without additional editing.
There are 2 ways to manage it - edit the "lights.ini" to add paragraphs for the renamed objects on the lod, or export the main model and correct the paragraphs in "lights.ini" to have the truncated names. I'm going for the second one as it leaves less clutter for the CSP to deal with.

Edit: the second option ends up with non-working mirrors so it's the "lights.ini" editing left only. Damn Blender, for 64-bit editor one would expect support of long names! CM and ksEditor do it ok...
 
Last edited:
When you are sitting in your cockpit and run a "Single make race" all materials are called no matter if you have been inside the lod and removed the smaller cockpit meshes with the many respective materials. Of course, deleting all small cockpit objects before simplify it`s useful for the class races where several different car models are loaded.
Object count always matters whether it's single type or multiple, reducing number of materials is just a way to reduce the number of objects in the LOD. A bunch of the DirectX cpu load is from updating object coordinates, which it only has to do for visible objects. Each car has its own copy of the object being moved a separate place so it does matter for single-make just as much.
 
Object count always matters whether it's single type or multiple, reducing number of materials is just a way to reduce the number of objects in the LOD. A bunch of the DirectX cpu load is from updating object coordinates, which it only has to do for visible objects. Each car has its own copy of the object being moved a separate place so it does matter for single-make just as much.
That is what the recap screens in the end of my second post are showing - in a single make race the lods made big difference because the objects count is smaller. Merging by distance takes good care of that as it doesn't stop deleting when a small detail is part of some big object. The lod has not only smaller tris count, objects are fewer too. None the less what I said for 30k tris lods having enough details necessary for distances of >30m is true for almost every modded car that needs this addition. Of course it looks ugly in the Showroom but when it does it's job in the game all looks much better and abrupt changes in car appearance are not observed.
 
Yeah, and to reduce the object count, you have to reduce the number of materials...

Of course I don't disagree that having LODs can improve performance, it's just that you're doing it in a pessimal way that has less effect on performance than normal LODs do. eg. I tried your 'brands hatch scene with 4-5 cars onscreen' with the C7 vette and got 2500 DIP, ~2 million triangles, your pics have 5800 and 3 million with your generated lods. So you're over 2x as many objects as it should be
 
Yeah, and to reduce the object count, you have to reduce the number of materials...

Of course I don't disagree that having LODs can improve performance, it's just that you're doing it in a pessimal way that has less effect on performance than normal LODs do. eg. I tried your 'brands hatch scene with 4-5 cars onscreen' with the C7 vette and got 2500 DIP, ~2 million triangles, your pics have 5800 and 3 million with your generated lods. So you're over 2x as many objects as it should be
That test was 41 cars all going around and I compared >8200 DIP (no lods) with what comes out with lods for the Palmer Jag. The screens show >10 cars visible in the first one and >20 for the second. In the name of accuracy I tried the Kunos C7 in the same conditions and
ks lods.jpg


GPU: stable 39 % at ~950 MHz. Of course I like to get that kind of performance but keeping the appearance of the mod cars comes as priority.

How do you propose to reduce the number of materials on the lod without causing visible switching? Reassigning materials in Blender for the meshes on the lod comes to mind but still it means getting very intimate with each modded car to learn the objects and materials structure and that is too time-consuming. I have >100 cars that need treatment... I hear some people got >1000.
 
Last edited:
There is a good gain to be had from preparing one more level for the >50 m lod
lod C -.jpg

GPU: stable 39% at ~1000 MHz.

lod C.jpg

With the use of "Degenerative Dissolve" on the body and "Merge..." on the rims and tires. So I maybe will export second level lods for all the cars.

And with some more care
lod C --.jpg

lods B.jpg
 
Last edited:
I have barely an inkling of what you guys are doing (simplifying car models for less demanding GPU rendering, especially at distances while maintaining as high quality resolution/appearance as possible at the same time in order to be able to run more cars simultaneously), but it is truly fascinating and super cool.

I look at a computer screen way too long for work as a technical writer (lots of Word and elementary CAD manipulation), but there are many pet car projects I would love to render in cyberspacecone day.
 
p11 gt.jpg
Screenshot_nissan_primera_doriftomountain_0.3_2-5-120-6-3-20.jpg


With this one I managed to get 10 m smooth switching to lod 1. Only not with "Merge..." but first "X" - "Delete" all unneeded (takes ~10 min to go over the cockpit, engine bay, boot and suspension), selecting and hiding the lights, emblem, door seals and wiper, and then "Degenerate Dissolve" with 0.01 distance. Then lod 2 for the >50 m switch was made by using "Merge" and 0.03 distance on all from lod 1.
 
Last edited:

Latest News

How long have you been simracing

  • < 1 year

    Votes: 352 15.6%
  • < 2 years

    Votes: 247 10.9%
  • < 3 years

    Votes: 243 10.7%
  • < 4 years

    Votes: 177 7.8%
  • < 5 years

    Votes: 301 13.3%
  • < 10 years

    Votes: 259 11.5%
  • < 15 years

    Votes: 166 7.3%
  • < 20 years

    Votes: 126 5.6%
  • < 25 years

    Votes: 99 4.4%
  • Ok, I am a dinosaur

    Votes: 291 12.9%
Back
Top