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