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 |
![]() | |
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 |
![]() | |
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) |
![]() | |
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 std::string | GetName () |
static Type | GetType () |
![]() | |
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 |
![]() | |
int | _loadDataDirect (const Grid *grid, Texture3D *dataTexture, Texture3D *missingTexture, bool *hasMissingData) |
virtual std::string | _addDefinitionsToShader (std::string shaderName) const |
![]() | |
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 | |
![]() | |
enum class | Type { Any , DVR , Iso } |
![]() | |
Texture3D | _data |
Texture3D | _missing |
bool | _hasMissingData |
std::vector< size_t > | _dataDimensions |
bool | _hasSecondData |
Texture3D | _data2 |
Texture3D | _missing2 |
bool | _hasMissingData2 |
![]() | |
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.