Why depending solely on the LI system is a false equivalency for good modelling

urdoinitrong

I’ve been thinking a lot about this lately – i’m sure I’m not the first one to bring this up…

Land Impact, as it relates to mesh these days, seems to be the be-all and end-all to consumer products in the Second Life space these days. From the start, back in the closed beta days, there was always a lot of push and pull, trying to design the system so that users would be encouraged to design intelligently, effectively and efficiently. As it happens, costs were put in place to better reflect this (as compared to sculpts).

Prim equivalencies for normal prims and sculpts didn’t change – Linden Lab cited not wanting to break content as the reason for this and I could go in to some depth about how this was a bad idea. I also have scripter friends who would take issue even with that policy, given that it seems to be enforced inconsistently; from modelling/texturing/animating to scripting. Neither of these issues is here or there, as it pertains to this discussion though.

The point I’m making here is that Linden Lab attempted to encourage better content creation practices by encouraging the use of multiple Levels of Detail (LODs), physics models, and the need for efficiency in scripting of these items. The Knowledge Base goes in to some detail regarding this.

Essentially, it is possible to have a good looking model upload for a high LI, with no LOD or physics optimization, OR upload for a fraction of that LI by making clever use of the opportunities afforded by LODs and physics models.

An important part of designing a good model is being able to make comprimises in complexity in order to make the viewer experience better, while not sacrificing too much in the way of quality.

Note, here, that I make a distinction between a complex model and a quality model – the two are not necessarily the same.

For one thing, it’s incredibly easy to abuse the system provided in order to upload a highly complex model while maintaining an unfairly low LI. How?

Well, you can upload up to three LODs to every model you upload to SL. In fact, you probably should. The rule of thumb, as far as the LOD generator is concerned, is that the ‘high’ version should have roughly 25% the number of faces compared to the full version of the model. ‘Medium’ should be half that of ‘high’, and ‘Low’ should be half that of ‘Medium’. If you leave these as they are, you may get a low LI object, you might not. It depends on a few factors, including how complex the model was to begin with, but also how many discreet parts there are, as well as whether the item is rigged or scripted.

But what happens if you suddenly just tell the viewer to load the full version of the model, then use the lowest possible quality for all the LODs, and tell the viewer that a substantial physics model isn’t necessary?

Basically you end up cheating the system, possibly without even knowing it.

I recently noted a significantly slow and poor viewer experience while exploring, and the persons involved had done exactly this. This prominent venue has dozens of vendors and they all come in at 3LI. Offhand, not bad, you might think, and under normal circumstances you might be right.

But in this case, no. I was getting frustrated. If I was a customer who didn’t know any better, I might just chalk it up to a bad computer. To be honest I’ll admit here my desktop computer could probably use more RAM and an upgrade from my midgrade video card within the next year. I also run three screens for my daily workflow and my usual load of programs includes Photoshop, Blender and either Chrome or iTunes.  But the common user of SL probably has a crappier computer than I do and it’s always a good idea to design for the lowest common denominator.

I decided to try and diagnose what might be the cause of framerates approaching 2-3FPS, even with basic shaders turned off, draw distance cranked all the way down, avatar imposters turned on and to the most stringent setting. I took the advice of Drongle McMahon on the SL Forums, showing a way to turn on rendering info and in particular to ascertain triangle and vertex count for selected objects.

Upon closer inspection, the vendor had over 18000 triangles – 20000 vertices. For reference, most mid-sized mesh houses come in at under 4000 triangles. Most main character avatars in video games similar in appearance to SL come in between 5000-7000 triangles. A simple box prim has 108 triangles and you can even make a box prim less complex by using a mesh box instead (since SL’s box has 18 triangles per face and 6 faces), which would get you 12 triangles. So basically, one of these vendors was taking up roughly the rendering capacity of four or five mesh houses, two or three avatars, or potentially *thousands* of mesh box equivalents. Within a 2m by 2m space. And there are dozens of these same vendors all over the venue.

What’s worse is this particular vendor takes significant advantage of the LOD uploads. If you are having a hard time loading things and as a result reduce the object detail in your graphical preferences (or if you’re an advanced user and have changed your rendervolLOD settings to something fairly low), then you won’t be able to view this vendor in any way other than a) the full, high-poly model or b) a broken mess of the minimum number of triangles required to upload and match up to the high-poly model.

Whereas in other modern platforms, such as Unity3D, it may be commonplace to budget perhaps between 100K-300K polygons for an entire scene, in SL it is often difficult to stick within those boundaries even if you control and created the immediate surroundings yourself. Content creators often design their objects to be ‘the stars’ of the show, regardless of their overall importance or how many resources have already been expended in the environment. It does not help that the content creation community is generally poorly educated on the subject or willfully ignores the consequences of irresponsible design decisions, in the name of creating something pretty.

Let me get something straight here – I’m not saying ‘don’t make or sell pretty things’; what I am saying is make pretty, quality things. But be smart about it and consider what is possible as well as what is responsible to inflict on an unpredictable number of people.

There are many things a designer can do in order to create more efficient quality content.

– For the full version, model to create good edge flow, avoid using the uploaded model to create fine details which could otherwise be achieved using a diffuse or normal map. High-poly models can be used to help create cavity and normal maps, but should not be uploaded to Second Life.

– Create efficient and accurate LODs which not only cut down on vert count but which are at least (at the medium level) somewhat representative of the object at a distance, to allow users to see at a glance what they should be looking at, rather than requiring them to zoom in. Most modelling programs should allow you to collapse parts of your model without significantly affecting the UV layout. Some also have modifiers (such as Blender’s most recent Decimate Modifier) which do some automatic face reduction, within limits.

– Don’t ‘cheat’ the LOD system by uploading a high-poly model and crappy, non-representational LODs.

– Stop making excuses for poor content by saying more complex content is necessary for a high quality, immersive SL experience. 1) SL isn’t a Pixar movie. You can’t expect it to look that way and run to any reasonable degree. 2) Quality content can look great, even at lower levels of detail. Any good content creator should know that and should know how to do that.

– Look forward to, and PUSH, the Materials project. Coupling a quality, low-poly model with a great diffuse, normal and specular map is the best road towards creating great, efficient content.  A developers build is out for it already and it’s always a good idea for content creators to provide their feedback to the developers so that any bugs can be acknowledged and fixed quickly. It’s not on the main viewer stream yet, but development has been moving at a steady pace. In the mean time, it wouldn’t hurt to learn how to create normal and specular maps anyway, since you can bake normal and specular effects in to your diffuse map already and upload it as a flat file.

– Make use of the wireframe mode in SL at least once or twice to see how it looks in-world, zoomed in. If the model looks almost solid even if you’re zoomed in, YOU’RE DOING IT WRONG.