Avatar Rendering Complexity

From Second Life Wiki
Revision as of 09:21, 12 May 2016 by Oz Linden (Talk | contribs)

Jump to: navigation, search
KBtip2.png See Also this page in the Knowledge Base
KBnote.png Note: The features described here are currently only fully implemented in the QuickGraphics Project Viewer. See Current Limitations below.

Avatar Rendering Complexity is a measure of how difficult it is to draw an avatar; it's a number that can range from just a few hundred to several hundred thousand. It is affected by your avatar shape and what you're wearing. Since drawing avatars can be one of the most expensive parts of rendering a Second Life scene, complexities at the upper end of the range can cause severe viewer performance problems. Being aware of your own complexity and that of those around you can be an important part of managing the performance of your viewer and how you affect the performance of others.

How Do I Prevent Avatar-Induced Viewer Lag, and Why Are Some Avatars Solid Colors?

If an avatar in your view is too complex for your system to draw efficiently, it may cause your viewer performance to degrade severely. To help manage this problem, there is a preference setting 'Maximum Avatar Complexity' (Preferences > Graphics). The default value of that preference depends on how powerful your graphics subsystem is and what graphics level you choose. Any avatar whose complexity is above the value of that setting is drawn as a solid color silhouette and without attachments, greatly reducing their impact on your viewer performance.

There is another factor that can cause an avatar to be drawn as a solid color: total attachment surface area. See How Do I Examine Complexity Values?, but most avatars will be well under these limits.

How do I find out the Complexity of my Avatar?

Whenever you change what your avatar is wearing, a small notice will appear in the upper right of your screen to tell you the new complexity value.

Your own avatar is always rendered fully even if you are over your own limit (if you want to slow down your viewer with your own avatar, you can).

How do I find out if the Complexity of my Avatar is too high?

If some of the people around you are rendering you as solid color outlines, their viewer will report that to the simulator. The simulator will in turn tell your viewer to display a message to let you know in general terms whether or not you are being fully rendered. The message will appear in a notice along with the complexity of your avatar, and will be updated if it changes significantly. Your viewer is not told which of the others around you are not rendering you, or what their limits are.

If you don't mind that others are not seeing you, and would rather not get these notices, you can suppress them by using Preferences > Notifications; look for the message "Warn me if my avatar complexity may be too high".

... but see Current Limitations below

How Do I Examine Complexity Values?

Activate Advanced > Perfomance Tools > Show avatar complexity information

This displays three values as floating text above each avatar:

  1. The complexity of the avatar
  2. The 'rank' (how close the avatar is to your camera; the closest is 1, next closest is 2...)
  3. The attachment surface area in square meters

Each value is color coded from green to red to indicate how it relates to your own limits (values well under your limit are green, values at or over your limit are red and may be in bold type). Values shown in grey are ones for which you have no limit (your limit is set to zero).

This does not tell you how the complexity of your avatar relates to the limits set by those around you; there is no absolute "good" or "bad" value for complexity, just a relationship between each avatars complexity and the limits of those who are viewing it at any one time.

I Want To See My Friend In Full Detail, Even Over My Limit

If there are specific avatars you want fully rendered even if they are over your limit, you can right click on them and select "Always Render Fully"; this is not persistent between sessions.

Can I Reduce Lag While Still Drawing Other Avatars, and What is an Impostor?

You can reduce the impact of drawing avatars without going all the way to the solid color outlines. The setting "Max. # of non-impostors" controls the number of avatars nearest to your camera that will be fully rendered; any avatars beyond that number will be drawn as an Impostor. An Impostor is drawn with fewer lighting and texture effects, making them look less realistic (some people describe it as looking like a cardboard cutout). Impostors are also updated less frequently (the further they are from your camera, the less frequently they are updated).

Drawing more distant avatars as Impostors does not improve performance as much as the complexity limit, but looks better. You can use both methods together by, for example, setting your complexity limit fairly high so that it affects only the most expensive avatars while setting the non-impostor limit so that only avatars nearest you are drawn in full detail.

Current Limitations

  1. The viewer displays messages to tell you about how many of the people around you may not be rendering you. These messages are based on information from the simulator that ultimately comes from other viewers. At present, not all viewers are sending that information to the simulator, so the messages may misrepresent how often your avatar is being drawn. The accuracy of these messages will improve as this technology is incorporated into more viewers.

Related Debug Settings

The following settings interact with these features:

The maximum number of avatars closest to your camera who may be fully rendered. Avatars beyond those will be rendered as 'imposters', which means that the rendering will be a little simpler and they will be updated less frequently. Increasing this value can cost you in performance if you're in a crowd.
Any avatars over this complexity will be drawn as solid color outlines. Changing this value directly may cause problems; use the slider in the advanced graphics preferences floater
The limit for the total surface area of attachments before switching to solid color rendering. The default (1000 square meters) is intended to protect against deliberate abuse and should rarely be encountered.
If RenderAvatarMaxComplexity is set to zero, this limit is also unlimited.
How long to display notices about complexity and rendering, in seconds. Setting to zero disables the notices.