TTK
|
Base Class for all CinemaDarkroom Shaders. More...
#include <ttkCinemaDarkroomShader.h>
Public Types | |
typedef ttkAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
![]() | |
void | UpdateThreadNumber () |
void | SetThreadNumber (int threadNumber) |
void | SetUseAllCores (bool useAllCores) |
void | SetDebugLevel (int debugLevel) |
void | SetCompactTriangulationCacheSize (float cacheSize) |
vtkDataArray * | GetOptionalArray (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, const int &inputPort=0) |
vtkDataArray * | GetOrderArray (vtkDataSet *const inputData, const int scalarArrayIdx, ttk::Triangulation *triangulation, const bool getGlobalOrder=false, const int orderArrayIdx=0, const bool enforceOrderArrayIdx=false) |
vtkDataArray * | checkForGlobalAndComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *orderArray, ttk::Triangulation *triangulation, const bool enforceOrderArrayIdx) |
vtkDataArray * | ComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *oldOrderArray, ttk::Triangulation *triangulation) |
ttk::SimplexId * | GetIdentifierArrayPtr (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, std::vector< ttk::SimplexId > &spareStorage, const int inputPort=0, const bool printErr=true) |
ttk::Triangulation * | GetTriangulation (vtkDataSet *dataSet) |
int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) override |
vtkDataSet * | GetOutput () |
vtkDataSet * | GetOutput (int) |
void | SetInputData (vtkDataSet *) |
void | SetInputData (int, vtkDataSet *) |
void | AddInputData (vtkDataSet *) |
void | AddInputData (int, vtkDataSet *) |
template<typename inputType > | |
int | checkEmptyMPIInput (inputType *input) |
This method tests whether the input is a nullptr. If the computation is being done on multiple processes, it is possible that the domain of one process or more is empty, but not others, therefore in that particular case the rest of the filter will not be computed but an error message will not be sent. | |
![]() | |
Debug () | |
~Debug () override | |
virtual int | setDebugLevel (const int &debugLevel) |
int | setWrapper (const Wrapper *wrapper) override |
int | printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
void | setDebugMsgPrefix (const std::string &prefix) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Static Public Member Functions | |
static ttkCinemaDarkroomShader * | New () |
static int | IsTypeOf (const char *type) |
static ttkCinemaDarkroomShader * | SafeDownCast (vtkObject *o) |
![]() | |
static ttkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static ttkAlgorithm * | SafeDownCast (vtkObject *o) |
static std::string | GetOrderArrayName (vtkDataArray *const array) |
static vtkInformationIntegerKey * | SAME_DATA_TYPE_AS_INPUT_PORT () |
Protected Member Functions | |
ttkCinemaDarkroomShader () | |
~ttkCinemaDarkroomShader () override | |
int | FillInputPortInformation (int port, vtkInformation *info) override |
int | FillOutputPortInformation (int port, vtkInformation *info) override |
std::string | PerformReplacements (const std::string &input) |
int | AddReplacement (const std::string &name, const std::vector< double > &values, const bool &isInt=false) |
int | CreateFullScreenQuad () |
int | CreateRenderer () |
int | InitRenderer (vtkImageData *outputImage) |
int | AddTexture (vtkImageData *image, int arrayIdx, int textureIdx) |
virtual std::string | GetVertexShaderCode () |
virtual std::string | GetFragmentShaderCode () |
virtual int | Render (vtkImageData *image, const std::string &name) |
![]() | |
ttkAlgorithm () | |
~ttkAlgorithm () override | |
void | MPIGhostPipelinePreconditioning (vtkDataSet *input) |
void | MPIPipelinePreconditioning (vtkDataSet *input, std::vector< int > &neighbors, std::map< int, int > &neighToId, ttk::Triangulation *triangulation=nullptr) |
bool | checkGlobalIdValidity (ttk::LongSimplexId *globalIds, ttk::SimplexId simplexNumber, unsigned char *ghost, int *rankArray) |
int | GenerateGlobalIds (vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId) |
void | MPITriangulationPreconditioning (ttk::Triangulation *triangulation, vtkDataSet *input) |
virtual int | RequestDataObject (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) |
virtual int | RequestInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTime (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTimeDependentInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateExtent (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestDataNotGenerated (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestData (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
int | FillInputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
int | FillOutputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
![]() | |
int | printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const |
int | welcomeMsg (std::ostream &stream) |
Additional Inherited Members | |
![]() | |
float | CompactTriangulationCacheSize {0.2f} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
Base Class for all CinemaDarkroom Shaders.
Input | vtkImageData. |
Output | vtkImageData. |
This class provides all utility functions to create and use an OpenGL render context. The core concept of this class is to make a shallow copy of its vtkImageData input, and then add a point data array to the output that corresponds to a render pass. This class provides various abstract concepts to configure this render pass in the RequestData method:
1) Subclasses can override the GetVertexShaderCode and the GetFragmentShaderCode methods to provide their own shaders. By default, the vertex shader renders a fullscreen quad, and the fragment shader simply produces a red color.
2) Instead of actually passing shader uniforms, this class uses string replacements to feed shader parameters into a render pass. One can add a replacement with the AddReplacement method, where type conversion to GLSL is done automatically.
3) Point data arrays of the input can be passed into a render pass as data textures via the AddTexture method.
Related Publication: "Cinema Darkroom: A Deferred Rendering Framework for Large-Scale Datasets". J. Lukasczyk, C. Garth, M. Larsen, W. Engelke, I. Hotz, D. Rogers, J. Ahrens, and R. Maciejewski. IEEE 10th Symposium on Large Data Analysis and Visualization (LDAV), 2020.
Definition at line 53 of file ttkCinemaDarkroomShader.h.
Definition at line 104 of file ttkCinemaDarkroomShader.h.
|
protected |
Definition at line 35 of file ttkCinemaDarkroomShader.cpp.
|
overrideprotecteddefault |
|
protected |
Adds or updates a replacement that will be later used during the render pass to update shader strings.
Definition at line 104 of file ttkCinemaDarkroomShader.cpp.
|
protected |
Adds a texture to the render pass with the name tex{textureIdx} whose values correspond to the point data array specified via SetInputArrayToProcess(arrayIdx).
Definition at line 192 of file ttkCinemaDarkroomShader.cpp.
|
protected |
Definition at line 119 of file ttkCinemaDarkroomShader.cpp.
|
protected |
Definition at line 137 of file ttkCinemaDarkroomShader.cpp.
|
overrideprotected |
Definition at line 45 of file ttkCinemaDarkroomShader.cpp.
|
overrideprotected |
Definition at line 54 of file ttkCinemaDarkroomShader.cpp.
|
virtual |
Reimplemented from ttkAlgorithm.
Reimplemented in ttkCinemaDarkroomColorMapping, ttkCinemaDarkroomCompositing, ttkCinemaDarkroomFXAA, ttkCinemaDarkroomIBS, ttkCinemaDarkroomNoise, ttkCinemaDarkroomSSAO, ttkCinemaDarkroomSSDoF, and ttkCinemaDarkroomSSSAO.
|
protectedvirtual |
Reimplemented in ttkCinemaDarkroomFXAA, ttkCinemaDarkroomIBS, ttkCinemaDarkroomSSAO, ttkCinemaDarkroomSSDoF, and ttkCinemaDarkroomSSSAO.
Definition at line 79 of file ttkCinemaDarkroomShader.cpp.
|
protectedvirtual |
Reimplemented in ttkCinemaDarkroomFXAA.
Definition at line 63 of file ttkCinemaDarkroomShader.cpp.
|
protected |
Initializes the render context and updates the internal render-window size based on the dimension of the output image.
Definition at line 158 of file ttkCinemaDarkroomShader.cpp.
|
virtual |
Reimplemented from ttkAlgorithm.
Reimplemented in ttkCinemaDarkroomColorMapping, ttkCinemaDarkroomCompositing, ttkCinemaDarkroomFXAA, ttkCinemaDarkroomIBS, ttkCinemaDarkroomNoise, ttkCinemaDarkroomSSAO, ttkCinemaDarkroomSSDoF, and ttkCinemaDarkroomSSSAO.
|
static |
|
static |
|
protected |
Replaces all placeholder strings of the input string based on previously added replacements.
Definition at line 95 of file ttkCinemaDarkroomShader.cpp.
|
protectedvirtual |
Performs a single render pass and adds the result to the image as a point data array with the specified name.
Definition at line 232 of file ttkCinemaDarkroomShader.cpp.
|
static |