Open digisomni opened 2 years ago
If auto, which level URL should be passed onto the engine - always URL 0? Load priority values:
I think loadPriority
should be from lowest to highest, so 0 means load first, 255 means load last. And yup, I picked that range because it fits well for optimized networking. 😊
Auto means use automatic LOD systems, with Nanite that means it automatically scales assets, with Babylon.js it will do the same. There may be systems that try to auto select based on URLs, that would be documented so the user knows to fill in URLs as well as set it to "auto" if they want that feature to work in that specific client/engine.
Kalila asked me to move this from another issue I made.
This is how LOD would work ideally for creators who use tools like blender. I've created 4 LODS for an object (two objects technically), with LOD0 having the full amount of polygons (full detail), and LOD3 having the least. They way LOD typically works is at a certain threshold (specific distance) from the camera (not to be confused with the avatar) the system would automatically choose to render a lower LOD, and even further beyond a lower LOD until it reaches LOD3.
Notes on implementation can be found here
Why do we want this? I already have a simple script that will generate these LODs with 1 click on any object in blender. If our system can be made to simply recognize the "_LOD1, _LOD2, _LOD3, _LOD3 of any objects in the glb it will make it VERY easy to create large detailed environments.
I've updated the spec accordingly, so it should be able to handle both cases now.
LOD example prototyped in Blender Video is 2 minutes long. Be sure to unmute
https://github.com/vircadia/vircadia/assets/21160271/b099e8fb-768b-46f9-8de8-d6c84b0a4cc7
Hello! Is this still an issue?
Summary
LOD
We will be adding a few properties under a "LOD" object for the "Model" entity type.
Engines
Load Priority
loadPriority: 43
This property is applied to all entity types. It is a number from 1-255 (or whatever a good max integer is for the packet). This property is utilized by a client to determine which asset should be downloaded and loaded first.