What version of the OSG API and the VPB do I need to use in order to
take advantage of the new osgTerrain functionality and optimizations?

Thanks.

Alex

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Robert
Osfield
Sent: Wednesday, March 26, 2008 2:13 PM
To: OpenSceneGraph Users
Subject: [osg-users] Attention: osgTerrain class renaming in progress

Hi All,

As part of the work on scaling up VirtualPlanetBuilder to comfortable
handle terrabyte database I am also working on osgTerrain, the two bits
of work are quite closely related as VPB is at its most efficient when
outputting osgTerrain based databases (the --terrain option makes it
about 100-200x faster than it is when build normal polygonal
databases).     Not only VPB is faster when generating osgTerrain
based databases but the resulting databases will be more flexible and
compact, with future opportunities for improving visual quality and
performance.  So all good stuff... but before we get to this terrain
nirvana a few things will need to be refactored...

My current work on osgTerrain is related to making better use of
recycling of deleted objects and sharing of things like tex coord arrays
etc where possible.  This is something that now is required to better
cope with users charging around a multi-terrabyte database at high speed
- as it tends to push memory much more than we're previously done.
Recycling and sharing of object requires a shared container for each
paged terrain database, to this end I'll be introducing a new terrain
node that decorates the whole paged terrain
database.   This new terrain node will also help track the hierarchy
and adjancancy of the tiles being loaded via a tile system.

The idea of a terrain node containing all the PagedLOD nodes, and the
terrain tiles that do the actual rendering of the tiles height fields
brings about a new relationship to osgTerrain, and the the naming really
needs to evolve to better suit it, unfortunately with picking more
suitable names of the new usage model we'll end up break strict
backwards compatibility.   osgTerrain is still young, so I'd rather
take the pain of hit in backwards compatibility now rather than suffer
inappropriate names for the rest of the NodeKits life.    The new
naming scheme goes:


   osgTerrain::Terrain node is renamed osgTerrain::TerrainTile,

             osgTerrain::TerrainTile API and usage model remain almost
entirely the same as the old osgTerrain::Terrain so most developers
would just
             need to rename osgTerrain::Terrain to
osgTerrain::TerrainTile and then everything will compile once more.

   The new terrain node that decorates the whole terrain scene graph
will be called osgTerrain::Terrain,

            The API of the new Terrain node will have some overlap with
TerrainTile, such as provide a default TerrainTechnique that nested
TerrainTile has
            clone, but otherwise its a totally different type of Node,
its a decorator node rather than a rendering element.

            Reusing an original name might cause initial confusion, and
compile errors might through one off the scent.  But... I feel that once
things
            are settled down the new naming will be more sense i.e.
The a Terrain has subgraph that contains one or more TerrainTile.
Each Terrain is
            conceptually a single overall block of terrain, for instance
if you have a solar system, then each planet would be its has its own
Terrain
            node.

All the Layer and TerrainTechnique classes remained unchanged relative
to recent 2.3.x, although these themselves have evolved since 2.0.

Existing .ive database that contain old osgTerrain::Terrain(Tile)
objects will still load, so backwards compatibility has been maintained,
with the objects just loading as TerrainTile and everything behaving
itself as before.  The .osg format won't be able to be mapped so well
unfortunately, to keep .osg files with Terrain nodes in them working
you'll need to do a search a replace of Terrain to TerrainTile.

In my local copy of the OSG I've already made most of these changes, and
plan to check them in tomorrow.  At this point if you directly use
osgTerrain then you'll need to rename Terrain to TerrainTile to get
things back working again, if you don't use osgTerrain then you'll not
notice any different at all.

Thanks in advance for you patience in tracking these changes, Robert.
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or
g
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to