|
virtual int | IsA (const char *type) |
|
vtkEncodedGradientShader * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
|
virtual void | SetZeroNormalDiffuseIntensity (float) |
|
virtual float | GetZeroNormalDiffuseIntensity () |
|
virtual void | SetZeroNormalSpecularIntensity (float) |
|
virtual float | GetZeroNormalSpecularIntensity () |
|
|
void | UpdateShadingTable (vtkRenderer *ren, vtkVolume *vol, vtkEncodedGradientEstimator *gradest) |
|
|
float * | GetRedDiffuseShadingTable (vtkVolume *vol) |
|
float * | GetGreenDiffuseShadingTable (vtkVolume *vol) |
|
float * | GetBlueDiffuseShadingTable (vtkVolume *vol) |
|
float * | GetRedSpecularShadingTable (vtkVolume *vol) |
|
float * | GetGreenSpecularShadingTable (vtkVolume *vol) |
|
float * | GetBlueSpecularShadingTable (vtkVolume *vol) |
|
|
virtual void | SetActiveComponent (int) |
|
virtual int | GetActiveComponent () |
|
vtkObject * | NewInstance () const |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
virtual unsigned long | GetMTime () |
|
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) |
|
virtual void | Register (vtkObjectBase *o) |
|
virtual void | UnRegister (vtkObjectBase *o) |
|
void | SetReferenceCount (int) |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
|
virtual vtkObjectBase * | NewInstanceInternal () const |
|
| vtkEncodedGradientShader () |
|
| ~vtkEncodedGradientShader () |
|
|
void | BuildShadingTable (int index, double lightDirection[3], double lightAmbientColor[3], double lightDiffuseColor[3], double lightSpecularColor[3], double lightIntensity, double viewDirection[3], double material[4], int twoSided, vtkEncodedGradientEstimator *gradest, int updateFlag) |
|
| 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 &) |
|
virtual void | ReportReferences (vtkGarbageCollector *) |
|
| vtkObjectBase (const vtkObjectBase &) |
|
void | operator= (const vtkObjectBase &) |
|
Compute shading tables for encoded normals.
vtkEncodedGradientShader computes shading tables for encoded normals that indicates the amount of diffuse and specular illumination that is received from all light sources at a surface location with that normal. For diffuse illumination this is accurate, but for specular illumination it is approximate for perspective projections since the center view direction is always used as the view direction. Since the shading table is dependent on the volume (for the transformation that must be applied to the normals to put them into world coordinates) there is a shading table per volume. This is necessary because multiple volumes can share a volume mapper.
Definition at line 44 of file vtkEncodedGradientShader.h.
void vtkEncodedGradientShader::BuildShadingTable |
( |
int |
index, |
|
|
double |
lightDirection[3], |
|
|
double |
lightAmbientColor[3], |
|
|
double |
lightDiffuseColor[3], |
|
|
double |
lightSpecularColor[3], |
|
|
double |
lightIntensity, |
|
|
double |
viewDirection[3], |
|
|
double |
material[4], |
|
|
int |
twoSided, |
|
|
vtkEncodedGradientEstimator * |
gradest, |
|
|
int |
updateFlag |
|
) |
| |
|
protected |
Build a shading table for a light with the specified direction, and color for an object of the specified material properties. material[0] = ambient, material[1] = diffuse, material[2] = specular and material[3] = specular exponent. If the ambient flag is 1, then ambient illumination is added. If not, then this means we are calculating the "other side" of two sided lighting, so no ambient intensity is added in. If the update flag is 0, the shading table is overwritten with these new shading values. If the updateFlag is 1, then the computed light contribution is added to the current shading table values. There is one shading table per volume, and the index value indicated which index table should be used. It is computed in the UpdateShadingTable method.