Ticket #1654 (closed enhancement: fixed)

Opened 4 years ago

Last modified 4 years ago

Mutli view culling support for shared scene graph

Reported by: gpotts Owned by: gpotts
Priority: highest Milestone:
Component: ossimPlanet Version: ossimPlanet Roadmap
Severity: normal Keywords:
Cc:

Description

Current ossimPlanetTerrain does not support multiple views with the same scene graph. If you want to share a scene among multiple views like an osg::CompositeView? we need to make some modifications to ossimPlanetTerrain and ossimPlanetTerrainTile and ossimPlanetTerrainGeometryTechnique. The changes listed here is only speculative:

- Time stamp for Reference and Simulation and also Frame number stamp for each tile currently in the graph. Add attributes to ossimPlanetTerrainTile that holds these values.

- Use OSG culling instead of our own. We will instead set a Culling mask when visiting the Terrain layer instead of the Culling Mode that we are doing now. Culling mask allows one to turn on and off culling options for that subgraph. Their culling will not be quite as tight but is still good.

- If we use osg culling we remove the need to do setCullingActive(false). If the graph is not visited then we just don't update the time stamp and the frame stamp.

- Add a separate visitor in ossimPlanetTerrainTile that only runs when the frame number changes and removes any non visited tiles by looking at the frame number stamp difference to the current frame number.

- May want to expose the variables/ values used to expire a node in the graph. So you may want to keep a node around for several frames or maybe for several seconds or may just want to expire it immediately once not visited by any shared traversal.

- adjust Technique for priority to be the union of the closest of all views

This should be the only modifications to the ossimPlanetTerrain and ossimPlanetTerrainTile. ossimPlanetTerrainGeometryTechnique

Change History

Changed 4 years ago by gpotts

  • owner changed from potts@… to gpotts
  • status changed from new to assigned

Changed 4 years ago by gpotts

Will also need to modify the TileRequest? t not check the state of the tile. Just let the request occur if never canceled.

Changed 4 years ago by gpotts

We have been progressing on this nicely. I have a simple CompsiteViewer? that tests a completely shared scene graph for 2 views allowing you to zoom to different areas of the world and still get high fidelity without getting culled out. I am still not finished but I need to make a preliminary checkin to test under other environments. Most of the files touched are in relation to ossimPlanetTerrain. I will keep it open to test on other platforms.

Changed 4 years ago by gpotts

  • status changed from assigned to closed
  • resolution set to fixed

This solve 1641 ticket. We now use a frame stamp to determine when a graph is removed.

Note: See TracTickets for help on using tickets.