Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Disabling Automatic LOD (Level Of Detail )?

Laser Pascal
Registered User
Join date: 21 May 2005
Posts: 15
04-02-2006 01:00
Is it at all possible to do this? LOD calculations are the single largest hit on my computer's performance in SL. I know they can be disabled for avatars, but can they be turned off for in-world objects?

If I turn the Object Detail all the way down, LOD levels are no longer calculated, but then everything looks bad. If I turn it all the way up, everything is fine - my GPU can more-than-push all the extra polygons, but as soon as I start moving or turning, anything around me moves, or I move the camera... LOD is recalculated all the time (for objects getting closer or further away, or going on/off my screen), bogging down my processor.

I've confirmed this through analysis of the Frame Console (the UpdateGeom bar shoots off the right hand side of my screen for several frames, often bringing my computer to a halt).

I'm pretty sure I'm not the only one with this issue. Any suggestions would be welcome, and if there is *no* way to do it, Lindens, please provide a way to disable the automatic LOD in favor of a constant level!

CPU: 1.8 GHz P4 (The weak point, but 1.8 GHz is plenty for everything else)
RAM: 512 MB DDR
GPU: nVidia GeForce 6800
OS: Win2K
Kitsu Nico
Registered User
Join date: 2 Jul 2005
Posts: 11
04-02-2006 01:22
I have been noticing the symptoms of this problem, but it explains it, since I tend to get the most freezes and frame rate drops when moving or the camera. Would be very interested if this is the cause, and on anything to help.
Eata Kitty
Registered User
Join date: 21 Jan 2005
Posts: 387
04-02-2006 01:57
Your GPU doesn't do all that much, CPU is more important for SL so it would be pretty bad for you.
Laser Pascal
Registered User
Join date: 21 May 2005
Posts: 15
04-02-2006 03:15
Exactly, which is why I posted this. CPU hogging would not be such a problem if LOD calculations could only be done *once* per object, even if it was at a constant high level. Then only having enough RAM and GPU power to store and render the objects would be the issue.

Of course it would be better if multiple LOD levels were cached, but that could require a lot more RAM.

Either way, it would reduce the load on the CPU drastically, but just disabling auto-adjusting-LOD would be much simpler to do.

What it comes down to is the speed of SL's dynamic object LOD generation code - while I'm sure it's pretty fast, when you have thousands of prims on the screen at once, especially on attachments, all being generated and regenerated all the time, it quickly becomes prohibitive, and laggy, unless you have the fastest of the fastest processors.

Not everyone can afford a cutting edge CPU, and all the additional hardware costs that are required to support a high-end CPU. Nor should they have to, when a small change could alleviate all their object-generation-induced lag problems.
Eata Kitty
Registered User
Join date: 21 Jan 2005
Posts: 387
04-02-2006 06:06
Ah I think I got you the wrong way around, in that by removing LOD you would want everything to be rendered at max detail all the time.

What you want is a way to set a constant LOD (Full/Three quarters/Half/Quarter/None)? That sounds like it could work although the pauses I get only seem to be when you get quite close to people and the LOD system tries to do max, perhaps being able to set a cap on the maximum LOD would be better and then users could find a sweet spot whilst still getting the benefits of some LOD.
Eep Quirk
Absolutely Relative
Join date: 15 Dec 2004
Posts: 1,211
04-02-2006 06:26
Debug > Character > Disable LOD

Works for avatars anyway. While a way to disable volume LOD would be handy, I suspect it would cause even more lag, even grinding SL to a halt (but a slower, more consistent halt). But, still, seems odd SL needs to recalculate the LOD for every prim when there are only so many possibilities--at least the basic default prim parameter LOD shapes could be cached or something.
Kensuke Leviathan
Wandering fox
Join date: 11 Dec 2002
Posts: 127
04-07-2006 20:26
I don't think updategeom is LOD, it makes more sense for LOD to be rebuild since nothing is changing on the objects as far as SL is concerned and it shoots sky high when you exit mouselook. Updategeom are changes in objects in world, thier rotation, postion or other property.
_____________________
_________________

":> wark wark"
Laser Pascal
Registered User
Join date: 21 May 2005
Posts: 15
04-08-2006 14:11
Kensuke, I just did some testing of that theory.

I went out to some flat land, with my LOD halfway up (so it goes from really-low-quality to high quality if you get close), and placed about two or three dozen 4-rotation, hollow toruses - one of the highest-polygon prims that you can have - it goes from very undetailed and lumpy with probably not more than 50 polygons (when zoomed out) to a very high number when zoomed in.

Then I turned on my Frame Console, and zoomed way out, waited for the framerate to stabilize, then zoomed in at a moderate speed, while watching the prims, and the frame console.

I took a few screenshots to verify that I was looking at the right colors on the console, and check the order, and I was correct. Every time the LOD changed on the toruses, the game would skip badly, or pause entirely for up to a few seconds, and the dark red "UpdateGeom" bar would be maxed out, well off the right side of the screen, or dominating the color display.

Try it yourself if you like, I'd love to hear the results. I can post screenshots if required, though seeing it for yourself, or in a movie would be more helpful.
Kensuke Leviathan
Wandering fox
Join date: 11 Dec 2002
Posts: 127
04-08-2006 15:32
I tried the same test and I never got a spike more then 35% of the frame, the smoother I zoomed in or moved towards an object the more spread out the load was which makes me think that it's calcing it for each distance range not the avatars find stop desintation, if I zoom in really quick or use the scroll wheel to zoom in I get a few spikes around 35% but the rest is less then five, nothing more then to slow down SL for a few seconds. Granted I'm running on a Athlon 64 3200+ and that alone could make a real difference, I have the same issue happen with the Oblivion LOD system ganted thats an infinitely more complex system but I will see the same thing happen when running from one side of the contient to the other, I'll have to stop about once per load notice as the LOD catches up.
_____________________
_________________

":> wark wark"
Laser Pascal
Registered User
Join date: 21 May 2005
Posts: 15
04-09-2006 00:15
So back to my original point - I may not have an amazing processor, but I can't afford to rebuild or buy a new computer, and this 'feature' is causing a lot of problems for me, and I'm guessing many other people under 2GHz (P4) or 2200+ (AMD).

So it would still be nice to be able lock the LOD at a fixed level. I wonder if I'm too in the minority to make it a votable issue? :P I know I'm an efficiency freak.
Eep Quirk
Absolutely Relative
Join date: 15 Dec 2004
Posts: 1,211
04-09-2006 00:20
Even my Pentium D 2.8GHz, 2GB PC4200 dual-channel DDR2 RAM, GeForce 6600GT (128MB) system chokes with lots of LOD. SL just needs a way to disable LOD completely (a settings.ini setting would be sufficient) and/or have a lower LOD bias for more complex objects or something.
Kensuke Leviathan
Wandering fox
Join date: 11 Dec 2002
Posts: 127
04-09-2006 00:43
Agreed, having more control over it would be nice, there are a lot of things in the sl engine that would be wonderful to have more control over. I think caching would make an impact for lower systems where the avatar isn't moving a lot, for people moving a lot were they would cross the LOD boundery often, I think this would generate more lag at certain points since caching is mearly running all the calcs for a given area at one time. There are a lot of rendering systems that use caching quiet effectively for large data forms, like photon mapping, the downside is always either the result looks like ass since it's not recalcing every frame, or it takes a little less time then the beginning because you have to add in another process to cover it up. Which brings a suggestion, the initial area or stationary is stored in a cache file, the area beyond, a temporary which the avatar could move into are LODed as normally, if the avatar stays in that area for more then X time, objects are pulled from the cache and swapped in for the new ones. This depends more of course on SLs engine handles LOD, does it do mesh swapping, pulling out a predefined mesh from the hard drive at a distance(LOD systems back in the day and a lot of texture LOD systems work like this)? or does it litterally redo all the math and logic behind the original prim? Does this make sense or have I just ended up rambling late at night?
_____________________
_________________

":> wark wark"
Laser Pascal
Registered User
Join date: 21 May 2005
Posts: 15
04-09-2006 08:48
Kensuke, I just tested that as well, with 64 of the aforementioned multi-rotation hollow toruses. There's no hard drive activity when zooming in and out, and I know RAM would be a lot quicker than this is acting, so I'm guessing that it must be dynamically regenerating them on the fly.

All indications are that this is processor dependent, because anything else would be much less likely to bring the entire application to a halt - I can't move the mouse - taskswitch works though.

Additionally, I find it somewhat troubling that moving from high LOD to low LOD produces almost the same amount of lag as moving from low to high. In fact, going between any two detail levels (high, mid, low, and any intermediate steps) produces about the same halting effect - so it appears that the number of polygons generated is secondary in effect to the actual process which creates them - the dynamic shape generation algorithms.

(So yes, in answer to: "does it litterally redo all the math and logic behind the original prim?";)

Currently the only way for me to get a constantly smooth framerate is to either go where there are no objects (kinda defeats the purpose of SL), or turn the LOD all the way down, so no intermediate steps are generated, but that looks bad.