LOD as opt-in

Hi, using the auto-LOD feature for everything is overkill in our particular usecase. In fact, it downright kills initial performance with many parallel fetches.

I know I could still switch both auto-LOD toggles on and then opt-out for every single mesh and texture. It’s great there’s an option to override on a per-object basis but here this would be tedious.

For our use case I’d rather opt-in though :slight_smile: So enable LOD’ing in general but only for some selected meshes/textures where it makes sense. In our use case it’d be only for a pretty big background texture which is about 40% of the total initial download size.

Out of curiosity, how many individual files do you get in this case?

171 files: 33 image*.glb, 138 mesh*.glb

Hi,

something like this is planned but we have not implemented it yet.

Do you think you could share your scene for testing with us? E.g. via sending a bugreport?

Cool, glad to hear! There’s no list or something you could put me on to track this yet, right?

Sadly not possible, no :confused: Is there any specific stats or logs you’d be interested in?

Hi @krizzl0r just wanted to give an update - one of the next unity plugin versions will provide an option to configure it to “opt-in” as in my screenshot. This can then be done by disabling the global Generate Mesh/Texture LOD option and then override the behaviour for single meshes or textures. This should solve your problem here and lets you enable LODs explictly (or the other way around and disable them for just a few assets)

Nice!

Is the overrides in the compression component just another way to modify the asset settings like before?
You know, these right here:

Because if not and you can set different overrides in both places it will get confusing :face_with_spiral_eyes:

I agree. The overrides in the assets will be deprecated eventually due to changes in Unity 6 which prevents us from adding custom overrides.

Oh too bad. Even the texture resolution/compression settings do have to go somewhere else then?

Please update to 4.5.0-alpha (e.g. via Unity’s PackageManager) and try the LOD options in the Compression settings component as described above. Thank you!

The problem is that Unity has changed how custom platforms are handled, which makes it hard/impossible for us to “inject” Needle as a platform and use the custom settings inspector in this way. We’re still investigating potential workflows there – the override per texture in the current (pre-Unity 6) way is a nice workflow.

Yep, very nice! This way I can cut initial download size down significantly and precisely where I need it. :clamp:

As a cherry on top the per-texture-settings (which won’t work anymore in Unity 6) still apply. So I can set the Max Texture Size to a sensible 512 globally, and still have 4k textures where it makes sense and have them streamed in via the new LOD overrides. Pretty great! :slight_smile:

I’m sure you already have a plan for the next steps but I want to point out what immediately popped into my mind:

Now that we can effectively group the textures and meshes by different override-assets, it’d be nice to have finer-grained control over these groups.
E.g. for textures: override the global texture LOD root size, if they should load on demand or rightaway. And maybe the whole max size, compression settings – so pretty much as a replacement for the per-texture-settings as they might not be viable in Unity 6 anymore?

And for meshes it’d be nice to have some more global control in general (and then be able to override), e.g. detailed compression settings. You know, edge deviation, reduction ratio and so on. You have some sensible defaults in there no doubt, but an option to fiddle around for specific cases would be nice, too.