VAPOR3 3.9.4
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
VAPoR::VolumeRegular Class Reference

Regular grid rendering algorithm. More...

#include <VolumeRegular.h>

Inheritance diagram for VAPoR::VolumeRegular:
VAPoR::VolumeGLSL VAPoR::VolumeAlgorithm VAPoR::NonCopyableMixin VAPoR::VolumeCellTraversal VAPoR::VolumeRegularIso VAPoR::VolumeResampled VAPoR::VolumeTest VAPoR::VolumeTest2 VAPoR::VolumeCellTraversalIso

Public Member Functions

 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 ShaderProgramGetShader () 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 ShaderProgramGetShader () 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::VolumeAlgorithm
static VolumeAlgorithmNewAlgorithm (const std::string &name, GLManager *gl, VolumeRenderer *renderer)
 
static void Register (VolumeAlgorithmFactory *f)
 

Protected Member Functions

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
VolumeParamsGetParams () const
 
ViewpointParamsGetViewpointParams () const
 
AnnotationParamsGetAnnotationParams () const
 
TransformGetDatasetTransform () const
 
void GetExtents (glm::vec3 *dataMin, glm::vec3 *dataMax, glm::vec3 *userMin, glm::vec3 *userMax) const
 

Protected Attributes

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
 

Additional Inherited Members

- Public Types inherited from VAPoR::VolumeAlgorithm
enum class  Type { Any , DVR , Iso }
 

Detailed Description

Regular grid rendering algorithm.

Author
Stanislaw Jaroszynski
Date
Feburary, 2019

Renders a regular grid by ray tracing. The CPU side just loads the scalar data and missing values as well as secondary data if needed

The glsl code does a standard sampled ray tracing of the volume.

Definition at line 21 of file VolumeRegular.h.

Constructor & Destructor Documentation

◆ VolumeRegular()

VAPoR::VolumeRegular::VolumeRegular ( GLManager gl,
VolumeRenderer renderer 
)

◆ ~VolumeRegular()

VAPoR::VolumeRegular::~VolumeRegular ( )

Member Function Documentation

◆ _addDefinitionsToShader()

virtual std::string VAPoR::VolumeRegular::_addDefinitionsToShader ( std::string  shaderName) const
protectedvirtual

Reimplemented in VAPoR::VolumeCellTraversal.

◆ _loadDataDirect()

int VAPoR::VolumeRegular::_loadDataDirect ( const Grid grid,
Texture3D dataTexture,
Texture3D missingTexture,
bool *  hasMissingData 
)
protected

◆ CheckHardwareSupport()

virtual int VAPoR::VolumeRegular::CheckHardwareSupport ( const Grid grid) const
virtual

Reimplemented from VAPoR::VolumeAlgorithm.

Reimplemented in VAPoR::VolumeCellTraversal.

◆ DeleteSecondaryData()

virtual void VAPoR::VolumeRegular::DeleteSecondaryData ( )
virtual

◆ GetName()

static std::string VAPoR::VolumeRegular::GetName ( )
inlinestatic

Definition at line 26 of file VolumeRegular.h.

◆ GetShader()

virtual ShaderProgram * VAPoR::VolumeRegular::GetShader ( ) const
virtual

◆ GetType()

static Type VAPoR::VolumeRegular::GetType ( )
inlinestatic

Definition at line 27 of file VolumeRegular.h.

References VAPoR::VolumeAlgorithm::DVR.

◆ GuestimateFastModeSpeedupFactor()

virtual float VAPoR::VolumeRegular::GuestimateFastModeSpeedupFactor ( ) const
virtual

Reimplemented from VAPoR::VolumeAlgorithm.

Reimplemented in VAPoR::VolumeCellTraversal.

◆ LoadData()

virtual int VAPoR::VolumeRegular::LoadData ( const Grid grid)
virtual

◆ LoadSecondaryData()

virtual int VAPoR::VolumeRegular::LoadSecondaryData ( const Grid grid)
virtual

◆ RequiresChunkedRendering()

virtual bool VAPoR::VolumeRegular::RequiresChunkedRendering ( )
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

Implements VAPoR::VolumeAlgorithm.

Reimplemented in VAPoR::VolumeCellTraversal.

Definition at line 28 of file VolumeRegular.h.

◆ SetUniforms()

virtual void VAPoR::VolumeRegular::SetUniforms ( const ShaderProgram shader) const
virtual

Member Data Documentation

◆ _data

Texture3D VAPoR::VolumeRegular::_data
protected

Definition at line 39 of file VolumeRegular.h.

◆ _data2

Texture3D VAPoR::VolumeRegular::_data2
protected

Definition at line 46 of file VolumeRegular.h.

◆ _dataDimensions

std::vector<size_t> VAPoR::VolumeRegular::_dataDimensions
protected

Definition at line 43 of file VolumeRegular.h.

◆ _hasMissingData

bool VAPoR::VolumeRegular::_hasMissingData
protected

Definition at line 41 of file VolumeRegular.h.

◆ _hasMissingData2

bool VAPoR::VolumeRegular::_hasMissingData2
protected

Definition at line 48 of file VolumeRegular.h.

◆ _hasSecondData

bool VAPoR::VolumeRegular::_hasSecondData
protected

Definition at line 45 of file VolumeRegular.h.

◆ _missing

Texture3D VAPoR::VolumeRegular::_missing
protected

Definition at line 40 of file VolumeRegular.h.

◆ _missing2

Texture3D VAPoR::VolumeRegular::_missing2
protected

Definition at line 47 of file VolumeRegular.h.


The documentation for this class was generated from the following file: