# class Material

Material object that keeps material information used while rendering.

# Properties

Property Description
BlendMode Material blend mode specifies which type of blend function to use to blend materials. The blend mode function will be used while blending layers during material casting.
MaterialGUID The unique id for this node.
MaterialType The material type, used to specify which shader should be used to render the material.
Name The name of the Material object. (Inherited from Object)
OpacityChannel The name of the channel in the material to be used for Opacity or Transparency. This material property is primarily used in the scene exporters to correctly export opacity, and does *not* determine which channel to use for opacity when casting materials. The channel to be used for opacity during casting is controlled by a setting on the MaterialCaster objects.
OpacityCutoff The cutoff value for opacity when using mask blend mode.
OpacityType The opacity type determines how the opacity channel of this material is interpreted when casting. To make (0.0->1.0) map to (transparent-opaque), use 'Opacity'. To make (0.0->1.0) map to (opaque-transparent), use 'Transparency'
UseTangentSpaceNormals The UseTangentSpaceNormals flag. If set, the normal map has tangent space normals.

# Methods

Method Description
AddMaterialChannel Add a material channel.
AddObserver Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)
ChangeTexturePrefixPath Changes the prefix path (drive, directory) of all matching texture paths in the material, with the new one. This method is useful when external textures are placed in a specific folder, which needs to be moved.
ConvertHandedness Converts parameters such as UVTiling and UVOffset in shading networks.
GetClass Get the name of the Material class. (Inherited from Object)
GetMaterialChannelCount Returns the number of material channels in the material.
GetMaterialChannelFromIndex Returns the name of a channel from the index. Note that by adding/removing channels the indices are changed, and this method should only be used for enumeration.
GetMaterialChannels Get all unique material channel names in the material.
GetMaterialChannelsWithTextureInputs Get all unique material channel names having texture inputs in the material.
GetShadingNetwork Get which shading network to use for the material channel.
HasMaterialChannel Check if the channel exists within the material.
IsA Returns true if Material is a or is a descendant of the class named as the type parameter. (Inherited from Object)
IsIdenticalTo Returns true if the material is setup identical to this material.
IsNull Returns true if the Material object is invalid. (Inherited from Object)
IsSameObjectAs Returns true if the Material object is valid. (Inherited from Object)
IsTransparent Returns true if the material *could* be transparent. In other words, returns true IF the BlendMode of the material is not set to opaque, AND there is a non-opaque shading network assigned to the opacity channel. This means materials set to BlendMode::Blend can still return false if they have an opacity channel set that is either empty, or constant and set to an opaque value. This can be used to split transparent and opaque materials before processing, or find materials marked as BlendMode::Blend that don't have to be.
LoadShadingNetworkFromXML Save shading network to XML.
NonNull Returns true if the Material object is valid. (Inherited from Object)
PrintInfo Prints the content/info of the Material object to the log. (Inherited from Object)
RemoveMaterialChannel Remove a material channel.
RemoveObserver Removes a previously added observer object. (Inherited from Object)
SaveShadingNetworkToXML Save shading network to XML.
SetOpacityFromDiffuseAlpha Maps the alpha component of the diffuse channel to all the RGBA components in the opacity channel (by using a swizzle node).
SetShadingNetwork Set which shading network to use for the material channel.

# Static methods

Method Description
IsClassA Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)
SafeCast SafeCast makes sure the input object is of a class that can be cast into spMaterial, and if this is the case, returns the object cast into spMaterial. (Inherited from Object)

# Properties details

# BlendMode

Material blend mode specifies which type of blend function to use to blend materials. The blend mode function will be used while blending layers during material casting.

    # MaterialGUID

    The unique id for this node.

      # MaterialType

      The material type, used to specify which shader should be used to render the material.

        # Name

        The name of the Material object. (Inherited from Object)

          # OpacityChannel

          The name of the channel in the material to be used for Opacity or Transparency. This material property is primarily used in the scene exporters to correctly export opacity, and does *not* determine which channel to use for opacity when casting materials. The channel to be used for opacity during casting is controlled by a setting on the MaterialCaster objects.

            # OpacityCutoff

            The cutoff value for opacity when using mask blend mode.

              # OpacityType

              The opacity type determines how the opacity channel of this material is interpreted when casting. To make (0.0->1.0) map to (transparent-opaque), use 'Opacity'. To make (0.0->1.0) map to (opaque-transparent), use 'Transparency'

                # UseTangentSpaceNormals

                The UseTangentSpaceNormals flag. If set, the normal map has tangent space normals.

                  # Methods details

                  # AddMaterialChannel

                  Add a material channel.

                    # AddObserver

                    Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)

                      # ChangeTexturePrefixPath

                      Changes the prefix path (drive, directory) of all matching texture paths in the material, with the new one. This method is useful when external textures are placed in a specific folder, which needs to be moved.

                        # ConvertHandedness

                        Converts parameters such as UVTiling and UVOffset in shading networks.

                          # GetClass

                          Get the name of the Material class. (Inherited from Object)

                            # GetMaterialChannelCount

                            Returns the number of material channels in the material.

                              # GetMaterialChannelFromIndex

                              Returns the name of a channel from the index. Note that by adding/removing channels the indices are changed, and this method should only be used for enumeration.

                                # GetMaterialChannels

                                Get all unique material channel names in the material.

                                  # GetMaterialChannelsWithTextureInputs

                                  Get all unique material channel names having texture inputs in the material.

                                    # GetShadingNetwork

                                    Get which shading network to use for the material channel.

                                      # HasMaterialChannel

                                      Check if the channel exists within the material.

                                        # IsA

                                        Returns true if Material is a or is a descendant of the class named as the type parameter. (Inherited from Object)

                                          # IsIdenticalTo

                                          Returns true if the material is setup identical to this material.

                                            # IsNull

                                            Returns true if the Material object is invalid. (Inherited from Object)

                                              # IsSameObjectAs

                                              Returns true if the Material object is valid. (Inherited from Object)

                                                # IsTransparent

                                                Returns true if the material *could* be transparent. In other words, returns true IF the BlendMode of the material is not set to opaque, AND there is a non-opaque shading network assigned to the opacity channel. This means materials set to BlendMode::Blend can still return false if they have an opacity channel set that is either empty, or constant and set to an opaque value. This can be used to split transparent and opaque materials before processing, or find materials marked as BlendMode::Blend that don't have to be.

                                                  # LoadShadingNetworkFromXML

                                                  Save shading network to XML.

                                                    # NonNull

                                                    Returns true if the Material object is valid. (Inherited from Object)

                                                      # PrintInfo

                                                      Prints the content/info of the Material object to the log. (Inherited from Object)

                                                        # RemoveMaterialChannel

                                                        Remove a material channel.

                                                          # RemoveObserver

                                                          Removes a previously added observer object. (Inherited from Object)

                                                            # SaveShadingNetworkToXML

                                                            Save shading network to XML.

                                                              # SetOpacityFromDiffuseAlpha

                                                              Maps the alpha component of the diffuse channel to all the RGBA components in the opacity channel (by using a swizzle node).

                                                                # SetShadingNetwork

                                                                Set which shading network to use for the material channel.

                                                                  # Static methods details

                                                                  # IsClassA

                                                                  Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)

                                                                    # SafeCast

                                                                    SafeCast makes sure the input object is of a class that can be cast into spMaterial, and if this is the case, returns the object cast into spMaterial. (Inherited from Object)