On my last post, I’ve covered the amazing possibilities of dynamic shadows and the new lighting system, even on under-powered graphics cards and low-end, old computers, thanks to KirstenLee Cinquetti.
This time, I’ll be showing you a video comparing the standard SL viewer (1.23.4) with Snowglobe (1.0.2), LL’s open-source-driven-and-contributed “separate” branch of their main viewer. The main feature it has right now (as well as some user-contributed patches) is downloading textures via HTTP (e.g. a “Web” request). All textures on all other viewers, right now, use LL’s own texture streaming protocol (based on UDP) developed, oh, probably in 2000 or 2001 (it’s hard to say!). Textures are right now just “another asset”, and you get all sorts of packets from sims for all kinds of information: avatar movement, asset download, linksets, instant messages. This means these packets may come out of order, or even get lost, and require retransmission. They can also time out “forever” if you’re unlucky (so a texture remains unloaded and displays as a gray surface).
The new mechanism is more complex, and it’s not very easy to figure out if it’s fully implemented or not (LL says it isn’t; but the results on the video below tend to show otherwise!). It allows a texture to be retrieved using a common HTTP call (just like a normal Web browser) directly from LL’s asset servers — or, in the future, from anywhere on the World-Wide Web (which has the huge advantage that you could, in theory, serve them from your own server — or from Flickr or Picasa! — and bypass LL’s own asset storage entirely). Thus, in the future, providing superfast storage for textures will be a line of business 🙂
Right now we’re just at the first stage: bypassing LL’s cumbersome protocol and just retrieve the textures via HTTP. The difference is… astonishing. You can watch a comparison by yourself on the video below and judge for yourself. Yes, I’ve tried it on very texture-intensive sims: Hair Fair 2009, Neufreistadt, and Armidi.
You’re probably better off if you check “HD” on the YouTube video and increase the size of the display to watch the many annotations I’ve left there 🙂
The important thing to remember is that you have to go to the Advanced menu, look for the Rendering submenu, and check HTTP Get Textures. Or else, the only thing that will load faster is the Map (gosh, I took ages to figure that out!).
Enjoy it 🙂
[UPDATE] Soft Linden believes that actually none of the textures (except for the Map) is being read via
HTTP Requests… yet! Which makes all of this even more amazing, since it’s just a cycle of texture optimisations in the code (not unlike what KirstenLee Cinquetti did with her own viewer). If that’s the case… it means that once that code is in, Snowglobe should be even more faster! :-O
To figure out if some textures are being downloaded by Snowglobe via HTTP, press Ctrl-Shift-3. If you see any textures using “HTP” as the status, those will be loaded via HTTP. Soft might be right — I’ve tried it for a bit, and didn’t catch any textures with that status. Almost all are NET, SIM, or INI, although, granted, this happens so quickly under Snowglobe that it’s very hard to catch… in any case, if any textures are actually being downloaded via HTTP, they must be very few.
[UPDATE 2] Rika Wakanabe has plurked about her thorough tests (using a packet analyser) and has proven that at the time of writing (meaning: SnowGlobe 1.0.2) there are no textures being downloaded via HTTP yet, except for the map tiles. The code on the viewer is all finished, though, but on the server-side, nothing seems to be done yet, and there is no word from Linden Lab on when this might actually be developed. Interestingly, this might give the OpenSimulator developers something to think about and beat Linden Lab at their own game 😉
[UPDATE 3] OpenSim has for a long time had HTTP texture download. Philip Linden, on his last Town Hall meeting, has promised that it would happen “during this week” (thus antecipating the 1.42 server deployment next week), and has been faithful to his promise: according to the Second Life Wiki, HTTP texture download was deployed on the SL grid on August 3, 2010.
It’s very, very important that everybody turns this on as quickly as possible. If, as Philip explained, all texture downloads come from Amazon’s cluster, this means that HTTP texture download will dramatically reduce bandwidth requirements on all the grid — and thus release the sims of 40%-60% of their bandwidth needs. Simultaneously it also means that the sims will need to track less open connections and who has received textures and such, so it might also lessen its CPU requirements as well. Specially in areas with high density of avatars, it’s very important to make sure that everybody has this setting turned on! The improvement should be dramatic in terms of sim lag reduction on those areas.