Robert Osfield
8fc287c1b7
Added asUpdate/Cull/EventVisitor and asCamera/asDrawable to osg::Object and usage of these within the code base to avoid dynamic_cast<> usage.
2016-01-20 17:49:10 +00:00
Robert Osfield
afbf20eba9
First step of refactoring the osg::Program management in osgTerrain::GeometryPool for better performance by placing default osg::Program and shader defines on a single StateSet below the osgTerrain::Terrain
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14704 16af8721-9629-0410-8352-f15c8da7e697
2015-02-20 15:02:43 +00:00
Robert Osfield
5c023d1f76
Moved osgTerrain::GeometryPool from osgTerrain::DisplacementMappingTechnique to the osgTerrain::Terrain
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14703 16af8721-9629-0410-8352-f15c8da7e697
2015-02-18 10:52:52 +00:00
Robert Osfield
f13dd3d75d
Added a fix for a multi-threading bug that occured when TerrainTiles were accessed via the Terrain::_updateTerrainTileSet that were being deleted at the same time by the DatabasePager thread.
2012-08-31 16:00:55 +00:00
Robert Osfield
14a563dc9f
Ran script to remove trailing spaces and tabs
2012-03-21 17:36:20 +00:00
Robert Osfield
a53308f7e8
Gunnar Holm, "After upgrading from 2.8.3 to 3.0.1 we experienced a lock in the Mutex
...
functionality when using Terrain::setVerticalScale. This was caused by
the following call sequence resulting in a lockup:
void Terrain::setVerticalScale(float scale)
CALLS dirtyRegisteredTiles();
void Terrain::dirtyRegisteredTiles(int dirtyMask)
SETS LOCK OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);
and CALLS (on every tile) setDirtyMask(dirtyMask);
void TerrainTile::setDirtyMask(int dirtyMask)
CALLS _terrain->updateTerrainTileOnNextFrame(this);
void Terrain::updateTerrainTileOnNextFrame(TerrainTile* terrainTile)
SETS LOCK OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);
******* PROBLEM - since lock has already been set! ********
The suggested fix submitted changes from using Mutex to ReentrantMutex.
"
2011-12-23 17:34:07 +00:00
Robert Osfield
c89c2502ed
Removed default assignement of GeometryTechnique as the TerrainTechniquePrototype.
2010-11-25 11:40:09 +00:00
Robert Osfield
526b39060c
From Brad Christiansen and Robert Osfield, "I have added the new function as suggested. The change was made against trunk from an hour or so ago. I haven't tested the performance yet (and probably won't get a chance till next week) but I have checked my terrains still work. I defaulted the equalization to off as I thought this was best until we can look into why there is the performance hit.
...
", note from Robert, tweaked the names and enabled the code path.
2010-11-02 12:15:18 +00:00
Robert Osfield
6798fe4c25
From Brad Christiansen, "To build OSG using Visual Studio 2010 Terrain.cpp requires #include <iterator>. This is a very common fix when using 2010 due to changes in Microsoft STL.
...
"
2010-07-31 10:17:06 +00:00
Robert Osfield
98203252dc
Build fixes for when OSG_USE_REF_PTR_IMPLICIT_OUTPUT is set to OFF
2010-06-18 09:07:17 +00:00
Robert Osfield
80389a4a13
Re-organized the access of the mutex in Terrain to avoid deadlocks, and temporarily switched off the update of the neightbouring tile boundaries within the GeometryTechnique::generateGeometry method, again to avoid deadlocks.
2010-06-16 12:46:16 +00:00
Robert Osfield
72663ec3df
Moved across to using more flexible dirtyMark when dirtying tiles
2010-05-27 13:58:46 +00:00
Robert Osfield
c6c26d5d44
Change Terrain so that it subclassed from CoordinateSystemNode.
...
Implemented new update scheme of GeometryTechnique to avoid potential threading issues.
Added Terrain support to .ive.
2010-04-03 16:21:34 +00:00
Robert Osfield
a8bbf0a809
Added support for boundary equalization to GeometryTechnique
2010-04-01 21:06:56 +00:00
Robert Osfield
c4e82f0221
Added BlendingPolicy support into osgTerrain::Terrain.
2010-03-16 18:43:59 +00:00
Robert Osfield
3ce53b56c7
Added support for a Terrain::s/getTerrainTechniquePrototype()
2008-12-15 22:18:40 +00:00
Robert Osfield
5fe30854dd
From Jason Beverage, "Attached is a fix for getTile in the Terrain class. It should be checking for itr == _terrainTileMap.end() instead of itr != _terrainTileMap.end()."
2008-10-06 08:48:44 +00:00
Robert Osfield
4d60d73eca
Reorginized the TerrainTile/TerrainTechnique dirty mechanism so that TerrainTile
...
now holds the dirty flag and enables/disables event traversal in response dirty
being set/unset. This allows terrain to be automatically updated in response
to Terrain scale and sample ratio changes.
2008-05-27 15:30:20 +00:00
Robert Osfield
1519d0d546
From John Vidar Larring, "Added vertical scale as a property of osgTerrain::Terrain. Lets you configure vertical scale when initializing the terrain model. E.g:
...
osgTerrain::Terrain* terrain = findTopMostNodeOfType<osgTerrain::Terrain>(model.get());
if (!terrain)
{
terrain = new osgTerrain::Terrain;
terrain->addChild(model.get());
terrain->setVerticalScale(2.0f);
model = terrain;
}
viewerWindow->setSceneData(model.get());
"
2008-05-27 13:11:47 +00:00
Robert Osfield
234bfeb648
Removed hardware down sampling hack from GeoemtryTechnique and replaced with Terrain::g/setSampleRatio()
...
usage.
2008-04-22 11:39:47 +00:00
Robert Osfield
3f81a994b7
Introduced mutex into Terrain node to manage the tile system data structures
2008-03-28 15:31:46 +00:00
Robert Osfield
2567b810cf
Removed TileSystem class, and added support for TerrainTile's automatically
...
registering and unregistering themseles with the enclosing Terrain node.
2008-03-27 13:21:36 +00:00
Robert Osfield
6396a156a2
Renamed osgTerrain::TerrainSystem to osgTerrain::Terrain
2008-03-27 11:55:03 +00:00
Robert Osfield
35c5bd2c92
Renamed Terrain to TerrainTile
2008-03-27 10:55:39 +00:00
Robert Osfield
a9d283ca73
Introduce TerrainSystem node which decorates a complete terrain model made up of Terrain tiles.
2008-03-26 20:06:54 +00:00
Robert Osfield
67f1503c7d
Refactored osgTerrain so that the interface for setting up layer is more straight forward, and added support into GeometryTechnique for handling multiple layers
2008-02-22 11:52:23 +00:00
Robert Osfield
d2aaa26c88
Disabled the default enabling of update traversal on osgTerrain::Terrain as this was preventing PagedLOD subgraphs from expiring inactive subgraphs
2008-01-19 13:31:12 +00:00
Robert Osfield
bc6c7fcece
Added call to ClusterCullingCallback to determine if the Terrain node is culled
...
by cluster culling.
2008-01-17 17:10:12 +00:00
Robert Osfield
efdc026114
Fixed the computation of terrain bounding volume so that it properly accounts for
...
elevation layers
2008-01-17 15:37:35 +00:00
Robert Osfield
1c6193ba78
Renamed osgTerrain::TerrainNode to osgTerrain::Terrain and introduced basic
...
.osg read support for osgTerrain::Terrain.
2007-08-07 19:53:57 +00:00
Robert Osfield
1a09763515
Removed Terrain.cpp and header from CVS repository.
...
Added support for setting the maximum visiable distance of top level
to osgTerrain::DataSet, and debugging code which insert a axes.osg
above each tile.
2004-05-06 10:59:08 +00:00
Robert Osfield
023d2254ab
Early development work on osgTerrain.
2003-11-25 19:42:35 +00:00