|
virtual int | IsA (const char *type) |
|
vtkVolumeTextureMapper3D * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
virtual void | Render (vtkRenderer *, vtkVolume *) |
|
|
virtual void | SetSampleDistance (float) |
|
virtual float | GetSampleDistance () |
|
|
virtual int * | GetVolumeDimensions () |
|
virtual void | GetVolumeDimensions (int data[3]) |
|
|
virtual float * | GetVolumeSpacing () |
|
virtual void | GetVolumeSpacing (float data[3]) |
|
|
virtual int | IsRenderSupported (vtkVolumeProperty *, vtkRenderer *vtkNotUsed(r)) |
|
|
virtual int | GetNumberOfPolygons () |
|
|
virtual float | GetActualSampleDistance () |
|
|
int | GetNumberOfScalarComponents (vtkImageData *input) |
|
|
virtual void | SetPreferredRenderMethod (int) |
|
void | SetPreferredMethodToFragmentProgram () |
|
void | SetPreferredMethodToNVidia () |
|
virtual int | GetPreferredRenderMethod () |
|
|
virtual void | SetUseCompressedTexture (bool) |
|
virtual bool | GetUseCompressedTexture () |
|
vtkVolumeMapper * | NewInstance () const |
|
virtual void | ReleaseGraphicsResources (vtkWindow *) |
|
virtual void | SetInputData (vtkImageData *) |
|
virtual void | SetInputData (vtkDataSet *) |
|
vtkImageData * | GetInput () |
|
virtual void | SetBlendMode (int) |
|
void | SetBlendModeToComposite () |
|
void | SetBlendModeToMaximumIntensity () |
|
void | SetBlendModeToMinimumIntensity () |
|
void | SetBlendModeToAdditive () |
|
virtual int | GetBlendMode () |
|
virtual void | SetCropping (int) |
|
virtual int | GetCropping () |
|
virtual void | CroppingOn () |
|
virtual void | CroppingOff () |
|
virtual void | SetCroppingRegionPlanes (double, double, double, double, double, double) |
|
virtual void | SetCroppingRegionPlanes (double[6]) |
|
virtual double * | GetCroppingRegionPlanes () |
|
virtual void | GetCroppingRegionPlanes (double data[6]) |
|
virtual double * | GetVoxelCroppingRegionPlanes () |
|
virtual void | GetVoxelCroppingRegionPlanes (double data[6]) |
|
virtual void | SetCroppingRegionFlags (int) |
|
virtual int | GetCroppingRegionFlags () |
|
void | SetCroppingRegionFlagsToSubVolume () |
|
void | SetCroppingRegionFlagsToFence () |
|
void | SetCroppingRegionFlagsToInvertedFence () |
|
void | SetCroppingRegionFlagsToCross () |
|
void | SetCroppingRegionFlagsToInvertedCross () |
|
vtkAbstractVolumeMapper * | NewInstance () const |
|
const char * | GetScalarModeAsString () |
|
vtkDataSet * | GetDataSetInput () |
|
vtkDataObject * | GetDataObjectInput () |
|
virtual double * | GetBounds () |
|
virtual void | GetBounds (double bounds[6]) |
|
virtual void | SetScalarMode (int) |
|
virtual int | GetScalarMode () |
|
void | SetScalarModeToDefault () |
|
void | SetScalarModeToUsePointData () |
|
void | SetScalarModeToUseCellData () |
|
void | SetScalarModeToUsePointFieldData () |
|
void | SetScalarModeToUseCellFieldData () |
|
virtual void | SelectScalarArray (int arrayNum) |
|
virtual void | SelectScalarArray (const char *arrayName) |
|
virtual char * | GetArrayName () |
|
virtual int | GetArrayId () |
|
virtual int | GetArrayAccessMode () |
|
virtual float | GetGradientMagnitudeScale () |
|
virtual float | GetGradientMagnitudeBias () |
|
virtual float | GetGradientMagnitudeScale (int) |
|
virtual float | GetGradientMagnitudeBias (int) |
|
vtkAbstractMapper3D * | NewInstance () const |
|
double | GetLength () |
|
int | GetNumberOfClippingPlanes () |
|
double * | GetCenter () |
|
void | GetCenter (double center[3]) |
|
virtual int | IsARayCastMapper () |
|
virtual int | IsARenderIntoImageMapper () |
|
void | GetClippingPlaneInDataCoords (vtkMatrix4x4 *propMatrix, int i, double planeEquation[4]) |
|
vtkAbstractMapper * | NewInstance () const |
|
virtual unsigned long | GetMTime () |
|
void | SetClippingPlanes (vtkPlanes *planes) |
|
void | ShallowCopy (vtkAbstractMapper *m) |
|
virtual double | GetTimeToDraw () |
|
void | AddClippingPlane (vtkPlane *plane) |
|
void | RemoveClippingPlane (vtkPlane *plane) |
|
void | RemoveAllClippingPlanes () |
|
virtual void | SetClippingPlanes (vtkPlaneCollection *) |
|
virtual vtkPlaneCollection * | GetClippingPlanes () |
|
vtkAlgorithm * | NewInstance () const |
|
int | HasExecutive () |
|
vtkExecutive * | GetExecutive () |
|
virtual void | SetExecutive (vtkExecutive *executive) |
|
virtual int | ModifyRequest (vtkInformation *request, int when) |
|
vtkInformation * | GetInputPortInformation (int port) |
|
vtkInformation * | GetOutputPortInformation (int port) |
|
int | GetNumberOfInputPorts () |
|
int | GetNumberOfOutputPorts () |
|
void | UpdateProgress (double amount) |
|
vtkInformation * | GetInputArrayInformation (int idx) |
|
void | RemoveAllInputs () |
|
vtkDataObject * | GetOutputDataObject (int port) |
|
virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
|
virtual void | RemoveInputConnection (int port, int idx) |
|
virtual void | RemoveAllInputConnections (int port) |
|
int | GetNumberOfInputConnections (int port) |
|
int | GetTotalNumberOfInputConnections () |
|
vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
|
vtkAlgorithm * | GetInputAlgorithm (int port, int index, int &algPort) |
|
vtkAlgorithm * | GetInputAlgorithm (int port, int index) |
|
vtkExecutive * | GetInputExecutive (int port, int index) |
|
vtkInformation * | GetInputInformation (int port, int index) |
|
vtkInformation * | GetOutputInformation (int port) |
|
virtual void | UpdateInformation () |
|
virtual void | UpdateDataObject () |
|
virtual void | PropagateUpdateExtent () |
|
virtual void | UpdateWholeExtent () |
|
void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
|
int | SetUpdateExtentToWholeExtent (int port) |
|
int | SetUpdateExtentToWholeExtent () |
|
void | SetUpdateExtent (int port, int extent[6]) |
|
virtual int | ProcessRequest (vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo) |
|
int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
|
virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
|
virtual vtkInformation * | GetInformation () |
|
virtual void | SetInformation (vtkInformation *) |
|
virtual void | Register (vtkObjectBase *o) |
|
virtual void | UnRegister (vtkObjectBase *o) |
|
virtual void | SetAbortExecute (int) |
|
virtual int | GetAbortExecute () |
|
virtual void | AbortExecuteOn () |
|
virtual void | AbortExecuteOff () |
|
virtual void | SetProgress (double) |
|
virtual double | GetProgress () |
|
void | SetProgressText (const char *ptext) |
|
virtual char * | GetProgressText () |
|
virtual unsigned long | GetErrorCode () |
|
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
|
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
|
virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
|
virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
|
vtkDataObject * | GetInputDataObject (int port, int connection) |
|
virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
|
virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
|
virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
|
virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
|
virtual void | SetInputDataObject (int port, vtkDataObject *data) |
|
virtual void | SetInputDataObject (vtkDataObject *data) |
|
virtual void | AddInputDataObject (int port, vtkDataObject *data) |
|
virtual void | AddInputDataObject (vtkDataObject *data) |
|
vtkAlgorithmOutput * | GetOutputPort (int index) |
|
vtkAlgorithmOutput * | GetOutputPort () |
|
vtkAlgorithm * | GetInputAlgorithm () |
|
vtkExecutive * | GetInputExecutive () |
|
vtkInformation * | GetInputInformation () |
|
virtual void | Update (int port) |
|
virtual void | Update () |
|
virtual void | SetReleaseDataFlag (int) |
|
virtual int | GetReleaseDataFlag () |
|
void | ReleaseDataFlagOn () |
|
void | ReleaseDataFlagOff () |
|
int | UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output) |
|
int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
|
void | SetUpdateExtent (int port, int piece, int numPieces, int ghostLevel) |
|
void | SetUpdateExtent (int piece, int numPieces, int ghostLevel) |
|
void | SetUpdateExtent (int extent[6]) |
|
int * | GetUpdateExtent () |
|
int * | GetUpdateExtent (int port) |
|
void | GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
|
void | GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
|
void | GetUpdateExtent (int extent[6]) |
|
void | GetUpdateExtent (int port, int extent[6]) |
|
int | GetUpdatePiece () |
|
int | GetUpdatePiece (int port) |
|
int | GetUpdateNumberOfPieces () |
|
int | GetUpdateNumberOfPieces (int port) |
|
int | GetUpdateGhostLevel () |
|
int | GetUpdateGhostLevel (int port) |
|
void | SetProgressObserver (vtkProgressObserver *) |
|
virtual vtkProgressObserver * | GetProgressObserver () |
|
vtkObject * | NewInstance () const |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
|
vtkCommand * | GetCommand (unsigned long tag) |
|
void | RemoveObserver (vtkCommand *) |
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
|
void | RemoveObservers (const char *event, vtkCommand *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
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) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
const char * | GetClassName () const |
|
virtual void | Delete () |
|
virtual void | FastDelete () |
|
void | Print (ostream &os) |
|
void | SetReferenceCount (int) |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
|
static int | IsTypeOf (const char *type) |
|
static vtkVolumeTextureMapper3D * | SafeDownCast (vtkObjectBase *o) |
|
static vtkVolumeTextureMapper3D * | New () |
|
static int | IsTypeOf (const char *type) |
|
static vtkVolumeMapper * | SafeDownCast (vtkObjectBase *o) |
|
static int | IsTypeOf (const char *type) |
|
static vtkAbstractVolumeMapper * | SafeDownCast (vtkObjectBase *o) |
|
static int | IsTypeOf (const char *type) |
|
static vtkAbstractMapper3D * | SafeDownCast (vtkObjectBase *o) |
|
static int | IsTypeOf (const char *type) |
|
static vtkAbstractMapper * | SafeDownCast (vtkObjectBase *o) |
|
static vtkDataArray * | GetScalars (vtkDataSet *input, int scalarMode, int arrayAccessMode, int arrayId, const char *arrayName, int &cellFlag) |
|
static vtkAbstractArray * | GetAbstractScalars (vtkDataSet *input, int scalarMode, int arrayAccessMode, int arrayId, const char *arrayName, int &cellFlag) |
|
static vtkAlgorithm * | New () |
|
static int | IsTypeOf (const char *type) |
|
static vtkAlgorithm * | SafeDownCast (vtkObjectBase *o) |
|
static vtkInformationIntegerKey * | INPUT_IS_OPTIONAL () |
|
static vtkInformationIntegerKey * | INPUT_IS_REPEATABLE () |
|
static vtkInformationInformationVectorKey * | INPUT_REQUIRED_FIELDS () |
|
static vtkInformationStringVectorKey * | INPUT_REQUIRED_DATA_TYPE () |
|
static vtkInformationInformationVectorKey * | INPUT_ARRAYS_TO_PROCESS () |
|
static vtkInformationIntegerKey * | INPUT_PORT () |
|
static vtkInformationIntegerKey * | INPUT_CONNECTION () |
|
static vtkInformationIntegerKey * | CAN_PRODUCE_SUB_EXTENT () |
|
static vtkInformationIntegerKey * | CAN_HANDLE_PIECE_REQUEST () |
|
static void | SetDefaultExecutivePrototype (vtkExecutive *proto) |
|
static int | IsTypeOf (const char *type) |
|
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
|
static vtkObject * | New () |
|
static void | BreakOnError () |
|
static void | SetGlobalWarningDisplay (int val) |
|
static void | GlobalWarningDisplayOn () |
|
static void | GlobalWarningDisplayOff () |
|
static int | GetGlobalWarningDisplay () |
|
static int | IsTypeOf (const char *name) |
|
static vtkObjectBase * | New () |
|
|
virtual vtkObjectBase * | NewInstanceInternal () const |
|
| vtkVolumeTextureMapper3D () |
|
| ~vtkVolumeTextureMapper3D () |
|
void | ComputePolygons (vtkRenderer *ren, vtkVolume *vol, double bounds[6]) |
|
|
int | UpdateVolumes (vtkVolume *) |
|
int | UpdateColorLookup (vtkVolume *) |
|
|
virtual int | IsTextureSizeSupported (int vtkNotUsed(size)[3], int vtkNotUsed(components)) |
|
| vtkVolumeMapper () |
|
| ~vtkVolumeMapper () |
|
void | ConvertCroppingRegionPlanesToVoxels () |
|
virtual int | FillInputPortInformation (int, vtkInformation *) |
|
| vtkAbstractVolumeMapper () |
|
| ~vtkAbstractVolumeMapper () |
|
| vtkAbstractMapper3D () |
|
| ~vtkAbstractMapper3D () |
|
| vtkAbstractMapper () |
|
| ~vtkAbstractMapper () |
|
| vtkAlgorithm () |
|
| ~vtkAlgorithm () |
|
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
|
virtual void | SetNumberOfInputPorts (int n) |
|
virtual void | SetNumberOfOutputPorts (int n) |
|
int | InputPortIndexInRange (int index, const char *action) |
|
int | OutputPortIndexInRange (int index, const char *action) |
|
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
|
virtual vtkExecutive * | CreateDefaultExecutive () |
|
virtual void | ReportReferences (vtkGarbageCollector *) |
|
virtual void | SetNumberOfInputConnections (int port, int n) |
|
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
|
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
|
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
|
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
|
void | SetInputDataInternal (int port, vtkDataObject *input) |
|
void | AddInputDataInternal (int port, vtkDataObject *input) |
|
virtual void | SetErrorCode (unsigned long) |
|
| vtkObject () |
|
virtual | ~vtkObject () |
|
virtual void | RegisterInternal (vtkObjectBase *, int check) |
|
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
|
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
|
void | InternalReleaseFocus () |
|
| vtkObjectBase () |
|
virtual | ~vtkObjectBase () |
|
virtual void | CollectRevisions (ostream &) |
|
| vtkObjectBase (const vtkObjectBase &) |
|
void | operator= (const vtkObjectBase &) |
|
volume render with 3D texture mapping
vtkVolumeTextureMapper3D renders a volume using 3D texture mapping. This class is actually an abstract superclass - with all the actual work done by vtkOpenGLVolumeTextureMapper3D.
This mappers currently supports:
- any data type as input
- one component, or two or four non-independent components
- composite blending
- intermixed opaque geometry
- multiple volumes can be rendered if they can be sorted into back-to-front order (use the vtkFrustumCoverageCuller)
This mapper does not support:
- more than one independent component
- maximum intensity projection
Internally, this mapper will potentially change the resolution of the input data. The data will be resampled to be a power of two in each direction, and also no greater than 128*256*256 voxels (any aspect) for one or two component data, or 128*128*256 voxels (any aspect) for four component data. The limits are currently hardcoded after a check using the GL_PROXY_TEXTURE3D because some graphics drivers were always responding "yes" to the proxy call despite not being able to allocate that much texture memory.
Currently, calculations are computed using 8 bits per RGBA channel. In the future this should be expanded to handle newer boards that can support 15 bit float compositing.
This mapper supports two main families of graphics hardware: nvidia and ATI. There are two different implementations of 3D texture mapping used - one based on nvidia's GL_NV_texture_shader2 and GL_NV_register_combiners2 extension, and one based on ATI's GL_ATI_fragment_shader (supported also by some nvidia boards) To use this class in an application that will run on various hardware configurations, you should have a back-up volume rendering method. You should create a vtkVolumeTextureMapper3D, assign its input, make sure you have a current OpenGL context (you've rendered at least once), then call IsRenderSupported with a vtkVolumeProperty as an argument. This method will return 0 if the input has more than one independent component, or if the graphics hardware does not support the set of required extensions for using at least one of the two implemented methods (nvidia or ati)
- Thanks:
- Thanks to Alexandre Gouaillard at the Megason Lab, Department of Systems Biology, Harvard Medical School https://wiki.med.harvard.edu/SysBio/Megason/ for the idea and initial patch to speed-up rendering with compressed textures.
- See also
- vtkVolumeMapper
- Examples:
- vtkVolumeTextureMapper3D (Examples)
- Tests:
- vtkVolumeTextureMapper3D (Tests)
Definition at line 92 of file vtkVolumeTextureMapper3D.h.