|
virtual int | IsA (const char *type) |
| Return 1 if this class is the same type of (or a subclass of) the named class. More...
|
|
vtkVolumeTexture * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) override |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
void | SetMapper (vtkOpenGLGPUVolumeRayCastMapper *mapper) |
| Set the parent volume mapper and initialize internals. More...
|
|
void | SetPartitions (int const x, int const y, int const z) |
| Set a number of blocks per axis. More...
|
|
bool | LoadVolume (vtkRenderer *ren, vtkImageData *data, vtkDataArray *scalars, int const interpolation) |
| Loads the data array into the texture in the case only a single block is is defined. More...
|
|
void | UpdateInterpolationType (int const interpolation) |
|
void | SortBlocksBackToFront (vtkRenderer *ren, vtkMatrix4x4 *volumeMat) |
| If streaming the data array as separate blocks, sort them back to front. More...
|
|
VolumeBlock * | GetNextBlock () |
| Return the next volume block to be rendered. More...
|
|
void | ReleaseGraphicsResources (vtkWindow *win) |
| Clean-up acquired graphics resources. More...
|
|
| vtkBaseTypeMacro (vtkObject, vtkObjectBase) |
|
virtual void | DebugOn () |
| Turn debugging output on. More...
|
|
virtual void | DebugOff () |
| Turn debugging output off. More...
|
|
bool | GetDebug () |
| Get the value of the debug flag. More...
|
|
void | SetDebug (bool debugFlag) |
| Set the value of the debug flag. More...
|
|
virtual void | Modified () |
| Update the modification time for this object. More...
|
|
virtual vtkMTimeType | GetMTime () |
| Return this object's modified time. More...
|
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
int | HasObserver (unsigned long event) |
|
int | HasObserver (const char *event) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkCommand * | GetCommand (unsigned long tag) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObserver (vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObservers (const char *event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
int | HasObserver (unsigned long event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
int | HasObserver (const char *event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| Allow user to set the AbortFlagOn() with the return value of the callback method. More...
|
|
int | InvokeEvent (unsigned long event, void *callData) |
| This method invokes an event and return whether the event was aborted or not. More...
|
|
int | InvokeEvent (const char *event, void *callData) |
| This method invokes an event and return whether the event was aborted or not. More...
|
|
const char * | GetClassName () const |
| Return the class name as a string. More...
|
|
virtual void | Delete () |
| Delete a VTK object. More...
|
|
virtual void | FastDelete () |
| Delete a reference to this object. More...
|
|
void | InitializeObjectBase () |
|
void | Print (ostream &os) |
| Print an object to an ostream. More...
|
|
virtual void | Register (vtkObjectBase *o) |
| Increase the reference count (mark as used by another object). More...
|
|
virtual void | UnRegister (vtkObjectBase *o) |
| Decrease the reference count (release by another object). More...
|
|
int | GetReferenceCount () |
| Return the current reference count of this object. More...
|
|
void | SetReferenceCount (int) |
| Sets the reference count. More...
|
|
void | PrintRevisions (ostream &) |
| Legacy. More...
|
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
Creates and manages the volume texture rendered by vtkOpenGLGPUVolumeRayCastMapper.
Wraps a vtkTextureObject for which it selects the appropriate format (depending on the input vtkDataArray type, number of components, etc.) and loads input data. The class maintains a set of members of interest to the parent mapper, such as:
- Active vtkDataArray scalar range.
- Volume's scale and bias (pixel transfer functions).
- HandleLargeDataType flag.
This class supports streaming the volume data in separate blocks to make it fit in graphics memory (sometimes referred to as bricking). The data is split into a user-defined number of blocks in such a way that a single sub-block (brick) fits completely into GPU memory. A stride is passed to OpenGL so that it can access the underlying vtkDataArray adequately for each of the blocks to be streamed into GPU memory (back-to-front for correct composition). Streaming the volume as separate texture bricks certainly imposes a performance trade-off but acts as a graphics memory expansion scheme for devices that would not be able to render higher resoulution volumes otherwise.
- Warning
- There are certain caveats when texture streaming is enabled, given the locality constraint that rendering a single block imposes.
- Quality might suffer near the block seams with ShadeOn() (gradient computation at the boundaries needs adjustment).
- Not all of the features supported by the mapper currently work correctly. This is a list of known issues:
- Volume masks are currently not being streamed. They need to use a vtkVolumeTexture object instead. This will be fixed in a future commit.
- Blending modes such as average and additive might compute a different value near the edges.
Future work will extend the API to be able to compute an ideal number of partitions and extents based on the platform capabilities.
- Warning
- This is an internal class of vtkOpenGLGPUVolumeRayCastMapper. It assumes there is an active OpenGL context in each of its methods involving GL calls (MakeCurrent() is expected to be called in the mapper before any member calls involving gl functions).
Definition at line 80 of file vtkVolumeTexture.h.