Jump to content

Mesh complexity and instances


Remi Alpha
 Share

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

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

Recommended Posts

If I create a mesh object that has a land impact of say 5 and rez it in world, and then I duplicate that object does everyone’s viewer have to load that object twice as if they are two different objects?

Or does Second Life recognise that they are the same mesh object and just to load multiple instances of it? (albeit possibly with different positions, transformations, orientation etc)

It seems like it does not use instances because the overall LI goes up with copies of an object. But surely this is inefficient as it's quite likely I might want to have 10 copies of the same tree for example.

Link to comment
Share on other sites

I knew that was the case with textures (visibly you can see all copies of a texture load at once) but wasn't sure about mesh, so thank you that is great to know.

I am planning a build and I care more about its real performance for visitors than about fitting as much as I can into the numerical LI limit which I can pay more to increase.
 

  • Like 1
Link to comment
Share on other sites

25 minutes ago, Wulfie Reanimator said:

LI is a general measure of how much stuff can exist in a region/parcel. It's not indicative of how rendering or client-side memory is handled.

I can say with extreme confidence that the mesh and texture data is only loaded once, multiple copies of the object having little overhead, but not zero.

So I just want to mention that there was a long thread on this awhile back (maybe a couple of years as I was still at MOSP and this would have been important to me :D.  Someone else (honestly I don't remember who but someone on the mesh board a lot and usually with all the correct answers) said that TEXTURES were cached but that the mesh was not and instances (that was my question leftover from Cloud Party where once you used an item it never counted against you again) were NOT used in SL.

 

I don't have an answer, just pointing out that only  one answer can be correct LOL.  So since @Oz Linden is still here, maybe we can get an OFFICAL answer. That would be very helepful. 

  • Like 1
Link to comment
Share on other sites

2 hours ago, Chic Aeon said:

So I just want to mention that there was a long thread on this awhile back (maybe a couple of years as I was still at MOSP and this would have been important to me :D.  Someone else (honestly I don't remember who but someone on the mesh board a lot and usually with all the correct answers) said that TEXTURES were cached but that the mesh was not and instances (that was my question leftover from Cloud Party where once you used an item it never counted against you again) were NOT used in SL.

 

I don't have an answer, just pointing out that only  one answer can be correct LOL.  So since @Oz Linden is still here, maybe we can get an OFFICAL answer. That would be very helepful. 

Mesh doesn't need to be cached to a hard drive like textures are, in order to only load the mesh into memory once. Both statements can be true.

This isn't hard evidence by any means, but using the Inspect Objects feature of Firestorm shows you the texture memory and total VRAM of an object, and updates as you select more objects. If you select multiple copies of the same object, the numbers don't change. Obviously, this doesn't account for the implicit overhead of having the viewer track these copies.

Based on my fairly fluent understanding of how computer memory works in a programming context, it would seem very unlikely and weird for the mesh data to be duplicated in memory for each copy of the object. That would not make sense because programmers can use references to existing data. That means that tracking a new copy of an object should only cause a small increase in memory -- enough to hold references to the mesh data already in memory, as well as unique details like scale, position, rotation, color, etc.

Edit: To clarify, when I say "memory" I mean RAM. I have no real experience with GPUs.

Edited by Wulfie Reanimator
  • Like 1
  • Confused 1
Link to comment
Share on other sites

19 minutes ago, Kyrah Abattoir said:

I'm almost certain that SL doesn't do any kind og GPU instancing, but that doesn't mean it would hold multiple copies in ram.

No instancing at all.

There are MUCH bigger performance fish to fry (like sequential avatar processing), so while there are probably gains to be had being smarter with meshes, it's a bit like alloy wheels on a lada.

Lada Riva - Wikipedia

  • Like 1
Link to comment
Share on other sites

Well it seems it’s a matter under some dispute!

It would seem rather illogical to load identical mesh model data from the server twice for the same user in the same session.

Of course avatar complexity (and avatar script load too.... Grr @ fashion makers with no "delete scripts" button in the supplied HUD) is a major perf. issue but a slightly separate topic that I am not asking about. Even with no other avatars in a region some nicely designed landscapes can take minutes to load even with draw distance down at 32 metres.
 

Link to comment
Share on other sites

7 minutes ago, Rem Voxel said:

It would seem rather illogical to load identical mesh model data from the server twice for the same user in the same session.

The asset isn't loaded twice. The viewer will only download each mesh and each texture once.

7 minutes ago, Rem Voxel said:

Of course avatar complexity (and avatar script load too.... Grr @ fashion makers with no "delete scripts" button in the supplied HUD) is a major perf. issue but a slightly separate topic that I am not asking about. Even with no other avatars in a region some nicely designed landscapes can take minutes to load even with draw distance down at 32 metres.

Avatar complexity isn't the problem, it's all the processing that has to be done to each avatar each frame, GPU ends up starved. Avatars bad.

Scripts are server side and have no impact on client side performance. If stuff does what its supposed to do when you poke it, ignore script performance entirely. The numbers reported in the viewer are only useful as a source of performance anxiety :P Any impact these terrible numbers have on the region is immaterial as regions don't store or deliver asset data (that comes from the CDN), there is a lot of correlation and very little definitive causation when it comes to diagnosing SL performance woes from an end user perspective.

"Nice landscapes" can be some of the most intensive client side. Lots and lots of unique meshes and textures (each being fetched and processed individually), old school sculpt objects which don't render correctly until the very end of the process, and all of it rendered with enough alpha to get any professional 3d artist bombed back to tech support .. Oh and they feature water. There's so much wrong with SL water it's not even funny.

  • Like 2
Link to comment
Share on other sites

1 minute ago, Coffee Pancake said:

Scripts are server side and have no impact on client side performance.

They do when you click something and it doesn't execute for 60 seconds. But yes of course it is server-side lag, I know that. It all impacts on the experience.

Link to comment
Share on other sites

1 minute ago, Rem Voxel said:

They do when you click something and it doesn't execute for 60 seconds. But yes of course it is server-side lag, I know that. It all impacts on the experience.

Even that delayed action might not be due to script caused lag. There's a lot that can happen to make scripts perform (or appear to be performing) poorly and from an end users perspective, it's indistinguishable.

I don't know how the cloud affects things now, but a good sanity check used to be asking for a struggling region to be moved to another simulator (A simulator being the physical hardware running multiple regions).

Link to comment
Share on other sites

12 minutes ago, Coffee Pancake said:

"Nice landscapes" can be some of the most intensive client side. Lots and lots of unique meshes and textures (each being fetched and processed individually), old school sculpt objects which don't render correctly until the very end of the process, and all of it rendered with enough alpha to get any professional 3d artist bombed back to tech support .. Oh and they feature water. There's so much wrong with SL water it's not even funny.

I am designing a landscape. There will be no sculpts, only landscaping + mesh objects. The thrust of my post was to ascertain whether there is any advantage to me using 10 instances of the same 3LI tree vs. using 10 different 3LI trees (for example). To simplify the question let's say they all use the same single texture map.

So it's good to know those mesh models will at least only be downloaded once from the CDN, which tells me network lag at least will be improved using 10 instances of the same tree.

 

 

Edited by Rem Voxel
Link to comment
Share on other sites

Just now, Rem Voxel said:

So it's good to know those mesh models will at least only be downloaded once from AWS / S3, which tells me network lag will be improved using 10 instances of the same tree.

Yes.

I would also suggest you stick to trees (etc) that can be modified manually via the edit floater. Where possible change all alpha types from blended to mask (and set an appropriate cut off value).

Pressing CTRL+ALT+T will show all alpha textures. Red ones are alpha blended. Blue ones are alpha masked. Red BAD. Blue Good.

  • Like 3
Link to comment
Share on other sites

18 hours ago, Coffee Pancake said:

it's a bit like alloy wheels on a lada

I know it's a small point, but whilst the centre caps are alloy (the black and silver bit in the middle that looks rather like a part I used to sell), the grey parts look very like steel wheels to me.

 

I know, it doesn't ammter @)

  • Like 1
Link to comment
Share on other sites

On 3/10/2021 at 6:17 PM, Rem Voxel said:

I am planning a build and I care more about its real performance for visitors than about fitting as much as I can into the numerical LI limit which I can pay more to increase.

SL doesn't support object instancing but as you said, a mesh asset will only be downlaoded ocne even if it's used several times so there's still quite a bit of bandwidth and laod time to save by reusing meshes.

  • Like 1
Link to comment
Share on other sites

On 3/11/2021 at 6:24 AM, Profaitchikenz Haiku said:

I know it's a small point, but whilst the centre caps are alloy (the black and silver bit in the middle that looks rather like a part I used to sell), the grey parts look very like steel wheels to me.

 

I know, it doesn't ammter @)

Warning: Seriously off topic. Sorry. Couldn't resist. :P

I think the point was, even a Lada at a car show doesn't bother to have alloy wheels.

Although, I think every car deserves to have alloys, even Ladas. This guy agrees :-) 
Lada-2103-modified-10.jpg

Surprisingly though, this Lada Limo only has steel wheels with hubcaps.
article-2130942-12A28CAC000005DC-705_468

To each his own. :D

  • Haha 1
Link to comment
Share on other sites

Oh dear Lada humor (makes a noise)  well its still interesting never the less to read. I expect  lot of the decisions in rendering on the browser are forced by the graphics card and faster will solve most lag problems also resolution of the browser also has a major influence as does anisotropic models AVL unit , Ambient occlusion. Since Firestorm and Linden viewer brought in new light model this delivers much higher performance lighting with clouds and other landscaping items. I have a large sky box which is about 98 prims which uses  trees and other mountains to create a vista it does exactly what you are seeing while it loads first time then behaves itself. I am wondering if your textures are huge or if you are replicating them on model

 

D hugs

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1109 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...