Search the Community
Showing results for tags 'uber'.
-
I'm at the "Uber" monthly show, where mesh designers show off their work. This is the good stuff? Here I'm viewing a building at the lowest level of detail. It's a collection of random triangles. This is a close-up view of what it would look like at distance. Looking around Uber, almost every non-clothing item is like that. Buildings, furniture, and vehicles all half-disappear at the lowest level of detail. This is a show; it's supposed to be the good stuff. What's going wrong? I took a look at the code in Firestorm that uploads meshes and generates low-LOD meshes. It's not doing anything that evaluates how good it will look visually. There's no code for selecting triangles based on size, or being in the interior of a patch It's just discarding triangles arbitrarily. This is probably the source of most really bad low-LOD meshes, since it's the default if you don't do anything by hand. (The code is in LLModelPreview::genLODs of llfloatermodelpreview.cpp, if you want to look it at. If you read C++, you will wince.) A smarter algorithm there, coupled with not boosting level of detail levels so much, would improve SL's viewability and speed.Not an easy fix. Open source code exists for better mesh reduction. Not something that could be dropped in, but something to look at. For the really low level of detail, where the triangle count is around 12 or even less, impostors are the only way. Decimating down that far just makes a mess.It would be a big job, and the code is messy, but most of the pieces of code needed to do this during mesh upload are already is in Firestorm and the LL viewer. The viewer generates a preview of the mesh to be uploaded and shows it in the upload dialog floater. It can render meshes that have not yet been uploaded to SL. That code could be reused to generate images of the object from various angles during upload. Then, those images could be pasted on a box or cross mesh to create a simple textured impostor. You'd see distant objects as solids with low-detail texture, instead of a collection of random triangles. The user would get to see the preview during upload, and could tweak the parameters so it looked OK. Perhaps LL will look at this as part of Project Arctan. Now the really ambitious, but effective, thing to do would be to do this server side on existing content. Have some server quietly going through existing mesh objects with crappy low-LOD models and generating better ones. Probably would speed up SL considerably.