Jump to content
WingsOfPurity

Why is there so much high-poly mesh in SL?

Recommended Posts

I have noticed that many mesh hairstyles, bodies, clothes, furniture, buildings, and many other objects have a very high polygon count. I am wondering why the creators of said items have not decreased said items, because it is not exactly helpful to render high-poly mesh on something as old as second life...

Share this post


Link to post
Share on other sites

The simple answer is that much of it was not designed for SL in the first place.  It was uploaded by people who have little understanding of SL's graphic environment, many of whom were not the original creators of the work.  A more complex answer is that SL is filled largely with items created by non-professionals (like me) who lack the training and experience to create optimized mesh that is well-suited to this platform.  One of the major draws of SL is that it offers us each a chance to be a creator.  One of the downsides is that a world created largely by amateurs -- here you can decide whether I mean SL or RL -- will have lots of design flaws.

  • Like 8

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, Rolig Loon said:

A more complex answer is that SL is filled largely with items created by non-professionals (like me) who lack the training and experience to create optimized mesh that is well-suited to this platform.

That's a good summary but there a few nuances.

The big commercial brands with owner and workers who depend on SL for a living, have to consider the bottom line. They may or may not have the expertise neccessary to optimize their meshes but it's simply not cost effective. Better to do quick-and-dirty builds targetted towards the market's least common denominator and focus their efforts on marketing. As one of them once said to me: "People in SL buy it anyway." The brands who depend heavily on events for sales and marketing have the constant pressure of deadlines to cope with in addition.

In my experience the enthusiastic amateur builders who still hold on in SL tend to be keen on improving their skills. But how are they going to learn? The little documentation LL has released is clumsily written, incomplete and often misleading or downright wrong. Linden Lab never was big on documentation and besides, they don't seem to have anybody on their staff that are qualified to write the mesh documentation. Take a look their own official mesh builds in Second Life. They represent the skill level the Lindens and Moles themselves are at and they are certainly not examples to follow. As for general mesh tutorials on YouTube and elsewhere on the internet, they are often irrelevant for SL's special requirements and usually made by amateurs with limited skills anyway.

As far as I know, this forum is the only place where you can find fairly complete documentation for mesh in Second Life. A number of users have done a lot of research and testign and psoted the results here. But it's all spread across the mesh section, the building and texturing section and also across all other sections. Tens of thousands of threads to shfit through to find the gold nuggets. It's too much to expect from anybody.

Edited by ChinRey
  • Like 9

Share this post


Link to post
Share on other sites

I think ChinRey hit the nail on the head. A lot of people get pointed to tutorials on YouTube when they ask about creating. There’s a lot of pipelines for creating and a lot of them are more on the high poly side. 

To my knowledge there aren’t many low poly tutorials geared toward SL.

  • Like 1

Share this post


Link to post
Share on other sites

A lot depends on the type of content.

Rezzed items tend to be fine with content made specifically for SL being competitive.

Worn items are high poly disaster as that's how they are exported from "that one clothing designer app everyone uses" and the brands who then dump that content into SL don't care and don't have the skills required. Hell, a decent portion of clothing made in "that one clothing designer app everyone uses" isn't even made by the person/brand selling it, they just grab it from the asset store, tweak, and upload. This is especially a problem as "that one clothing designer app everyone uses" leans towards static rendered content.

 

  • Like 4

Share this post


Link to post
Share on other sites
51 minutes ago, CoffeeDujour said:

Rezzed items tend to be fine with content made specifically for SL being competitive.

Generally speaking, yes. Rezzed items are limited by the land impact and even the worst LoD butchery in the world can't bring a 20,000 tris plant or piece of furniture down to 1 LI. But I have seen trees straight from Blender's tree generator in SL and besides, the load you save by reducing the triangle count is more than lost with excessive texturing and poor LoD models forcing people to max out their LoD factors.

 

54 minutes ago, CoffeeDujour said:

...

and the brands who then dump that content into SL don't care and don't have the skills required.

It's a bit more complicated than that. I know of at least three fitted mesh brands who make all their items from scratch, who do have the neccessary expertise and who really want to go low lag. But low lag doesn't sell in SL and builds that aren't actually used aren't doing anybody any good anyway. I think msot buers don't care about lag - or at least they think it's all Linden Lab's fault. The few who do care and do try to keep their avatars low alg, are usually fooled by that bogus avatar complexity figure, as if that has anything to do with render load.

  • Like 3

Share this post


Link to post
Share on other sites
Posted (edited)

Are we allowed to edit the SL WIKI?  There is actually a lot of good stuff over there, but it would be nice if were integrated with the content from here on occasion.  There really is a lot of valuable information here in the forums.  Would be nice if we could reference WIKI pages, and do cross linking to posts that reference it.

It really is hit or miss how something is going to have been constructed, which is great, but you've got to be discerning on choices, I will switch to wireframe view and check an object before I buy it usually.   As was mentioned above, the worn items are the worst offenders, because they're hidden somewhat, no li, only complexity score, which is not enforced.

I dont think the tri's are the normal culpret for lag, at least for me, the particle system, alpha blends, and how shadows interact with particular build methods, those are the fps killers for me when I get them.  Most of which can be upgraded eventually, and/or avoided when building out a scene or its objects.

Edited by Macrocosm Draegonne

Share this post


Link to post
Share on other sites

Why? Because doing it right is a lot of work, and the tools are weak.

 

  • Like 1

Share this post


Link to post
Share on other sites

On that subject, read:

For practice, I've been modeling a building. I want the lowest LOD to simply be a rectangular solid with the appropriate textures. I haven't figured out yet how to get the UV maps to behave for that.

Share this post


Link to post
Share on other sites
8 hours ago, animats said:

For practice, I've been modeling a building. I want the lowest LOD to simply be a rectangular solid with the appropriate textures. I haven't figured out yet how to get the UV maps to behave for that.

And if you rely on auto-mated uv map generation rather than learning to uv map by hand, you NEVER will...

Start with your block, UV map and texture it by hand, THEN start chopping it up and slicing bits out to make the higher lods... Retaining the basic UV mapping for the external walls that you set when you made the lod3 FIRST...

Don't rely on cookie cutter UV's, use separate tiled UV's, so you can have a seamless stone/brick texture, suitable scaled and repeated on all the external walls for example, and a seamless plank texture on the floors.

...

Making a lod0, then pushing the "Blunder 3D Make Cookie-Cutter UV's Auto-Fail" button, and THEN trying to reduce poly's down to a house shaped block and retain working UV's is a bloody nightmare.



 

  • Like 1

Share this post


Link to post
Share on other sites

I find that some clothing designers, specifically those using Marvelous Designer are among the worst offenders through no fault of their own. MD generates high poly garments, much more so than needed for a game engine. Unfortunately, to keep using that program and still be poly friendly, a designer would have to learn how to retopo in a program they're unfamiliar with and that's likely not going to happen. I agree with a lot of the previous sentiments that items were imported into SL with little knowledge on the subject. A lot of full perm builder kits are just that, items brought in from other sources and not designed for SL....now people buy those kits and flood the grid adding to the poly count flood.

Share this post


Link to post
Share on other sites

Sloppiness, really.  Designers who are just not paying attention to the render cost of all that nice detail, and in a lot of cases not really thinking about whether they actually need all those polys to get the effect they want.

Share this post


Link to post
Share on other sites

Nope. Me, as i am sure many other designers too, are perfectly aware of the high polyness of our creations. But we'll do it anyway, because:

1) high detail sells.

2) the workload is already through the roof without the optimization. Me i can not even afford to rig for more than 2 mesh bodies, and if i have to make a choice of spending even more time on my creations than i already do now (3-4 weeks for 1 item average) - i would rather choose to rig for more bodies than to waste time on optimization nobody will care about.

3) the tools are weak. I use 3ds max, and as far as i know it's quite bad in reducing high poly count of meshes. And no, i'm definitely not going to learn Blender or anything else for that reason.

so yeah,

On 10/15/2018 at 8:52 AM, animats said:

Because doing it right is a lot of work, and the tools are weak.

 

 

Share this post


Link to post
Share on other sites
1 hour ago, Elvina Ewing said:

Nope. Me, as i am sure many other designers too, are perfectly aware of the high polyness of our creations. But we'll do it anyway, because:

1) high detail sells.

2) the workload is already through the roof without the optimization. Me i can not even afford to rig for more than 2 mesh bodies, and if i have to make a choice of spending even more time on my creations than i already do now (3-4 weeks for 1 item average) - i would rather choose to rig for more bodies than to waste time on optimization nobody will care about.

3) the tools are weak. I use 3ds max, and as far as i know it's quite bad in reducing high poly count of meshes. And no, i'm definitely not going to learn Blender or anything else for that reason.

so yeah,

 

1) Not high detail, just the perception of a quality piece. Your customers don't care about polygon count or texture size, they care about the final result, and if you do your job properly the only thing they might notice is a better framerate.

2) But everyone care about optimization to a degree, everyone is complaining about loading times, poor framerate, meshs not loading. Only creators have consistently shifted the blame on Linden Lab and SecondLife.

3) That's because you're supposed to do most of that by hand, there is no a magic button. Sorry to be blunt but as the saying goes "A bad workman blame his tools". And here whether you use max or blender it's the same.

I wish  landowners had parcel settings to allow them to filter attachments based on their resource use.

If you expect to be paid for your work you should do it properly (and I know this is not how I'll convince you, this is for others to read).

Edited by Kyrah Abattoir
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, Kyrah Abattoir said:

1) Not high detail, just the perception of a quality piece. Your customers don't care about polygon count or texture size, they care about the final result, and if you do your job properly the only thing they might notice is a better framerate.

i disagree. It reminds me of this belly dancer jeweled top i saw recently made by another creator. They used a nicely done texture jewels to decorate their top with. I thought wow that top looks lovely, maybe i should try the same approach - less work, less poly's/lag, still looks great. Until i saw a 1 (or 2?) star review on the same top (a different colour listing), where the customer complained that jewels are only texture and it looks fake and they feel cheated and blabla. I decided to stick with my mesh jewels (imagine the poly count).

2 hours ago, Kyrah Abattoir said:

2) But everyone care about optimization to a degree, everyone is complaining about loading times, poor framerate, meshs not loading. Only creators have consistently shifted the blame on Linden Lab and SecondLife.

i don't blame LL. But i will continue creating high detail meshes unless they somehow force me to optimize, because i like realistic looking stuff. Sure i will try to keep it on the lower end whenever i can, but when i can't it's gonna be higher poly for the sake of "wow".

2 hours ago, Kyrah Abattoir said:

3) That's because you're supposed to do most of that by hand, there is no a magic button. Sorry to be blunt but as the saying goes "A bad workman blame his tools". And here whether you use max or blender it's the same.

I am supposed to do it by hand?? :o And here was i thinking there was probably a way, or a tool, or a program, that i don't know of... Come on, this is 2018!! For real? If that is true, then it is even worse then i have expected... Then definitely no, it's not worth my time.

2 hours ago, Kyrah Abattoir said:

If you expect to be paid for your work you should do it properly (and I know this is not how I'll convince you, this is for others to read).

are you even serious? Let's see what "normal people with normal jobs" are being paid for 3-4 weeks of work. I don't think  i can ask that for one outfit that i spent 3-4 weeks on...

Share this post


Link to post
Share on other sites
26 minutes ago, Elvina Ewing said:

But i will continue creating high detail meshes unless they somehow force me to optimize,

Or encourage you too?

I think that is the real problem. There are very few mechanisms in the SL software or practices in LL's policies to encourage/reward efficient buiding and lots to discourage it. I think Oz once said straight out that when LL developed mesh, they were only concerned about server side performance and had no thoughts whatsoever about client side. They are trying to put the genie back in the bottle now. Whether they can, remains to be seen.

 

34 minutes ago, Elvina Ewing said:

i disagree. It reminds me of this belly dancer jeweled top i saw recently made by another creator. They used a nicely done texture jewels to decorate their top with. I thought wow that top looks lovely, maybe i should try the same approach - less work, less poly's/lag, still looks great. Until i saw a 1 (or 2?) star review on the same top (a different colour listing), where the customer complained that jewels are only texture and it looks fake and they feel cheated and blabla. I decided to stick with my mesh jewels (imagine the poly count).

The best solution for something liek that would probably have been to use an impostor: detailed mesh for close up view, texture for the LoD models. Except it was probably fitted mesh and LoD doesn't work for that of course.

  • Like 2

Share this post


Link to post
Share on other sites
5 minutes ago, ChinRey said:

The best solution for something liek that would probably have been to use an impostor: detailed mesh for close up view, texture for the LoD models. Except it was probably fitted mesh and LoD doesn't work for that of course.

that's exactly what i did for my Giant Dandelion plant. At 6m size it's "only" 5LI. At Highest LoD the seeds are all poly's, but starting from Medium LoD it's only texture for the entire dandelion's head. But why do you say that this approach won't work for fitted mesh? :/

Share this post


Link to post
Share on other sites
3 minutes ago, Elvina Ewing said:

But why do you say that this approach won't work for fitted mesh? :/

There are two long threads about it here:

https://community.secondlife.com/forums/topic/419469-rigged-mesh-lod-bug/

and

https://community.secondlife.com/forums/topic/426621-what-the-fitmesh-lod-bug-actually-means/

But the short story, due to a couple of bugs even the smallest fitted mesh item will nearly always be rendered at high LoD, regardless of view distance. This is how some fitmesh maekrs can make those high poly meshes with amazingly low ARC numbers btw. The render weight formula doesn't take those bugs into account so it calculates the weight as if LoD had worked as intended.

  • Like 1

Share this post


Link to post
Share on other sites

yeah i've seen these threads earlier this week but i don't fully understand what exactly causes this LoD bug (english is not my native language and i am not all that technical either). From what i understood, this happens just because (??) most fitted mesh is rigged in Maya and Blender, and their measurement units and scale causes the meshes to be uploaded in tiny sizes (when rezzed). As i said earlier in this thread, i work with 3ds max, and i don't have this scaling problem. All meshes i rig come out the normal avatar size when i rezz them on the ground. What i don't understand - does it mean my meshes don't have this LoD bug? Does it mean, that if i manage to scale my rigging skeleton to the tiny size, and then upload my meshes in tiny size, they will have this LoD bug, too? And how about those meshes rigged in Maya that come out really tiny: if you manually scale them up on the ground, and then wear them, will this LoD bug still persist?

Share this post


Link to post
Share on other sites
23 minutes ago, Elvina Ewing said:

yeah i've seen these threads earlier this week but i don't fully understand what exactly causes this LoD bug (english is not my native language and i am not all that technical either). From what i understood, this happens just because (??)

This may be read by other people and I don't think we've ever summed it up right the way from the start, so here we go. You can skip the first seven paragraphs if you like.

A 3D in Second Life or elsewhere is made from lots of triangles that are joined together to make all the different shapes we see. There are lots of them and if we want a live, changing scene, they have to be redrawn several times every second. This is far more work than any computer ever invented can possibly handle. There are also far more triangles than there is room for even on the biggest computer screen but all those triangles still have to be handled by the graphics processor. Unless we find a way to eliminate the superfluous ones that is. LoD, Level of Detail, is one of thsoe methods.

The idea with LoD is to simplify objects that are viewed from a little bit of distance. Take a diamond ring for example. If you cam in on it, you want every single facet to show up. But from a meter distance you won't be able to see the facets anyway so there's no need to waste triangles on them. From the other end of the room you probably won't even be able to tell it's a ring.

This is how it works in real life too, details gradually vanish as we move away from the object. Usually we can't do the simplification gradually in a simulation because it would take far too much computing power so we do it in steps instead. We use several models that are switched on and off at specific distances, called "switch points" or "LoD swap distances". In game engines like Unity or Unreal Engine, you can program those switch points for each item. In Second Life they are hardwired into the system and determined by the object's size (you want to keep all the details of a big wall even halfway across the sim but that diamond ring can safely be simplified even at a foot's distance). The LoD models for prims and sculpts are generated on the fly but the LoD models for meshes have to be premade, stored on a server and downlaoded separately. The switch points SL uses, were tailor made to fit prims. They are not very suitable for sculpts or meshes. That has caused a lot of problems and working around those problems is one of the biggest challenges for SL content creators.

Second Life's LoD system uses four different LoD models, high - with all the details - medium, low and lowest. As I said, those models have to be premade for mesh but they can be generated automatically and the mesh uploader even includes a function for doing that. It's far from ideal though. Even the best simplification algorithms can never do the jo as wel as a human can and the one they included in the uploader isn't anywhere near the best. If you really want good LoD without increasing the lag (and the land impact) with superfluous details in the LoD models, you have to do them manually.

The trick is to simplify the LoD models as much as possible without it being noticeable. And it can be a tricky balancing act sometimes but usually not nearly as difficult or time consuming as it may seem. If you really, really want to optimize you need a lot of skills and experience both in how to simplify in ways that aren't noticeable and how to control the swap distances (yes, there are ways to do that too) and also be prepared to spend some time testing different alternatives. But if you have any 3D modelling skills at all, it only takes an hour or two to learn the basics and when you've done that, it's quick and easy enough to come up with something that is at least better than the ones the computer can produce.

Land impact and render weight (ARC) are supposed to be ways to measure how much load the object puts on various parts of the system. The more we can simplify the LoD models, the less load they cause (that was the whole point after all). The "base weight" is determined by the number of triangles in each LoD model weighed against how wide an area each model is supposed to be viewed across. The diamond ring is so small only the lowest LoD model counts, the other three models are only used at such close distances they are hardly ever displayed - in theory at least. The big wall on the other hand, it's so big that the high LoD model will be used all the way to the normal draw distance so for it, it's only the high LoD model that matters to the base weight. Obviously, this only works if the formula gets the switch points right and unfortunately there are two common ways to cheat the system there.

One if the "RenderVolumeLODFactor", or just "LodFactor". What it does, is override the default LoD swap distances. By increasing the LoD swap distances, you can reduce the number of triangles in the lwoer LoD models significantly because. That sounds like a good idea but it also means the higher LoD models with more triangles are used more often so in reality you loose more performance than you gain. The weight formula doesn't know about this though. It believes the swap distances are the default ones and calcuates according to that. Many content creators use this to cheat the system, tricking it into believing their builds are far less heavy than they actually are.

The other way to cheat the system is the fitmesh LoD bug and as the name says, it only applies to fitted mesh. It's actually not one bug, it's at least three of them working together to mess things up.

The first one is the smallest, but also the most stupid. To determine the area the different LoD models are viewed across, the formula has to store the radius of them. Long ago a brilliant LL programmer decided it was a good idea to use the name "radius" for a variable storing the diameter of those areas. The diamter is of course twice the radius, I think msot people know that. Later LL programmers assumed that "radius" meant radius (can't blame them for that really) and that meant the fomula got those areas wrong.

The second bug is more serious but also more understandable - it's more of a mistake than a bug really. it is hard to determine the size of a fitted mesh. It is uplaoded at a specific size and if you rez it, that's the size it has. But once you wear it, it will stretch or shrink to fit your avatar - that's what fitted mesh means after all. The LL developers decided was too complicated so they chose a simple solution: a fitted mesh' LoD swap distances are not determined by its size but by the size of the whole avatar's bounding box. But they forgot to code that into the weight formula ... of course. That means, if that diamond ring is fitted mesh and it was uploaded at about realistic size - say 0.02x0.02x0.01, the forumla will assume that the LoD swap distances are 0.05, 0.2 and 0.4 m respectively. In fact, it's more like 5, 20 and 40 m - a hundred times as much. That is if you haven't changed your viwer's LoD factor. If you use Lod Factor 4, the swap distances will be 20, 80 and 160 m. So in that case, the weight is based on the assumption that only the lowest LoD model counts while in fact it's only the other three models that count. That's bad. And the third bug makes it even worse, much worse.

Those LoD swap distances are determined by the avtar's bunding box and that is not the same as the size you see. It's supposed to be more ore less the same (c. 1x1x2 m) regardless of how big or small your avatar is. If you use a petite avatar, your bounding box is 1x1x2 m. If you use an old 10 m tall dinosaur avatar, your bounding box is 1x1x2 m. But fitted meshes act a bit strange there and they can increase the bounding box a lot. I have an idea why but I'm not sure so for now, let's just say that's how it is. In one of the tests Beq Janus did for that first thread I linked to, she found that her perfectly normal and standard human fitted mesh avatar had a bounding box of 17x17x2 m. That means actual LoD swap distances for any fitted mesh she was wearing was 50, 201 and 402 m. So, if she had been wearing that fitted mesh diamond ring and you had been standing 49 m away from her, your viewer would have been desperately trying to fit every single triangle of it into a space less than a single pixel on your computer screen. The weight formula that determined Beq's ARC would still know nothing about that. It would still assume that ring was always rendered with the few triangles of the lowest LoD model.

  • Like 1

Share this post


Link to post
Share on other sites

There are tutorials on low polygon modelling online.  They're not specifically geared towards SL, but polygons are still polygons, so the principles will still apply.  

  • Like 1

Share this post


Link to post
Share on other sites
10 hours ago, Melonnyvix said:

There are tutorials on low polygon modelling online.  They're not specifically geared towards SL, but polygons are still polygons, so the principles will still apply.  

That's a very good point but be careful with the term low poly. Here are some low poly trees from one of the major free mesh model sites:

1120228850_Skjermbilde(1905).png.f9c3c4fcf70f31e3745d9d2bffaa2079.png

I think we agree we don't want that kind of things in SL - expect maybe for some very special scenes.

Here are some other low poly trees from the same site:

429164657_Skjermbilde(1906).png.31e136ab988b261943b2b4009d220147.png

That's more like it, isn't it?

NOT!!!

I downloaded them and they turned out to have over 110,000 triangles! I suppose that migth count as low poly for static scenes but for SL or for a game it's way beyond high.

What we need in SL, are meshes like this:

1423963730_OPQOak01f700.png.3e2d5755b2a7332a2470dcbd38993e5a.png

I suppose should call it mid-poly. Slightly more than 300 triangles, hardly any lag, can easily be done at a one digit LI (2 in this particular case) with no LoD issues  and still be detailed enough for a good realistic scene.

I don't think you'll find any tutorials how to make that kind of meshes anywhere.

Edited by ChinRey
  • Thanks 1

Share this post


Link to post
Share on other sites

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

×