Class INodeGIProperties
class INodeGIProperties : public FPMixinInterface
Description:
This class is only available in release 5 or later.
This class defines an interface for accessing a node's global illumination properties.
An instance of this interface can be retrieved using the following line of code (assuming 'node' is of type INode*):
static_cast<INodeGIProperties*>(node->GetInterface(NODEGIPROPERTIES_INTERFACE))
Geometric and object objects have different properties. Accessing/setting geometric properties of non-geometric objects is safe, but will have no effect in the global illumination solution.
Here is a description of the global illumination properties:
GENERAL PROPERTIES (all types of objects)
-
Excluded: Excluded objects should be ignored by the radiosity engine. The should act as if these objects do not exist.
-
ByLayer: Specifies whether the GI properties of this node's layer should be used instead of the local settings.
GEOMETRIC OBJECTS (affects only geometric objects):
-
Occluder: Occluding objects will block rays of light that hit their surface. Non-occluding objects will not block those rays, but will still receive illumination if the Receiver property is set.
-
Receiver: Receiver objects will receive and store illumination from rays of light that hit their surface. Non-receiver objects will not store illumination.
-
Diffuse: Diffuse surfaces will reflect and trasmit light based on their diffuse color and transparency value.
-
Specular: Specular surfaces will generate specular reflections and transparency. ex.: glass is specular transparent and a mirror is specular reflective.
-
UseGlobalMeshSettings: When subdividing the geometry for a more accurate GI solution, this flag specifies whether some 'global' settings, or the node's local ettings should be used.
-
MeshingEnabled: When using local settings, this specifies whether geometry subdivision should occur on this node.
-
MeshSize: The maximum size, in MAX universe units, that a face should have after being subdivided.
-
NbRefineSteps: This is the saved number of refining steps to be performed on this node by the global illumination engine.
-
ExcludedFromRegather: Set to 'true' to excluded an object from the 'regathering' process.
-
RayMult: Specifies a multiplier that will increase or decrease the number of rays cast for this object when regathering.
LIGHT OBJECTS (affects only light sources):
-
StoreIllumToMesh: Specifies whether the light emitted from this object should be stored in the GI solution's mesh, and not be re-cast at render-time.
K Prototype
virtual void CopyGIPropertiesFrom(const INodeGIProperties& source) = 0;
Remarks:
Clones the properties from a source
K Prototype
virtual BOOL GIGetIsExcluded() const = 0;
Remarks:
Saves local properties - to be called on every node
K Prototype
virtual void GISetIsExcluded(BOOL isExcluded) = 0;
Remarks:
Saves local properties - to be called on every node. See also GIGetIsExcluded()
K Prototype
virtual float GIGetMeshSize() const = 0;
Remarks:
Geometry object property – retrieves the current mesh size for the node.
K Prototype
virtual void GISetIsOccluder(BOOL isOccluder) = 0;
Remarks:
Geometry object property – query for whether the node is an occluder object in the global illumination computations.
K Prototype
virtual void GISetIsReceiver(BOOL isReceiver) = 0;
Remarks:
Geometry object property – query for whether the node is a receiver for global illumination.
K Prototype
virtual void GISetIsDiffuse(BOOL isDiffuseReflective) = 0;
Remarks:
Geometry object property – query for whether the node has diffuse properties for usage in global illumination.
K Prototype
virtual void GISetIsSpecular(BOOL isSpecular) = 0;
Remarks:
Geometry object property – query for whether the node has specular properties for usage in global illumination.
K Prototype
virtual void GISetUseGlobalMeshSettings(BOOL globalMeshing) = 0;
Remarks:
Geometry object property – set usage of global rendering context mesh refinement settings..
K Prototype
virtual void GISetMeshingEnabled(BOOL meshingEnabled) = 0;
Remarks:
Geometry object property – set whether mesh refinement is enabled for this pass.
K Prototype
virtual void GISetNbRefineSteps(unsigned short nbRefineSteps) = 0;
Remarks:
Geometry object property – set the number of mesh refinement steps for the regathering pass.
K Prototype
virtual void GISetNbRefineStepsDone(unsigned short nbRefineStepsDone) = 0;
Remarks:
Geometry object property – query the number of steps performed thus far during the mesh refinement stage.
K Prototype
virtual void GISetMeshSize(float size) = 0;
Remarks:
Geometry object property – query for the refinement mesh size for the regathering pass.
K Prototype
virtual BOOL GIGetIsExcludedFromRegather() const = 0;
Remarks:
Geometry object property – query whether this node is to be excluded from the regathering pass.
K Prototype
virtual void GISetIsExcludedFromRegather(BOOL isExcluded) = 0;
Remarks:
Geometry object property – set whether this node is to be excluded from the regathering pass.
K Prototype
virtual BOOL GIGetStoreIllumToMesh() const = 0;
Remarks:
Get light object property.
K Prototype
virtual void GISetStoreIllumToMesh(BOOL storeIllum) = 0;
Remarks:
Set light object property.
K Prototype
virtual BOOL GIGetByLayer() const = 0;
Remarks:
Get 'by layer' flag for radiosity properties.
K Prototype
virtual void GISetByLayer(BOOL byLayer) = 0;
Remarks:
Set the 'by layer' flag for radiosity properties.
K Prototype
virtual float GIGetRayMult() const = 0;
Remarks:
Getting regathering ray multiplier node property
K Prototype
virtual void GISetRayMult(float rayMult) = 0;
Remarks:
Setting regathering ray multiplier node property.