[Opensim-dev] Proposal: allow (var)region static maptiles to be loaded from file, where a 1024x1024 inventory texture is not big enough

Jak Daniels jak at ateb.co.uk
Fri Mar 14 20:40:49 UTC 2014


Hi all,

Last year I added some code to allow each region to reference a static 
maptile texture UUID for those of us wanting to produce maptiles more 
like those in secondlife (where they used a viewer bot to take a screen 
shot from a couple hundred metres above the region). This has worked 
well for sims using lots of sculpties and mesh and is still useful even 
with the latest improvements to the warp3d map module.

With the advent of varregions however, the maptiles have to be bigger. 
e.g. A 256x256m region needs a 256x256pixel maptile, but a 1024x1024m 
varregion needs a 1024x1024px maptile. The two examples are still within 
the range of texture asset sizes so its still possible to use a texture 
asset from the inventory for a static maptile in these cases.
For varregions larger than this however, we need a larger texture than 
can be stored as an asset.

The Warp3d map module produces the map texture dynamically as big as it 
needs to be, and then the map image connector chops it up into 256x256px 
(legacy region size) bits to send to the grid. No maptile is stored as 
an asset in this scenario.
I would like to be able to do the same thing with the static maptile, 
but as it cannot always be a texture asset I would like to be able to 
load it from file.
The patch on mantis http://opensimulator.org/mantis/view.php?id=7032 
does just that. It lets you specify a file for the maptile instead of a 
UUID. So there are now two setting that can be used in Regions.ini:

MaptileStaticUUID (existing)
MaptileStaticFile (proposed)

So for example a varregion of size 1280x1280 can use a PNG file of 
1280x1280px.
The code is in the legacy MapImageModule not the warp3d module as that 
is where simulator and region staticmaptiles were originally coded.

I have a couple of varregions up on OSGrid which are using this code. 
They are ClumbuktorIslands and ClumbuktorTestIslands if anyone is 
interested in looking on the inworld map.

There is however a problem with this, which also affects the Warp3d 
maptiler as well (or any maptiler on a a varregion).

Currently the internals of OpenSim only support a texture UUID for a 
map, 1 region=1 maptexture UUID (max 1024x1024px)
There are fields for a region like 
scene.RegionInfo.RegionSettings.TerrainImageID and 
RegionInfo.MaptileStaticUUID.

scene.RegionInfo.RegionSettings.TerrainImageID is used by the WORLD MAP 
when an external caller (like the web based map on OSGrid) asks for a 
map tile for a region. I guess part of the problem here is that these 
grid external services don't understand varregions yet, and there is not 
the stucture internally to support answering queries in this direction. 
Grid->Opensim. Everything does work fine in the other direction though, 
OpenSim->Grid as can be seen using the inworld map.

So... ideas/discussion/comments or objections anyone? Can this code be 
put in to Opensim to add to the existing static maptile support, and how 
in future are we going to handle varregion maptiles for external callers 
such as webbased grid maps etc?

Jak.





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20140314/2372af40/attachment-0001.html>


More information about the Opensim-dev mailing list