Jump to content

Optimising our avatars.


AmberJoyBliss
 Share

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

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

Recommended Posts

I am big on having my avatar as low lag as possible and will not mind more information and/or corrections of what I think I know.

Here is what I have gathered so far:

  • The more things we wear;
    • the more textures everyone needs to load.
    • the more mesh triangles need to be rendered.
  • The more huds we have on, the more script memory is being eaten from the land.
  • Things no one sees, should be removed even if they are invisible.
  • There can be significant difference between creators.
    • Kupra and Doux hairs seem to be very well optimized.
  • Old things are not always better on performance than new fancier stuff.

What else am I missing?

  • Like 2
Link to comment
Share on other sites

3 hours ago, AmberJoyBliss said:

Old things are not always better on performance than new fancier stuff.

And newer stuff is not always better on performance that older stuff.

 

3 hours ago, AmberJoyBliss said:

The more things we wear;

  • the more textures everyone needs to load.
  • the more mesh triangles need to be rendered.

 

The things we wear should be individually checked for efficiency - how many triangles does that outfit/hair/boots have and does it really need that many?  If you get items that are really well optimized, you can actually wear more things and still be more efficient than simply reducing the number of things worn.

  • Like 4
Link to comment
Share on other sites

19 minutes ago, LittleMe Jewell said:

And newer stuff is not always better on performance that older stuff.

 

The things we wear should be individually checked for efficiency - how many triangles does that outfit/hair/boots have and does it really need that many?  If you get items that are really well optimized, you can actually wear more things and still be more efficient than simply reducing the number of things worn.

It could be nice if we could see this information when shopping. How can we check individual things?

  • Like 1
Link to comment
Share on other sites

13 minutes ago, AmberJoyBliss said:

It could be nice if we could see this information when shopping. How can we check individual things?

If an item you want has a demo, try that first before buying it. That should give you an idea of its complexity and triangle count. This mostly applies to clothes and shoes. Jewelry items rarely have any demos available.

  • Like 4
Link to comment
Share on other sites

24 minutes ago, JeromFranzic said:

If an item you want has a demo, try that first before buying it. That should give you an idea of its complexity and triangle count. This mostly applies to clothes and shoes. Jewelry items rarely have any demos available.

A lot of jewelry is now including demos.since quite a bit is rigged.  

41 minutes ago, AmberJoyBliss said:

It could be nice if we could see this information when shopping. How can we check individual things?

 I just shared a peeve in another thread about hair I demoed from a recent event.  It added near 1 million triangles.  I ALWAYS demo items with that info showing above my head.  It's not that difficult to keep your complexity and triangle count at a.reasonable level by always demoing and always checking those number.  

On 1/15/2024 at 12:27 PM, Rowan Amore said:

Content creators with no idea how to optimize content.  I found a cute hair at Kustom9 today.  I almost bought it until I checked to see the triangle count.  Seriously?  Almost 1 million triangles?  For hair?  I keep my entire look under 1 million.  

Before hair but completely dressed...

f9d9e99e5abc2b07e7eff6d34692c3e0.png.4533ac82eb1e4be63e31e77e03a99d36.png

After adding the demo hair...

2e747f00268e75b3d1127c45a1eaf5a2.png.99c83769b39a703891a4330f91e88a18.png

 

  • Like 4
Link to comment
Share on other sites

Some newer (read, BoM-enabled) mesh bodies are way less complex than they used to be, also. My average outfit on my old account was around 160,000 complexity, and since switching to a BoM-enabled avatar my average is more like 40,000, and that's with all of my accessories. I still feel guilty, but I feel better about it.

I do agree with a comment above though; newer is not always better. It's best to investigate and try demos (like looking at it in the editor to see how many prims it would be if you rezzed it) and read reviews, before committing to anything.

Edited by PheebyKatz
  • Like 5
Link to comment
Share on other sites

Firestorm has a performance tool to genuinely measure which of your attachments take the longest to render (meaning they have the biggest impact to framerate).

If can be found under Advanced > Performance Tools > Improve Graphics Speed > Your avatar complexity

image.png.bb9f4d3c1da32476cf3d0530e8df62eb.png

This will show just how inaccurate Complexity (= ARC, Avatar Rendering Cost) is as a measure of how "well" or "badly" something is made in terms of performance. Just in the picture above, there are 3 attachments with 1000-2000 complexity that take significantly longer to render than an attachment with 39'000 complexity.

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

1 hour ago, Wulfie Reanimator said:

Firestorm has a performance tool to genuinely measure which of your attachments take the longest to render (meaning they have the biggest impact to framerate).

If can be found under Advanced > Performance Tools > Improve Graphics Speed > Your avatar complexity

image.png.bb9f4d3c1da32476cf3d0530e8df62eb.png

This will show just how inaccurate Complexity (= ARC, Avatar Rendering Cost) is as a measure of how "well" or "badly" something is made in terms of performance. Just in the picture above, there are 3 attachments with 1000-2000 complexity that take significantly longer to render than an attachment with 39'000 complexity.

I totally forgot about that tool - thanks for posting it

  • Like 3
Link to comment
Share on other sites

4 hours ago, Wulfie Reanimator said:

Firestorm has a performance tool to genuinely measure which of your attachments take the longest to render (meaning they have the biggest impact to framerate).

If can be found under Advanced > Performance Tools > Improve Graphics Speed > Your avatar complexity

image.png.bb9f4d3c1da32476cf3d0530e8df62eb.png

This will show just how inaccurate Complexity (= ARC, Avatar Rendering Cost) is as a measure of how "well" or "badly" something is made in terms of performance. Just in the picture above, there are 3 attachments with 1000-2000 complexity that take significantly longer to render than an attachment with 39'000 complexity.

That's true. It would be useful to have a similar tool that also checks textures. Once the textures are loaded, they may be fine, but if they are many and large, they take longer to load (i.e. your objects stay gray longer) and use more memory, eventually resulting in blurred textures or crashes.

  • Like 2
Link to comment
Share on other sites

One side people seem to forget in SL: Make sure your viewer and it's components has full permissions by your firewall. Just noticed that the Avast free firewall was having a lagging impact on the Alchemy viewer. Switched over to the Comodo Free Firewall, considered all components of the Alchemy Viewer as trusted items and I have no more lag.

Link to comment
Share on other sites

5 hours ago, Dorientje Woller said:

One side people seem to forget in SL: Make sure your viewer and it's components has full permissions by your firewall. Just noticed that the Avast free firewall was having a lagging impact on the Alchemy viewer. Switched over to the Comodo Free Firewall, considered all components of the Alchemy Viewer as trusted items and I have no more lag.

You can whitelist all SL related folders for any firewall/malware/virus scan software - you don't have to switch products.  Though, there are some anti-virus products that have caused SL issues in the past.

  • Like 2
Link to comment
Share on other sites

On 1/16/2024 at 11:01 AM, AmberJoyBliss said:

I am big on having my avatar as low lag as possible and will not mind more information and/or corrections of what I think I know.

Here is what I have gathered so far:

  • The more huds we have on, the more script memory is being eaten from the land.
  • Things no one sees, should be removed even if they are invisible.

This is why I stick to bodies with mod permissions. To let me remove everything I'm not using.

That invariably breaks the configuration scripts the body came with - so I keep multiple configured bodies around, along with one backup that is all of my changes BEFORE I unlinked anything.

I don't wear any configuration HUDs. I do have 2 HUDs of my own that are "off screen" that cycle animations and are written to be as small as I could get them and operated with some simple chat commands to a private channel.

  • Like 2
Link to comment
Share on other sites

On 1/16/2024 at 2:37 PM, AmberJoyBliss said:

It could be nice if we could see this information when shopping. How can we check individual things?

Add to your list of "how to Check" the wireframe mode of the viewer. Ctrl-Shift-R switches the viewer in and out of wireframe mode. You can see the triangles of an object.

Look at your Classic avatar body while in wireframe, no mesh body or mesh clothes. Use the triangle density of the classic avatar you see as the density of a HIGHLY optimized mesh character for SL. Well-optimized stuff will be similar. Higher density is not necessarily worse.

Also, graphics card manufacturers have been optimizing their hardware for decades. Polygons per second is now an old performance measure because the count was getting bizarre. How many 100 billion polygons do you want to render in a second? Is your mesh body 8,000 polygons or 80,000? And how much difference will it make in render time? I doubt you can measure it. It is too short a time.

The download time of a vertex list is minimal. The time to load a defuse map (basic color texture), normal map (bump/3D surface map), and specular map (shiny) is significant. The memory used by those textures is significant. So it is by far the textures that drag down render time. But neither of these are issues in crossings or for server loads.

However, the number of items and the number of scripts greatly impact crossings. Thus we are held to 38 attachments. We are pushed to keep a low script weight, 3 MB per avatar is considered reasonable. If you fly or sail fewer scripts and attachments are significantly better. The number of avatars and the number of items they are wearing affect the region server performance because of the data load. Much of the data is avatar movement information. I am not sure standing still lessens the load. Seems like it would but I suspect the code sends a continuous stream of position data. But, maybe they did some optimization. I do know that it is easier to cam through an event than to walk through one.

You can optimize your experience by lowering the number of Non-Imposter Avatars your viewer renders, lowering your draw distance, and Max Particle count. Draw distance has an effect on the regions. Less draw distance means fewer regions need to send you information and the region you are in often sends less information to your viewer. Consider if you use 128m DD while standing at the edge of a region, only half the region (256x256m) you are in needs to send you information, and the same for the nearby region. So, 2 servers send about 1 region of data. Using a 1024m DD you have 9 regions sending you 9 regions of information. You are creating some serious lag and it is lag that affects everyone, not just you.

Reducing lag and increasing performance in SL gets W A Y  technical and complicated.

 

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

On 1/19/2024 at 12:37 AM, AmberJoyBliss said:

I never thought about that. Is it because it has to calculate everything in real time?

Yes. Everything in SL is calaculated. The calculations happen on the server and client sides to distribute the work. Plus the work is highly optimized to reduce duplication and minimize the data needing to be transferred.

Consider animations. Animations are localized to the viewer. The viewer moves the arms and legs doing all the calculations required. That movement is not transmitted to others. The amount of information needed for legs, arms, hands, fingers, tails, wings, face, and boobie bounce would overwhelm the system. Only which animation is being played is sent to others, well to the server which then tells everyone else which animation to use for your avatar. If you could see everyone's screen at the same time, you would see that we are not all in perfect sync. Each viewer, at any given instant, is showing a frame of the animation playing on your avatar depending on how long the animation has played on that specific viewer. The when is controlled by when they or you came into the region and when you entered their field of view. While control-S (Firestorm) will sync all animations in your viewer it does not affect what other viewers show.

SL avatars have a collision... capsule... an oblong cylinder with rounded ends. Animations do NOT move the collision capsule. This is why avatars do not collide on the dance floor. To appear more realistic and avoid griefing, collisions with avatars and things, like walking on the floor, are calculated on the server side using the Havok collision engine, which is optimized for the type of math used for coordinate intersections. The viewer sends position/movement info and the Havok server decides if that is possible and sends the results to all people in the area. Thus our avatars do not walk through walls. If there is lag, we may see an avatar walk into a wall and then bounce back.

Every viewer must render the entire world and all the avatars in it plus keep track of what all the avatars are doing. So the viewer advises the servers of what you are doing. The server aggregates all that info and advises all other viewers about what each avatar is doing. Each avatar in a region adds exponentially to the amount of data needing to be transmitted.

For a time OpenSim and Microsoft were working to optimize the math and data flow to get more avatars into a region without lag. Last I looked, which has been years, they were up to 150+ per region. I suspect patents are why we have not seen that tech applied to SL.

Desktop computing power is growing but we are nowhere near what is needed for a truly realistic virtual world where clothes and hair do not pass through the body or clothes are realistic and a full skirt can swish around our legs and not distort. Mobile devices are orders of magnitude behind our desktops.

If you were to do all the calculations to render a single frame of SL on an abacus... it would take centuries. And yet it is the data transmission that is bottlenecking us.

  • Like 4
Link to comment
Share on other sites

On 1/20/2024 at 1:03 PM, AmberJoyBliss said:

Then why is SL so super laggy with more and more avatars, and FPS games on the same computer don't lag more than the ping?

Most FPS games are highly optimized for a single style of play. So guns and vehicles are highly optimized. The surroundings, clothes, avatars, animations, and just about everything in the game except movement are downloaded to your computer when the game is installed. You'll also find that play areas in FPShooters are either small or procedural-spaces. Plus the entire space is pre-installed and never changes.

The result is in a FPS there are a dozen or so guns. SL, literally, has thousands of different guns. All that information about which gun and where it is attached and which animations are associated with it has to be communicated to every SL player. For a FPS the communication is very terse 'this gun'. The FPS game on your computer already has all the info about the gun.

The variety of clothes available in SL is enormous. The possible combination of colors and textures for a single shirt is huge. The SL system is designed to handle that variety. FPSs are optimized and the possibility of that measure of variety is eliminated.

Basically a FPS is designed to minimize the information needed to be exchanged between players. SL to provide the creative space people like can't do that.

  • Like 4
Link to comment
Share on other sites

I often wonder if I'm guilty of being overloaded when exploring sims, because I do carry a bit of stuff around with me all the time, and I do like saving outfits with all of my funky little HUD buttons I've made, but then I'll look at the script count meter on someone's land, and see that the bot in their store is running 10 times as many scripts as myself, and the nearest other visitor is right under them on the meter.

If I'm the lowest person on the lag meter that consistently, I must be doing something right. Or everyone else is doing it tragically wrong, lol.

Edited by PheebyKatz
  • Like 2
Link to comment
Share on other sites

On 1/16/2024 at 1:01 PM, AmberJoyBliss said:

The more huds we have on, the more script memory is being eaten from the land.

This one is somewhat tricky and misleading, too, due to how the script are handled server-side. Most all modern script will share byte code when there are multiple instances of the same script on the region simulator.  So if you have a person on the parcel wearing a given body and associated HUD it takes up a certain amount of memory. Now if 2 more people come onto the region with the same body and HUD combo, the script load/count does not get tripled.  Instead, it stays the same with a little additional overhead take up to account for the extra people's individual variable environment.  The region just goes "oh, that script is already running, no need to load in others copies, I just need to track these few little things".  But your script counter boards can't account for that so they are often very inaccurate in terms of how much resources are being used by each individual.  A better metric is how much script time each person is using, not how many script, how much memory the supposedly are using.

I mean yes, it's good to be aware of how many scripts we are hauling around and how much space they potentially can take up, but in terms of finding balance and optimization, it's probably one of the lower priority things to be factored in to your decision tree. 

  • Like 3
Link to comment
Share on other sites

1 hour ago, Anna Salyx said:

This one is somewhat tricky and misleading, too, due to how the script are handled server-side. Most all modern script will share byte code when there are multiple instances of the same script on the region simulator.  So if you have a person on the parcel wearing a given body and associated HUD it takes up a certain amount of memory. Now if 2 more people come onto the region with the same body and HUD combo, the script load/count does not get tripled.  Instead, it stays the same with a little additional overhead take up to account for the extra people's individual variable environment.  The region just goes "oh, that script is already running, no need to load in others copies, I just need to track these few little things".  But your script counter boards can't account for that so they are often very inaccurate in terms of how much resources are being used by each individual.  A better metric is how much script time each person is using, not how many script, how much memory the supposedly are using.

I mean yes, it's good to be aware of how many scripts we are hauling around and how much space they potentially can take up, but in terms of finding balance and optimization, it's probably one of the lower priority things to be factored in to your decision tree. 

That is a clever way of doing it, combining identical scripts.

Link to comment
Share on other sites

Relevant, had to post about it. I was looking in Places Search, and sorting through results, looking at place profiles, and one of the places actually said, and I quote, "150 script limit!!"

I feel like the weight of the world has been lifted from my shoulders, seeing that. It means I have absolutely nothing to geel guilty about with my rinky-dink little dance HUD and my random object thrower and my farting toy, if people are doing stuff like that.

I have no idea how I'd even manage to have that many scripts going on me at once, unless I was wearing resizable hair from like, 2005. And I haven't worn resizable hair from 2005 since I had my first account.

If anybody reading this is still wearing hair like that, let me know, and I'll host a fundraiser to take you hair shopping.

Not even kidding.

Edited by PheebyKatz
  • Like 2
Link to comment
Share on other sites

14 hours ago, PheebyKatz said:

Relevant, had to post about it. I was looking in Places Search, and sorting through results, looking at place profiles, and one of the places actually said, and I quote, "150 script limit!!"

I feel like the weight of the world has been lifted from my shoulders, seeing that. It means I have absolutely nothing to geel guilty about with my rinky-dink little dance HUD and my random object thrower and my farting toy, if people are doing stuff like that.

I have no idea how I'd even manage to have that many scripts going on me at once, unless I was wearing resizable hair from like, 2005. And I haven't worn resizable hair from 2005 since I had my first account.

If anybody reading this is still wearing hair like that, let me know, and I'll host a fundraiser to take you hair shopping.

Not even kidding.

There are script 'weight' scales in the marketplace for free. They usually say something about being under (yay) or over (boo) 3MB of scripts.

When it comes to performance issues things get complex. There is viewer, server, and network performance. FPS is mostly a viewer-side thing. Script performance is more a server-side thing shown by Percent of Scripts Run and free script time. Sailing when less than 50% of scripts run per frame... SUCKS! Scene render time and mouse/keyboard responsiveness is more an indication of a good or poor network connection. But, these are not PURE distinctions. Many of these factors mix viewer, network, and server performance.

I suggest you not get overly concerned with performance or avatar render cost (ARC/ACI) It is nice to be considerate of others. Thanks. But if you are exploring a region with you and one or two other avatars in it... it doesn't matter. A region with 20+ avatars is a different case.

When crossing regions we easily run into the limits. The number of items we wear and our script weight has a big impact on how quickly and successfully we cross. With scripts the number and size are factors. However, it is the amount of DATA the script is using that slows the transfer. I haven't read the system code to know whether the body of the script is transferred. I doubt it. But, the data is and it is unique for each user of the script. While the script code is reusable among users the data isn't.

So... depending on what you are doing and where you are the important performance factors change.

  • Like 1
Link to comment
Share on other sites

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