The Great Bakes-On-Mesh Debate

Well, we are getting an upgrade to the Server-Side-Avatar-Baking service. That is fact. What the service does is old news. The blogosphere was covering it in 2012. By August 2013 it was considered a success. (Ref)

So, what is the service, aka SSA or SSB? Prior to 2012 the classic avatar skin, tattoos, underwear, shirt, and jacket were composited into a single texture in your viewer and used to render your avatar. This is like the process we use in Photoshop, GIMP, and other image editors when we bake a set of layers into a single JPG or PNG image.

...Wait

…Wait

A significant part of the viewer’s render process was the baking effort. Once I was dressed and my clothes baked into an image safely cached on my computer, I was good. BUT… whenever I saw a new avatar, my viewer had to collect all their textures; skin, tat, bra, and top and bake their clothes into a texture to put on the avatar and render it. Everyone was doing that.

With 6 possible zones (ie., hair, head, upper, lower, eyes, skirt) to bake and 3 of them having 5 layers we were downloading a bunch of textures just for the classic body. So, something like 15 or 20 textures per avatar. In a region with 40 avatars… that is like 40×20=800 textures… if they were 1024 textures that could be as much as 3+GB of texture, admittedly in extreme cases. Plus, our viewer had to composite them before the avatar could be rendered. Each viewer was doing this and the region was coordinating the downloads.

The solution implemented was a backend service running in a set of computers that worked with the viewer and region servers to optimize the process. When we changed clothes, the viewer would send the resulting layered set of textures to the bake-service. It would composite all the textures into a single 512×512 texture and create a new texture with a special UUID. Our viewer and everyone else’s viewer would use that single composite and NOT have to download and composite/bake all the individual textures.

The net gain in performance and reduced load on region servers is way significant.

Now 6 years later things have changed. Mesh bodies are the thing now. Our mesh attachments have no layering ability. So, designers worked around that limit by adding more surfaces, onion skinning the models. So, one model for skin layer, one for tats layer, one for underwear, and one for clothes thus imitating the classic avatar. So, we are back to everyone having to download a ton of textures to render the avatar.

Also, we have WAY more mesh to download. A classic avatar is about 7,000+ polygons. That was a conservative model made for the days when a download speed of 1-megabit per second was considered fast. Today a 10,000 to 20,000 polygon avatar model can look better, have more detail, and download in less time than it once did for the 7k classic avatar. But, 4 to 5 models of the avatar and a bunch of 1024 textures on those models… OMG! It is no wonder when rendering 14 avatars, my max number of non-impostor avatars, it drags my computer from 120 FPS down to 20.

The solution is Bakes-On-Mesh (BOM). In the face of the coming Animesh feature, Bakes-On-Mesh is desperately needed.

More… links below.

6 thoughts on “The Great Bakes-On-Mesh Debate

  1. Thanks for trying to explain all this but I fear the people who currently don’t get it wont even take the time to try to get it, or even see anyone else’s point of view. Sometimes change gives people who want to complain an excuse to do so and reasonable people just stand in their way of achieving their goal of making everyone as miserable as they are. I wouldn’t waste any time on the naysayers as neither side ends up happy.

    Anyways, I wanted to try to understand your comments on the materials textures better. It seems like you should still be able to apply them to the same mesh surface. It would not be much different than taking an existing prim that has a base texture and then adding the normal and specular maps. You don’t need an onion skin to do that. Changing the diffuse texture does not automatically wipe the others, so if your mesh body has an option for shine or perspiration, I don’t see why that would have to change when replacing the diffuse map. If changing the BOM texture does wipe the materials or prohibits their use, I would be curious to know why.

    • I think you see it as I do. I should be able to add material to any mod-ok mesh attachment.

      The problem I am still unclear on is what happens if I have need of more than one material? Say I add a swimsuit. I don’t want my ‘skin’ water drops on top of it. So, I think the materials part is going to be complex and confusing.

  2. Pingback: Second Life News 2018 w15 | Nalates' Things & StuffNalates’ Things & Stuff

  3. Please note that the “bake on mesh” feature is not related *at all* to how avatar textures are baked (SSA/SSB or old bakes), i.e. you can use it as well in OpenSim, where textures are baked viewer-side instead of server-side.

  4. Pingback: Second Life News 2018 w16 | Nalates' Things & StuffNalates’ Things & Stuff

Leave a Reply

Your email address will not be published. Required fields are marked *