Sunday 8 July 2007

Baking shadows with semi-transparent overlays

One of the things that sets the visually stunning parts of Second Life apart from the plain ordinary is the use of baked shadows - hardwiring light and shade into the textures under and around objects. A great example of this were the rooms created by AngryBeth Shortbread for the Brian Eno exhibition last weekend.

On Eduserv Island, I use a small set of fairly uniform textures that I've bought in-world. This makes it pretty much impossible for me to modify them in order to bake on my own shadows. So I thought I'd experiment with layering thin semi-transparent prims over the existing textures in order to add baked shadows without needing to start creating my own full set of textures from scratch..

I used the needle outside the Virtual Congress Centre for my first experiment. Here's how it looked before I started...

I created a couple of graded semi-transparent textures, running from about 60% opaque to completely transparent - one a linear gradient and the other radiating from the centre. Then I applied these to the surface of a couple of prims at the base area of the needle - one laid just above ground level and then other showing slightly proud above the surface of the needle.

Here's how the result looks. Not stunning, but not bad either - certainly more visually interesting than the original.

I tried a similar experiment on the ground under ArtsPlace - a building which floats about half a meter above the surface of Eduserv Island. Because ArtsPlace is about 30m by 20m, this required laying several semi-transparent prims next to one another. The result is OK, but not totally brilliant - particularly at the corners of the building where, for some reason, you can see slight joins between the semi-transparent textures. I'm guessing that this is because I haven't got my gradients quite the same on the different textures.

Here's what it looks like. If you look closely, you can just see the joins :-(

Oh well, back to the drawing board!

No comments: