#include <RenderTraverser.h>
Inheritance diagram for nvtraverser::RenderTraverser:
Public Types | |
enum | JitterTechnique { JT_ACCUM = 0x01, JT_READ_PIXELS = 0x02, JT_PBUFFER = 0x04 } |
enum | RenderTechnique { RT_POINTS = 0x01, RT_WIREFRAME = 0x02, RT_SHADED = 0x04, RT_TEXTURED = 0x10, RT_EFFECTED = 0x20 } |
enum | TransparencyTechnique { TT_NONE = 0x01, TT_STIPPLED = 0x02, TT_BLENDED = 0x04, TT_ORDER_INDEPENDENT = 0x08 } |
enum | OITTechnique { OT_TEXTURE = 0x01, OT_PBUFFER = 0x02 } |
enum | GeometryCacheTechnique { GCT_NONE = 0x01, GCT_DL = 0x02, GCT_VBO = 0x04 } |
Public Methods | |
virtual NVSG_API JitterTechnique | getJitterTechnique (void) const=0 |
Get the current jitter technique. More... | |
virtual NVSG_API bool | isJitterTechniqueSupported (JitterTechnique jt) const=0 |
Test on supported jitter techniques. More... | |
virtual NVSG_API bool | setJitterTechnique (JitterTechnique jt)=0 |
Set the jitter technique the render should use. More... | |
virtual NVSG_API RenderTechnique | getRenderTechnique (void) const=0 |
Get the current render technique. More... | |
virtual NVSG_API bool | isRenderTechniqueSupported (RenderTechnique rt) const=0 |
Test on supported render techhniques. More... | |
virtual NVSG_API bool | setRenderTechnique (RenderTechnique rt)=0 |
Set the render technique the render should use. More... | |
virtual NVSG_API TransparencyTechnique | getTransparencyTechnique (void) const=0 |
Get the current transparency technique. More... | |
virtual NVSG_API bool | isTransparencyTechniqueSupported (TransparencyTechnique tt) const=0 |
Test on supported transparency techhniques. More... | |
virtual NVSG_API bool | setTransparencyTechnique (TransparencyTechnique tt)=0 |
Set the transparency technique the render should use. More... | |
virtual NVSG_API OITTechnique | getOITTechnique (void) const=0 |
Get the current OIT (Order Independent Transparency) technique. More... | |
virtual NVSG_API bool | isOITTechniqueSupported (OITTechnique ot) const=0 |
Test on supported OIT techhniques. More... | |
virtual NVSG_API bool | setOITTechnique (OITTechnique ot)=0 |
Set the OIT technique the render should use. More... | |
virtual NVSG_API size_t | getOITMaxPasses (void) const=0 |
Get maximum OIT passes. More... | |
virtual NVSG_API bool | setOITMaxPasses (size_t maxPasses)=0 |
Set the number of maxumum passes to archieve the desired transparency effect. More... | |
virtual NVSG_API float | getOITThreshold (void) const=0 |
Get the current threshold. More... | |
virtual NVSG_API bool | setOITThreshold (float threshold)=0 |
Set the threshold. More... | |
virtual NVSG_API GeometryCacheTechnique | getGeometryCacheTechnique (void) const=0 |
Get the current geoemtry caching technique. More... | |
virtual NVSG_API bool | isGeometryCacheTechniqueSupported (GeometryCacheTechnique gct) const=0 |
Test on supported geometry caching techhniques. More... | |
virtual NVSG_API bool | setGeometryCacheTechnique (GeometryCacheTechnique gct)=0 |
Set the geometry caching technique the render should use. More... | |
virtual NVSG_API void | getTextureSizeLimits (size_t &width, size_t &height) const=0 |
Get the texture size limits. More... | |
virtual NVSG_API void | setTextureSizeLimits (size_t width, size_t height)=0 |
Set the texture size limits. More... | |
NVSG_API void | setLineAntiAliasing (bool onOff) |
Set the anti-aliasing mode for wire frame drawings. More... | |
NVSG_API bool | getLineAntiAliasing (void) const |
Get the anti-aliasing mode for wire frame drawings. More... | |
NVSG_API float | getLineWidth (void) const |
Get the line width for wire frame drawings. More... | |
NVSG_API void | setLineWidth (float width) |
Set the line width for wire frame drawings. More... | |
NVSG_API void | setPointAntiAliasing (bool onOff) |
Set the anti-aliasing mode for point mode drawings. More... | |
NVSG_API bool | getPointAntiAliasing (void) const |
Get the anti-aliasing mode for point mode drawings. More... | |
NVSG_API float | getPointSize (void) const |
Get the point size for point mode drawings. More... | |
NVSG_API void | setPointSize (float size) |
Set the point size for point mode drawings. More... | |
Protected Methods | |
NVSG_API | RenderTraverser (void) |
Default constructor. More... | |
virtual NVSG_API | ~RenderTraverser (void) |
Default destructor. More... | |
virtual NVSG_API void | handleParallelCamera (const nvsg::ParallelCamera *p, const nvsg::Node *root) |
Provide special treatment of a ParallelCamera object. More... | |
virtual NVSG_API void | handlePerspectiveCamera (const nvsg::PerspectiveCamera *p, const nvsg::Node *root) |
Provide special treatment of a PerspectiveCamera object. More... | |
virtual NVSG_API void | postTraverseGroup (const nvsg::Group *p) |
This function will be called from the framework immediately after a Group has been traversed. More... | |
virtual NVSG_API void | traverseLight (const nvsg::LightSource *p) |
This function will be called from the framework when a LightSource node is visited. More... | |
virtual NVSG_API void | disableLightSource (const nvsg::LightSource *p)=0 |
This function is called from the RenderTraverser framework whenever a LightSource is to be disabled. More... | |
NVSG_API size_t | getCurrentLightIndex () const |
Get the zero based index of the current light. More... | |
Protected Attributes | |
std::map< const nvsg::StateAttribute *, nvutil::Incarnation > | m_perStateAttributeIncarnationMap |
Map between StateAttribute and Incarnation . More... |
Use this pure virtual class as a base class to derive your own render traverser. Render traverser are not allowed to apply changes to the given scenegraph. This base class containes the model matrix and inverse model matrix stack. This is very handy, because you do not have to ask e.g. OpenGL which would be normally very expensive. So your special render traverser has to take care of these stacks.
|
|
|
|
|
|
|
|
|
|
|
Default constructor.
|
|
Default destructor.
|
|
Get the current jitter technique.
Implemented in nvtraverser::GLTraverser. |
|
Test on supported jitter techniques. Use this method to test if this special jitter technique is currently available.
Implemented in nvtraverser::GLTraverser. |
|
Set the jitter technique the render should use.
Implemented in nvtraverser::GLTraverser. |
|
Get the current render technique.
Implemented in nvtraverser::GLTraverser. |
|
Test on supported render techhniques. Use this technique to test if this special render technique is currently available.
Implemented in nvtraverser::GLTraverser. |
|
Set the render technique the render should use.
Implemented in nvtraverser::GLTraverser. |
|
Get the current transparency technique.
Implemented in nvtraverser::GLTraverser. |
|
Test on supported transparency techhniques. Use this technique to test if this special transparency technique is currently available.
Implemented in nvtraverser::GLTraverser. |
|
Set the transparency technique the render should use.
Implemented in nvtraverser::GLTraverser. |
|
Get the current OIT (Order Independent Transparency) technique.
Implemented in nvtraverser::GLTraverser. |
|
Test on supported OIT techhniques. Use this technique to test if this special OIT technique is currently available.
Implemented in nvtraverser::GLTraverser. |
|
Set the OIT technique the render should use.
Implemented in nvtraverser::GLTraverser. |
|
Get maximum OIT passes.
Implemented in nvtraverser::GLTraverser. |
|
Set the number of maxumum passes to archieve the desired transparency effect.
Implemented in nvtraverser::GLTraverser. |
|
Get the current threshold.
Implemented in nvtraverser::GLTraverser. |
|
Set the threshold. The thereshold tells the refinement step of the OIT algorithm if it needs another pass or if it is good enough to show the rendered result. The value lies between 0 and 1 (0%-100%). The refinement step compares the percentage of drawn pixels with the threshold and stops if it is smaller than the user defined value.
Implemented in nvtraverser::GLTraverser. |
|
Get the current geoemtry caching technique.
Implemented in nvtraverser::GLTraverser. |
|
Test on supported geometry caching techhniques.
Implemented in nvtraverser::GLTraverser. |
|
Set the geometry caching technique the render should use.
Implemented in nvtraverser::GLTraverser. |
|
Get the texture size limits. Textures are downscaled to those limits if they are larger.
Implemented in nvtraverser::GLTraverser. |
|
Set the texture size limits. Textures are downscaled to those limits if they are larger.
Implemented in nvtraverser::GLTraverser. |
|
Set the anti-aliasing mode for wire frame drawings.
|
|
Get the anti-aliasing mode for wire frame drawings.
|
|
Get the line width for wire frame drawings.
|
|
Set the line width for wire frame drawings.
|
|
Set the anti-aliasing mode for point mode drawings.
|
|
Get the anti-aliasing mode for point mode drawings.
|
|
Get the point size for point mode drawings.
|
|
Set the point size for point mode drawings.
|
|
Provide special treatment of a ParallelCamera object. The function initializes the model view transformation stack and calls the base class handler function. Reimplemented from nvtraverser::ModelViewTraverser. Reimplemented in nvtraverser::GLTraverser. |
|
Provide special treatment of a PerspectiveCamera object. The function initializes the model view transformation stack and calls the base class handler function. Reimplemented from nvtraverser::ModelViewTraverser. Reimplemented in nvtraverser::GLTraverser. |
|
This function will be called from the framework immediately after a Group has been traversed.
Reimplemented from nvtraverser::Traverser. |
|
This function will be called from the framework when a LightSource node is visited. remarks Custom traversers can override this function for special tasks that need to be performed when visiting a LightSource node. Reimplemented from nvtraverser::Traverser. |
|
This function is called from the RenderTraverser framework whenever a LightSource is to be disabled.
Implemented in nvtraverser::GLTraverser. |
|
Get the zero based index of the current light. This index can be used to refer to the device dependent light in order to switch the light on, when a specific light handler routine is called, or off, after leaving the light's parent Group node. |
|
Map between
|