Commit Graph

160 Commits

Author SHA1 Message Date
Robert Osfield
27412c27c9 Fixes to the occluder culling code to properly disable occluders to prevent
self occlusion.
2002-06-17 09:10:26 +00:00
Robert Osfield
d7760fbbd4 Further updates to the occlusion culling code, also adding missing OccludeNode
file the .osg plugin.
2002-06-14 08:45:28 +00:00
Robert Osfield
61df1ed6b7 Further work on occlusion culling. 2002-06-13 23:46:02 +00:00
Robert Osfield
0ebe473eb5 Further work on Occlusion Culling. Most of work is complete, just debugging
required now.
2002-06-13 16:21:00 +00:00
Robert Osfield
fa13d948b5 A little more work on Occlusion culling. 2002-06-11 19:52:55 +00:00
Robert Osfield
247cb3ff7e Checked in Macro Jez's additions to osgText to support .osg IO make it
a fully functioning NodeKit.

Also reimplement notify() to try an prevent a crash which has been caused by
to objects in notify.cpp being initiliazed twice, the second time the auto_ptr
holding the dev/null ofstream was being initilized to 0.
2002-06-11 18:41:57 +00:00
Robert Osfield
e1ba8a6292 Added osg::CollectOccludersVisitor which is a helper class for finding active
occluder in the view frustum, to be used as pre cull traversal.
2002-06-10 13:50:25 +00:00
Robert Osfield
348419219d Created new helper class osg::CullStack to handle the accumulation of projection,
modelview and culling sets, to be used during travesal of the scene graph, such
as the cull traversal.
2002-06-10 11:21:21 +00:00
Robert Osfield
d91b848a63 Checked in migration from osgUtil based GUIAdapter code to Neil Salter's
osgGA (Gui Abstraction).  This may break users code, but all it should
require to fix the builds should be a change from
osgUtil::CameraManipulator (etc) to osgGA::CameraManipulator and
include <osgUtil/CameraManipulator (etc) to osgGA/CameraManipulator and
the extra dependency of the link line.
2002-06-09 13:10:09 +00:00
Robert Osfield
0a8d0a255f More more occlusion culling. 2002-06-08 19:58:05 +00:00
Robert Osfield
96a6b3c5c6 Added default IntersectVisitor::_hitReportingMode to be ONLY_NEAREST_HIT. 2002-06-07 13:57:20 +00:00
Robert Osfield
5feba17410 Added new osg::OccluderNode which subclasses from osg::Group, and will
provide hooks for adding ConvexPlanerOccluders to the scene.
2002-06-05 09:39:04 +00:00
Robert Osfield
4d2dbdafac Futher refinement of the new CullingSet support. 2002-06-04 15:56:41 +00:00
Robert Osfield
f67be7c07f Further work on moving culling functionality from CullVisitor into CullingSet,
in preperation for occlusion culling.
2002-06-04 15:21:24 +00:00
Robert Osfield
0732701e9d Fix to CullVisitor::popCullingSet(). 2002-06-03 18:38:40 +00:00
Robert Osfield
db78726acf Updates to shadow occlusion culling code. 2002-06-03 17:49:28 +00:00
Robert Osfield
3f84849210 Additions for the support for ConvexPlaneOccluder. Work still underway. 2002-06-03 15:39:41 +00:00
Robert Osfield
165cc1bf42 Changed the method of expanding of the near and far planes in
CullVisitor::popProjectionMatrix so that it better handled models of zero
thickness orthogonal to the viewing direction.
2002-05-28 11:39:51 +00:00
Robert Osfield
02fc6ad5f8 Various updates to operations related to cull traversal. 2002-05-28 10:24:43 +00:00
Robert Osfield
09121a1583 Fixed a bug in the Optimizer::RemoveDuplicateNodesVisitor which was prevent
removal of node which could have been removed.

Added so extra convinience methods to ClippingVolume and utilized them in the
CullVisitor to push and pop only culling planes that are active.
2002-05-23 15:35:12 +00:00
Robert Osfield
553db68bc4 Added osgUtil::CullVisitor::getCurentRenderGraph() and getRootRenderGraph()
methods which replace getRenderGraph(). Small changing of order of push/pop
of StateSet's in SceneView to clean things up.
2002-05-22 12:01:12 +00:00
Robert Osfield
00f91631c2 Various API updates to suppor light points developments better, but should also
benifit other extensions to rendering.
2002-05-18 08:39:42 +00:00
Robert Osfield
e66372a137 Fixed problem with orhographic projections due to a bug in CullVisitor
where it automatically resets the near and far to the values calculated
during cull traversal.  The maths for converting the computed far and near
into clip coordinates was wrong, fixed this and the problem goes away.
2002-05-15 19:58:04 +00:00
Robert Osfield
806efcd0d4 Exposed the CullVisitor::setComputeNearFarMode 2002-05-15 11:27:47 +00:00
Robert Osfield
d140decb44 Added pixelSize method to CullVisitor, and converted small feature
culling to use the pixelSize method instead of a ratio of radius to
distance from eye point.  setSmallFeatureCullingPixelSize() method
has also been added to provide the user with finer control of small
featyre culling.
2002-05-09 18:59:19 +00:00
Robert Osfield
cf4a3500ec Added new osgGA - GUI Adapter library submitted by Neil Salter. This will
replace the current GUI adapter code inside osgUtil.
2002-05-09 10:31:03 +00:00
Robert Osfield
ae8076f83b dded osg::ClipNode class for managing OpenGL clipping planes, and osgclip demo. 2002-05-02 00:14:40 +00:00
Robert Osfield
06dc1a38df Fix for CisualStudio6.0 build. 2002-04-26 12:06:19 +00:00
Robert Osfield
26d34ed6d6 Qarning fixes, and updated the date in NEWS to reflect todays release of 0.8.45 2002-04-26 08:16:14 +00:00
Robert Osfield
f0e7e8e48b Removed CullViewState from the distribution, moved CullViewState::CullingMode
into CullVisitor, and then removed all references to CullViewState from other
parts of the scene graph.
2002-04-24 20:24:10 +00:00
Robert Osfield
56dc083330 Added support for compute the near and far planes and then applying to
the current projection matrix into CullVisitor itself.  Similar code to
support this has been moved out of SceneView completely.

Added Matrix:: infront of the definition of the static
osg::Matrix::inverse(Matrix) method which was missing.
2002-04-22 14:54:39 +00:00
Robert Osfield
f515d67f4f Cleaned up the handling of the Viewport with osg::SceneView/RenderStage
and CullVisitor so that the Viewport is now managed as part as the global
stateset so that it can be pushed and popped like the rest of state without
problems.  This makes it easier to have multiple viewports within one
scene graph.
2002-04-22 09:37:17 +00:00
Robert Osfield
9574ce97d2 Updated TODO list.
Converted AnimationPath so it is now subclassed from osg::Transform::ComputeTransfromCallback()
so that it can be directly attached to the scene to move objects about.

Changed the osg::SateSet::setGlobalDefaults() so that is sets GL_DEPTH_TEST
to ON.

Added guards and creation of default helper classes in osgGLUT::Viewer and
osgUtil::SceneView so that sensible defaults are used when no settings
are used of osg::State/StateSet,osgUtil::RenderStage/RenderGraph/CullVisitor.
2002-04-21 22:05:26 +00:00
Robert Osfield
3d3534dda9 Updated Versions, and NEWS file to reflect impending release of 0.8.45. 2002-04-21 10:11:03 +00:00
Don BURNS
33b4a4cb5f Fixed small typo in src/osgUtil/RenderStage.cpp 2002-04-19 15:02:34 +00:00
Don BURNS
c6254d5f87 Fixed small typo in SceneView::setDefaults(). 2002-04-18 23:30:06 +00:00
Robert Osfield
7504312839 Added a gset->computeNumVertices() which was missing, this was causing models
to disappear after application of tri stripping.
2002-04-17 11:29:49 +00:00
Robert Osfield
e17261c45f Changed the osg::Billboard comution so that it get passed in the current
modelview matrix rathan than an identity matrix, this matrix is then modified
locally.

Changed the osg::Matrix set methods so they are inline.

Added a few useful comments to MemoryManager.cpp to help people understand
the assert's better.
2002-04-17 09:48:19 +00:00
Robert Osfield
5deafbda24 Added clearing of seperation band between horizontal/vertical split stereo
areas.
2002-04-16 15:31:46 +00:00
Robert Osfield
f8340f9ef5 Removed the cached matrices from osg::Camera, so that
osg::Camrea::getModelViewMatrix() and osg::Camera::getProjectionMatrix() are
calculated on the fly.  Removed various redudent methods, including the
project and unproject methods which are better supported within osgUtil::SceneView.

Added a computeWindowMatrix() method to Viewport, to make it easier to construct
a MV*P*W matrix for converting local coords into screen coords and visa versa.
Converted SceneView and CullVisitor to use this new method.
2002-04-16 11:41:32 +00:00
Robert Osfield
bbef7164db Added CullCallbacks to osg::Node, and osgUtil::CullVisitor. 2002-04-15 13:15:48 +00:00
Robert Osfield
1c4de0e1d2 Fixed display problem with the HUD in osgtext which was caused by the
new mods to SceneView not honouring the z near/far calculation flag.
2002-04-15 08:09:02 +00:00
Robert Osfield
c43607c14d Added support for specificing the eye mapping and seperation between the
horizontal and veritical split stereo modes.

Renamed osg::Image::ensureDimensionArePowerOfTwo() to osg::Image::ensureValidSizeForTexturing().
2002-04-14 22:21:59 +00:00
Robert Osfield
e71b92dbcc Fix for crash in SceneView introduced when ungarded use of _dispalySettings
pointer was added, a if (valid) guard has been added to solve the problem.
2002-04-14 12:53:36 +00:00
Robert Osfield
341ffb2361 Further work on cleaning up SceneView and Camera, in particular moving strereo
support out of Camera and into SceneView. Also enabled the option to set the
projection and modelview matrices directly on SceneView thereby removing the
dependance on osg::Camrea to control the view of the scene.
2002-04-12 18:06:13 +00:00
Don BURNS
14b4b7f98c Solaris PKG distribution now makes a shar (self-extracting shell archived)
changed makepgk to do this.

Changed another one of those pesky cout = std::cout in CullVisitor.cpp
2002-04-12 06:18:41 +00:00
Robert Osfield
6ed233d0d2 Added DataVariance enum and set/get fields to osg::Object to help identify
which objects have values that vary over the lifetime of the object (DYNAMIC)
and ones that do not vary (STATIC).  Removed the equivalent code in
osg::Transform, StateSet and StateAttribute, as these are now encompassed
by the new DataVariance field.

Removed MatrixMode enum from Matrix, and associated fields/parameters from
osg::Transfrom and osg::NodeVisitor, since MatrixMode was not providing
any useful functionality, but made the interface more complex (MatrixMode
was an experimental API)

Added ReferenceFrame field to osg::Transform which allows users to specify
transforms that are relative to their parents (the default, and previous behavior)
or absolute reference frame, which can be used for HUD's, camera relative
light sources etc etc.  Note, the view frustum culling for absolute Transform
are disabled, and all their parents up to the root are also automatically
have view frustum culling disabled.  However, once passed an absolute Transform
node culling will return to its default state of on, so you can still cull
underneath an absolute transform, its only the culling above which is disabled.
2002-04-11 23:20:23 +00:00
Don BURNS
08522bd7db Backed out bad addition of NewCUllVisitor 2002-04-11 16:05:38 +00:00
Don BURNS
ad95c4b9f6 Somehow, cvs forgot to check in a modified Makefile with NewCullVisitor added
to it... Hm.. anyway this fixes it.
2002-04-11 15:54:49 +00:00
Robert Osfield
e037c79917 Fixed refrences to NewCullVisitor which has now been mapped onto CullVisitor. 2002-04-11 08:24:55 +00:00