Jump to content

LOD and LL creator meeting


Sparkely Sugar
 Share

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

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

Recommended Posts

So today I went to a LL creator meeting, I had not been to one in years, and I must say it was really disappointing and frustrating. Firstly despite making multiple comments  I felt that what I was asking for was unheard and unacknowledged. It is great that LL is looking at LOD and how to improve the user experience, we all would like that. However to simply say that we need to clamp down LOD views and this will fix the problem is not a solution in itself.

LL needs to provide clear, concise , easily understandable tutorials on how to optimize LODs, explain LOD imposters, and how to make you mesh beautiful without breaking the system. This information needs to come from an official source, it needs to be kept current and easy to find. It is inefficient to expect people to search high and low for this from other places that are not SL related. The answer is not to say well creators just need to do better. It is hard to do better when the basic information is not available. We should NOT have to count on other creators for this, it is wonderful that many do help and offer guidance when they can but this is a huge stumbling block.

At some point LL needs to take responsibility  and not just say it is your world figure it out. Because people do and you may not always like the results. Help us do better so we can have a better more efficient world and still have beautiful things.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Sparkely Sugar said:

LL creator meeting ... frustrating

They certainly can be at times.

1 hour ago, Sparkely Sugar said:

LL needs to provide clear, concise , easily understandable tutorials on how to optimize LODs, explain LOD imposters, and how to make you mesh beautiful without breaking the system. This information needs to come from an official source, it needs to be kept current and easy to find. It is inefficient to expect people to search high and low for this from other places that are not SL related. The answer is not to say well creators just need to do better. It is hard to do better when the basic information is not available. We should NOT have to count on other creators for this, it is wonderful that many do help and offer guidance when they can but this is a huge stumbling block.

At some point LL needs to take responsibility  and not just say it is your world figure it out. Because people do and you may not always like the results. Help us do better so we can have a better more efficient world and still have beautiful things.

While I 100% agree that LL should really provide some general purpose guidelines for best practices when creating content for SL, there are so many different approaches to creating LOD models and the best approach often depends on the software you're using and the type of content you're creating, so it would be unreasonable to expect LL to try and provide detailed instructions for every 3D app and every method.

Sadly, even if LL were to provide comprehensive instructions and a clear detailed list of best practices there will be a portion of creators who ignore them because doing so means the content they create has a slightly lower land impact and is therefore a more popular and profitable product.

  • Like 1
Link to comment
Share on other sites

2 hours ago, Sparkely Sugar said:

So today I went to a LL creator meeting, I had not been to one in years.. I felt that what I was asking for was unheard and unacknowledged. ... LOD

Ah.  You're coming into a discussion that's been going on, on and off, for years. Everyone involved knows LODs are a problem. There are three main approaches - beat on the users, beat on the creators, and beat on the developers.

  • Beat on the users. Part of this is keeping users from turning up the LOD factor setting and draw distance in the viewer too high and then complaining SL is slow. Part is getting users to get a computer that has reasonable graphics power by modern standards. SL performance is reasonably good if you have a "gamer PC" comparable to the average Steam user, solid state disk, and a fast Internet connection. But this is the era of the $1000 phone and the $100 laptop. Most Steam users have an NVidia 1060 graphics card (a 2016 model) or better. Most SL users have much less. Steam and LL both collect statistics on this sort of thing. About 30% of SL users have a PC too basic or too old to run modern graphics software, one of the Lindens points out. WalMart will sell you a new laptop for $169. It will run Netflix fine, and SL will be very sluggish. There's no cheap, easy way around that. As a business matter, kicking off the low-end users is a bad move. This was discussed at the meeting today.
  • Beat on the creators. It's possible to make very good low levels of detail by hand. Chin Rey wrote many articles about this. It's not easy unless you spend a lot of time in Blender or Maya. Creators face a problem - users demand high detail in expensive products. People expect full 3D models of the eyelets in shoes. Turning those into flat images for the lower levels of detail is a lot of work and doesn't improve sales much, if at all. Various schemes have been proposed for tweaking the land impact formula to encourage better levels of detail, and to discourage gaming the land impact system. The last good try at this was for animesh, which have a different land impact formula than avatars. Works fine, but nobody is making good low-LI custom clothing for animesh. (If anyone is, message me; I buy such items for my NPCs, and there's so little available I had to have shoes and a hoodie custom made.) Changing the formula for existing objects causes a disaster if LI goes up and objects get autoreturned because the parcel is full. Having a new formula for new content is a possibility. It's been done once already - non-mesh objects with no materials are on the old system, and anything with mesh or materials is on the new system. But this drives creators nuts - they upload a new version and the LI goes up. Merely tweaking the LI formula has been much discussed, but few proposed changes don't create other problems.
  • Beat on the developers. Try to make the system more tolerant of complex content. Some of the easier fixes in this direction are being done now. The "performance viewer" has some of them. LL has staffed up a bit, and they have new graphics Lindens working. Ideally, the system would take overly complex content in, grind and crunch automatically, and turn out game-quality content. This once seemed technically out of reach, but now Epic and Roblox do that sort of thing. Those companies have much larger dev teams than LL does. Automatic mesh clothing layering and automatic level of detail generation now work well. But they're not free technologies yet. SL will probably have to wait until the technology filters down to open source code. (My previous look at mesh simplification algorithms found commercial ones that were good but expensive, academic ones that were OK but failed on imperfect meshes, and open source ones that were robust but crappy. SL is in the process of moving from one that's robust but crappy to one that's OK but does the wrong thing for certain types of meshes, mostly thin sheets like clothing.)

So, there's no quick fix. There is forward progress, though. For almost three years, not much happened inside SL's technology. But in 2022, we've seen some forward motion. I'm cautiously optimistic.

  • Like 2
Link to comment
Share on other sites

3 hours ago, Fluffy Sharkfin said:

Sadly, even if LL were to provide comprehensive instructions and a clear detailed list of best practices there will be a portion of creators who ignore them because doing so means the content they create has a slightly lower land impact and is therefore a more popular and profitable product.

I am going to play devil's advocate here as while I definitely feel it would be better for creators to  design for something besides those folks that want, do and will continue to run at LOD4 == there IS a market for those things.   It isn't MY market -- as a customer or a creator,  but there is a market. There have been oh so many (likely over a hundred ) long threads on LODs with little improvement.  

 

Honestly the bottom line is many folks don't care. This is BOTH the creators as well as the user populous.  The best the forum threads have managed to do is to get some (not all that many) popular creators to pay more attention to their LODs. That feels like a hard fought victory -- probably because it was.  

 

Even in SANSAR there were no "best practices at all", no guidelines and most often no info on just what those new shaders did so I doubt that things will change in SL.  What LL did in Sansar (because there WERE no LODS just lots of lag with heavy mesh) was to improve the engine so that things loaded much faster. Those of us (really a tiny handful) that had been making game asset mesh were then on the same playing field as those folks importing render mesh.  Not terribly fair to the folks actually doing the work but at least the viewing experience was better with no half hour downloads to see a street :D.  

 

Adding after phone call :D -- And while some products fall apart because of bad LODs some creators still manage to make the items with much more land impact than needed.  We are after all mostly a platform of "hobbiest creators". Some care more about doing things correctly than others :D

 

Edited by Chic Aeon
adding info
  • Like 2
Link to comment
Share on other sites

24 minutes ago, Chic Aeon said:

Honestly the bottom line is many folks don't care. This is BOTH the creators as well as the user populous.  The best the forum threads have managed to do is to get some (not all that many) popular creators to pay more attention to their LODs. That feels like a hard fought victory -- probably because it was.

It's understandable that the majority don't really care, after all if given the opportunity to have "more for less" (in this instance more content on a parcel of land for less tier fees) most people would choose the more immediate and obvious benefits of lower land impact rather than the intangible promise of better performance (especially when that increase in performance could only be attained if everyone else hopped on board the "optimized content only" hype train along with them) and, regardless of how many creators you convince to do things "the right way", if there's a demand then someone will be there to provide the supply.

32 minutes ago, Chic Aeon said:

We are after all mostly a platform of "hobbiest creators". Some care more about doing things correctly than others :D

I guess the benefits of giving your users free reign to create anything they like is that you end up with some really amazing content, the drawback being that you also end up with some absolute abominations as well.  I do appreciate the level of creative freedom that SL allows its residents, however there are times when it feels like LLs definition of creative freedom equates to "let them fumble around in the dark and work it out for themselves!".

  • Like 2
Link to comment
Share on other sites

As one of the hobbyist creators, I often feel like I'm just not quite sure how to get from here to there in terms of knowledge. I had absolutely no 3D design knowledge before I joined SL, but instantly knew I wanted to be part of creating things, even if it was just silly things for me. At the time, mesh was just sort of becoming an option.

It took me several years of frustration before I felt comfortable enough using Blender to start using it to create anything I wanted. Now, I try to follow a standard of a reasonable LOD for my basic model: 50% of that for the medium, and 25% of the original for low. Right now, creating those lower poly models is proving the biggest learning curve for me, as my meshes seem either too complex or too simple to rely on a "decimate" function, and I'm not quite sure how to put a lower poly that I created by hand so that it uses the same UV map and the viewer allows me to upload it.

I like what the OP suggested: general guidelines on creation, but rather than tailored to various software packages, just the theory. Surely, the problem I'm having now is between me and Blender (and now that I've returned to content creation, a whole new major release version of Blender to wrangle into submission.) But I bet basic tutorials on how to create "good" LOD meshes would be very useful, and I could figure out the Blender parts myself.

Also, I think time is a factor. As most of us have other obligations, and certainly don't generate enough income to live off by creating content for SL, there are only so many hours to devote to getting better. Fortunately, I have lots of time. I'm just not sure what I should be doing to get to that next level. Like, I recognize what the words "optimized content" mean. I just don't even know how to do it "the right way." Or even necessarily the questions to ask to learn.

For those of you who are pro content creators, if there were one basic book or resource on doing things right you think everyone wishing to create content should treat as "scripture", what would it be?

  • Like 2
Link to comment
Share on other sites

8 hours ago, Sparkely Sugar said:

LL needs to provide clear, concise , easily understandable tutorials on how to optimize LODs, explain LOD imposters, and how to make you mesh beautiful without breaking the system. This information needs to come from an official source, it needs to be kept current and easy to find.

One problem here is that LL doesn't seem to have anybody who are qualified to make such tutorials. The LOD handling in official LL builds certainly aren't examples to follow. It may work in strictly controlled environments where you have full control over all the assets but in the usual SL context, their approach to LOD is simply way too wasteful. Hyper Mole was an exception and she actually started writing some useful practical documentation but sadly she passed away far too soon. Silent Mole is also a quite skilled mesh maker but she's still mainly a master scripter and doesn't do much work in SL anymore anyway.

As for the developers, I'm sure they know all the theory but as valuable as that is, it's not the same as practical skills and experience. (Besides, with the risk of committing blatant stereotyping, since when did programmers write tutorials that mortal humans could understand? 😜)

  • Like 1
Link to comment
Share on other sites

2 hours ago, SeattleChris said:

As one of the hobbyist creators, I often feel like I'm just not quite sure how to get from here to there in terms of knowledge. I had absolutely no 3D design knowledge before I joined SL, but instantly knew I wanted to be part of creating things, even if it was just silly things for me. At the time, mesh was just sort of becoming an option.

Same here. I joined SL in 2013 as a photographer and was hardly even aware there was such a thing as 3D modelling. But then I met Aley.

 

2 hours ago, SeattleChris said:

It took me several years of frustration before I felt comfortable enough using Blender to start using it to create anything I wanted. Now, I try to follow a standard of a reasonable LOD for my basic model: 50% of that for the medium, and 25% of the original for low.

There is no textbook answer to how much simplification you should aim for. Different objects can handle different reduction rates. 50% from high to mid sounds like a lot though, I wouldn't normally expect to be able to take it that far. Not would there be much LI to save by doing so, unles it's a very big object with a fairly high triangle count.

25% from high to low is quite a high reduction rate too although not nearly as unusual as 50% high-to-mid.

If it's a small or medium sized object (like a piece of furniture or smaller) with a reasonably low triangle count to start with (less than - let's say a thousand tris) and you're optimizing for land impact rather than actual load, the lowest LOD model is the crucial one. If you can get that down to less than 20 tris you should be fine even with a farily complex mid and to some degree low model.

  • Like 2
Link to comment
Share on other sites

3 hours ago, ChinRey said:

If it's a small or medium sized object (like a piece of furniture or smaller) with a reasonably low triangle count to start with (less than - let's say a thousand tris) and you're optimizing for land impact rather than actual load, the lowest LOD model is the crucial one. If you can get that down to less than 20 tris you should be fine even with a farily complex mid and to some degree low model.

 I guess I'm not quite sure what it means to optimize for load vs optimizing for land impact. Maybe that is there these conversations lose me. But thanks for the advice! If feels like I'm at least on the right track.

Link to comment
Share on other sites

54 minutes ago, SeattleChris said:

 I guess I'm not quite sure what it means to optimize for load vs optimizing for land impact. Maybe that is there these conversations lose me. But thanks for the advice! If feels like I'm at least on the right track.

Optimizing for load means to reduce the actual render cost of the item, that is how much it lags down the scene. Optimizing for land impact means, well exactly what it says: get the LI as low as possible. You often have to sacrifice one to achieve the other.

Yes, I know land impact is supposed to show the object's lag but "supposed to" is the key phrase here.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

7 minutes ago, ChinRey said:

Optimizing for load means to reduce the actual render cost of the item, that is how much it lags down the scene. Optimizing for land impact means, well exactly what it says: get the LI as low as possible. You often have to sacrifice one to achieve the other.

Yes, I know land impact is supposed to show the object's lag but "supposed to" is the key phrase here.

OK. I guess I should have worded my response differently. I don't know how to go about optimizing for render cost as far as the mesh itself. Would this be a matter of textures and materials applied? I'm sorry. I have communication issues, so this could be something that is obvious from your reply and I'm just not understanding. I really, really appreciate your explanations, though.

Link to comment
Share on other sites

1 minute ago, SeattleChris said:

OK. I guess I should have worded my response differently. I don't know how to go about optimizing for render cost as far as the mesh itself. Would this be a matter of textures and materials applied?

If you want to keep the lag down, yes, textures and materials are more important than mesh complexity there.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

18 minutes ago, ChinRey said:

If you want to keep the lag down, yes, textures and materials are more important than mesh complexity there.

Thank you. Nothing like learning I knew a little bit more than I thought I did. Now that particular confusion (for me) is settled, it will probably make me more capable of understanding these conversations going forward, and  help me move my slider from "part of the problem" to "part of the solution".

  • Like 1
Link to comment
Share on other sites

3 hours ago, ChinRey said:

If you want to keep the lag down, yes, textures and materials are more important than mesh complexity there.

That may change soon. This came up at the creator meeting. Current viewer behavior is that, when you get reasonably close, a texture is loaded at full resolution. Even for small objects that are not occupying that many screen pixels.

One of the features I put in my experimental viewer is that textures are loaded at roughly one texture pixel (texel) per screen pixel. With that approach, if you put a 1024x1024 texture on a small object, that huge texture may never be loaded at full resolution. One of the Lindens mentioned that they're looking at putting a similar system into the LL viewer code. That may help.

The other half of doing this well is re-ordering the texture load queue as the viewpoint moves. If you're moving fast, the viewer is spending too much network time loading stuff you already passed. That was planned for the Project interesting viewer years ago, and there's some skeletal code in a dead project viewer, but that feature was never finished. I do that in my viewer.

Here's what those features look like in my experimental viewer. (This is all very experimental; it's a proof of concept system. No avatars, motion, or user interface yet. Just the networking and rendering part.)

https://video.hardlimit.com/w/sFPkECUxRUSxbKXRkCmjJK

Moving fast around Port Babbage here. New Babbage is full of high-detail objects, so I often test there. It looks like all textures are at full resolution at all times. That's an illusion. In the viewer, textures are being frantically loaded, unloaded, upscaled, and downscaled. Texture loads are being scheduled and cancelled as the viewpoint moves. Can you tell? Hint: when the camera enters the store with "Everyday clothes", some of the vendors are out of focus for the first two or three seconds. Then they snap into focus.

So, the texture detail problem can be fixed in the viewer, and LL is gradually fixing it.

  • Like 1
Link to comment
Share on other sites

18 hours ago, animats said:

One of the features I put in my experimental viewer is that textures are loaded at roughly one texture pixel (texel) per screen pixel. With that approach, if you put a 1024x1024 texture on a small object, that huge texture may never be loaded at full resolution. One of the Lindens mentioned that they're looking at putting a similar system into the LL viewer code. That may help.

That's already in the Materials Prototype viewer.

  • Thanks 1
Link to comment
Share on other sites

5 hours ago, arton Rotaru said:

That's already in the Materials Prototype viewer.

Right, it's in a project viewer.

There's also multi-thread texture decompression. (Is that Firestorm only?)

Next is getting texture loading ordering and scheduling to react to camera movement properly. Long ago, a Project Interesting viewer showed the beginnings of work on that. There was a file which imported an open-source priority queue model, but didn't use it.

This shows up in world as signs that stay blurry no matter how close you get. The key concept is that as you get closer to something, its demands for resources rise in priority above ones already queued. Currently, there's a priority queue in LL/FS viewers, but moving around doesn't re-order requests already queued.

When all of those are in, viewers based on the LL code should achieve the texture loading performance seen in my video above on machines with a reasonably capable GPU and a fast network connection.

Much of what slows SL down is not fundamental. It's things like this deep down in the machinery. Finally, after years of inaction, we're seeing some motion from LL.

Link to comment
Share on other sites

3 hours ago, animats said:

There's also multi-thread texture decompression. (Is that Firestorm only?)

Probably more than just Firestorm, but the LL viewer has still single threaded texture decompression.

3 hours ago, animats said:

Long ago, a Project Interesting viewer showed the beginnings of work on that. There was a file which imported an open-source priority queue model, but didn't use it.

Andrew Linden worked on an overhaul of the interest list right before he left Linden Lab to go working with Philip Rosedale on HiFi. So I guess there wasn't enough time to finish that with all the desired features. But Andrew is back as Leviathan Linden now.

Edited by arton Rotaru
Link to comment
Share on other sites

11 minutes ago, arton Rotaru said:

overhaul of the interest list

That got done server-side. There's a corresponding fix required viewer-side that didn't get done.

This is getting a bit technical for these forums. My main point here is that SL's performance problems tend to come from a limited number of technical problems. Many are hard to fix, but approaches to fix them are known and in use in other engines.

  • Like 2
Link to comment
Share on other sites

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

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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...