Sharpview logo

Region impostors

Preliminary draft - May, 2025

Revised: 2025-05-17

 

Introduction

Second Life and Open Simulator offer big worlds, but you can't see very far. The draw distance is a few hundred meters at best. So you never get to see the world at full scale.

Most big-world games let you see for miles. Users today expect Second Life to let you do that. This tech note is about how to do it.

The basic concept is much like sim surrounds, where isolated regions have off-region content that can be seen but not visited. Visible but somewhat distant regions can be represented by low-resolution region impostors, objects that look like the real region from a distance.

Sailors should be able to see distant shores when sailing. Flyers should be able to see the ground over which they are flying and airports they are are approaching. Everyone should be able to see mountains and tall buildings in the distance.

What's a region impostor?

A region impostor is an ordinary SL/OS object, with some restrictions. It's a minature of the region, one which, from a distance, looks like the real region.

Technical details

Region impostors must be mesh objects, not prims or sculpts. The mesh levels of detail are intended to be used as follows:

  • High - an overflight model of the region, probably created using Open Drone Map from 50 to 100 images from a flyover of the actual region. There is no interior detail. Only what's visible from outside is represented. This should look good at ranges of 100 meters or more. Closer than that, and the viewer will draw the real region. Sharpview always runs with a draw distance of about 120 meters, and the nearest four regions are within draw distance.
  • Medium/low - an orthographic view of the region from above projected onto a low-rez elevation map.
  • Lowest - the map tile for the region on a flat rectangle of two triangles. This is the default if we lack better data.

Region impostors can't be the full size of the region, due to SL size limitations on prims. So they will generally be created at some convenient miniature size such as 16 x 16 meters. When the Sharpview viewer displays them, they will be scaled up to region size. They can be rezzed in world to create a minature of a region, and to get a close look at them.

For Open Simulator, region impostors need not be square, and should have the same proportions as the region they represent.

Region impostors initially have a mesh, and a classic base color texture, each represented by a UUID. Texture scale, rotation, and repeat are all default values. There is no texture animation. There are currently no materials, PBR or otherwise.. This is the state of a mesh just uploaded to SL servers, before any use of the "Edit" menu in-world.

Region impostors are 3D models lit by the sun and moon. As usual, the current environment applies to everything you can see.

Only mainland and large estates need impostors. For less than five regions, impostors are unnecessary.

Impostors will be assigned an "estate group ID" for visiblity purposes. An estate group is the set of regions you can see and reach from where you are. You can only see impostors in the same estate group. All mainland is one estate group. This handles the Second Life case where two regions are diagonally adjacent but can't see each other, and avatars cannot cross between them. (Open Simulator does allow diagonal corner crossings.)

When is a region impostor displayed?

The four regions closest to the avatar are displayed normally. Just beyond those regions, an outer ring of ten regions is displayed at High level of detail. Outside that, the next ring of twenty regions is displayed at medium level. Regions further out are displayed at lowest level, like map tiles or flat images. Regions with large mountains can have a lowest LOD with more elevation detail, so distant mountain ranges will be visible.

Possible enhancements

Once glTF is fully supported in Second Life, region impostors could have a PBR emissive texture, which should be used to show the region at night. So, at night, you see impostored regions as they would appear at night. What was lit by the region's own lights will be illuminated. This may not be do-able without server support, because fetching material and PBR info from outside a region where the object is rezzed is difficult.

There may be larger impostors - 4 regions, 16 regions, 64 regions, 256 regions - like a slippy map. This would allow seeing all the way across the grid. The goal is that flying over Second Life should look like this video.

Where is a region impostor stored?

The mesh and its texture are all standard in-world objects. stored in the world's asset servers. There will be an SQL database, initially not part of the overall SL/OS system, which contains index info about these impostor objects and which regions they impostor. Eventually this may be integrated into Second Life or Open Simulator. Near term, this is a tech demo only visible in Sharpview.

How is a region impostor created?

For initial test purposes, SL map tiles and elevation maps will be used to create basic impostors. This has been done many times before. There was a nice minature model of all of Heterocera at SLB21.

Manual additions to impostors are possible. Lighthouses would be a good addition, since sailors use them for navigation. They can emit light, but not rotate or change color; these impostors are static.

The stage after that is to generate low-detail 3D models by overflying the world and taking pictures, then feeding the pictures into Open Drone Map. This is similar to the process by which Google Maps are created.