Basic NodeVisitor implementation for rendering a scene.
Inheritance:
Public Methods
-
typedef unsigned int CullingMode CullVisitor()
-
virtual ~CullVisitor()
-
virtual CullVisitor* cloneType() const
-
virtual void reset()
-
virtual void apply(osg::Node&)
-
virtual void apply(osg::Geode& node)
-
virtual void apply(osg::Billboard& node)
-
virtual void apply(osg::LightSource& node)
-
virtual void apply(osg::Group& node)
-
virtual void apply(osg::Transform& node)
-
virtual void apply(osg::Projection& node)
-
virtual void apply(osg::Switch& node)
-
virtual void apply(osg::LOD& node)
-
virtual void apply(osg::EarthSky& node)
-
virtual void apply(osg::Impostor& node)
-
void setEarthSky(const osg::EarthSky* earthSky)
-
const osg::EarthSky* getEarthSky() const
-
void setLODBias(const float bias)
-
const float getLODBias() const
-
void setImpostorsActive(const bool active)
- Switch the creation of Impostors on or off.
-
const bool getImpostorsActive() const
- Get whether impostors are active or not.
-
void setImpostorPixelErrorThreshold(const float numPixels)
- Set the impostor error threshold.
-
const float getImpostorPixelErrorThreshold() const
- Get the impostor error threshold
-
void setDepthSortImpostorSprites(const bool doDepthSort)
- Set whether ImpsotorSprite's should be placed in a depth sorted bin for rendering
-
const bool setDepthSortImpostorSprites() const
- Get whether ImpsotorSprite's are depth sorted bin for rendering
-
void setNumberOfFrameToKeepImpostorSprites(const int numFrames)
- Set the number of frames that an ImpsotorSprite's is kept whilst not being beyond, before being recycled
-
const int getNumberOfFrameToKeepImpostorSprites() const
- Get the number of frames that an ImpsotorSprite's is kept whilst not being beyond, before being recycled
-
void setTransparencySortMode(TransparencySortMode tsm)
-
void setCullingMode(CullingMode mode)
- Sets the current CullingMode
-
CullingMode getCullingMode() const
- Returns the current CullingMode
-
void pushViewport(osg::Viewport* viewport)
-
void popViewport()
-
void pushProjectionMatrix(osg::Matrix* matrix)
-
void popProjectionMatrix()
-
void pushModelViewMatrix(osg::Matrix* matrix)
-
void popModelViewMatrix()
-
inline void pushStateSet(const osg::StateSet* ss)
- Push state set on the current state group.
-
inline void popStateSet()
- Pop the top state set and hence associated state group.
-
void setRenderGraph(RenderGraph* rg)
-
RenderGraph* getRenderGraph()
-
void setRenderStage(RenderStage* rg)
-
RenderStage* getRenderStage()
-
const float getCalculatedNearPlane() const
-
const float getCalculatedFarPlane() const
-
inline const osg::Vec3& getEyeLocal() const
Public Members
-
enum
-
enum TransparencySortMode
Protected Fields
-
MatrixStack _PW_Stack
-
ClippingVolumeStack _projectionClippingVolumeStack
-
MatrixStack _modelviewStack
-
MatrixStack _MVPW_Stack
-
ClippingVolumeStack _modelviewClippingVolumeStack
-
unsigned int _bbCornerNear
-
unsigned int _bbCornerFar
-
osg::Matrix _identity
-
osg::ref_ptr<RenderGraph> _rootRenderGraph
-
RenderGraph* _currentRenderGraph
-
osg::ref_ptr<RenderStage> _rootRenderStage
-
RenderBin* _currentRenderBin
-
float _LODBias
-
ComputeNearFarMode _computeNearFar
-
float _computed_znear
-
float _computed_zfar
-
osg::ref_ptr<const osg::EarthSky> _earthSky
-
TransparencySortMode _tsm
-
bool _impostorActive
-
bool _depthSortImpostorSprites
-
float _impostorPixelErrorThreshold
-
int _numFramesToKeepImpostorSprites
-
unsigned int _currentReuseMatrixIndex
-
unsigned int _currentReuseRenderLeafIndex
-
osg::ref_ptr<osg::ImpostorSpriteManager> _impostorSpriteManager
Protected Methods
-
CullVisitor(const CullVisitor&)
- prevent unwanted copy construction
-
CullVisitor& operator = (const CullVisitor&)
- prevent unwanted copy operator
-
inline void handle_cull_callbacks_and_traverse(osg::Node& node)
-
inline void handle_cull_callbacks_and_accept(osg::Node& node, osg::Node* acceptNode)
-
inline const osg::Vec3 getUpLocal() const
-
inline const osg::Vec3 getLookVectorLocal() const
-
inline bool isCulled(const osg::BoundingSphere& sp, CullingMode& mode) const
-
inline const bool isCulled(const osg::BoundingBox& bb, CullingMode mode) const
-
void updateCalculatedNearFar(const osg::Matrix& matrix, const osg::Drawable& drawable)
-
void updateCalculatedNearFar(const osg::Vec3& pos)
-
inline void addDrawable(osg::Drawable* drawable, osg::Matrix* matrix)
- Add a drawable to current render graph
-
inline void addDrawableAndDepth(osg::Drawable* drawable, osg::Matrix* matrix, const float depth)
- Add a drawable and depth to current render graph
-
inline void addLight(osg::Light* light, osg::Matrix* matrix)
- Add a light to current render graph
-
osg::ImpostorSprite* createImpostorSprite(osg::Impostor& node)
- create an impostor sprite by setting up a pre-rendering stage to generate the impostor texture.
-
osg::Viewport* getViewport()
-
osg::Matrix& getModelViewMatrix()
-
osg::Matrix& getProjectionMatrix()
-
const osg::Matrix getWindowMatrix()
-
const osg::Matrix& getMVPW()
-
void pushClippingVolume()
-
void popClippingVolume()
-
inline osg::Matrix* createOrReuseMatrix(const osg::Matrix value)
-
inline RenderLeaf* createOrReuseRenderLeaf(osg::Drawable* drawable, osg::Matrix* projection, osg::Matrix* matrix, float depth=0.0f)
Protected Members
-
typedef std::vector<osg::ref_ptr<osg::Matrix> > MatrixStack MatrixStack _projectionStack
-
typedef std::vector<osg::ref_ptr<osg::Viewport> > ViewportStack ViewportStack _viewportStack
-
typedef std::vector<osg::Vec3> EyePointStack EyePointStack _eyePointStack
-
typedef std::vector<CullingMode> CullingModeStack CullingModeStack _cullingModeStack
-
enum ComputeNearFarMode
-
typedef std::vector< osg::ref_ptr<osg::Matrix> > MatrixList MatrixList _reuseMatrixList
-
typedef std::vector< osg::ref_ptr<RenderLeaf> > RenderLeafList RenderLeafList _reuseRenderLeafList
Documentation
Basic NodeVisitor implementation for rendering a scene.
This visitor traverses the scene graph, collecting transparent and
opaque osg::Drawables into a depth sorted transparent bin and a state
sorted opaque bin. The opaque bin is rendered first, and then the
transparent bin in rendered in order from the furthest osg::Drawable
from the eye to the one nearest the eye.
enum
NO_CULLING
FRUSTUM_LEFT_CULLING
FRUSTUM_RIGHT_CULLING
FRUSTUM_BOTTOM_CULLING
FRUSTUM_TOP_CULLING
FRUSTUM_NEAR_CULLING
FRUSTUM_FAR_CULLING
VIEW_FRUSTUM_CULLING
SMALL_FEATURE_CULLING
ENABLE_ALL_CULLING
typedef unsigned int CullingMode CullVisitor()
virtual ~CullVisitor()
virtual CullVisitor* cloneType() const
virtual void reset()
virtual void apply(osg::Node&)
virtual void apply(osg::Geode& node)
virtual void apply(osg::Billboard& node)
virtual void apply(osg::LightSource& node)
virtual void apply(osg::Group& node)
virtual void apply(osg::Transform& node)
virtual void apply(osg::Projection& node)
virtual void apply(osg::Switch& node)
virtual void apply(osg::LOD& node)
virtual void apply(osg::EarthSky& node)
virtual void apply(osg::Impostor& node)
void setEarthSky(const osg::EarthSky* earthSky)
const osg::EarthSky* getEarthSky() const
void setLODBias(const float bias)
const float getLODBias() const
void setImpostorsActive(const bool active)
- Switch the creation of Impostors on or off.
Setting active to false forces the CullVisitor to use the Impostor
LOD children for rendering. Setting active to true forces the
CullVisitor to create the appropriate pre-rendering stages which
render to the ImpostorSprite's texture.
const bool getImpostorsActive() const
- Get whether impostors are active or not.
void setImpostorPixelErrorThreshold(const float numPixels)
- Set the impostor error threshold.
Used in calculation of whether impostors remain valid.
const float getImpostorPixelErrorThreshold() const
- Get the impostor error threshold
void setDepthSortImpostorSprites(const bool doDepthSort)
- Set whether ImpsotorSprite's should be placed in a depth sorted bin for rendering
const bool setDepthSortImpostorSprites() const
- Get whether ImpsotorSprite's are depth sorted bin for rendering
void setNumberOfFrameToKeepImpostorSprites(const int numFrames)
- Set the number of frames that an ImpsotorSprite's is kept whilst not being beyond,
before being recycled
const int getNumberOfFrameToKeepImpostorSprites() const
- Get the number of frames that an ImpsotorSprite's is kept whilst not being beyond,
before being recycled
enum TransparencySortMode
LOOK_VECTOR_DISTANCE
OBJECT_EYE_POINT_DISTANCE
void setTransparencySortMode(TransparencySortMode tsm)
void setCullingMode(CullingMode mode)
- Sets the current CullingMode
CullingMode getCullingMode() const
- Returns the current CullingMode
void pushViewport(osg::Viewport* viewport)
void popViewport()
void pushProjectionMatrix(osg::Matrix* matrix)
void popProjectionMatrix()
void pushModelViewMatrix(osg::Matrix* matrix)
void popModelViewMatrix()
inline void pushStateSet(const osg::StateSet* ss)
- Push state set on the current state group.
If the state exists in a child state group of the current
state group then move the current state group to that child.
Otherwise, create a new state group for the state set, add
it to the current state group then move the current state
group pointer to the new state group.
inline void popStateSet()
- Pop the top state set and hence associated state group.
Move the current state group to the parent of the popped
state group.
void setRenderGraph(RenderGraph* rg)
RenderGraph* getRenderGraph()
void setRenderStage(RenderStage* rg)
RenderStage* getRenderStage()
const float getCalculatedNearPlane() const
const float getCalculatedFarPlane() const
inline const osg::Vec3& getEyeLocal() const
CullVisitor(const CullVisitor&)
- prevent unwanted copy construction
CullVisitor& operator = (const CullVisitor&)
- prevent unwanted copy operator
inline void handle_cull_callbacks_and_traverse(osg::Node& node)
inline void handle_cull_callbacks_and_accept(osg::Node& node, osg::Node* acceptNode)
inline const osg::Vec3 getUpLocal() const
inline const osg::Vec3 getLookVectorLocal() const
inline bool isCulled(const osg::BoundingSphere& sp, CullingMode& mode) const
inline const bool isCulled(const osg::BoundingBox& bb, CullingMode mode) const
void updateCalculatedNearFar(const osg::Matrix& matrix, const osg::Drawable& drawable)
void updateCalculatedNearFar(const osg::Vec3& pos)
inline void addDrawable(osg::Drawable* drawable, osg::Matrix* matrix)
- Add a drawable to current render graph
inline void addDrawableAndDepth(osg::Drawable* drawable, osg::Matrix* matrix, const float depth)
- Add a drawable and depth to current render graph
inline void addLight(osg::Light* light, osg::Matrix* matrix)
- Add a light to current render graph
osg::ImpostorSprite* createImpostorSprite(osg::Impostor& node)
- create an impostor sprite by setting up a pre-rendering stage
to generate the impostor texture.
osg::Viewport* getViewport()
osg::Matrix& getModelViewMatrix()
osg::Matrix& getProjectionMatrix()
const osg::Matrix getWindowMatrix()
const osg::Matrix& getMVPW()
void pushClippingVolume()
void popClippingVolume()
typedef std::vector<osg::ref_ptr<osg::Matrix> > MatrixStack MatrixStack _projectionStack
MatrixStack _PW_Stack
ClippingVolumeStack _projectionClippingVolumeStack
MatrixStack _modelviewStack
MatrixStack _MVPW_Stack
ClippingVolumeStack _modelviewClippingVolumeStack
typedef std::vector<osg::ref_ptr<osg::Viewport> > ViewportStack ViewportStack _viewportStack
typedef std::vector<osg::Vec3> EyePointStack EyePointStack _eyePointStack
typedef std::vector<CullingMode> CullingModeStack CullingModeStack _cullingModeStack
unsigned int _bbCornerNear
unsigned int _bbCornerFar
osg::Matrix _identity
osg::ref_ptr<RenderGraph> _rootRenderGraph
RenderGraph* _currentRenderGraph
osg::ref_ptr<RenderStage> _rootRenderStage
RenderBin* _currentRenderBin
float _LODBias
enum ComputeNearFarMode
DO_NOT_COMPUTE_NEAR_FAR
COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES
COMPUTE_NEAR_FAR_USING_PRIMITIVES
ComputeNearFarMode _computeNearFar
float _computed_znear
float _computed_zfar
osg::ref_ptr<const osg::EarthSky> _earthSky
TransparencySortMode _tsm
bool _impostorActive
bool _depthSortImpostorSprites
float _impostorPixelErrorThreshold
int _numFramesToKeepImpostorSprites
typedef std::vector< osg::ref_ptr<osg::Matrix> > MatrixList MatrixList _reuseMatrixList
unsigned int _currentReuseMatrixIndex
inline osg::Matrix* createOrReuseMatrix(const osg::Matrix value)
typedef std::vector< osg::ref_ptr<RenderLeaf> > RenderLeafList RenderLeafList _reuseRenderLeafList
unsigned int _currentReuseRenderLeafIndex
inline RenderLeaf* createOrReuseRenderLeaf(osg::Drawable* drawable, osg::Matrix* projection, osg::Matrix* matrix, float depth=0.0f)
osg::ref_ptr<osg::ImpostorSpriteManager> _impostorSpriteManager
- This class has no child classes.
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.