idx_R_class_INodeGIProperties

3DS Max Plug-In SDK

 

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.