Difference between revisions of "Avatar Rendering Complexity"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 12: Line 12:
# total attachment surface area
# total attachment surface area
# total attachment byte size
# total attachment byte size
these other factors can be seen - see [[#How Do I Examine Complexities|How Do I Examine Complexities]]?, but most avatars will be well under these limits.
these other factors can be seen - see [[#How Do I Examine Complexity Values|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?==
==How do I find out the Complexity of my Avatar?==
Line 22: Line 22:
==How do I find out if the Complexity of my Avatar is too high?==
==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; it will appear in a notice along with the complexity of your avatar, and will be updated if it changes significantly.
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.


... but see [[#Current Limitations|Current Limitations]] below
... but see [[#Current Limitations|Current Limitations]] below


==How Do I Examine Complexities?==
==How Do I Examine Complexity Values?==


Activate Advanced > Perfomance Tools > Show avatar complexity information
Activate Advanced > Perfomance Tools > Show avatar complexity information

Revision as of 08:54, 9 September 2015


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 'Max Avatar Complexity' (Preferences > Graphics > Advanced). The default value of that preference depends on how powerful your graphics subsystem is. Any avatar whose complexity is above the value of that setting is drawn as a solid color silhouette, greatly reducing their impact on your viewer performance.

There are some other factors that can cause an avatar to be drawn as a solid color:

  1. total attachment surface area
  2. total attachment byte size

these other factors can be seen - 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.

... but see Current Limitations below

How Do I Examine Complexity Values?

Activate Advanced > Perfomance Tools > Show avatar complexity information

This displays four 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
  4. The attachment size in kilobytes

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 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. Only the project viewer displays the notices about avatar complexity
  2. The project viewer provides an advanced preference to let you set the limit beyond which your viewer will not draw other avatars. Some earlier viewers had debug settings with similar functionality, but the feature has changed enough since those experimental versions that those older settings are no longer used.
  3. The project viewer displays messages to tell you about how many of the people around you may be rendering you. These messages are based on information from the simulator that ultimately comes from other viewers. At present, only the project viewer is 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:

RenderAvatarMaxNonImposters
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.
RenderAvatarMaxComplexity
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
RenderAutoMuteSurfaceAreaLimit
The limit for the total surface area of attachments before switching to solid color rendering. The default (10 million square meters) is intended to protect against deliberate abuse and should rarely be encountered.
RenderAutoMuteByteLimit
The limit for the total number of bytes of attachments before switching to solid color rendering. The default (10 million bytes) is intended to protect against deliberate abuse and should rarely be encountered.