Material Components

About Icarus Forums Icarus Scene Engine Materials Material Components

This topic contains 1 reply, has 1 voice, and was last updated by  admin 2 years, 1 month ago.

  • Author
  • #354


    Each Material has multiple Layers (much like Photoshop has layers), however unlike standard art package layers which are linearly structured, each Layer in ISE is associated with a “Component” of the Material, i.e. the Ambient light, the Diffuse Light, or a Hard Mask. The order the layers are added determines the order they are added to the Component for rendering.

    A Layer then has a single texture associated with it. Multiple layers that have the same component are then grouped together and blended together.

    Why this is useful also is for Surfaces, which have the option to only render specific Components (e.g. for a Glow filter, where only Emission light and/or Specular light is required and Ambient/Diffuse/Shadow Depth etc.. can be rejected, or for a Shadow rendering where NO light is required), and this rejection/inclusion then controls the automatic shader generation.

    • This topic was modified 2 years, 1 month ago by  admin.
    • This topic was modified 2 years, 1 month ago by  admin.
  • #357


    The basic lit model is as follows:

    color = (((light.ambient * component.ambient) +
    (light.diffuse * component.diffuse) * component.albedo) +
    (light.specular * component.specular))
    * component.color
    + component.emission

    Where component.diffuse is multiplied against the diffuse light angle, and specular is multiplied against the specular light angle.

    Component.None: Texture is added to the Material, but for reference by a different component, not for rendering.

    Component.Ambient: Texture is used for Ambient light.

    Component.Color: Texture is blended with the summation of Ambient, Diffuse and Specular, before Emission is added.

    Component.ColorRed, ColorBlue, ColorGreen, ColorAlpha: Texture is used for an individual color component only, applies at the same point Component.Color

    Component.Diffuse: Texture is blended with the Diffuse light.

    Component.DiffuseRed, DiffuseGreen, DiffuseBlue, DiffuseAlpha: Texture is used for an individual color component only, applies at the same point Component.Diffuse

    Component.Specular: Texture is used for Specular light. The full RGBA spectrum is used here.

    Component.SpecularGloss: Texture is used for the gloss power of the Specular light, so the texture can be used to change the glossiness of a surface. The Gloss value in the texture is multiplied between the Shininess parameter and the MaxShininess parameter.

    Emission: RGBA-additive light that is added to Component.Color.

    Decal: After the base Color is calculated, the Decal value is Alpha-blended on top (so will not be lit).

    AdditiveMask: Color values in the texture are added, but the Alpha is multiplied.

    HardMask: Color values in the texture are added, but the underlying colour only shows through if Alpha = 1

    FinalMask: Final color values are multiplied by this mask

    ColorMask: Alpha-value blended with Color

    Normal: Normal-mapped texture (must be in Normal format) for bump mapping. Multiple Normal maps will be blended evenly (i.e. for 3 maps, 33% each, 4 maps, 25% each etc..).

    InverseIllumination: Emission layer that shows when the actual light goes closer to 0. The darker the light is, the more the illumination shows through.

    Transparency: Texture represents a transparency map.

    ShadowDepth: Texture represents a shadow depth map. This layer is used automaticaly by shadow-casting lights.

    DepthFilter: Texture represents a depth buffer for “near depth filtering”.

    ShadowValue: A basic greyscale texture that should be used as a shadow map.

    Albedo: Ambient + Diffuse multiplier.

You must be logged in to reply to this topic.

Comments are closed.