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
1119f29f67
Conversion of osg::notify to OSG_INFO etc.
2010-05-28 16:03:38 +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
2c77b3d637
Re-enabled boundary equalization support.
2010-05-26 16:10:16 +00:00
Robert Osfield
338edd0a71
From Hartwig Wiesmann, fixed setup of texture coordinates for applying a contour layer.
2010-05-21 09:23:41 +00:00
Robert Osfield
046b6a4bfd
Removed inappropriate code which was causing a memory leak. This code was clearly a copy and paste error. The mistake was spotted by Robin Bourianes, with code changes made by Robert Osfield.
2010-05-12 14:34:18 +00:00
Robert Osfield
22dfe6f8d1
From John Ivar Haugland and Michael Platings,
...
JIV:"I deleted a line from the ReaderWriterDAE.cpp file that was introduced in rev 11341. I got a crash on this line when the options pointer was NULL."
MP:"Good spot John. The next line is also unnecessary and can be removed as well (attached, plus some minor code beautifying)"
2010-04-28 20:10:53 +00:00
Robert Osfield
fccda08491
Added corner dirty options to TerrainTechnique, added experimental code paths in GeometryTechnique for accounting for neighbouring corner tiles - optionally compiled out in this check-in.
...
Changed the normal computation in GeometryTechnique so that it doesn't include diagonals, thus avoid normal jumps at corners.
2010-04-09 08:52:40 +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
304214e0df
Introduced the use of linear interpolation of evelvations when sampling
2010-03-25 11:11:35 +00:00
Robert Osfield
5612a4640f
Added a minimum tiles size of 16 to prevent down sampling from being overly aggressive.
2010-03-19 17:09:30 +00:00
Robert Osfield
1590f6be3b
Added in a test of using the utility classes in include/osgUtil/MeshOptimizers to see if they could improve peformance.
...
Tests shown poorer performance with the code enabled so for now the code is #if 0 #endif'd out, and just left in place for future testing.
2010-03-18 15:04:27 +00:00
Robert Osfield
c4e82f0221
Added BlendingPolicy support into osgTerrain::Terrain.
2010-03-16 18:43:59 +00:00
Robert Osfield
1537af6235
Added osgTerrain::TerrainTile::set/getBlendingPolicy(BlendingPolicy) to enable control over whether the tile should have blending enabled on it.
2010-03-16 12:05:41 +00:00
Robert Osfield
f17e401347
Convert NOTIFY to OSG_NOTIFY to avoid problems with polution of users apps with the NOTIFY macro
2010-02-10 12:44:59 +00:00
Robert Osfield
8d8037ee12
Converted osg::notify usage to NOTIFY
2010-02-09 18:24:37 +00:00
Robert Osfield
5cd4faf05b
From Jason Beverage, "I posted a question on osg users about resources not being properly released when using osgTerrain databases and multiple viewers are used a few weeks ago and I've found that at least part of the problem comes down to the fact that the nodes that are traversed by the GeometryTechnique are never actually added to the scene graph, and thus don't have releaseGLObjects called on them. I'm submitting a few changes that takes care of this by allowing the TerrainTechnique to provide a releaseGLObjects implementation. I've applied these changes in osgEarth and this example program no longer crashes on the second run, although I get corrupt geometry (see attached shot) which could be down to a driver issue. If I increment the context ID for the second viewer, I no longer get the corrupt geometry.
...
The attached changes are against OpenSceneGraph 2.8.2.
//Sample program. Run against an osgEarth or VPB database based on osgTerrain.
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
int main(int argc, char** argv)
{
osg::ArgumentParser arguments(&argc,argv);
osgViewer::Viewer* viewer = new osgViewer::Viewer();
viewer->setUpViewInWindow(100,
100,500,500);
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
viewer->setSceneData( loadedModel.get() );
viewer->run();
delete viewer;
viewer = new osgViewer::Viewer();
viewer->setUpViewInWindow(100,100,500,500);
loadedModel = osgDB::readNodeFiles(arguments);
viewer->setSceneData( loadedModel.get() );
viewer->run();
delete viewer;
}"
2009-11-20 11:08:40 +00:00
Robert Osfield
79f780d4b8
Fixed the compute of the extents/bounding sphere
2009-08-27 19:25:23 +00:00
Robert Osfield
9ea43a31c6
From Ross Anderson, "Symptom: The computation of TerrainTiles containing only image layers (no elevation layer) is incorrect. The resulting bounding sphere will always have a radius of zero.
...
The fix is to remove the call to bs.expandBy(v) and compute the radius directly. I believe this call was intended to be bs.expandRadiusBy(v), but it is superfluous when the radius is computed directly."
2009-05-18 12:54:23 +00:00
Robert Osfield
cff4e3437a
Added disabling of mipmapping for non power of two textures
2009-04-06 12:28:02 +00:00
Robert Osfield
9852c299d5
Added check against null colour layer to prevent a crash when a null colour layer is assigned
2009-04-06 11:22:31 +00:00
Robert Osfield
c27729a3bd
Displayed display lists to prevent frame drops when compiling large geometry tiles
2009-04-03 10:47:59 +00:00
Robert Osfield
20ad246896
Added new virtual reseveElements, setElement, getElment and addElement methods to DrawElements
...
to make is easier to write code that can work on DrawElementUByte, UShort or UInt.
Changed the osgTerrain::GeometryTechnique so that it automatically chooses
the use of DrawElementUShort or DrawElementsUInt accordining to the size of the tile.
2009-03-25 11:17:21 +00:00
Robert Osfield
39cecd2a72
From Philip Lowman, "Here's the promised cleanup of the OSG's CMakeLists.txt files for the src/ folder. I'll submit the others separately.
...
Also, there was also a small bug in osgDB's CMakeLists.txt that was causing an error when I tested with CMake 2.4.4.
IF(${OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX} STREQUAL "quicktime")
was changed to
IF(OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX STREQUAL "quicktime")
"
2009-03-23 16:01:02 +00:00
Robert Osfield
f3166c2d96
From Sherman Wilcox, added VS versioning information into libs
2009-02-05 14:55:17 +00:00
Robert Osfield
2e58416826
Added exports, and moved constructors into .cpp.
2009-02-05 14:54:42 +00:00
Robert Osfield
2d55740b3e
Refactored osg::TransferFunction1D to use an std::map internally which is kept in sync with the actual osg::Image that is passed to the GPU.
...
Added .osg support for osg::TransferFunction1D.
Updated wrappers
2009-02-02 14:43:27 +00:00
Robert Osfield
cedffd3adb
Introduced osgVolume::Layer and Locator classes mirrroring similar classes in osgTerrain.
2009-01-05 11:26:26 +00:00
Robert Osfield
4ad20a413a
Fixed warnings
2008-12-18 11:06:57 +00:00
Robert Osfield
a5c32da4ff
Warning fixes
2008-12-17 11:00:16 +00:00
Robert Osfield
3ce53b56c7
Added support for a Terrain::s/getTerrainTechniquePrototype()
2008-12-15 22:18:40 +00:00
Robert Osfield
10186190f6
Introduced support for controlling mipmapping of osgTerrain::ImageLayer and compression of osgTerrain::HeightFieldLayer.
2008-10-20 08:43:25 +00:00
Robert Osfield
9cce90e920
From Glenn Waldron, "osgTerrain::Locator::setTransformAsExtents() does not update the _inverse member. Fix attached.
...
"
2008-10-06 09:39:43 +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
e1930d127e
Refinements to SwitchLayer and WhiteListTileLoadedCallback
2008-09-11 14:28:42 +00:00
Robert Osfield
2be243deda
Added support for SwitchLayer into GeometryTechnique
2008-09-11 14:27:50 +00:00
Robert Osfield
ff299eb104
Introduced osgTerrain::WhiteListTileLoadedCallback for the management of options terrain layers
2008-09-11 13:21:58 +00:00
Robert Osfield
b4b5b5ea41
Introduced TerrainTile::TileLoadedCallback
2008-09-10 18:11:54 +00:00
Robert Osfield
bc747b0935
Added CompositeLayer::addLayer(setname,filename) convinience function
2008-08-29 09:28:28 +00:00
Robert Osfield
ed617f87df
Introduce the concept of layer set name, using the osg::Object::s/getName() to store
...
the setname, and using a compound string (set:setname:filename) in place of standard filename when reading and writing
files.
2008-08-28 16:15:57 +00:00
Robert Osfield
95a359bdab
Introduced SwitchLayer which will form the basis of provided support for varients
2008-08-27 10:13:30 +00:00
Robert Osfield
d05236bfb4
Implemented intial KdTree triangle intersection code, but without culling implemented
2008-07-07 13:21:37 +00:00
Robert Osfield
c4e8d6ee42
Changed the DatabasePager so that it bypasses the Registry::readNode() method and calls
...
readNodeImplementation() directly to avoid calling the KdTreeBuilder.
Updated wrappers.
2008-07-06 18:27:10 +00:00
Robert Osfield
44d144997e
Added prelimnary KdTree data structure and automatic kdtree build support
...
into osgDB::Registry/osgTerrain so that newly created subgraphs can have
KdTree built on all osg::Geometry automatically on load/creation.
2008-07-04 15:57:48 +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
e70d44e6a5
Added cast to avoid warning
2008-04-25 08:34:54 +00:00
Robert Osfield
78964b4baa
Reverted the changes for ill fated tweaks for Apple build
2008-04-24 11:34:43 +00:00
Robert Osfield
8ae30c9bfc
Refactored the inclusion of the headers in the ADD_LIBRARY so that they aren't
...
added under OSX.
2008-04-23 20:50:53 +00:00