3D terrain, tunnels and undersea air spaces

At present, all terrain in OpenSim is created using a 2D height map, as in Second Life™. Some time ago, I posted a blog post about the idea of using voxels, essentially a way of having a 3D grid of heights similar to 2D pixels. This has not been taken up or discussed anywhere else since but, I would argue, remains a serious issue in the usability of 3D worlds.

What can’t you do? Well, at present, you cannot make a seamless tunnel through land, i.e. you cannot have truly subterranean locations unless they are covered by prim land, rocks or other buildings. To do this, you would need a totally new type of height map, although it would perhaps be possible to write code to automatically upgrade existing height maps in much the same way as other database upgrades are made between OpenSim versions: essentially, the default for the upgrade would be for there to be no voxels beneath other voxels, i.e. no concavities. These could then be tunnelled later, which would require changes to both the server and viewer software. I admit, this is a LOT of re-engineering and unlikely to happen quickly.

Undersea locations would also be possible if sea voxels were marked as such, where no voxel marking sea height could be within a land space or above the maximum surface of the sea. This would enable air pockets under the sea, although excavating them upwards might be a tricky thing to make a viewer do in practice. At the moment, the manual land tools leave a lot to be desired anyway, but this seems like a thing that would be much harder to make work in a usable manner.

What about a temporary, easy workaround? In OpenSim, we love those! How about a tool to copy existing height maps into mega meshes with the same textures (and flat bottoms), that could then be exported, excavated horizontally as required and then put back in place of the existing height maps? The real height map would then be removed by flattening the terrain below the level of the mega mesh that had replaced it. It won’t fix the issue of undersea air pockets but it would make tunnels and caves possible above sea level, or undersea tunnels or caves flooded with water. Of course, as an after-thought, such meshes would also be usable in Second Life™ if they could be scaled to mega meshes without too much land impact. Any thoughts?

Idea(s) for viewer functionality

I was putting on a top today that needed to use the “pants” layer (trousers to us Brits) for the part below the waist, leaving me with no shorts. This is not as mad as it may first appear: the lower part of a “jacket” layer uses the top part of the same space on the avatar surface. Without this, a lot of shirts have to be much shorter than desired, and curtailed with a sharp line.

It’s a great thing that we now have a new “tattoo” layer, which solves a lot of problems for me, as a tattoo user who used to have to face the choice of wearing underwear (particularly important where, say, bra straps should ideally show) or tattoos but not both. Or worse, if a particular top was only in the “undershirt” layer, which made wearing it with tattoos impossible. Happily now solved. But I have found that it doesn’t solve every problem.

Going back to my dilemma today, it would have been nice to have the flexibility of wearing the shorts on the “underpants” layer, even though they default to the “pants” layer. But you can’t change this unless you have the original texture and full permissions to re-make the item, and you need modify rights to be able to know the item’s particular settings. It’s all very long-winded.

It would not affect permissions or property rights in any way if you could, for example, choose to override the default position for wearing clothing. That is to say that “pants” and “underpants” are the same layer but one has a higher priority. If you chose the ordinary “Wear” method or double clicked, you’d expect the default behaviour. But why not add “Wear As” in the viewer? You could limit it so that you could only choose equivalent layers, to preserve the creator’s intended use of the item if they chose “no modify” rights. So “pants” could be worn as “underpants” and “underpants” as “tattoo”, and “shirt” could be worn as “undershirt” but not as “pants”. There might be some small issues: for example, “jacket” has an extra lower section that doesn’t exist in “shirt”, so that part would have to be ignored when rendering on the “shirt” layer. But even so, it would give the wearer some useful extra flexibility with arranging clothing layers, at no real cost. Of course the default layer would not be changed.

Could this be done easily in 3rd party viewers such as Imprudence and Emerald? I’m struggling to see why it couldn’t, although I do wonder if LL would take a view, since they might think it undermines the creator’s intended use of their clothing layers slightly. I would take the view that, with sufficient protections as indicated above, it would have exactly the same visual effect as intended by the creator.

As an aside, I notice that lots of items, although they are worn on the correct layer, do not have the correct icon. I’ve no idea how this came about, but some have a generic icon and a few even have the wrong icon for the layer that they are worn on. Is this just with legacy items or is it still occasionally happening? Does anybody know why it occurred/occurs?

As a second aside, the skirt layer is so lame. It renders quite weirdly, but worse still it is quite unlike the shape of a real skirt. The sliders are less than useless. And worst of all, there is a visible gap between the top of the skirt and the skin, even on minimum sliders, so that it appears to hover around the waist from certain high angles. The need to create prim skirts out of unrealistic strips (akin to grass skirts) and script them for sitting to approximate something just about realistic is also a very primitive workaround for SL’s dated clothing physics. Sitting is a perennial nightmare, as one simply doesn’t know what will happen in the case of any particular animation. There will always be some issues here, for example if the legs are wider than a skirt could reasonably accomodate. Still, this should not be such an appalling problem.

Oh, and my feet still sink into the ground.