Exemplo n.º 1
0
        public MaterialDescriptor Get(GltfData data, int i)
        {
            // mtoon URP "MToon" shader is not ready. import fallback to unlit
            // unlit "UniUnlit" work in URP
            if (GltfUnlitMaterialImporter.TryCreateParam(data, i, out var matDesc))
            {
                return(matDesc);
            }
            // pbr "Standard" to "Universal Render Pipeline/Lit"
            if (GltfPbrUrpMaterialImporter.TryCreateParam(data, i, out matDesc))
            {
                return(matDesc);
            }
            // fallback
#if VRM_DEVELOP
            Debug.LogWarning($"material: {i} out of range. fallback");
#endif
            return(new MaterialDescriptor(
                       GltfMaterialDescriptorGenerator.GetMaterialName(i, null),
                       GltfPbrMaterialImporter.ShaderName,
                       null,
                       new Dictionary <string, TextureDescriptor>(),
                       new Dictionary <string, float>(),
                       new Dictionary <string, Color>(),
                       new Dictionary <string, Vector4>(),
                       new Action <Material>[] {}));
        }
 public MaterialDescriptor Get(GltfData data, int i)
 {
     // unlit
     if (GltfUnlitMaterialImporter.TryCreateParam(data, i, out MaterialDescriptor matDesc))
     {
         return(matDesc);
     }
     // pbr
     if (GltfPbrUrpMaterialImporter.TryCreateParam(data, i, out matDesc))
     {
         return(matDesc);
     }
     // fallback
     Debug.LogWarning($"material: {i} out of range. fallback");
     return(new MaterialDescriptor(
                GltfMaterialDescriptorGenerator.GetMaterialName(i, null),
                GltfPbrMaterialImporter.ShaderName,
                null,
                new Dictionary <string, TextureDescriptor>(),
                new Dictionary <string, float>(),
                new Dictionary <string, Color>(),
                new Dictionary <string, Vector4>(),
                new Action <Material>[] {}));
 }