Jump to content

objects degrading over distance


Jillam
 Share

You are about to reply to a thread that has been inactive for 2164 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Why do some objects degrade in clarity when moving away from them a short distance? I see this only on some but not others. Can I change the object to see it better at a distance in edit if I have modify permissions? I know I can change draw distance but I want to change the object.

Thanks

  • Like 1
Link to comment
Share on other sites

LOD (Level of Detail) Is a standard practice in 3D rendering to allow for scenes which cover a distance to exist without overwhelming computer's graphics hardware.  When an object is only using up 30x30 pixels on a screen, it would be wasteful to expect the GPU to continue calculating 2k to 3k vertices.

Depending on the maker and the tools used, LOD can be managed in different ways.  

Prims have fixed LOD models which generally maintain each prim's rudimentary shape.

Sculpts have specific grids of vertices which are removed.

Mesh gets a bit complicated.  There are 4 distinct models.  If the builder is anything worth their while, they'll prepare a design for each model which preserves the form they're after while sensibly reducing detail to keep LI low.  Otherwise, they may leave the lower models to SL's automatic decimation which can't interpret or predict the maker's intent while removing a set number of points.

When dealing with objects which look like crushed newspaper from a short distance away, I opt to keep note of that maker's name and vow to never buy anything from them again.

As for what you can do.  There's a debug setting called RenderVolumeLODFactor.  It gauges the scale an object has to be before dropping in detail.  It's popular to increase it to help defer bad builders' practices.  But, it comes with a cost of increased rendering load per scene.  Feel free to increase it if your computer shows its capable of handling the extra load.  I personally set mine to 4, but, advise against it because I went way overboard when building my computer. (^_^)y

  • Like 2
Link to comment
Share on other sites


Imnotgoing Sideways wrote:[ ... ]

As for what you can do.  There's a debug setting called RenderVolumeLODFactor.  It gauges the scale an object has to be before dropping in detail.  It's popular to increase it to help defer bad builders' practices.  But, it comes with a cost of increased rendering load per scene.  Feel free to increase it if your computer shows its capable of handling the extra load.  I personally set mine to 4, but, advise against it because I went way overboard when building my computer. (^_^)y


Immy's right about not setting RenderVolumeLODFactor too high unless you are sure that your graphics card can handle it.  It will increase rendering lag for you and could just cause overheating, which is expensive.

If you are making things for sale, it's smart to keep your LOD factor below 2.0 -- I think the Linden Lab default is still 1.25, which is ridiculously low .  If you design your work so that it looks good with that low setting, you'll be sure that all of your potential customers will be able to see it properly, even on lousy machines.  You won't end up on Immy's "Never Buy From This Guy Again" list either.

Link to comment
Share on other sites

If you are interested in the LOD techniques used, or if you want to examine the LODs before buying, you can see what's going on much better by manipulation RenderVolumeLODFactor. his avoids Setting it to 0 will guarantee you see the lowest LOD model. Then as you raise it towards normal levels, you should see three switches higher LODs (lo, medium, high). (Some switches may be missing if the creator has used "Use LOD above" while uploading). A bit of zooming in and out after each adjustment can help with missing switches because of the "hysteresis" deliberately used by the viewer. This process can be quite revealing of the effort and skill that have been used in making the LOD models.

 

  • Like 1
Link to comment
Share on other sites

Be sure to avoid content where the creator urges people to increase RenderVolumeLODFactor. That's a sure sign the creator doesn't understand how LOD works or why it's important.

I wish more content creators would showcase their LOD levels as a feature and to allow customers to make more informed decisions when purchasing content. Too many rely on LL's automated LOD when uploading mesh.

  • Like 2
Link to comment
Share on other sites

Also, I notice some meshes degrade too quickly in order to get low Li ratings. I know I went through that  phase before returning to a post I made long ago in which you helped immensely, but I didn't fully understand and grasp the concepts you presented.

I'm much better at making the individual LODs now, though I'm not sure how to make the final billboards that represent anything anyway, so in the short term give up on the Lowest LOD looking like anything - though simpler box shapes are easier to flatten.

I notice the LOD popping when trying to photograph things, and pull the camera back, and the mesh drops LOD right away. in the short term, I increase my Advanced Properties?->Object visibility? up to Highest, and that solves the problem.

For example, a full size windmill on a sim listed in the log in screen drops to a lower LOD quite quickly and it was hard to get a good photo of it and the surrounding landscape because of this...

I've also found that bounding boxes play a larger part in LOD display than LOD meshes, as some smaller things I've made degrade wayyyy too fast.

For example, I'll will need to make some vacuum tubes that are like 4" long tops in-game, but they disappear at 3m+ even if I have clever LODs involved... if I'm making a custom guitar head for example, its really disappointing when your cool design breaks because the tubes disappear almost immediately just because your avatar's face isn't 1m away... bad for photography, where the cam might be 10m away.

Anyway, we don't hear enough of your expertise on this matter, do you have a blog? I've always appreciated your comments on optimizing mesh and LODs (as well as the expertise you display in your own which I strive for) thanks :D

Link to comment
Share on other sites


Bitsy Buccaneer wrote:


ChinRey wrote:


Rolig Loon wrote:

I think the Linden Lab default is still 1.25, which is ridiculously low.

Not at all! Any mesh maker knows how to make low LI mesh that works perfectly well with LoD factor 1.0. Those who don't, are mesh fakers.

That hurts.

A bit harsh, perhaps, but a skilled mesh modeler can make low L.I. mesh that works well at low LOD. I have seen some truly marvelous work here. The problem, of course, is that a lot of the modelers in SL (me included) are not skilled enough to make those great mesh models.  That's why I said that Linden Lab's default of 1.25 is "ridiculously low."  It's a worthy ideal, but it's not realistic for SL today.  I guarantees that many people will see mostly crummy low LOD objects.  In frustration, some people who discover the LOD slider but don't understand what it does will overcompensate by pushing it way too high. A more realistic default in this world of amateur modelers would have been something like 2.5.

Link to comment
Share on other sites


Bitsy Buccaneer wrote:

That hurts.

Sorry about that.

I'm not going to apologize but I really ought to nuance a bit.

There are several mesh makers in Second Life who know how to make mesh that fits my description, with good LoD even without increased LoD factor, with low land impact and with sensible polycount and texturing that don't lag down the place. Those people are better content creators than everybody else, they prove that simply by creating better content.

But of course, most builders in Second Life are hobbyists and they never pretend to be anything else. That's great! One of the best aspects of Second Life is that everybody are allowed to create here. And you can't expect hobbyists to be at a professional skill level, that goes without saying.

Also, even the best had to learn the craft - it's not as if LL provided anything resembling adequate documentation. That was a long and tedious process for everybody and people who are still busy learning the craft don't produce masterpieces, that too goes without saying.

The problem is all the pretenders, the wannabes who fool themselves and others into believing they are better than they are. Like a violinist in a local amateur orchestra who decides he or she (usually he) should have a job at the Royal Philharmonics. The answer to that is, no, it doesn't matter how "artistic" you are if you can't play in tune!

Shortly before I posted that snide remark, we had somebody in a group I'm a member of pestering everybody about how unfair it was that she wasn't invited to join the first group of Sansar beta testers. She went on for a week, the moment anybody mentioned the word Sansar she started. Eventually I went and had a look at what her store sold and it was really bad. Really, really bad. Quite nice design I have to say, simpistic but effective. But high land impact, quite high render weight and disastrous LoD. Yet she was absolutely convinced she was the creme de la creme of Second Life content creators. Apparently quite a lot of people believe her too, no name given of course but I'm talking about what seems to be one of the best selling stores in SL.

Not all the pretenders are self-delusive btw. A while ago I had a chat with one of the most popular full perm creators in SL. Quite an interesting chat in many ways but rather annoying since he kept bragging about how great a builder he was and how successful he was far outside SL. So I went to his store and took a look and just asked him straight out: if you're such a great builder, why is everything in your store garbage? His answer was that Second Life wasn't worth more. People here bought anyway. I couldn't argue against that of course.

Link to comment
Share on other sites


Bitsy Buccaneer wrote:

Yeah, I know what the best can do. I also know that I will never be one of them. Maybe I should just throw it in. Certainly don't want to add to lag and stuff.

No, I don't think that's the right answer.  The biggest thing that SL has always had going for it is that this is a world created by its residents, not a prepackaged one made by professionals.  If the amateurs like you and me choose to be intimidated by the example of really great modelers, SL has lost something.  Instead, we should be taking the opportunity to learn how to do better work ourselves. 

My point in this thread is that to be consistent with its historical support for people like you and me, Linden Lab should be setting a default that is closer to the good but not great work that we produce.  Setting the default to 1.25 makes the experts' models look fantastic. It would be unfortunate if it discouraged less skilled modelers and made them want to "throw it in."

Link to comment
Share on other sites


Rolig Loon wrote:

That's why I said that Linden Lab's default of 1.25 is "ridiculously low."  It's a worthy ideal, but it's not realistic for SL today.

...

A more realistic default in this world of amateur modelers would have been something like 2.5.

 (Sorry to cut up your post that way, Rolig)

There's a dilemma there.

All those numbers, LI, LoD and render weight/render complexity are really about lag and subsequently the requirements for being able to use Second Life effectively at all.

Most people who are interested in using Second Life for their creativity - or for some other purpose - are not willing and able to spend a grand every two years on hardware they have no other use for. And very few need that kind of graphics power for other purposes.

Yes, I'm very much for the idea of freedom to do anything you like in Second Life. But that really only means something if people are actually able to access Second Life and run Second Life effectively on their computers. I will hate the day when I launch Firestorm and read "Grid Status: Online | in-World: 3,000".

There's no real solution to this dilemma but I think it is every considerate content creator's responsibility to do their best to minimize the problem.

Edit: It's not the hobbyist builds that cause the serious problems anyway. They are not agressively marketed and distributed all over the grid. If somebody wants to lag down their own place, that's nobody's business but their own.

Link to comment
Share on other sites

I certainly won't disagree.  People complain more about lag than about almost anything else in SL.  It's our favorite topic and, of course, it's a by-product of all the amateur work around us.  There does have to be a balance somewhere.  Linden Lab uses features like ARC and the low LOD default to encourage better modeling and to make it possible for residents with mediocre computers to enjoy SL.  We'd be fools to march in the opposite direction.  At the same time, though, if the day comes when everything in SL is made by professionals, we will have lost something.  I am not a skilled 3D modeler -- I am basically a scripter, as you know -- but I love being able to create what I can and to learn by being around people who are way more skilled than I am. If SL were not here, I wouldn't create any mesh at all.  SL would be more efficient without my meagre creations, of course, but it wouldn't be SL either.

 

Link to comment
Share on other sites

Any shortcoming in this part will be due to lack of documentation and support (and tips from LL) to meet these LOD expectations. Drongle is the only guy so far I have seen to explain this in detail very well.

My beef mainly is the degradation between the High model (which I optimize from a high poly) to the Medium level, which wants almost 66% decimation, and the switch over inworld is almost instantaneous... if my avatar isn't standing 1m away from the item, it shifts to Medium.

So many times, I optimize my High to look the best it can, then use the same model for the Medium, then work on optimizing the Low. The lowest is the most formidable, and almost pointless, as if you even use more than 3 vertices, it can make a 3 Li item into 8 Li just on the Lowest model alone - so many times I just make the 3 LODS high, medium and low, and give up on the lowest setting, because it doesnt give me enough vertices to work with to even make a billboard... or the model itself doesn't allow for it.

I'm all for learning about how to optimize and upload my meshes for SL. Some of us are NOT lazy, we just  don't know how. I do pretty good, though some of my older items blink out too early.

 

Parts Of My Mesh Keep Disappearing!

Good info in the replies in that post about LODs, etc. We need this in documentation.

Link to comment
Share on other sites


entity0x wrote:

Any shortcoming in this part will be due to lack of documentation and support (and tips from LL) to meet these LOD expectations.

I don't think they have that documentation themselves actually. The Linden in charge of developing the mesh software quit shortly afterwards and before he documented his work (and the code obviously includes quite a lot of peculiar shortcuts and other unusual solutions), his boss doesn't work here anymore and his boss' boss doesn't work here anymore. It's quite telling that the Moles were very slow to learn mesh and if anybody had access to the docs, they would. (They've produced some excellent mesh recently but it took them a while to figure it out.)

 


entity0x wrote:

Drongle is the only guy so far I have seen to explain this in detail very well.

Don't forget Aquila and Arton! And many other contributors on this forum and in-world too!

 


entity0x wrote:

I'm all for learning about how to optimize and upload my meshes for SL.

First step is of course to remove superfluous vertices from the main model. I know you know that already but it's amazing how often you see even perfectly flat and even surfaces split up into countless triangles. Usually it's because the mesh was made from a grid and then the maker didn't remove the unnecessary vertices before uploading.

Next step is to make the LoD models manually but you already know that too. The uploader's simplification algorithm, GLOD (Geometric Level of Detail) uses triangle decimation which is totally unsuitable for any 3D modelling purpose. Even the far better vertice decimation algorithms used by Blender and MeshLab and, in a very simplified way, by inworld converters like Mesh Studio and Mesh Generator, can only help you a little bit of the way. Even the most inexperienced mesh maker can easily improve on the result they provide with manual editing.

Third step: Know the switch points - the theoretical distances the various LoD models are applied at. You really want to do some testing on the beta grid for that (tip: use the ctrl-0 function to scale up the view to see the switch points better) but if you don't mind a little bit of math, SL uses three slightly different formulas. If I remember correctly, they are:

  1. M=L*0.48*√(x²+y²+z²)
  2. M=L*0.6*√(x²+y²+z²)
  3. M=L*0.48*√(x²+y²)
  • Formula 1 is used for cube and pyramid prims and for meshes with more than four faces
  • Formula 2 is used for sphere, torus, ring and tube prims, for sculpts and (I think) meshes with less than three faces
  • Formula 3 is used for cylinder prims and for meshes with three or four faces. It's possible the constant should be 0.6 rather than 0.48 there.

M is the switch point between the high and mid resolution models, L is the LoD factor (we want that to be 1 of course ;) ) and x, y and z are the dimensions along the three axises. It's very important to note that Formula 3 ignores z dimension. This was probably a deliberate feature for cylinder prims and definitely a bug for three and four face meshes.

Medium-to-low switch point is four times and low-to-lowest eight times M.

It looks complicated but I have entered the formula into a spreadsheet once and for all and now I just have to type in the dimensions and get the result right away. I still check every single mesh on the beta grid though. You can't really tell exactly what will work before you've seen it.

Once you've got all of that, it's up to you to decide which details are actually necessary for each LoD model.

Download weight - one of the three factors determining LI - is calculated separately for each LoD model according to the model's file size and an estimate how often that particular model will be needed. That means that the lower LoD models are the most significant LI increasers for small objects while the higher models become increasingly significant the larger the object is. LoD models with switch points beyond 128 m, default draw distance, hardly add any download weight at all.


That's the LoD issue. There are several techniques to reduce LI not directly related to LoD.

Smooth normals can be very important. As the name implies, they allow you to get much smoother curved surfaces with fewer triangles and that is always useful. Many mesh experts also recommend you use smooth normals as much as possible elsewhere since in theory they always give lower download weight than flat ones. That isn't always the case though. I don't know why but sometimes you actually get lower weight with flat than smooth normals and in any case, smooth normals sometimes require you to add more detail to the LoD models to avoid sudden jumps in the shading and when that happens they can backfire badly.

The download weight is determined from the size of compressed files, not raw data and you can reduce it a lot by making the model as easy to handle for the compression algorithm as possible. This is where we getting into the Black Art of Content Optimization and I can't really explain all the principles in a fairly short forum post but a little bit of thinking can get you a long way here. Let's say for example you have one vertice with the x coordinate 1.0000 and one with the coordinates 1.001. Move them to exactly the same position along that axis and the the file becomes a little bit more compressable. Do that consistently (on the UV map too, not just on the mesh model) and you can often shave off 10-20% of the download weight. Except every now and then it backfires - SL is supposed to defy all logic after all.

Intelligent splitting of a mesh helps a lot to reduce download weight. Generally (but not always), the more meshes you split a model into, the lower the total download weight. Splitting increases server weight though (see below). You should be especially careful combining small and big triangles into a single mesh. Size and the total number of triangles are both important factors and with several small triangles and a few big ones you get the worst of both.

Download weight is just one of the three factors that can determine the LI. The other two are physics weight and server weight. It is very important to realize that it is only the highest of these three weights that counts. It just doesn't matter how you make those LoD models and how you optimize for lower download weight if it's already lower than one of the other two.

The finer points of physics weight optimization is again part of the Black Art, sorry. But I suppose most mesh makers know that very often all you need is a cube. Very simple physics and only 0.360 weight.

Server weight is very easy to calculate, 0.5 for each part in the linkset plus about 0.2-0.3 for each active script.

And that brings me to the final tip for now: weight balancing. Physics weight is completely independent of the others so there's not much we can do there but there is a very useful way to balance the two other weights for the lowest possible LI: splitting the mesh. Two relatively simple meshes have twice the server weight but usually lower combined download weight than they would have if they were merged into a single more complex one. You can save a tremendous amount of LI by finding the sweet spot where those two weights are approximately the same.

Link to comment
Share on other sites

I have said my piece on this a few times, but want to go along with Rolig's 1.25 is too low statement - my reasoning being that going with the lowest common denominator is not the fairest or wisest choice IMHO.

 

I am not the best mesh maker on the grid, but after four years of about 6 hours a day I am getting fairly proficient; every day I learn a little more.There are indeed some top selling mesh makers that have horrible LODs; I concur. Not only are they horrible, they COULD EASILY be better without increasing the land impact (I have checked that "more" tab *wink* so I am puzzled why they don't make things better). I can only assume that they always go with the defaults on the uploader -- which works fairly well with large builds and not so much with smaller things.

 

But all that said, people do have a choice how they design. I have chosen to aim for very good viewing at LOD2. Oftentimes things look good at LOD 1.25. BUT, I am not going to choose higher land impact over LOD1 viewing greatness. I personally feel that is unfair to the folks that actually have purchased good computers so that they can enjoy Second Life as it can be experienced. Those folks would then be penalized with high land impact.

 

Since I am doing venues now, I am perhaps a bit in the overkill camp LOD wise as I don't want my "lamp" to fall apart even at an unreasonably long distance -- since folks will be seeing it from across the event area. At the same time, I am not featuring products with faulty LODs on my blog.

 

And to the designers to choose to produce for LOD4 setting folks? Well there obviously is a market there. I ran on LOD4 for many many years before turning down my setting.

 

My point is that there are many individual answers about LOD choice and if a creator decides to make things for LOD3 or 4 folks KNOWINGLY -- then that is their choice. We do have freedom in our virtual world.

 

But whether one uses the uploader or makes their own LODs, TESTING is the most important final step.  The beta grid is your friend. Keep trying models or settings until you are happy with the results. Don't just assume things will be good by letting the defaults on the uploader rule. And if you are a consumer, buy from the folks whose products look good to you at whatever LOD setting you choose. It's a easy as that. We do have inworld stores still - LOL.

 

We each have our own answer about designing with LODs in mind. There isn't only ONE correct answer.

 

 

Link to comment
Share on other sites


Chic Aeon wrote:

I personally feel that is unfair to the folks that actually have purchased good computers so that they can enjoy Second Life as it can be experienced. Those folks would then be penalized with high land impact.

But they don't gain anything from it, Chic. I've yet to see a single mesh requiring increased LoD factor that couldn't have been optimized for LoD 1 with little or no LI increase. All that extra power is used not to improve the visual quality but to compensate for poorly optimized content. Quite often optimization would not only have improved LoD but also reduced LI because it's not about reducing the quality, it's all about getting more for the same "price" by reducing the overhead.

I have two pictures (well, I haven't actually taken them but I could) that would have illustrated this very well. Unfortunately I can't post them here since the creators would have been too easy to identify. But it's two quite popular town houses you can see all over SL, very similar in style, exactly the same size and everything but, of course, one with horrible and one with excellent LoD. The one with good LoD also has lower LI and lower render weight and when you compare them side by side, it also looks noticeably better with far more detail both in the mesh and the texturing.

Sorry about the awkward description. A picture or two would have said more than a thousand words but in this case pictures are not allowed. I hope I made my point clear though and it is not a unique example in any way. You can make similar comparisons many places in SL.

Link to comment
Share on other sites


Pamela Galli wrote:

Most people really don't need a lamp to look good from 256m away. 

YES. This is a key point that a lot of mesh makers overlook. Ideally, the lowest LOD levels should be far enough away from the person viewing them, that they don't notice that your super detailed victorian table lamp is reduced to a pair of cubes. At that distance, you only need to be concerned about a rough approximation of the object's basic shape.

As a side note, this is also why mesh increases in LI cost the larger you make it. Because it holds it's higher LOD states over larger distances.

Link to comment
Share on other sites

That better quality at the same LI is true in some situations but not in all. As I mentioned in my post, there are certainly creators that could up the LOD settings with no land impact increase.

 

BUT at the same time --- and I have done extensive tests on my objects, it is not always the case. So we will have to agree to disagree. It likely depends on what you are making, how it is made. :D.

Link to comment
Share on other sites


Chic Aeon wrote:

That better quality at the same LI is true in some situations but not in all.

I've yet to see an example where LoD butchery was necessary. There are so many other non-destructive ways to reduce LI. I mentioned a few of them in an earlier post, weight balancing and compressability are perhaps the most important on that list. They can have huge impact on LI yet very few builders seem to recognize how effective these techniques are.

I don't use impostor faces very often myself since it's not that suitable for the kind of builds I do. But if you make items where you don't expect the user to retexture it can give a huge LI reduction, much better than increased LoD factor and once you have that, the LoD factor simply isn't relevant anymore.

Another question is of course, how important is LI reduction today anyway? The limit was set back in the early days of SL when all you had to build with was prims. Today, with good content optimization and effective use of all the building materials and techniques we have at hand you should run out of space on your land long before you run out of prims.

Link to comment
Share on other sites


Penny Patton wrote:

Ideally, the lowest LOD levels should be far enough away from the person viewing them, that they don't notice that your super detailed victorian table lamp is reduced to a pair of cubes.

The real problem here is of course that it isn't.

Contrary to what Immy said early in this thread, LoD models aren't that common in 3D design and when they are used, LoD factor is set individually for each object.

The SL system with four LoD visual models and fixed universal switch points was made for prims and it is really only suitable for prims. Its application for sculpts and mesh is nothing but a crude hack really.


Penny Patton wrote:

As a side note, this is also why mesh increases in LI cost the larger you make it. Because it holds it's higher LOD states over larger distances.

Yes, and that brings me to one objection to the LoD factor system I haven't mentioned before. One of the most important factors in both the Li and the render cost calculation is an estimate how often each LoD model is needed. The LoD factor skews this estimate so what you essentially do is bypass the calculations and induce higher LI and render cost than the nominal ones.

Link to comment
Share on other sites

"The LoD factor skews this estimate so what you essentially do is bypass the calculations and induce higher LI and render cost than the nominal ones."

If you are implying that the download weight (and thus usually the LI) calculation depends of the setting of RenderVolumeLODFactor, I don't think that is the case. The calculations that remain in the viewer code essentially assume a fixed value of 1 (i.e. it is ignored). While the calculations are now done by server code we can't see, I am not aware of any differences being introduced since it was moved. It would indeed be interesting to see the effect of introducing the factor into LI. That would penalise higher settings, even causing the return of items as it was raised.

Instead, I am pretty sure you mean it introduces the resource consumption effects that would have caused increased LI and render cost if the calculation didn't ignore it. Just trying to resolve this slight ambiguity.

The suggestion of customisable LODFactors, or the equivalent customisable switch distances, as a property of the mesh asset design, was raised along time ago. I think it's in an old jira*, which I will look for. If not, I am sure it was raised at a content creation meeting, perhaps as long ago as the closed beta. I think it's a pity it wasn't adopted. It would have been a valuable tool for mesh creators. It would have been very easy to include it in the download weight calculation.

 *ETA Yes CTS-631, but that's an old mesh beta one, in discontinued jira section, June 2011. I don't suppose many will be able to see it, and I can't see a way to change it's visibility.

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2164 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...