# Material

class `Material`

  The Material class is a concept class for material-related enum classes.

  Public Types

  enum class `Channel` : uint32_t

    Material Channel

    Values:

    enumerator `DiffuseColor`

      Material Channel.

    enumerator `DiffuseTexture`

      Material Channel.

    enumerator `Specular`

      Material Channel.

    enumerator `Emission`

      Material Channel.

    enumerator `Transmission`

      Material Channel.

    enumerator `Mirror`

      Material Channel.

    enumerator `Bump`

      Material Channel.

    enumerator `EnvironmentTexture`

      Material Channel.

    enumerator `EnvironmentCubeMap`

      Material Channel.

    enumerator `Gloss`

      Material Channel.

    enumerator `Alpha`

      Material Channel.

  class `Color`

    The Material Color Class

    Public Types

    enum class `Channel` : uint32_t

      Material Color Channel

      Values:

      enumerator `DiffuseColor`

        Material Color Channel.

      enumerator `Specular`

        Material Color Channel.

      enumerator `Emission`

        Material Color Channel.

      enumerator `Mirror`

        Material Color Channel.

  class `Texture`

    The Material::Texture class is a concept class for texture-related enum classes.

    Public Types

    enum class `Channel` : uint32_t

      Material Texture Channel

      Values:

      enumerator `DiffuseTexture`

        Material Texture Channel.

      enumerator `Specular`

        Material Texture Channel.

      enumerator `Emission`

        Material Texture Channel.

      enumerator `Transmission`

        Material Texture Channel.

      enumerator `Mirror`

        Material Texture Channel.

      enumerator `Bump`

        Material Texture Channel.

      enumerator `EnvironmentTexture`

        Material Texture Channel.

      enumerator `EnvironmentCubeMap`

        Material Texture Channel.

    enum class `ChannelMapping` : uint32_t

      Material Texture ChannelMapping

      Values:

      enumerator `Red`

        Material Texture ChannelMapping.

      enumerator `Green`

        Material Texture ChannelMapping.

      enumerator `Blue`

        Material Texture ChannelMapping.

      enumerator `Alpha`

        Material Texture ChannelMapping.

      enumerator `Zero`

        Material Texture ChannelMapping.

      enumerator `One`

        Material Texture ChannelMapping.

      enumerator `Luminance`

        Material Texture ChannelMapping.

    enum class `Decimation` : uint32_t

      Enumeration of the various decimation filters for textures. These are used when the texture needs to minimized.

      Values:

      enumerator `None`

        No down-sampling will be performed. Data will be retrieved via the specified Texture::Interpolation filter.

      enumerator `Anisotropic`

        The texture will be down-sampled to non-square image sizes which will get used for sampling and filtering based on the angle between the normal of a textured surface and the view vector.

      enumerator `Mipmap`

        The texture will be down-sampled to square, power-of-two-sized images which will get used for sampling and filtering.

    enum class `Interpolation` : uint32_t

      Enumeration of the various interpolation filters for textures. These are used when the texture needs to be magnified.

      Values:

      enumerator `None`

        The texture coordinate will map to the closest texture samples.

      enumerator `Bilinear`

        The texture data from the four closest texture samples to a texture coordinate will be blended via a weighted average.

    enum class `Parameterization` : uint32_t

      Enumeration of the parameterization sources for textures.

      Values:

      enumerator `Cylinder`

        Use a cylindrical mapping for the texture.

      enumerator `PhysicalReflection`

        Texture Parameterization.

      enumerator `Object`

        Use the (x,y,z) coordinates for the object before transforms have been applied for the texture parameters.

      enumerator `NaturalUV`

        Use the natural mapping for meshes, NURBS surfaces and shells for the texture. For meshes, textures will be stretched in the range [0,1]. For NURBS surfaces, textures will be mapped in the range [0,(control point count - degree)]. For shells, textures will be mapped such that u=x+z and v=x+y where (x,y,z) is in object space.

      enumerator `ReflectionVector`

        Texture Parameterization.

      enumerator `SurfaceNormal`

        Texture Parameterization.

      enumerator `Sphere`

        Use a spherical mapping for the texture.

      enumerator `UV`

        Use the mapping explicitly defined on the geometry for the texture.

      enumerator `World`

        Use the (x, y, z) coordinates for the object after transforms have been applied for the texture parameters.

    enum class `Tiling` : uint32_t

      Enumeration of the tiling modes for textures.

      Values:

      enumerator `Clamp`

        The texture will get mapped normally for parameters in the range [0,1], but parameters less than 0 will be clamped to 0 and parameters greater than 1 will be clamped to 1.

      enumerator `Repeat`

        The texture will get mapped repeatedly in a modulo fashion.

      enumerator `Reflect`

        The texture will get mapped repeatedly in a modulo fashion. Every other modulo will also be inverted.

      enumerator `Trim`

        The texture will get mapped normally for parameters in the range [0,1], but parameters outside that range will act as if the texture at that location is transparent.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your Docs generative AI assistant. Ask me anything about HOOPS Visualize Desktop or choose a sample question below to start a conversation:

What is HOOPS Visualize Desktop?
What are the latest release notes for HOOPS Visualize Desktop?
How do I start evaluating HOOPS Visualize Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...