[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