Jump to content
Kyrah Abattoir

How can Linden Lab encourage better content?

Recommended Posts

Thiking about it, i would like to see something implemented that penalizes the zeroing out of LoDs, like:

if (Lowest LoD == 0) 
{
(LI |Rendering cost) *2
}
if (Low LoD == 0) 
{
(LI |Rendering cost) *4
}
if (Medium LoD == 0) 
{
(LI |Rendering cost) *8
}

 

Share this post


Link to post
Share on other sites
15 minutes ago, OptimoMaximo said:

 

And this is why i agree with CoffeeDujour about some way to penalize the shortcut takers in a way or another, as also proposed and mentioned by Elizabeth Jarvinen at the content creators meetings. I can't see how "artists" can make the comunity happy with content that breaks performance and clearly only caring of the $$$ you mention. Yes, this would also slowdown their production, because if fast production rate = crappy performance content, the platform suffers from consequences.

A large portion of SL right now is based around Character photography and people isolated in their own parcels (Able to have a ton of bad performance things without terrible frames), SO high detail models sell well compared to performance optimized ones. Jump in any fashion or shopping group and eventually you'll hear someone complain about lack of detail or exclaim about how much detail is in a model. I think it's going to be hard for LL to transition away from this, and even with a $$ penalty It may just be worth paying to upload regardless. Its very rarely I hear about people complaining about lag outside of completely packed sims, and usually that lag is server side rubberbanding rather than frame drops. Though I get theres probably comments about how much the server has to send and receive of these crazy detailed models. 


Alternatively you do tend to find a lot more performance optimization in RP areas, but that demand is catered to separately because they want large environments with little lag. As well as being a much smaller part of overall sales in SL and not likely to be what you see in most sims.

I didn't quote your LOD comment, but that would be a better solution than monetary penalties. Though it still wouldn't work for constraining clothing designers

Share this post


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

Thiking about it, i would like to see something implemented that penalizes the zeroing out of LoDs, like:


if (Lowest LoD == 0) 
{
(LI |Rendering cost) *2
}
if (Low LoD == 0) 
{
(LI |Rendering cost) *4
}
if (Medium LoD == 0) 
{
(LI |Rendering cost) *8
}

 

 Remind me again why anyone cares if the lowest LOD is zero, esp for indoor furnishings. Also, and I could be wrong, but I think I have heard others say that the cost of the lowest LOD being anything but zero has for many things been too high. In any case that is my opinion.

Edited by Pamela Galli

Share this post


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

@CoffeeDujour and @Kyrah Abattoir Your points about texture reuse being dead is one of the main factors that make me advocating for a materials layering system. I read Kyrah works in Unity in her spare time, so i'm quite sure she can see its use. I don't know about CoffeeDujour ...

I'm more of a GODOT girl 

4 hours ago, OptimoMaximo said:

Thiking about it, i would like to see something implemented that penalizes the zeroing out of LoDs, like:

Oh no, being able to nuke lower LODs to nothing is really good .. for indoor items. SL's rendering isn't great at working out what can't be seen, so having objects dissolve to a single tris per face is the best possible outcome for small indoor objects, if you're not in the same room as them, they are as light as it's possible to make them.

It's annoying to have outdoor stuff just pop into existence and vanish just as fast but it's certainly not bad for performance. Sometimes it just takes a little more creative placement.

It's more annoying when furniture items have been uploaded with the mesh decomposition tool set too aggressively for intermediate LODs and items go from fully formed to poly-spaghetti (please cheeky pea .. stop doing this, I love your stuff, but it's universally terrible and not fit for purpose).

Personally, if something is being sold as no-trans, then there is no reason creators couldn't include multiple versions with differing LODs and letting the end user pick the one that best suits it's use. Although .. hand building the intermediate meshes is the ideal solution.

Share this post


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

 Remind me again why anyone cares if the lowest LOD is zero, esp for indoor furnishings.

Your wish is my command. :)

Two nice bronze bowls. the one to the left has zeroed out lowest LoD model and 0.1 download weight. The one to the right is made with solid mesh and has 0.2 download weight. Both have land impact of 1 of course.

5b2c7932311e7_Skjermbilde(1258).thumb.png.6b3c7301f22d13af459182fddd491a43.png

6.5 meters distance - not even halfway across a regular SL house room:

5b2c796a0d41c_Skjermbilde(1259).png.ab3da97977ae12f8b02543938f3933ab.png

It's all about size of course. A larger piece of furniture will have the switch points further away so the lowest Lod model becomes less critical. My point is not that zeroing out LoD models is always bad, but rather that there is no absolute, universal rule for it.

 

4 hours ago, Pamela Galli said:

 Also, and I could be wrong, but I think I have heard others say that the cost of the lowest LOD being anything but zero has for many things been too high.

Yes, many people say that. They don't know what they're talking about. If you're careful with the layout, you can have a dozen triangles in the lowest LoD model with little or no effect on the download weight.

Edited by ChinRey
  • Like 1

Share this post


Link to post
Share on other sites

I think you are making my point about penalties— some things like that pretty bowl need that lowest LOD, some larger things may not — why would there need to be a 2 LI penalty for a bookcase with zeroed out lowest LOD, if it never switches? 

Share this post


Link to post
Share on other sites
9 hours ago, Pamela Galli said:

why would there need to be a 2 LI penalty for a bookcase with zeroed out lowest LOD, if it never switches? 

But how is the software supposed to know if an item is for indoors or outdoors use? Tricky. ;)

This leads to a few very important points. I'm going to be a bit long-winded here...

The download weight, which is the part of the land impact formula that is affected by the LoD models, is a very simple estimate of how much data is needed to be transferred. It is based on how big the files for each LoD model is and how large an area the model is supposed to be visible across with the viewer's LoD factor set to 1 and draw distance 128 m. (Edit: on second thought, the draw distance included in the formula may actually be a bit higher than 128 m but not much and the principle is the same anyway.)

For example, if an object is 1x1x1m in size, the high full model is assumed to be visible up to 3.6 m away that is 40.7 m2. The medium LoD model is used between 3.6 and 14.4 m (613.9 m2), low between 14.4 and 28.9 m (1,964.75 m2) and the lowest from 28.9 to 128 m (48,852.5 m2). It's easy to see that the lowest LoD model will have a huge impact on the download weight here.

If we look at an object that is 10x10x10 m, we get 4,071.5 m2 for the high model, 47,400.35 m2 for the medium and ... 0 m2 for both the low and lowest. Why? because those two models are only applied at distances well outside the default draw distance, so the formula assumes they will never actually be used. That means there is nothing to gain from zeroing out those two models for a mesh that size - you might as well use the medium model all the way down for those rare occasions when somebody with 1,000 m draw distance and LoD factor 1 comes along.

This is one reason why zeroing out models often can be pointless.

----

Another reason is the "overhead data" of the files. All data files contains some headers and such - data that is the same regardless of how much actual info the file contains.

Each LoD model is transferred as a completely set of files (yes, set of files - one for each face) with their own headers and such. The less actual info the file has, the more significant the overhead becomes. The difference in data volume between a mesh file with one triangle and one with two triangles is so minute it doesn't register in the calculation.

Also, the model is not transferred as raw data, it's a compressed files. That means the more symmetric a model is, the smaller the transferred file is likely to be. The lower LoD models can often be made very symmetrical with no visual degradation since small irregularities won't be visible at those sizes/distances anyway. How many triangles you can have in a LoD model before it has an impact on the dowload weight depends on how "compressable" it is so there is no absolute answer there. But I have made and sell a mesh with 16 triangles throughout all models and download weight at 0.06 - the absolute minimum possible in SL. It think I managed 24 too in a test, maybe even 36, but I can't remember.

---

Compressability is significant for zero models for another reason too. Even if you can't make anything sensible at all from the avialble triangles and have to resort to zeroing out a model, leaving the job t the uploader isn't an ideal solution for two reasons.

The first is of course that you'd rather zero it out properly - make the LoD model as invisible as possible - rather than have that eyesore of disjointed triangles the uplaoder likes so much.

The other reason is that GLOD doesn't really do zero models very well either. It often leaves a lot of superfluous triangles and the solutions it comes up with aren't always very compressable. Making a simple zero model with one small triangle for each face (and as many shared vertices as possible) is only a minute's work and it's nearly always at least as good as whatever the uploader can come up with both visually and in terms of file size. Sometimes it's far better.

Edited by ChinRey
  • Like 1

Share this post


Link to post
Share on other sites

It was late night for me, so i guess i'd need to expand on the reasoning behind it.

4 hours ago, CoffeeDujour said:

Oh no, being able to nuke lower LODs to nothing is really good .. for indoor items

I'm advocating for the new calculations to have more reasonable cost when uploading a mesh that is not a few triangles/impostor, in such case i would like that penalty for the generated LoDs, as i'm also advocating to have a reward for making LoDs. However ChinRey explains it very extensively above.

3 hours ago, Pamela Galli said:

I think you are making my point about penalties— some things like that pretty bowl need that lowest LOD, some larger things may not — why would there need to be a 2 LI penalty for a bookcase with zeroed out lowest LOD, if it never switches? 

Because you can never know where the item will be placed, and this ensures that at least a cube (12 tris) would be set in place with a projected texture. Again, the penalty i'm advocating hits the shortcut-takers, along with new LoDs costs calculations that should account for a less harsh cost on the lower LoD, as it seems LL is doing starting from Animesh project to extend over other items types. However, it might not be clear from there, the idea is to penalize by doubling the calculated LI/RenderingCost if the lowest LoD is set to zero, quadruplicate it if ALSO the Low is set to zero and octuplicate it if ALSO the Medium LoD is set to zero. Read further below in order to include the Content Type selector ("this model represents..." rollout menu) in such idea.

4 hours ago, CoffeeDujour said:

Personally, if something is being sold as no-trans, then there is no reason creators couldn't include multiple versions with differing LODs and letting the end user pick the one that best suits it's use. Although .. hand building the intermediate meshes is the ideal solution.

Regardless of the permissions setting, it's less cost effective for the creator (although more convenient for LL), it creates a mess in the customers' inventory and tons of alternate assets for the same model on the servers. Indeed you answer yourself at the end of your quote, the ideal solution.

4 hours ago, CoffeeDujour said:

It's annoying to have outdoor stuff just pop into existence and vanish just as fast but it's certainly not bad for performance. Sometimes it just takes a little more creative placement.

It's more annoying when furniture items have been uploaded with the mesh decomposition tool set too aggressively for intermediate LODs and items go from fully formed to poly-spaghetti

Here comes the actual implementation of that Content Type selector, where one could bind a subset of rules, making it convenient to use in order to spare on assets costs AND prevent some system gaming. As it is right now, it's something that only ends up into the compressed mesh file header, with no actual use for it or consequences, if the incorrect one is used or just left as default blank. It may also disable skinning import if the content type is set to a more convenient type to game the system.

So i think 4 basic types (to begin with) could be Indoor Static, Outdoor Static, Animesh and Rigged Attachment, each one with its subset of rules that get written to file -as they currently are- and used for calculation of resized objects (another prevention measure to avoid gaming the system by setting the most convenient content type to use it for other purposes, as proposed in the Animesh project to avoid the misuse of Animesh to lower costs and get a looser LoD polygon pool). Content Type can be a multiplier based on the object size. This would need an exception calculation for existing content so not to break all the assets that have never imported using this selector.

As per the costs i mentioned...

9 hours ago, MIstahMoose said:

I didn't quote your LOD comment, but that would be a better solution than monetary penalties. Though it still wouldn't work for constraining clothing designers

Indeed i NEVER spoke about monetary costs you seem so attached to for your artist standpoint of earning an income, if you read the example code it's about LI or RenderingCost AKA Avatar Complexity. Making the rendering cost 8 times higher would constrain clothing makers from the easy solution that exploits the avatar LoD switch, a calculation bug for which there is an ongoing project btw, booming the rendering cost so high that their customers would have their viewer crashing within a few minutes, resulting in complaints to the creator. Since it's all about customer demand, they will comply or find themselves orphaned of their customers. 

3 hours ago, ChinRey said:

The other reason is that GLOD doesn't really do zero models very well either. It often leaves a lot of superfluous triangles and the solutions it comes up with aren't always very compressable. Making a simple zero model with one small triangle for each face (and as many shared vertices as possible) is only a minute's work and it's nearly always at least as good as whatever the uploader can come up with both visually and in terms of file size.

Therefore such enforcement method based on the penalties as i expanded on would result in having people to upload a single triangle, so at that point why not making a full LoD model?

Share this post


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

 

Indeed i NEVER spoke about monetary costs you seem so attached to for your artist standpoint of earning an income, if you read the example code it's about LI or RenderingCost AKA Avatar Complexity. Making the rendering cost 8 times higher would constrain clothing makers from the easy solution that exploits the avatar LoD switch, a calculation bug for which there is an ongoing project btw, booming the rendering cost so high that their customers would have their viewer crashing within a few minutes, resulting in complaints to the creator. Since it's all about customer demand, they will comply or find themselves orphaned of their customers. 

I never claimed you did, I was just stating that as an example of a penalty that wouldn't work, not as one you claimed.  "you seem so attached to for your artist standpoint of earning an income"  I mean I am just giving you other ways of looking at this and seeing the community who is developing content in SL but yeah I can get bitter too "You seem so attached to your optimization standpoint and neglect what secondlife is actually about"


I think this topic is too complicated to be looked at in just one view. Theres a lot of money on the line for any action LL Takes and I just don't believe they can heavy hand any sort of optimization based change.

And to your rendering cost ... I don't believe LL would do anything to intentionally crash viewers.


IE You say we're orphaned by our customers but if LL Does something where someones inventory becomes almost completely unusable, I think they are more likely to leave SL than continue to purchase new content where that content is no longer guaranteed not to crash their viewer.

  • Haha 1

Share this post


Link to post
Share on other sites

Upload costs are never going to be a deterrent.

All that matters for rezzed objects is the LI.

All that matters for wearables is the complexity, and even then, that's only compared to similar assets. You can bet that if most mesh bodies after complexity calculation adjustments skyrockets to 500K complexity, people aren't gonna stop wearing it, 500K will be the new acceptable value.

What is truly needed for wearable is an actual, enforced cap. Either per object as is being deployed with animesh (but that wouldn't truly solve it) or for the entire avatar.

The latter would certainly bring everything avatar related under control but the risk is to open creator competition on "whose stuff gets to be worn at all" and that unfortunately will bring in the perceived "prestige" of this/that brand, which seem to be a pretty nasty can of worm to open.

  • Like 1

Share this post


Link to post
Share on other sites
On 6/22/2018 at 11:07 AM, OptimoMaximo said:

Thiking about it, i would like to see something implemented that penalizes the zeroing out of LoDs, like:


if (Lowest LoD == 0) 
{
(LI |Rendering cost) *2
}
if (Low LoD == 0) 
{
(LI |Rendering cost) *4
}
if (Medium LoD == 0) 
{
(LI |Rendering cost) *8
}

 

another way could be a more encouraging method. A minimum cost baseline method where we pay for something whether we use it or not

LOD3:  Calculate the baseline (pretty much as now)
LOD2:  Min. cost: 3/6 of baseline
LOD1:  Min. cost: 2/6 of baseline
LOD0:  Min. cost: 1/6 of baseline

applying this as an example:

LOD3: Baseline = 0.5. -> LOD2 = 0.25, LOD1 = .167, LOD0 = 0.083. Total: 1.0

the fractions can be changed to which ever, it is more the model that is important

when we have to pay for something whether we use it or not then we tend to use it. When we are a commercial vendor and do not, then we start to lose sales to those who do

Share this post


Link to post
Share on other sites

While on this subject, New Babbage has an in-world tutorial on level of detail at http://maps.secondlife.com/secondlife/Academy of Industry/155/110/112

lodtutorial_001.jpg.a51d65e6618a419e7379d9251b3baf4f.jpg

All four tables have the same high-LOD model, but different lower-LOD models. The second table from the left has just enough detail that it looks good at all distances without excessive land impact. The one at the left has a a bad low-LOD model. The two on the right have more detail than needed at low levels. The signs behind them show the upload parameters.

New Babbage is picky about this sort of thing, which is why the city looks good in the distance. They have building inspection. It works.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 6/22/2018 at 12:28 PM, OptimoMaximo said:

a calculation bug for which there is an ongoing project btw, booming the rendering cost so high that their customers would have their viewer crashing within a few minutes, resulting in complaints to the creator

You seem to have a couple things confused.

The "rendering cost" shown for any object is an arbitrary number that estimates how difficult something is to render. Increasing "rendering costs" has no impact on viewer lag and it certainly won't crash anybody. The same goes for LI in regards to viewer/sim performance. Rendering cost is a real thing, but the number is arbitrary.

Secondly, isn't that project you're referring to about fixing avatar attachment LODs and not about ARC (or maybe both)? Either way, what's really gonna make customers complain when that project finishes is the fact that their clothing and/or bodies will disappear even at short distances, turning them naked at best and ghosts at worst.

Share this post


Link to post
Share on other sites
7 minutes ago, Wulfie Reanimator said:

You seem to have a couple things confused.

You probably got me wrong. That statement of mine is a WISH i have.

Share this post


Link to post
Share on other sites
8 minutes ago, Wulfie Reanimator said:

Secondly, isn't that project you're referring to about fixing avatar attachment LODs and not about ARC (or maybe both)?

They're working about both issues.

  • Thanks 1

Share this post


Link to post
Share on other sites
7 minutes ago, OptimoMaximo said:

You probably got me wrong. That statement of mine is a WISH i have.

Plot twist: it was me who was confused the whole time!

Oh well, hopefully someone will benefit from the clarification anyway. xD

Share this post


Link to post
Share on other sites

I'm not entirely sure why LL decided to go solely with a fixed distance/radius switch for lods.

It would have been quite nice to be have a simple slider that modulates the distance/radius calculation so that the user and creators could decide when the lods will switch based on their use of the object. (with LI/complexity adjustment obviously).

Having to blank out lods on large objects because they aren't gonna get used anyway seem just as silly as having lods switch so fast that the high lod might just not exist at all on a small object.

Share this post


Link to post
Share on other sites
46 minutes ago, Kyrah Abattoir said:

I'm not entirely sure why LL decided to go solely with a fixed distance/radius switch for lods.

It would have been quite nice to be have a simple slider that modulates the distance/radius calculation so that the user and creators could decide when the lods will switch based on their use of the object. (with LI/complexity adjustment obviously).

Having to blank out lods on large objects because they aren't gonna get used anyway seem just as silly as having lods switch so fast that the high lod might just not exist at all on a small object.

Inb4 "creators will just max out the highest slider"

What I think the real argument against that system is it's too limiting.

Say you make a small item with short LOD range. Then someone tries to scale that up, much bigged than intended too. Now people see your item pop in and out of existence and it's very noticeable.

And if someone scaled down your fancy house into a dollhouse, the viewer would waste resources rendering it in fine detail at a distance.

Currently, the LODs are based on scale, which I think is much more flexible in this "live" environment. Fixed LOD distances would work in a "static" environment like a proper game. 

Share this post


Link to post
Share on other sites

I would like someway to manually set the LOD range on a perobject basis that wasn't locked to it's scale and couldn't be locked by an objects creator.

Being able to set an object in a room to use good LOD when in range and then vanish would be worth the time it would take to set objects up.

 

Share this post


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

I would like someway to manually set the LOD range on a perobject basis that wasn't locked to it's scale and couldn't be locked by an objects creator.

An object specific LoD factor was suggested by users when LL developed mesh but they rejected it. Of all the countless mistakes they made with mesh, that may well have been the biggest.

The LoD system we have is really only suitable (and barely so) for medium sized object, sizes between - say 1 and 5 m. Smaller objects tend to siwcth to lower models way too soon while larger objects stay way too long at higher models.

For all our complaints about poor and neglectful builders, this is the real reason for all our LoD problems and it's all because of the shoddy workmanship that was the hallmark of LL developers between 2007 and 2014.

Share this post


Link to post
Share on other sites

I've only made a few simple meshes, and admit immediately that I am not very well versed in the technicalities and problems.  But I am a huge buyer of mesh items in SL, and the biggest problem I encounter is not about LOD - it's the huge and multiple textures used on mesh items by many creators.

I recently worked on an LEA sim which I wasn't able to finish for personal reasons.  However, I was looking forward to using the many plants, objects and furniture I had bought with a view to using them in the sim I was building.  Unfortunately, nearly all of the objects I bought had multiple 1024x1024 textures on them... in one case seven on a small bottle-shaped object.  I found ribbons and tiny parts of objects and furniture with 1024x1024 textures.

The number of textures you can use in a sim is finite.  The larger the textures, the fewer you can use.  If I could change one thing about meshes in SL, it would be to insist that smaller textures should be the norm and not 1024x1024.  At the very least provide smaller versions and give the customer some choice.  As it is, I have a lot of expensive and basically unusable pretty things in my inventory.

Share this post


Link to post
Share on other sites

 

6 hours ago, Caliandris Pendragon said:

I recently worked on an LEA sim which I wasn't able to finish for personal reasons.  However, I was looking forward to using the many plants, objects and furniture I had bought with a view to using them in the sim I was building.  Unfortunately, nearly all of the objects I bought had multiple 1024x1024 textures on them... in one case seven on a small bottle-shaped object.  I found ribbons and tiny parts of objects and furniture with 1024x1024 textures.

When everything is working correctly, the viewer will not load that objects textures to full resolution unless you jam your camera down its throat or inspect it and force it to fully render ..  as long as your VRAM isn't under pressure then the will stick around. (dumping high resolution textures and re-decoding a lower rez replacement is expensive, so only happens when the viewer has no choice)

I will be the first to admit that the code for texture detail handling will need a once over when the new cache changes come though, and could certainly stand to be reworked from a more defensive standpoint. It kinda has to wait for the cache as that's the foundation everything else is built upon. Only keeping textures of an appropriate resolution is certainly something that can be done entirely in code.

Mesh LOD on the other hand does need creators to raise their game. In an ideal world we would only have the top detail model and the rest would be generated on the fly, but doing that would tank viewer performance and probably look pretty terrible. What we really need is for all viewers to present a level playing field in terms of the LOD the end users see. I hate to keep pointing it out, but Firestorm LOD values are double the stock value. There is a fair chance you haven't seen LOD issues because the viewer simply isn't showing the LOD Meshes to you.

Share this post


Link to post
Share on other sites

Even when a good creator does everything right, the tools aren't quite there. Here's a common example - a sign.

brunelhalldetail_002.thumb.jpg.c8204be332cda7dc5a8556696bbf6ea2.jpg

Maximum level of detail. Looking good.

lettering.png.c745efa1b14061bfcbce70d23bd52c48.png

Minimum level of detail. Not so good.

Signs like this are all over SL; they're a popular product. Especially noticeable here in New Babbage, where there's considerable attention to getting low level of detail right. Formal building inspection enforces this.

What's wrong here? No impostor generation. This is the perfect case for a flat impostor - one rectangle with the image rendered on it. But there's no easy to use tool to generate those. They're hard to generate in Blender. You can't generate them during uploading. You can't generate them in world, even if you have modify permissions. That path needs to be smoothed with appropriate tools.

 

Share this post


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

But there's no easy to use tool to generate those. They're hard to generate in Blender.

You can make them yourself in blender. If you can model and UV unwrap lettering then you have all the skills required to put a picture of that lettering on 2 triangles.

  • Like 1
  • Thanks 1

Share this post


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

You can make them yourself in blender. If you can model and UV unwrap lettering then you have all the skills required to put a picture of that lettering on 2 triangles.

 

Yes what she said, there are tonnes of tutorials on YouTube and are a great first step to learning blender. I can make a diamond, in 2 minutes flat. Just cause I learned how to do  it on YouTube.

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...