Pushing the limits

I do really have a lot to talk about — the past two weeks in Second Life® have brought so much change that I’ve simply been unable to write anything much about it 🙂 … and, well, unfortunately my colleagues and clients hate when I blog instead of a) sleeping; b) doing some work for them, so I’ve tried to refrain myself from writing much…

But at least I have to share with you something. Great changes are ahead for the SL client (and hopefully for the simulator software too). We’re not going to see much yet about those, because 2009 is still a “stability” year for Linden Lab, which means that most of their teams are focusing on making everything more stable.

2010, however, will be a year for dramatic changes.

And how dramatic? Well… I’ve been given a sneak preview and been heavilly NDA’d not to talk about it. Breathtaking simply doesn’t describe it properly. But I can safely say that you can forget about all and any competition until late 2011. They will have zero chance of catching up. In fact, if I were drowning in venture capital as all those SL-wannabees seem to be, I’d drop all development, start downloading the latest SL client from the open source repositories, and don’t waste investors’ funding into a stupid new product that nobody will use after 2 or 3 years. I’d put all that money to beat SL with… SL itself (and yes, that would mean developing a “competing product” using the code base from the SL client, and, of course, OpenSim).

Programming geeks, however, are so keen in reinventing the wheel — instead of polishing it and making better products out of existing wheels — that they’re just missing the point, and wasting time and money. For the next two years, nothing will ever come close to SL.

In the mean time, while the Big Announcements are pending — and will remain secret for a long, long time — a few changes are already announced. If you haven’t tested it yet, try the new branch of the SL client (on that page, look at the bottom right corner). Codenamed Snowglobe, it has a completely different development approach than LL’s “stable” version: it’s an open source-driven effort (even though most of the developers are still LL’s), it’s experimental, it releases code all the time, it includes all the latest patches popular with other viewers, and it also includes very experimental code that is left out of the “stable” branch. It’s pretty much at the same speed of development as in 2003-2005, with an added advantage: there are lots of non-LL developers on it too.

This first development cycle is mostly focusing on Philip Linden’s own developments. He has been playing with the map, and offloading the map textures to Amazon’s cloud computing-based storage. This means that textures, in the future, will not be downloaded only from LL’s servers (or co-location facilities) in California, Texas, and wherever the new grid will pop up, but from around the world, from the Amazon server cluster nearest to you 🙂 At this stage only map textures are being downloaded, but many report a huge difference.

A nice side-effect of this approach is that textures will (in the very near future — all textures, not only map tiles) be downloaded using HTTP, that is, the standard Web protocol. What this means for offices or campuses (or even homes where several SL residents share the connection!) is that they can put one standard HTTP proxy in front of their connection, and cache all the textures in it — and forget about texture lag. If you can afford an old computer to act as your proxy server, using, say, a cheap Linux + Squid solution at home with a spare PC , and have a large enough disk, the cool thing about it is that you might be able to cache a huge amount of textures locally. Not only will that save you a lot in download traffic, but, of course, once one texture is downloaded, it will be available for all computers in your home/office/campus. That will make a huge difference!

But that’s not all. Another huge leap ahead is the introduction of dynamic shadows in SL. Oh yes, I know this is not “news”, since it has been showed off quite a long time ago on the Release Candidates. It’s now part of SL 1.23, but cunningly hidden away, because, really, it just works on high-end cards. To activate them, you should follow these instructions (many thanks to Jenny Thielt who provided me with a nice notecard!):

  1. Make sure you have a DirectX 10 compatible card (eg. nVidia 8 series or newer)
  2. Make sure Atmospheric Shaders is on
  3. Open the Advanced menu (if you don’t have it yet, press Ctrl+Alt+D)
  4. Go to Debug Settings…
  5. Type renderuseFBO
  6. Change value to TRUE
  7. Type renderdeferred
  8. Change value to TRUE
  9. Welcome to the world of dynamic shadows.

To disable dynamic shadows, all you need to do is to change the renderdeferred value back to FALSE (you can also change the renderuseFBO value to FALSE too, if you want).

Pretty neat… if you have a top-of-the-line graphics card. What if you don’t?


Kirstens Viewer to the rescue!

I know all about the drama surrounding Kirstenlee Cinquetti, or at least pretend to know 🙂 Honestly? I don’t care. From all I might know, Kirsten might be a Mafia dealer somewhere in downtown Chicago or a senior nurse working at Mother Teresa of Calcutta’s monastery in India. Angel or demon, the results are obvious: there is simply none of the SL viewers I’ve tried that have the same raw performance than her viewer. And thanks to Hyang Zhao‘s work, I can test some of the latest versions of Kirstens Viewer on my poor underpowered Macs too.

It’s always a pleasure to install it, specially on the poor MacBook (not Pro), which gets some 5 or 6 FPS out of the latest batches coming out of LL, as well as on all derivative viewers. Kirstens Viewer just runs flawlessly over 15 FPS out of it — sometimes more, on empty sims. Of course I can’t turn most things on — even Basic Shaders will crash the MacBook, US$10 Intel cards are simply not up to it — but I can get pretty reasonable results. Enough for work; enough for demonstrations.

On my early-2007 iMac, however, things are quite different. You should take into account that Linden Lab works very hard to get a reasonable 15 FPS on almost all computers from the past 3 years — and except for the ones with too low cards, that’s what you should expect to get with “reasonable” settings. I definitely get that on the iMac — with Snowglobe, even with the Atmospheric Shaders on. This is actually quite reasonable.

Kirstens Viewer has allegedly a partial redesign of the whole rendering engine and the texture pipeline. Although I don’t see such a huge difference about texture downloads — LL has done enough improvements on their side as well — Kirstenlee has also incorporated the new lighting engine. Yes, the very same that allows unlimited lights in a scene, and uses new hardware-based tricks on the graphics card to give a boost in performance. The results? Even on old, outdated, obsolete graphics cards you should see an improvement — both in much nicer rendering (the new lighting system is astonishingly good), and in additional raw performance. For me, it means a boost of at least 50%, and when you have so few FPS, 50% does really make a difference (on a top-of-the-line graphics card you might see little difference — except on much nicer rendering).

I’m actually eager to see if Kirstenlee is willing to put her code in Snowglobe 😉 Now that would be something!

But I’ve left the most astonishing feat of the latest version of the Kirstens Viewer (S-17-2 build 198 as I write) for the end: shadows work… even on computers/graphics cards where they shouldn’t!

Shadowed Gwyn on Kirstens Viewer S-17-2

I know, I know… the colours are all wrong (the blue channel seems to be missing) 🙂 And I was running with 1.3 or 1.6 FPS at the time, with lots of flickering problems every other frame. But that’s not the point! The point is — Macs are not supposed to be seeing shadows at all! Low-end, old ATI cards are not even supposed to be able to do dynamic shadows. Combine both, and you’re watching an impossibility, but I can guarantee you that the above image is from an old early-2007 iMac with a ATI Radeon X1600, which is supposed to be like trying to reach the Moon on the back of a Sopwith Camel.

And it can get only better. With some luck, sometimes I even get lovely pictures like the following one:

Snapshot_002

So you’re not impressed? (Yes, I know the image looks better when it’s smaller — if you have clicked on it, you’ll see many artefacts popping up). Well, you might not be, unless you’re running a steam-powered computer from the Victorian era — which is my case — and then, oh yes, you should be impressed! I’m not even aware if there are games able to do dynamic shadows on my computer (they all crash when I turn them on; granted, there are very few games for the Mac, and among those, I have very very few), much less SL, where we were given the assurance that this would never work — on old, underpowered machines like mine.

I hardly understand how Kirstenlee manages to do this, since her rendering code is mostly based on LL’s own released code. I guess she’s not so “careful” about checking and double-checking for “authorised” cards to run shadows. She might just tell the graphics card to do its worse to render shadows; if it does, great. If not, it crashes SL, the computer, and whatnot — but, alas, at least it dies gracefully after a brave attempt 🙂 I’m the lucky one — Kirstens Viewer doesn’t crash my Mac, although, of course, to get the above picture at 1.8 FPS and waiting for he flicker to subside so that I could take a picture with it took quite a while! I might make a movie one day, just for you to get an idea on how bad it is.

But. It. Works.

Granted, if you’re as excited as I am about what the current versions of SL are already able to do, you’d *die* if you had any idea of what will come next…