Jump to content
Penny Patton

How Much Does Unoptimized Content Actually Affect Us?

Recommended Posts

8 hours ago, Penny Patton said:

Ok yeah, I think I understand now. I'm not sure how it prevents them from changing the setting. Is it not something they can change from preferences on the log-in screen, before actually logging in?

No. It's a game-over catch 22.

The SL viewer is entirely opnegl,  the wrong prefs can make starting opengl impossible, which can only be changed from .. 

Share this post


Link to post
Share on other sites
4 hours ago, CoffeeDujour said:

That imaginary old hardware you had in mind when writing that paragraph is waaay too new. If SL could magically be 50% faster it wouldn't be enough to matter.

You are really determined to justify this "optimization won't make a difference" myth. Whatever, it works whether you believe it or not.It matters, whether you believe it or not. Any other professional with game design experience will tell you the exact same thing.

Share this post


Link to post
Share on other sites

I'm not arguing against optimization .. just that in this case were arguing over the better way to close the door so long after the horse has bolted it's probably died of old age by now. Not only is it pointless to close the door, digging up the horse's corpse and shouting at isn't helpful either.

Mesh is what it is, if there ever was a time to apply limitations to it, that time is long passed. A hard optimization line would trash almost all the content from the last few years, or create a situation where we just recycle it forever. The strongest reaction to any change from LL is, and always has been, NO.

Your content cut off idea would create a situation where we have 2 tiers of content. This old low arc/li mesh thing with a bazillion tris, vs this new rules one with a fraction. "Looks better" wins every single time and the unlimited one will always "look better", that's why we're in this mess.

The class of machines LL have been trying to keep compatibility with typically pull single digit fps the moment you put a second avatar on screen. 50% more is not the huge boost it sounds like when you're only starting out with 7.

The problem is systemic and requires a systemic solution. So what's easier? Force all the amateur content makers in SL to optimize content to some new set of rules and hope they can magic up the skills, or rebuild the render pipeline and see if we can't get a little more GPU to the dance, as right now, my CPU is pegged and chrome is using more of my 2060 than SL.

  • Like 1

Share this post


Link to post
Share on other sites
18 hours ago, CoffeeDujour said:

Mesh is what it is, if there ever was a time to apply limitations to it, that time is long passed. A hard optimization line would trash almost all the content from the last few years, or create a situation where we just recycle it forever.

Like I explained in the other thread, this is simply not true. Hitch the "new rules" to all new features going forward, and maybe sweeten the pot with some perks, and you create a situation where existing content is preserved, but people are increasingly encouraged to adopt the "new rules" at their own pace. It has worked before and it can work again.

People will not stubbornly refuse to adopt new features forever, especially as the number of new benefits they're missing out on continues to grow.

18 hours ago, CoffeeDujour said:

"Looks better" wins every single time and the unlimited one will always "look better", that's why we're in this mess.

Wrong again and this is where your lack of knowledge in content creation always trips you up. Almost no content in SL uses it's excessive amounts of resources in ways that make it look "better". Most of the resources are being eaten up in ways that are invisible to the casual observer. Store logos on hidden root objects. Baked textures that only use a tiny portion of the actual texture, leaving the rest blank. Excessively, redundantly high-polygon counts that add nothing to the detail of the model that any one in SL would be able to see. A fully detailed mesh model of a brain, complete with full materials, hidden inside a mesh head where it will never, ever be seen.

You know this because I've told you this. I've explained, with pictures even, how wasteful people tend to be with texture maps, complete with an explanation on how they could fix it so their content uses a tiny fraction of the texture maps, but without losing a single pixel of detail. But it never sinks in for some reason. You stubbornly hold on to this rubbish myth that "optimized content just won't look as good".

18 hours ago, CoffeeDujour said:

The class of machines LL have been trying to keep compatibility with typically pull single digit fps the moment you put a second avatar on screen. 50% more is not the huge boost it sounds like when you're only starting out with 7.

When you're starting out with 7 FPS, 15fps seems like a miracle. And the reason they're pulling single digit fps the moment you put a second avatar on screen is because the average SL avatar is using around 300MB worth of texture memory. Some even push it past a GB. I've been able to help drastically improve their SL performance by having them removing a single attachment.

18 hours ago, CoffeeDujour said:

The problem is systemic and requires a systemic solution. So what's easier? Force all the amateur content makers in SL to optimize content to some new set of rules and hope they can magic up the skills, or rebuild the render pipeline and see if we can't get a little more GPU to the dance, as right now, my CPU is pegged and chrome is using more of my 2060 than SL.

It is not an either/or Sophie's choice scenario. LL is fully capable of approaching the problem from both ends. And here again your lack of knowledge about content creation is causing you to fly blind with your arguments. "Magic up new skills"? No, try "use the skills they already have and just be a little smarter about it."

 And there's another problem you're overlooking. GPUs aren't magic fairy dust sparkle machines. LL can improve the rendering pipeline to the absolute best of their abilities and your computer will still be choking on those 50MB shoes and 200MB hair while you wander through a sim using 10GB worth of textures that are constantly choking your bandwidth with an endless download stream. Will you see an improvement? Sure, but probably not quite the sort of improvement you seem to expect.

Share this post


Link to post
Share on other sites
32 minutes ago, Penny Patton said:

You know this because I've told you this.

This is an awesome rhetorical tool. 

  • Haha 3

Share this post


Link to post
Share on other sites

Here's some free optimization tips.

1. Spec maps can almost always be 1/4 the size of the textures on the same face. If your texture is 1024x1024, make the spec map 512x512.

2. Using a black and white AO map as a texture, you can usually cut that down to 1/4th the size without seeing any difference.

3.Have a face where the normal map is almost entirely flat? Use the default blank normal map instead of your 1024x1024 flat normal map.

4. Have a face that is almost completely flat but there's one tiny spot that actually uses the normal map for added detail? Section that part off as a separate face.

5. Alternate to the two options above. Have multiple faces, only some actually using their normal maps for extra detail? Section off a part of that normal to be your "blank" normal, it can be as small as 2x2, then on your faces that are flat, us only the flat part of the normal map.

6. Novel idea, don't put a normal map on a face that isn't using it.

7. Don't have repeating parts on your textures. Have a chain link necklace? Instead of using a 1024x1024 with 50 repeats of an almost identical set of pixels, use a 64x64 texture with the texture of a single chain link and repeat it across all of the links in the chain. You can do this for things like roof tiles or anything else with a repeating pattern. Need some variety? Have 2-6 versions on one texture.

8. Baked a scene with multiple copies of the same mesh model, let's say a room with the same lamp on each wall. Rather than giving each lamp a separate, but nearly identical texture, use the same single texture for all of them.

9. Use normal maps instead of adding geometry to your model. That is what they are for.

10. Don't add hidden pieces to your objects. Mesh hair doesn't need a root prim with a store logo on it. A mesh cabinet with a door that cannot be opened doesn't need a fully modeled interior.

11. Clothing does not need to be completely 2 sided. For say a sleeve model in just enough to give the illusion that the shirt continues up the inside of the sleeve then cap it off. Make the texture darker inside the sleeve, fading to black where it caps off, to complete the illusion.

 

These are all things, just off the top of my head, that people can do to optimize their work and yet in SL they almost never do. None of them requires new skills. None of them adds that much more work. And most of all, none of these tips result in content that looks any worse.

  • Like 2

Share this post


Link to post
Share on other sites
8 minutes ago, Love Zhaoying said:

This is an awesome rhetorical tool. 

It's true, though. I've told her these same things in multiple threads before now. As recently as YESTERDAY.

Share this post


Link to post
Share on other sites
2 minutes ago, Penny Patton said:
11 minutes ago, Love Zhaoying said:

This is an awesome rhetorical tool. 

 It's true, though. I've told her these same things in multiple threads before now. As recently as YESTERDAY.

It seems you miss or ignore the possibility that even if you’re right, the other person can always have their own opinion or disagree. It doesn’t make you wrong or require you to keep making arguments. But your style is..a fun read.

Share this post


Link to post
Share on other sites
20 minutes ago, Penny Patton said:

LL is fully capable of approaching the problem from both ends.

I don't know what they are capable of but I know what they are doing: Nothing. This is from Wagner James Au's summary of the interview he made with Ebbe Altberg:

Quote

The challenge of improving Second Life performance when user-generated content is often so poorly optimized, it almost becomes (as one Linden vet put it) like a DDOS attack. Ebbe says it's ultimately up to users, not the company, whether they use resource-heavy content. ("Users are going to do what users are going to do.")

(https://nwn.blogs.com/nwn/2019/04/ebbe-altberg-linden-lab-sansar-second-life-social-vr.html)

That's it. Look at the texture abuse and dodgy LoD handling at Belliseria. Look at the garbage quality mesh they filled up Meauxle Bureaux with (described in the destination guide as "lovingly crafted by resident experts"). Look at the total lack of adequate information and load monitoring tools.

At least Ebbe was honest about it in that interview but really, with no costructive participation from LL whatsoever, developing SL into an environment open to more people and with room for more complex builds is a lost cause.

Share this post


Link to post
Share on other sites

Good advice from Penny. A few comments:

16 minutes ago, Penny Patton said:

1. Spec maps can almost always be 1/4 the size of the textures on the same face. If your texture is 1024x1024, make the spec map 512x512.

Even that may be more than necessary. Bonus tip:

1b. The texture can often be reused as a specular map.

 

20 minutes ago, Penny Patton said:

3.Have a face where the normal map is almost entirely flat? Use the default blank normal map instead of your 1024x1024 flat normal map.

Or don't use a normal map at all as Penny mentions in #6. ;)

 

24 minutes ago, Penny Patton said:

9. Use normal maps instead of adding geometry to your model. That is what they are for.

Or bake it into the texture. There's one thing people seem to get wrong about normal maps: they're not some sort of magic feature that add something brand new to the render. All they do is darken some parts of the texture adding a bit of extra shading. It's dynamic shading that changes with the windlight and in theory nomral maps allow you to add different shading patterns to different instances of the same texture but how often are normal maps used that way? With fixed windlight and hardlocked normal map/texture combos the normal maps hardly make any sense at all.

Share this post


Link to post
Share on other sites
1 hour ago, Penny Patton said:

When you're starting out with 7 FPS, 15fps seems like a miracle.

I've spent a fair amount of time using SL on machines with performance that would be better measured in seconds per frame (need to stay in touch, can't take my desktop with me when I travel). 5-7fps is about the point where it stops being a chat application with accompanying slideshow and starts to become usable. 10fps is a dream.

As an aside for anyone in the same situation, Firestorm's text-only mode is amazing, and runs nicely on my Celeron-based Chromebook (Celeron N2840 - probably still too powerful for Penny).

  • Like 1

Share this post


Link to post
Share on other sites

 

10 minutes ago, ChinRey said:

Or don't use a normal map at all as Penny mentions in #6. ;)

 

Or bake it into the texture. There's one thing people seem to get wrong about normal maps: they're not some sort of magic feature that add something brand new to the render. All they do is darken some parts of the texture adding a bit of extra shading. It's dynamic shading that changes with the windlight and in theory nomral maps allow you to add different shading patterns to different instances of the same texture but how often are normal maps used that way? With fixed windlight and hardlocked normal map/texture combos the normal maps hardly make any sense at all.

This I disagree with. Even if the normal map is nothing to write home about, it still allows the use of specularity on non-metalic surfaces.

Where you then wind up having trouble is that your specular and normal maps are tied to the same resolution.

  • Like 2

Share this post


Link to post
Share on other sites
Posted (edited)
3 minutes ago, Ana Stubbs said:

 

This I disagree with. Even if the normal map is nothing to write home about, it still allows the use of specularity on non-metalic surfaces.

Where you then wind up having trouble is that your specular and normal maps are tied to the same resolution.

Good point. I was only thinking of normal maps on their own but of course, it's different once you take into account the interaction between them and specular maps. I feel extra stupid beacuse that's how I use normal maps myself. ;)

Edited by ChinRey
  • Haha 1

Share this post


Link to post
Share on other sites
23 minutes ago, Love Zhaoying said:

It seems you miss or ignore the possibility that even if you’re right, the other person can always have their own opinion or disagree. It doesn’t make you wrong or require you to keep making arguments. But your style is..a fun read.

It is my small hope that by sharing accurate information, and pointing out when someone is spreading misinformation, I can help at least some people improve their own SL experience and drive up awareness. Possibly even enough awareness to nudge LL out of their hands-off approach to the problem as people realize just how much they're being affected. People tend to be shocked at just how much of an improvement they experience when they arrive in an optimized sim. The more such sims that are out there, the more people will see the difference firsthand.

There is too much misinformation regarding this topic in Second Life.

24 minutes ago, ChinRey said:

Or don't use a normal map at all as Penny mentions in #6.

I've frequently seen this scenario: Someone has a flat normal map for multiple parts of an object. Each part using a different flat normal map. And each of these unnecessary normal maps has an alpha channel masking out around the UV portions of the texture driving the memory cost up even more.

Share this post


Link to post
Share on other sites
13 minutes ago, Penny Patton said:

I've frequently seen this scenario: Someone has a flat normal map for multiple parts of an object. Each part using a different flat normal map. And each of these unnecessary normal maps has an alpha channel masking out around the UV portions of the texture driving the memory cost up even more.

I think that's usually a variant of what Klytyna calls the automatic Blender bake-fail: open Blender, disengage brain, click some buttons, upload whatever comes out of it.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

And it's not surprising, look at how many people on this forum will argue that the textures don't impact performance at all.

Share this post


Link to post
Share on other sites
Posted (edited)
5 hours ago, Penny Patton said:

Wrong again and this is where your lack of knowledge in content creation always trips you up.

Which would be the reason content ripped from games where tight optimization strategies are employed look so terrible next to SL content.

3 hours ago, Penny Patton said:

And it's not surprising, look at how many people on this forum will argue that the textures don't impact performance at all.

You could make that case .. if VRAM was just a bucket used to store textures, but it's not and everything else it contains and does has absolute priority. SL rendering is like drowning in a teacup and blaming the water, not the 400lb gorilla sitting on you.

Texture allocation is far from perfect, you will notice that textures never step down one detail level once loaded in fully, rather they are cast out entirely and decoded from scratch. When we get the new caching, stepping up and down should be feasible from a performance perspective, the thrashing will vanish and this crusade will need to find a new focus because performance and GPU utilization will still be shockingly bad.

Edited by CoffeeDujour

Share this post


Link to post
Share on other sites
5 hours ago, CoffeeDujour said:

Which would be the reason content ripped from games where tight optimization strategies are employed look so terrible next to SL content.

No, that reason would be that the ripped content was optimized for that particular game engine, not for SL. As such it is far from optimal when rendered as a SL asset.

The general principles Penny is talking about are just that - general - and common to "optimization" no matter what you are optimizing for, but the finer details of exactly how to put those principles into practice are specific to a particular engine and render pipeline. A game engine that uses both normal and displacement mapping, for example, would need different optimization than SL which has the former but not the latter - and a model optimized assuming a displacement map was present would look like trash in SL.

  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, Da5id Weatherwax said:

No, that reason would be that the ripped content was optimized for that particular game engine, not for SL. As such it is far from optimal when rendered as a SL asset.

Not really, once you get the base model and texturing, the only key difference is that it has been designed to occupy a set amount of the screen real estate, and up to that point they look excellent. Past that point the rapidly degrade as there just ins't the required over detail.

Use of displacement mapping really depends on the specific title's art style and even then, to suggest it's an optimization is really misunderstanding how they work, more often than not a few extra tris and a normal map will be used as they are significantly faster to render real time. Might not look as good, but everything gets sacrificed to keep the frame rate gods even and consistent, displacement mapping is expensive.

(Good article here https://cgcookie.com/articles/normal-vs-displacement-mapping-why-games-use-normals)

A mesh and a texture are just that, there is no magic secret sauce when targeting specific game engines. Obviously some account for the lighting model has to be taken into account, but that's really not that much of a stretch from what we do for SL right now. Where we fall down is not targeting a specific amount of screen space. Everything has to look awesome with your camera shoved up it's nose.

Texture over detailing is one area, but as I keep pointing out, that can be solved entirely in software. The only challenge is making it fast.

Model over detailing on the other hand .. we're stuck with the mesh as uploaded on the day. There are things that could be done, but not with the current implementation of mesh items. There would need to be a detail decomposition layer to preserve key shape and edge details, and it's impact on the existing architecture would probably make it impractical.

 

 

Share this post


Link to post
Share on other sites
On 7/4/2019 at 12:02 AM, CoffeeDujour said:

Not really, once you get the base model and texturing, the only key difference is that it has been designed to occupy a set amount of the screen real estate, and up to that point they look excellent. Past that point the rapidly degrade as there just ins't the required over detail.

Let me try and reword what Da5id tried to explain to you.

Let's say I rip a truck model from Supreme Taco Truck Racing XII. As everyone knows, STTRXII uses the latest in graphics so the models don't use the same normal and specular maps that Second Life uses. Because I'm a lazy Second Life content ripper, I either upload the maps that the model does use, which look terrible in SL because they're not the same sort of maps SL is looking for, or I just skip the materials altogether and upload the model without it. Because I'm a lazy SL content ripper who doesn't know what they're doing I've probably also messed up the alpha channels, too. So now this truck, which looks amazing in Supreme Taco Truck Racing XII looks kinda rubbish in Second Life.

 If I were a smarter, less lazy content ripper what I might do is convert the material maps from the STTRXII formats into the formats that SL looks for in normal and specular maps, and I'd be sure not to screw up the alpha channels in the original textures, this would lead to a truly Supreme Taco Truck in Second Life, comparable to a lot of other content made specifically for SL.

You do have a point about screen real estate when it comes to smaller details, but you're forgetting (or ignoring) something. SL users will often upload horrendously large textures for tiny details. Like buttons on a jacket. However, unless you zoom in far closer than any SL user, even a photographer, is ever likely to zoom in, you will never notice if that 1024x1024 jacket button was replaced with a resized 64x64 version of the same texture, so it really does not result in a worse looking jacket to do exactly that.

And you keep forgetting (or ignoring) that one of the most common content creation faux-pas in SL is that people auto generate UV maps that only use a portion of the full texture, meaning all that extra pixel density isn't even being used by the model, it's just sitting there, hogging up memory, while adding nothing to the model.

Another thing you keep forgetting (or ignoring) is that I'm not suggesting LL needs to impose rules that are nearly as strict as what game devs hold themselves to. As I've always said, LL only needs to curb the worst habits to see major performance gains.

Share this post


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

Let's say I rip a truck model from Supreme Taco Truck Racing XII. As everyone knows, STTRXII uses the latest in graphics so the models don't use the same normal and specular maps that Second Life uses.

Today the texturing will probably be PBR based which we don't have in SL at all.

There is another, probably more important, factor though: much of the strategy used by good game designers to improve visual quality and performance is context based. Everything is selected and/or designed to fit together as a whole. You have a uniform artistic style, you use instancing whenever possible and there's a clear disticntion between a few alaborate focus poitns and a larger amount of sketchier middle ground background visuals. IT's all one big build and you can't take one part out of it and expect it t perform well on its own.

Share this post


Link to post
Share on other sites
1 hour ago, Penny Patton said:

And you keep forgetting (or ignoring) that one of the most common content creation faux-pas in SL is that people auto generate UV maps that only use a portion of the full texture, meaning all that extra pixel density isn't even being used by the model, it's just sitting there, hogging up memory, while adding nothing to the model.

Pixel packing is not taught and considered bad practice, in the same way that unrolling loops and inline functions in LSL isn't taught. Creating UV maps with minimal face distortion that are meaningful for a human to work on is the industry standard.

From a processing processing perspective bigger textures are better. There are currently threaded decode options available but right now SL textures are too tiny and we only managed to make the CPU run hotter for a slower total decode time, despite the math looking good.

One big texture with multiple parts is significantly better than a dozen tiny 'optimally sized' textures. The drum to beat isn't smaller textures, it's fewer textures.

 

Share this post


Link to post
Share on other sites

Here is the thing, we are responsible for our own avatars, and what we buy to decorate our houses, and decorate our avatars. If you want optimization, you need to do some research and figure out what is the best looking, but best optimized for you. You really can't blame the creators of the objects, as it's us the consumers that buy into this, and ultimately put it on our avatars or land. That all being said, if you want better optimization, and love what you have already. Talk to the your favourite brand creators, and see what they can do to make things better optimized.

  • Like 2

Share this post


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

The drum to beat isn't smaller textures, it's fewer textures.

That is true in theory but the question si how it can be done in SL. A Second Life scene or avatar will nearly always be assembled from different unrelated items by different creators and that inevitably means a separate set of textures for each item.

 

Share this post


Link to post
Share on other sites
1 minute ago, halebore Aeon said:

Here is the thing, we are responsible for our own avatars, and what we buy to decorate our houses, and decorate our avatars. If you want optimization, you need to do some research and figure out what is the best looking, but best optimized for you. You really can't blame the creators of the objects, as it's us the consumers that buy into this, and ultimately put it on our avatars or land. That all being said, if you want better optimization, and love what you have already. Talk to the your favourite brand creators, and see what they can do to make things better optimized.

Yes but that still leaves the question how much is it reasonable to expect the average user or content creator to understand about how a cirtual reality works under the hood?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...