//private static GLTF.Schema.Material ConvertKHRWebGLMaterial(UnityEngine.Material material, ExportorEntry entry) //{ //} public static GLTF.Schema.Material ConvertMaterial(SeinCustomMaterial mat, ExporterEntry entry) { var material = new GLTF.Schema.Material(); material.Name = mat.unityMaterialName; if (mat.uniformsTexture.Length != 0) { foreach (var uniform in mat.uniformsTexture) { uniform.id = entry.SaveTexture(uniform.value, mat.transparent); } } if (mat.uniformsCubeTexture.Length != 0) { foreach (var uniform in mat.uniformsCubeTexture) { uniform.id = entry.SaveCubeTexture(uniform.value); } } if (material.Extensions == null) { material.Extensions = new Dictionary <string, Extension>(); } if (mat.transparent) { material.AlphaMode = AlphaMode.BLEND; } ExtensionManager.Serialize(ExtensionManager.GetExtensionName(typeof(Sein_customMaterialExtensionFactory)), entry, material.Extensions, mat); return(material); }
public MaterialId SaveComponentMaterial(SeinCustomMaterial material) { if (root.Materials == null) { root.Materials = new List<GLTF.Schema.Material>(); } var mat = ExporterUtils.ConvertMaterial(material, this); root.Materials.Add(mat); var id = new MaterialId { Id = root.Materials.Count - 1, Root = root }; return id; }
//private static GLTF.Schema.Material ConvertKHRWebGLMaterial(UnityEngine.Material material, ExportorEntry entry) //{ //} public static GLTF.Schema.Material ConvertMaterial(SeinCustomMaterial mat, ExporterEntry entry) { var material = new GLTF.Schema.Material(); if (mat.uniformsTexture.Length != 0) { foreach (var uniform in mat.uniformsTexture) { uniform.id = entry.SaveTexture(uniform.value, mat.transparent); } } if (mat.uniformsCubeTexture.Length != 0) { foreach (var uniform in mat.uniformsCubeTexture) { // todo: support cubemap //int diffuseTextureIndex = processTexture(uniform.value, hasTransparency ? IMAGETYPE.RGBA : IMAGETYPE.RGBA_OPAQUE); //uniform.index = diffuseTextureIndex; //uniform.texCoord = 0; } } if (material.Extensions == null) { material.Extensions = new Dictionary <string, Extension>(); } if (mat.transparent) { material.AlphaMode = AlphaMode.BLEND; } ExtensionManager.Serialize(ExtensionManager.GetExtensionName(typeof(Sein_customMaterialExtensionFactory)), entry, material.Extensions, mat); return(material); }
private void ExportComponentMaterial(SeinCustomMaterial material, MeshPrimitive primitive, ExporterEntry entry) { primitive.Material = entry.SaveComponentMaterial(material); }