I’ve been considering this recent post by Penny Patton about Second Life avatar render weight*, in which she explains how she quartered the processing cost to render her avatar with little overall difference to her appearance (h/t to @Wurfi for leading me to the post). Penny has written about this in the past and on SL forums. I’d like to take a stab at the topic myself. I’m not writing from an insider or technical perspective, just as a long-time resident and observer, and I’ll look at the current situation, what’s coming, some edgy suggestions, and what we can do right now. (If you need more background first, check out my post on render weight basics.)
Why Is This Important?
People argue back and forth over the effects of script usage and render/draw weight. I’ll leave scripts for another time, but I think it’s fair to say that avatars with high draw weight can cost significant frames per second (FPS). Some of what we consider lag is attributable to this cause. Avatars with high render weight and environments with needlessly high resolution textures make a graphics card work harder for no improvement in quality.
There are indications that render weight limits could be imposed in future virtual worlds. More immediately, according to this post by Nalates Urriah from November and this video, there will soon be a new method for residents to simplify how other avatars appear, in order to lessen the impact on their own computers (in the video, Oz Linden says that using the new settings, avatars with a render weight above 80k appear to him as “very colorful silhouettes” and he expects that limit will vary based on GPU class). I’ve been pretty happy with setting my viewer to display most people as avatar imposters, but I guess this is somehow better? I really don’t know. I’m getting a stomach ache imagining some conversations after that is implemented.**
I think that both hard limits and settings that modify others’ appearance degrade the user experience. They are defensive measures instituted because of widespread rendering weight overages, but I think the solution needs to begin with education and awareness. I suggest that we start taking charge of the problem now, as resident consumers and creators, rather than waiting for the hammer to drop. If you need some background for the rest of this post, here are some useful articles: Rendering Weight (SL Wiki), …and people wonder why the sim always lags (SLUniverse), and Avatar Rendering Weights (London City).
Observed Draw Weights
Penny writes about people complaining that they can’t get their avatars “into the green” — or into the render weight range that Linden Lab considers optimal***. I think that few try. The vast majority of avatars I see are humanoid and in mainstream human clothing, yet it’s not unusual to see render weights over 200k. I wonder how many SL residents are aware of the issue and actively attempting to improve it. My guess is not many, outside of the small percentage who frequent SL blogs or forums.
Since I wasn’t content to make that assumption, I made some research field trips this weekend. I visited a variety of non-roleplay locations (I didn’t think it was fair to evaluate human street clothes against potentially complicated roleplay or historic costumes) and tried not to bias the results by searching for the highest or lowest render weight. I cammed across from one side to the other and recorded the number for each avatar that rezzed. Here are some of my results.
Average and median render weights for 10-22 avatars observed in each location:
- Jewelry store (composite of 3 stores): 211,411 avg | 134,465 med
- Urban dance club: 155,406 | 128,072
- Temporary fashion sales event (composite of 3): 135,718 | 115,860
- Jazz/romance dance club (composite of 2): 132,969 | 103,128
- Sandbox: 108,886 | 91,345
- Women’s clothing store: 100,241 | 88,101
- Escort/strip club: 99,621 | 79,980
- Winter Wonderland (Linden event/area): 89,257 | 70,628
- Sex club: 85,288 | 80,930
- New Citizens Inc: 65,779 | 46,624
Out of 190 avatars I observed, only 81 would be rendered correctly using the settings Oz Linden had in the video I linked above. That means that 57% of avatars would be rendered as “colorful silhouettes”. No offense intended to Oz and the crew, who do their best, but does that sound like a good experience to you? I’d guess he has a better GPU than many residents, too.
- The avatar with the highest render weight was a jewelry store model, at over 678k, but she was showing off several products at once. Strikingly, four out of the five highest render weight avatars were staff at the locations where I found them: a hostess (440k), owner (401k), security manager (322k), and that model.
- Render weights at the sandbox, strip club, and sex club were lower partially because of avatars wearing little clothing. The lowest render weight I recorded was 1324, on an awkward looking fellow at the sandbox.
- At NCI, most of the younger avatars were under 70k. They were either using the new mesh avatars or they were using a standard body with mostly system clothing and few attachments.
- Whenever I found an avatar whose appearance was unremarkable though he had a high render weight, when I zoomed in I discovered an excess of jewelry. SL jewelry can be gorgeous, but it chews up video resources.(#notalljewelry – some is terrific quality for the weight, but how do we know the difference before buying and wearing it?)
A Brief Personal Example
First of all, render weights don’t seem to be precise. I walked out of my skybox weighing 33,058 and without any changes, measured over 49,000 a minute later. I detached and re-attached my biggest render hog — a single earring — and was back to 33,058. I changed clothing and then put the same outfit back on, and my total was 32,898. Hmm.
Once I removed that sparkling earring, the render weight of my avatar in the cream gown below was 17,664: in the green zone (well, slightly yellowish green). I’d say my avatar looks fine for most dressy events in SL and I’ve been able to customize her look to some extent; wearing mesh feet and fingernails, eyelash attachments; eyeshadow, eyebrows, and lipstick on tattoo layers; and cleavage on an undershirt layer. The gown (from Yasum, available now at the Fashion Fair) has lovely details and nice options via HUD. Contrast that with the second photo, in which I’ve simply changed into another mesh gown with a similar shape and a different hairstyle. The look hasn’t changed much, but my render weight has gone from the green into the red, at 40,890. (Honestly, it’s still low enough that I wouldn’t worry about it, but it could make a difference in a resource-intensive environment.)
Because I often wear one or two piece outfits, simple shoes, and mesh hair from a couple makers who are fairly consistent, it’s pretty easy for me to put together an outfit with a weight of 20k or less. My jewelry choices are very limited without adding a lot of weight, though. On my alts, who tend to wear more fanciful outfits with attachments, it’s hard to get under 60k.
I’ve been in SL since mid-2005. Last year I assembled an outfit for a conference and thought I was doing well for lag purposes, wearing system layers, yet I was horrified to see I had a huge render weight because of shoes and three sculpted pieces. The thing is, I shouldn’t need to be an expert in 3D modeling to understand how to put together an avatar that works well on the grid. I shouldn’t need to check my clothing in wireframe view or rez it on the ground to pull it apart. A virtual world that requires that level of knowledge of its residents will remain a niche product.
How Can We Make Better Choices?
By turning on the setting to see avatar render weight, we can put together outfits that balance appearance, performance, and environment. The biggest problem I see is that right now, it’s almost impossible for the average SL resident to make purchase decisions that take performance into account. It’s impossible to judge based on a picture or a demo, which may be higher or lower than the actual product. Also, many items are not modifiable, leaving us unable to make improvements even if we have the know-how. In this thread, one woman was surprised to discover that her mesh boots had a draw weight over 77k, but she was able to replace them with another brand — also very detailed and shiny — that had a weight of 4k.
Wouldn’t it be useful to know draw weight before we buy? After all, if you are buying a building or furniture for use on your land, you expect to know the land impact of that item, because you have a limited amount of available primspace. It’s fair to think of your avatar as having a limited amount of render weight, too, but creators don’t give us the information to make good decisions. Nalates wrote about this problem in her post “Second Life and LoD” a few months ago, and made a JIRA feature request that seems to have been accepted in December. That request proposed that a warning appear when attaching or wearing an item that would greatly increase render cost. I think that’s fine, but it’s too late in the process. Give me that information when I’m making a purchase, and supplement with a warning for items I owned before purchase labeling became standard.
Let me be clear about my opinion here. To allow residents to unknowingly buy items with high render weight, then to implement viewer rules so those items are rarely visible to others, is rotten. It is particularly unfriendly to less knowledgeable and new residents, but since none of us have draw weight information before buying, it can devalue purchases and lead to wasted money and angry customers. To me, it seems like the logical order is:
- Require render weight information on new Marketplace listings
- Strongly suggest that render weight be provided for in-world sales and existing Marketplace listings
- Put together educational campaign for residents about render weight
- Implement warning when attaching/wearing a high render weight item
- Implement “render muting” based on GPU class that automatically degrades appearance of high weight avatars
I don’t want to impede creators from making whatever they imagine. If someone wants to build an attachment that overflows with polygons, with each facet coated in a different 1024×1024 texture, have fun. SL is a good place to experiment with the basics of 3D modeling and inexperienced creators may not have the skill level to build efficiently. However, I would like to be able to choose my purchases based on both artistic and technical details, because both make a difference to my in-world experience.
Render Tax Thought Exercise
Consider this a thought exercise; I know it would be unpopular and hard to implement. Over a beer or two on Saturday, I brainstormed solutions with my husband. Like me, he has been in SL over 9 years, plus he’s a hobbyist builder and scripter and a software architect by trade. We settled on the idea of a render tax. His suggestion was more extreme than mine, but we agreed on the overall concept.
What if there was a surcharge added to each purchase based on the render weight of the item? Products that were very efficient would have little to no tax, but then the tax would increase along with render weight. Using an example from above, if I was choosing between two pairs of boots, both priced at L$600, but one had no tax and the other had a tax of L$200, I think there would immediately be motivation for both creators and consumers to consider render weight. This wouldn’t impose limits, but it would bring awareness and encourage efficiency.
Allow me to add to the thought exercise conditions: the income generated by the surcharge would be used for grants to SL educators and creators who teach virtual world skills such as building, scripting, texturing, machinima, photography, roleplay, live performance, etc. No one wants to pay more, but it’s an interesting place to start thinking, isn’t it?
Draw Weight Info Panel Proposal
In Second Life viewers now, it is possible to see the script info for your avatar: a list of which items are running scripts and how much memory each uses. Why isn’t there a similar info panel for render weight? If I see that my render weight is 100k, with the current system I would have to take off items one by one and watch my count. Why not just show me a list with the weight for each item contributing to my total? Even better, include a chart of preferable totals in that same window. (Forgive me if this exists in the official viewer or a third-party viewer I don’t use, but I don’t see it in Firestorm).
Ten Things We Can Do Right Now
- Check your render weight.
- If you’re confident doing it and your render-heavy items are modifiable, follow some of Penny’s suggestions about ripping out root prims, unnecessary layers, and scripts.
- Ask the creator about render weight before buying. Wouldn’t it suck to buy a gorgeous attachment, only to discover that nobody can see its glory because it’s too heavy to render? Before making a significant purchase, send a notecard to the creator and ask about render weight and script usage.
- Ask your favorite creators to add render weight to their product information.
- Ask your favorite SL fashion bloggers to add render weight to their photo descriptions.
- Don’t count on mesh to be efficient. Well-made mesh will be lighter than sculpties, but mesh alone isn’t a guarantee.
- Don’t equate high detail with high render costs. The cream gown above has a weight near 4500 but is quite detailed.
- When cleaning out inventory, check render weight as part of your filtering process.
- When you save an outfit, include its render weight in the description.
- Make and save some outfits with low render weight and low script usage for visiting busy places.
* Penny also posted this in the SL forums, where there are comments that add to the discussion.
** One of my imagined conversations after the introduction of render muting:
Fred: Why are you a green blob?
Wilma: I’m not. What do you mean?
Fred: Half the people here are blobs. There must be something wrong with my computer.
Wilma: I’m seeing some blobs too. This sim is laggy.
Fred: Yeah. SL is laggy. It sucks.
Wilma: Yeah. But I can see myself, and I’m not a green blob. This gown I bought has hundreds of emeralds. It’s expensive but so sparkly!
Everyone who understands render weight: *facepalm*
*** I can’t find a chart showing what render weights are considered green, yellow, or orange. With some experimentation and my color judgement, it seems that as of today, green starts to turn yellow over 15k, it’s bright yellow by 19k, is borderline gold/orange by 24k, very orange by 27k, reddish-orange at 32k, and full red by 40k. It was rare for me to see a rendered avatar with a bright green weight during my observation trip.