The idea of baking mesh avatars has been a subject coming up in the Content Creators UG over the last couple of weeks. The idea is to change how mesh avatars work. If you don’t understand how a Classic body layers work now, this may be confusing. I’ll try to sort it.
Starting back a couple of years, the Lindens added Server Side Appearance baking (SSA). The Classic avatar is made of three separate parts; head, upper body, and lower body. The parts allow layering of textures placed on the Classic body. Sort of like sticking decals one a top another.
The Classic body is the only thing in SL that has layering. Other object can have Materials. Materials have a diffuse, specular, and normal layer. You may think of these as layers. But, they are attributes of a material and are processed very differently from the layers in a Classic body. The viewer uses the specular and normal layers to calculate how light is reflected from the surface. So, materials are calculated not displayed as a picture.
The Classic body layers are like the layers in GIMP or Photoshop. Each is a picture covering the layer below it. Materials are more like GIMP and Photoshop filters.
The Classic body does not handle materials. One can only stack up diffuse layers (images, pictures). So, jacket, shirt, underwear, tattoo, and skin stack on top of each other like a decal placed on the Classic avatar body. So, the Classic 3 part body can have something like 15 textures making up the avatar appearance.
SSA took those 15 textures and baked them into 3 composite 512×512 textures, thus eliminating up to 12 textures possibly all 1024×1024 and reducing 3 possibly 1024 textures to 512. This greatly reduced the render load for avatars.
Mesh bodies now have a head, body, hands, nails, and feet. The nails have one to 20 textures ranging from 32×32 to 1024×1024 pixels. The mesh body can have skin, tattoo, underwear, and clothes ‘layers’ each with material (diffuse, specular, & normal). Hands s skin, tattoo, glove layers… you probably see the problem.
Mesh bodies provide the possibility for a large number of textures. If I count correctly, something like 32. So, it seems odd that mesh avatars have lower ACI than many Classic avatars. Even nude they aren’t producing an ACI much higher than a nude Classic avatar. That oddity may be the foundation for the Lab revisiting the ACI weight calculation.
If you don’t know, the Lindens are currently collecting weight information and have been for weeks. That information is to be used to adjust the ACI calculation.
Did you know some mesh bodies have 400,000 polygons? How is it possible that mesh body doesn’t have a hugely higher ACI than a Classic avatar with 7,000+ polygons? Good question. I suppose the Lindens are thinking about that too.
If you are wondering where all those polygons are, the short answer is, in onion skin. With mesh bodies, there are 4 copies of the body. Since it is not possible to have layers on an object, to make what appears to be layers on a mesh body requires an object/mesh-body for each layer. We generally refer to these as onion skins, for the obvious reason. So, one mesh body with 4 layers is actually 4 bodies stacked on top of each other.
The idea with SSA being made available for mesh bodies is polygon counts and the number of textures being used could be reduced by baking mesh avatars just as Classic avatars are. Sounds good. But…
The problem is the current oven only bakes diffuse layers. So, if you have something that uses materials, say a shiny bra, and a blouse that uses materials, say a matt t-shirt, the material layers have to be baked also. The Lindens are trying to decide if that material bake is necessary. If so, they have a bunch more baking to do.
There is also the problem of deciding whether to bake to 512×512 as they do for Classic avatars or up that to 1024×1024.
The Lindens are seriously thinking about adding this new bake. My hope is they keep the materials for skins. While we haven’t seen many exotic skins, it is possible to animate the textures used for skin, tattoo, underwear, and clothes… all individually. We can set glow and transparency. I haven’t seen the current Slink, Maitreya, or Belleza people doing it. But, someone will start. But, that isn’t going to work if the Lindens bake those textures.
I think there may also be other complications. What if one mesh body has 3 layers, another 4 and a different one partial parts? In that case how does the oven know what to bake where?
And, how do we handle the current bodies without breaking them? Will we all be buying new bodies? Will the body makers have to redesign everything and then give it away as free updates? There will be some drama, politics, and rage quits.
Plus, how does the system know what is a body or bod part? How is it going to detect attached clothes that should not be baked?
Those are problems for the Lindens to sort out and decide whether the idea can be done. If you want them to hear your input. Attend the Content Creators UG meeting.
If this happens, hopefully it will help with so many mesh avatars not rendering, or staying nude in crowded areas. Although it can be fun it is also damned annoying when its YOUR avatar 🙂
Yeah, that is annoying. I find this happens less often with my avatar when I use the Linden viewer than the Firestorm viewer (empirical).
I expect it would help some. But, part of the problem is mesh downloading time. I see my body render out of place and fully texture seconds before it snaps into place. I can’t see where baking will help that problem.
This is non-sense. High complexity comes from incompetent mesh designers creating clothes or jewelery with hilariously high complexity.
I have seen avatars with over a million complexity, who wear jewellery which has 850-900k complexity. Also the baking is crap. Before Server-Sided Appearances, bodies looked good with 1024×1024 textures. With SSA they looked like some crap game from 2001.
I am not interested in this step back. Today all textures a minimum of 1024×1024. Good skins 2048×2048. Seriously people, it’s 2018, not 2005. We should actually expect 4k textures (4096×4096) these days.
You aren’t keeping up with the details…
“SSA took those 15 textures and baked them into 3 composite 512×512 textures, thus eliminating up to 12 textures possibly all 1024×1024 and reducing 3 possibly 1024 textures to 512. This greatly reduced the render load for avatars.”
I’m afraid you didn’t quite understand how SSB (server side baking, SSA being SSB+avatar height offsets which depend on attachments and shape) works for textures: before SSB, the baking occurred on the viewer side, and was performed by the viewer of the concerned resident’s avatar (i.e. your viewer backed only your own avatar), and the resulting 3 textures (head/torso/legs) were uploaded back to the sim server, which then re-distributed them to all other residents around.
That is, there is *strictly no difference* in how “classic” (non mesh) avatars are *rendered* before and after SSB: it’s simply the communication protocol that got simplified (because most bake failures were due to texture download/upload failures, especially since they were using the UDP protocol) and sped up (it’s faster for the servers to bake the textures themselves and send the result to everyone -your viewer included for your own avatar bakes- than to send each composite texture, then to recover the baked textures and redistribute them to every body else).
As for baking materials, I don’t quite see how this could be done… Materials use different texture channels in the render pipeline, and need to have the local lights (local with regards to each resident’s camera position in their viewer) taken into account… I doubt very much this is feasible.
I’ll ask a Linden again. But, the 3 baked textures become a temp set that is distributed to everyone so they don’t have to down the originals and bake them.
Henri, you are definitely wrong on this. Before server sided baking, the texture were sent separately to the client. You could easily have seen that when in some viewers (such as FIrestorm) you right clicked an avatar and choose “Show Textures” then you would see all separate textures (not baked) in your viewer, not just the 3 baked textures.
After Server Sided Baking, only the three textures were visible.
All in all, Lindens aren’t interested in improving performance. Otherwise they’d update their engine and add constrains for mesh creators. All they just bend their butts down and let the skin creators have them from behind because of their complaint that no one want sell their overpriced shit and look for lame excuses why people not buying their overpriced skins.
They just want to dictate the market with 2000-5000 L$ expensive 10 year old skins instead of creating NEW content like everyone else and they imagine that this would help them achieve this lol
I’ve suggested this idea a few times in the past. With all these layers of textures, why can’t mesh bodies use a similar technique that classic avatars use?
In regards to specular and normals, I don’t see why Lindens can’t just bake the existing specular/normal data (that creators made) into their own respective textures. If a creator didn’t supply a specular/normal, then bake default data.
My concern with this approach is how to handle the different mesh body layers. Will this mean we will need baked layers for Tattoo, Underwear, and Clothing layers? Because a Tattoo fits tight on the body whereas Clothing fits loosely on the body. Those have to be independent to look appealing. That would be 3 or 4 total baked textures plus multiply that by 2 if head and body were independent. Still quite a bit to download. I think the trick is solving how Tattoo, Underwear and Clothing layers work seamlessly and look right.
I think creators/developers are going to need script support to allow re-/baking their creations from a consumer standpoint. Classic avatars suffered from having to force a rebake at times, but that was back in the days it happened most. Wonder if mesh bodies would suffer the same thing. This may need to be limited, though. Can’t have people rebaking all the time. May strain LL’s system.
By the way, I thought it was was referred to as onion skin, not union skin. Much like the layers that make up an onion.
It is onion skin. My finger pattern and then a mistake in global replace that I missed has created the new union skin… itsd a workers thing.
I very much do animate my mesh body’s skin, with materials. I have a water based avatar design I use regularly. I can’t do it on the big name body makers, Maitreya, Slink, Belleza, etc. because none of their bodies are mod, sadly, which really limits my creativity. I need mod perms to animate the body’s texture, since that requires throwing in a script. I’m guessing that’s a large part of why you haven’t seen much of it around.
I have messaged a few of the creator’s CSRs, but with no real luck. I think not enough people are showing them demand for mod perm requirements for them to really think it’s worth it.