docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class MaterialGenerator

    Common base class for implementations of IMaterialGenerator

    Inheritance
    object
    MaterialGenerator
    ShaderGraphMaterialGenerator
    Implements
    IMaterialGenerator
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: GLTFast.Materials
    Assembly: solution.dll
    Syntax
    public abstract class MaterialGenerator : IMaterialGenerator

    Fields

    AlphaCutoffProperty

    Shader property ID for property alphaCutoff

    Declaration
    public static readonly int AlphaCutoffProperty
    Field Value
    Type Description
    int

    AlphaTestOnKeyword

    Shader keyword _ALPHATEST_ON

    Declaration
    public const string AlphaTestOnKeyword = "_ALPHATEST_ON"
    Field Value
    Type Description
    string

    BaseColorProperty

    Shader property ID for property baseColorFactor

    Declaration
    public static readonly int BaseColorProperty
    Field Value
    Type Description
    int

    BaseColorTextureProperty

    Shader property ID for property baseColorTexture

    Declaration
    public static readonly int BaseColorTextureProperty
    Field Value
    Type Description
    int

    BaseColorTextureRotationProperty

    Shader property ID for property baseColorTexture_Rotation

    Declaration
    public static readonly int BaseColorTextureRotationProperty
    Field Value
    Type Description
    int

    BaseColorTextureScaleTransformProperty

    Shader property ID for property baseColorTexture_ST

    Declaration
    public static readonly int BaseColorTextureScaleTransformProperty
    Field Value
    Type Description
    int

    BaseColorTextureTexCoordProperty

    Shader property ID for property baseColorTexture_texCoord

    Declaration
    public static readonly int BaseColorTextureTexCoordProperty
    Field Value
    Type Description
    int

    CullModeProperty

    Shader property ID for property _CullMode

    Declaration
    public static readonly int CullModeProperty
    Field Value
    Type Description
    int

    CullProperty

    Shader property ID for property _Cull

    Declaration
    public static readonly int CullProperty
    Field Value
    Type Description
    int

    DefaultMaterialName

    When a glTF mesh(primitive) has no material assigned, a default material, has to get created and assigned. This default material should get named after this field's value to ensure future round-trip workflows are functioning.

    Declaration
    public const string DefaultMaterialName = "glTF-Default-Material"
    Field Value
    Type Description
    string

    DiffuseFactorProperty

    Shader property ID for property diffuseFactor

    Declaration
    public static readonly int DiffuseFactorProperty
    Field Value
    Type Description
    int

    DiffuseTextureProperty

    Shader property ID for property diffuseTexture

    Declaration
    public static readonly int DiffuseTextureProperty
    Field Value
    Type Description
    int

    DiffuseTextureRotationProperty

    Shader property ID for property diffuseTexture_Rotation

    Declaration
    public static readonly int DiffuseTextureRotationProperty
    Field Value
    Type Description
    int

    DiffuseTextureScaleTransformProperty

    Shader property ID for property diffuseTexture_ST

    Declaration
    public static readonly int DiffuseTextureScaleTransformProperty
    Field Value
    Type Description
    int

    DiffuseTextureTexCoordProperty

    Shader property ID for property diffuseTexture_texCoord

    Declaration
    public static readonly int DiffuseTextureTexCoordProperty
    Field Value
    Type Description
    int

    DstBlendProperty

    Shader property ID for property _DstBlend

    Declaration
    public static readonly int DstBlendProperty
    Field Value
    Type Description
    int

    EmissiveFactorProperty

    Shader property ID for property emissiveFactor

    Declaration
    public static readonly int EmissiveFactorProperty
    Field Value
    Type Description
    int

    EmissiveTextureProperty

    Shader property ID for property emissiveTexture

    Declaration
    public static readonly int EmissiveTextureProperty
    Field Value
    Type Description
    int

    EmissiveTextureRotationProperty

    Shader property ID for property emissiveTexture_Rotation

    Declaration
    public static readonly int EmissiveTextureRotationProperty
    Field Value
    Type Description
    int

    EmissiveTextureScaleTransformProperty

    Shader property ID for property emissiveTexture_ST

    Declaration
    public static readonly int EmissiveTextureScaleTransformProperty
    Field Value
    Type Description
    int

    EmissiveTextureTexCoordProperty

    Shader property ID for property emissiveTexture_texCoord

    Declaration
    public static readonly int EmissiveTextureTexCoordProperty
    Field Value
    Type Description
    int

    FadeRenderType

    Render type Fade value

    Declaration
    public const string FadeRenderType = "Fade"
    Field Value
    Type Description
    string

    GlossinessFactorProperty

    Shader property ID for property glossinessFactor

    Declaration
    public static readonly int GlossinessFactorProperty
    Field Value
    Type Description
    int

    MetallicProperty

    Shader property ID for property metallicFactor

    Declaration
    public static readonly int MetallicProperty
    Field Value
    Type Description
    int

    MetallicRoughnessMapProperty

    Shader property ID for property metallicRoughnessTexture

    Declaration
    public static readonly int MetallicRoughnessMapProperty
    Field Value
    Type Description
    int

    MetallicRoughnessMapRotationProperty

    Shader property ID for property metallicRoughnessTexture_Rotation

    Declaration
    public static readonly int MetallicRoughnessMapRotationProperty
    Field Value
    Type Description
    int

    MetallicRoughnessMapScaleTransformProperty

    Shader property ID for property metallicRoughnessTexture_ST

    Declaration
    public static readonly int MetallicRoughnessMapScaleTransformProperty
    Field Value
    Type Description
    int

    MetallicRoughnessMapUVChannelProperty

    Shader property ID for property metallicRoughnessTexture_texCoord

    Declaration
    public static readonly int MetallicRoughnessMapUVChannelProperty
    Field Value
    Type Description
    int

    NormalTextureProperty

    Shader property ID for property normalTexture

    Declaration
    public static readonly int NormalTextureProperty
    Field Value
    Type Description
    int

    NormalTextureRotationProperty

    Shader property ID for property normalTexture_Rotation

    Declaration
    public static readonly int NormalTextureRotationProperty
    Field Value
    Type Description
    int

    NormalTextureScaleProperty

    Shader property ID for property normalTexture_scale

    Declaration
    public static readonly int NormalTextureScaleProperty
    Field Value
    Type Description
    int

    NormalTextureScaleTransformProperty

    Shader property ID for property normalTexture_ST

    Declaration
    public static readonly int NormalTextureScaleTransformProperty
    Field Value
    Type Description
    int

    NormalTextureTexCoordProperty

    Shader property ID for property normalTexture_texCoord

    Declaration
    public static readonly int NormalTextureTexCoordProperty
    Field Value
    Type Description
    int

    OcclusionTextureProperty

    Shader property ID for property occlusionTexture

    Declaration
    public static readonly int OcclusionTextureProperty
    Field Value
    Type Description
    int

    OcclusionTextureRotationProperty

    Shader property ID for property occlusionTexture_Rotation

    Declaration
    public static readonly int OcclusionTextureRotationProperty
    Field Value
    Type Description
    int

    OcclusionTextureScaleTransformProperty

    Shader property ID for property occlusionTexture_ST

    Declaration
    public static readonly int OcclusionTextureScaleTransformProperty
    Field Value
    Type Description
    int

    OcclusionTextureStrengthProperty

    Shader property ID for property occlusionTexture_strength

    Declaration
    public static readonly int OcclusionTextureStrengthProperty
    Field Value
    Type Description
    int

    OcclusionTextureTexCoordProperty

    Shader property ID for property occlusionTexture_texCoord

    Declaration
    public static readonly int OcclusionTextureTexCoordProperty
    Field Value
    Type Description
    int

    OpaqueRenderType

    Render type Opaque value

    Declaration
    public const string OpaqueRenderType = "Opaque"
    Field Value
    Type Description
    string

    RenderTypeTag

    Render type key

    Declaration
    public const string RenderTypeTag = "RenderType"
    Field Value
    Type Description
    string

    RoughnessFactorProperty

    Shader property ID for property roughnessFactor

    Declaration
    public static readonly int RoughnessFactorProperty
    Field Value
    Type Description
    int

    SpecularFactorProperty

    Shader property ID for property specularFactor

    Declaration
    public static readonly int SpecularFactorProperty
    Field Value
    Type Description
    int

    SpecularGlossinessTextureProperty

    Shader property ID for property specularGlossinessTexture

    Declaration
    public static readonly int SpecularGlossinessTextureProperty
    Field Value
    Type Description
    int

    SpecularGlossinessTextureRotationProperty

    Shader property ID for property specularGlossinessTexture_Rotation

    Declaration
    public static readonly int SpecularGlossinessTextureRotationProperty
    Field Value
    Type Description
    int

    SpecularGlossinessTextureScaleTransformProperty

    Shader property ID for property specularGlossinessTexture_ST

    Declaration
    public static readonly int SpecularGlossinessTextureScaleTransformProperty
    Field Value
    Type Description
    int

    SpecularGlossinessTextureTexCoordProperty

    Shader property ID for property specularGlossinessTexture_texCoord

    Declaration
    public static readonly int SpecularGlossinessTextureTexCoordProperty
    Field Value
    Type Description
    int

    SrcBlendProperty

    Shader property ID for property _SrcBlend

    Declaration
    public static readonly int SrcBlendProperty
    Field Value
    Type Description
    int

    TextureTransformKeyword

    Shader keyword _TEXTURE_TRANSFORM

    Declaration
    public const string TextureTransformKeyword = "_TEXTURE_TRANSFORM"
    Field Value
    Type Description
    string

    TransparentCutoutRenderType

    Render type TransparentCutout value

    Declaration
    public const string TransparentCutoutRenderType = "TransparentCutout"
    Field Value
    Type Description
    string

    TransparentRenderType

    Render type Transparent value

    Declaration
    public const string TransparentRenderType = "Transparent"
    Field Value
    Type Description
    string

    UVChannelSelectKeyword

    Shader keyword _UV_CHANNEL_SELECT

    Declaration
    public const string UVChannelSelectKeyword = "_UV_CHANNEL_SELECT"
    Field Value
    Type Description
    string

    ZWriteProperty

    Shader property ID for property _ZWrite

    Declaration
    public static readonly int ZWriteProperty
    Field Value
    Type Description
    int

    Properties

    Logger

    Logger to be used for messaging. Can be null!

    Declaration
    protected ICodeLogger Logger { get; }
    Property Value
    Type Description
    ICodeLogger

    Methods

    FindShader(string, ICodeLogger)

    Tries to load a shader and covers error handling.

    Declaration
    protected static Shader FindShader(string shaderName, ICodeLogger logger)
    Parameters
    Type Name Description
    string shaderName

    The requested shader's name.

    ICodeLogger logger

    Logger used for reporting errors.

    Returns
    Type Description
    Shader

    Requested shader or null if it couldn't be loaded.

    GenerateDefaultMaterial(bool)

    Creates a fallback material to be assigned to nodes without a material.

    Declaration
    protected abstract Material GenerateDefaultMaterial(bool pointsSupport = false)
    Parameters
    Type Name Description
    bool pointsSupport

    If true, material has to support meshes with points topology

    Returns
    Type Description
    Material

    fallback material

    GenerateMaterial(MaterialBase, IGltfReadable, bool)

    Converts a glTF material into a Unity Material. gltfMaterial might reference textures, which can be queried from gltf.

    Declaration
    public abstract Material GenerateMaterial(MaterialBase gltfMaterial, IGltfReadable gltf, bool pointsSupport = false)
    Parameters
    Type Name Description
    MaterialBase gltfMaterial

    Source glTF material

    IGltfReadable gltf

    Interface to a loaded glTF's resources (e.g. textures)

    bool pointsSupport

    If true, material has to support meshes with points topology.

    Returns
    Type Description
    Material

    Generated Unity Material

    GetDefaultMaterial(bool)

    Get fallback material that is assigned to nodes without a material.

    Declaration
    public Material GetDefaultMaterial(bool pointsSupport = false)
    Parameters
    Type Name Description
    bool pointsSupport

    If true, material has to support meshes with points topology.

    Returns
    Type Description
    Material

    fallback material

    GetDefaultMaterialGenerator()

    Provides the default material generator that's being used if no custom material generator was provided. The result depends on the currently used render pipeline.

    Declaration
    public static IMaterialGenerator GetDefaultMaterialGenerator()
    Returns
    Type Description
    IMaterialGenerator

    The default material generator

    Exceptions
    Type Condition
    InvalidOperationException

    Is thrown when the default material generator couldn't be determined based on the current render pipeline.

    SetLogger(ICodeLogger)

    Has to be called prior to GenerateMaterial(MaterialBase, IGltfReadable, bool). The logger can be used to inform users about incidents of arbitrary severity (error,warning or info) during material generation.

    Declaration
    public void SetLogger(ICodeLogger logger)
    Parameters
    Type Name Description
    ICodeLogger logger

    Logger to be used.

    TransmissionWorkaroundShaderMode(Transmission, ref Color)

    Approximates Transmission material effect for Render Pipelines / Shaders where filtering the backbuffer is not possible.

    Declaration
    protected static bool TransmissionWorkaroundShaderMode(Transmission transmission, ref Color baseColorLinear)
    Parameters
    Type Name Description
    Transmission transmission

    glTF transmission extension data

    Color baseColorLinear

    BaseColor reference. Alpha will be altered according to transmission

    Returns
    Type Description
    bool

    True when the transmission can be approximated with Premultiply mode. False if blending is better

    TrySetTexture(TextureInfoBase, Material, IGltfReadable, int, int, int, int)

    Attempts assigning a glTF texture to a Unity material.

    Declaration
    protected bool TrySetTexture(TextureInfoBase textureInfo, Material material, IGltfReadable gltf, int texturePropertyId, int scaleTransformPropertyId = -1, int rotationPropertyId = -1, int uvChannelPropertyId = -1)
    Parameters
    Type Name Description
    TextureInfoBase textureInfo

    glTF source texture

    Material material

    target material

    IGltfReadable gltf

    Context glTF

    int texturePropertyId

    Target texture property

    int scaleTransformPropertyId

    Scale/transform (_ST) property

    int rotationPropertyId

    Rotation property

    int uvChannelPropertyId

    UV channel selection property

    Returns
    Type Description
    bool

    True if texture assignment was successful, false otherwise.

    Implements

    IMaterialGenerator
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)