Exemple #1
0
        /// <summary>
        /// Create a VRM default material.
        /// </summary>
        /// <param name="m"></param>
        /// <param name="renderMode"></param>
        /// <returns></returns>
        protected virtual glTFMaterial CreateVrmDefaultMaterial(Material m, MToon.RenderMode renderMode)
        {
            var material = new glTFMaterial();

            material.name = m.name;

            // Alpha Mode
            switch (renderMode)
            {
            case MToon.RenderMode.Opaque:
                material.alphaMode = glTFBlendMode.OPAQUE.ToString();
                break;

            case MToon.RenderMode.Cutout:
                material.alphaMode = glTFBlendMode.MASK.ToString();
                break;

            case MToon.RenderMode.Transparent:
            case MToon.RenderMode.TransparentWithZWrite:
                material.alphaMode = glTFBlendMode.BLEND.ToString();
                break;

            default:
                break;
            }

            // Alpha Cutoff
            if (renderMode == MToon.RenderMode.Cutout)
            {
                material.alphaCutoff = m.GetFloat(MToon.Utils.PropCutoff);
            }

            return(material);
        }
Exemple #2
0
        /// <summary>
        /// Create a VRM Unlit material.
        /// </summary>
        /// <param name="m"></param>
        /// <param name="renderMode"></param>
        /// <returns></returns>
        protected virtual glTFMaterial CreateVrmUnlitMaterial(Material m, MToon.RenderMode renderMode)
        {
            var material = CreateVrmDefaultMaterial(m, renderMode);

            // PBR Metallic Roughness
            material.pbrMetallicRoughness = new glTFPbrMetallicRoughness();

            // extensions
            material.extensions = new glTFMaterial_extensions()
            {
                VGO_materials       = new VGO_materials(m.shader.name),
                KHR_materials_unlit = new KHR_materials_unlit(),
            };

            return(material);
        }