VAPOR3 3.9.4
|
Curvilinear grid rendering algorithm. More...
#include <VolumeCellTraversal.h>
Public Member Functions | |
VolumeCellTraversal (GLManager *gl, VolumeRenderer *renderer) | |
~VolumeCellTraversal () | |
virtual bool | RequiresChunkedRendering () |
virtual int | LoadData (const Grid *grid) |
virtual ShaderProgram * | GetShader () const |
virtual void | SetUniforms (const ShaderProgram *shader) const |
virtual float | GuestimateFastModeSpeedupFactor () const |
virtual int | CheckHardwareSupport (const Grid *grid) const |
Public Member Functions inherited from VAPoR::VolumeRegular | |
VolumeRegular (GLManager *gl, VolumeRenderer *renderer) | |
~VolumeRegular () | |
virtual bool | RequiresChunkedRendering () |
virtual int | LoadData (const Grid *grid) |
virtual int | LoadSecondaryData (const Grid *grid) |
virtual void | DeleteSecondaryData () |
virtual ShaderProgram * | GetShader () const |
virtual void | SetUniforms (const ShaderProgram *shader) const |
virtual float | GuestimateFastModeSpeedupFactor () const |
virtual int | CheckHardwareSupport (const Grid *grid) const |
Public Member Functions inherited from VAPoR::VolumeGLSL | |
VolumeGLSL (GLManager *gl, VolumeRenderer *renderer) | |
~VolumeGLSL () | |
virtual void | SaveDepthBuffer (bool fast) |
virtual int | Render (bool fast) |
virtual int | LoadData (const Grid *grid) |
virtual ShaderProgram * | GetShader () const =0 |
virtual void | SetUniforms (const ShaderProgram *shader) const =0 |
virtual void | GetFinalBlendingMode (int *src, int *dst) |
Public Member Functions inherited from VAPoR::VolumeAlgorithm | |
VolumeAlgorithm (GLManager *gl, VolumeRenderer *renderer) | |
virtual | ~VolumeAlgorithm () |
virtual void | SaveDepthBuffer (bool fast) |
virtual int | Render (bool fast)=0 |
virtual int | LoadData (const Grid *grid)=0 |
virtual int | LoadSecondaryData (const Grid *grid)=0 |
virtual void | DeleteSecondaryData ()=0 |
virtual void | GetFinalBlendingMode (int *src, int *dst)=0 |
virtual bool | RequiresChunkedRendering ()=0 |
virtual float | GuestimateFastModeSpeedupFactor () const |
virtual int | CheckHardwareSupport (const Grid *grid) const |
Static Public Member Functions | |
static std::string | GetName () |
static Type | GetType () |
Static Public Member Functions inherited from VAPoR::VolumeRegular | |
static std::string | GetName () |
static Type | GetType () |
Static Public Member Functions inherited from VAPoR::VolumeAlgorithm | |
static VolumeAlgorithm * | NewAlgorithm (const std::string &name, GLManager *gl, VolumeRenderer *renderer) |
static void | Register (VolumeAlgorithmFactory *f) |
Protected Member Functions | |
int | _getHeuristicBBLevels () const |
virtual std::string | _addDefinitionsToShader (std::string shaderName) const |
Protected Member Functions inherited from VAPoR::VolumeRegular | |
int | _loadDataDirect (const Grid *grid, Texture3D *dataTexture, Texture3D *missingTexture, bool *hasMissingData) |
virtual std::string | _addDefinitionsToShader (std::string shaderName) const |
Protected Member Functions inherited from VAPoR::VolumeAlgorithm | |
VolumeParams * | GetParams () const |
ViewpointParams * | GetViewpointParams () const |
AnnotationParams * | GetAnnotationParams () const |
Transform * | GetDatasetTransform () const |
void | GetExtents (glm::vec3 *dataMin, glm::vec3 *dataMax, glm::vec3 *userMin, glm::vec3 *userMax) const |
Additional Inherited Members | |
Public Types inherited from VAPoR::VolumeAlgorithm | |
enum class | Type { Any , DVR , Iso } |
Protected Attributes inherited from VAPoR::VolumeRegular | |
Texture3D | _data |
Texture3D | _missing |
bool | _hasMissingData |
std::vector< size_t > | _dataDimensions |
bool | _hasSecondData |
Texture3D | _data2 |
Texture3D | _missing2 |
bool | _hasMissingData2 |
Protected Attributes inherited from VAPoR::VolumeAlgorithm | |
GLManager * | _glManager |
Curvilinear grid rendering algorithm.
Renders a curvilinear grid by traversing through the cells. The c++ code does the following:
The glsl code does the following:
Definition at line 32 of file VolumeCellTraversal.h.
VAPoR::VolumeCellTraversal::VolumeCellTraversal | ( | GLManager * | gl, |
VolumeRenderer * | renderer | ||
) |
VAPoR::VolumeCellTraversal::~VolumeCellTraversal | ( | ) |
|
protectedvirtual |
Reimplemented from VAPoR::VolumeRegular.
|
protected |
|
virtual |
Reimplemented from VAPoR::VolumeRegular.
|
inlinestatic |
Definition at line 37 of file VolumeCellTraversal.h.
|
virtual |
Reimplemented from VAPoR::VolumeRegular.
Reimplemented in VAPoR::VolumeCellTraversalIso.
|
inlinestatic |
Definition at line 38 of file VolumeCellTraversal.h.
References VAPoR::VolumeAlgorithm::DVR.
|
virtual |
Reimplemented from VAPoR::VolumeRegular.
|
virtual |
Reimplemented from VAPoR::VolumeRegular.
|
inlinevirtual |
On OSX, some shaders can run for a long time without problems while others will crash if the run too long. It seems to correlate with complexity. Chunked rendering splits the rendering into smaller tasks so they won't crash
Reimplemented from VAPoR::VolumeRegular.
Definition at line 39 of file VolumeCellTraversal.h.
|
virtual |
Reimplemented from VAPoR::VolumeRegular.
Reimplemented in VAPoR::VolumeCellTraversalIso.