secondlife / viewer

🖥️ Second Life's official client
GNU Lesser General Public License v2.1
199 stars 46 forks source link

Mesh uploads and use: Incentivize correct use of LODs #1864

Open canny[bot] opened 6 days ago

canny[bot] commented 6 days ago

Mesh levels of detail (LODs) are an important part of keeping the world of Second Life (and other 3D software and games) from becoming too graphically demanding on the variety of devices that run it. Different LODs are selected to be rendered by the viewer based on distance from the camera, scaled with the appropriate LOD distance factor in graphics settings.

The problem: Creators are penalized with higher upload fees for creating proper mesh LODs, and users are penalized with higher land impact for using those meshes on their land

Mesh involves two costs, upload fees and land impact, which affect both the creator and the end user. Many mesh creators upload their creations with great detail on the highest LOD, but then cripple their lower LODs to as few triangles as possible to reduce these costs. While this results in higher quality mesh compared to a mesh made with proper LODs at the same costs, it also increases the processing power needed to render the scene and causes the mesh to crumple or almost completely vanish when medium or lower LOD is rendered, most notably on lower-end PCs.

This problem and workaround have irreversibly damaged our ecosystem, and for years now creators have crippled their own creations and told users to raise their graphics settings to compensate. With SL21B going on right now, and a recent Firestorm viewer update that automatically changed graphics settings on first launch, I saw a handful of shops with signs telling Firestorm users to raise their object LOD distance factor to maximum. This is not a good solution.

There is also an ongoing bug in Firestorm that complicates this problem. When moving the camera around in Firestorm, objects worn by avatars (including the user's own avatar) sometimes remain in lower LODs even when moving the camera very close to them, and this requires the user to right-click the incorrectly-rendered avatar and reset their mesh LOD.

Suggestion 1: Upload fees and land impact should be based on the LOD with the highest byte count

To encourage use of proper mesh LODs, both the upload fee and the land impact (download weight) should be based on solely the highest byte count of the LODs provided, instead of the weighted average currently implemented.

Suggestion 2: Restructure upload fees to encourage correct use of LODs

For each LOD, the general guideline is that the triangle count should be roughly 25% to 50% of the next higher LOD. The upload fee and land impact should not increase if the byte count of each LOD is less than half (or one quarter?) of the byte count of the LOD above it. The upload fee and land impact should remain unchanged from the current implementation otherwise.

Suggestion 3: Penalize misuse of LODs

Conversely, the upload fee (but not the land impact) should be increased if the uploader is deliberately crippling LODs to try to game the system. Crippled LODs are obvious when the triangle count of the highest LOD is in the (tens of) thousands but medium and lower LODs are two digits or less, with the expectation that users will raise their graphics settings in order to see the mesh as the creator wants it to be seen.

https://secondlife.canny.io/admin/board/feature-requests/p/mesh-uploads-and-use-incentivize-correct-use-of-lods

canny[bot] commented 6 days ago

This issue has been linked to a Canny post: Mesh uploads and use: Incentivize correct use of LODs :tada: