/// <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); }
/// <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); }