public static byte[] GetGlb(TriangleCollection triangles) { var materialCache = new MaterialsCache(); var default_hex_color = "#bb3333"; var defaultMaterial = materialCache.GetMaterialBuilderByColor(default_hex_color); var mesh = new MeshBuilder <VertexPositionNormal, VertexWithBatchId, VertexEmpty>("mesh"); foreach (var triangle in triangles) { MaterialBuilder material; if (!string.IsNullOrEmpty(triangle.Color)) { material = materialCache.GetMaterialBuilderByColor(triangle.Color); } else { material = defaultMaterial; } DrawTriangle(triangle, material, mesh); } var scene = new SceneBuilder(); scene.AddRigidMesh(mesh, Matrix4x4.Identity); var model = scene.ToSchema2(); var bytes = model.WriteGLB().Array; return(bytes); }
public static byte[] GetGlb(List <Triangle> triangles) { var materialCache = new MaterialsCache(); var default_hex_color = "#D94F33"; // "#bb3333"; var defaultMaterial = MaterialCreator.GetDefaultMaterial(default_hex_color); var mesh = new MeshBuilder <VertexPositionNormal, VertexWithBatchId, VertexEmpty>("mesh"); foreach (var triangle in triangles) { MaterialBuilder material; if (triangle.Shader != null) { material = materialCache.GetMaterialBuilderByShader(triangle.Shader); } else { material = defaultMaterial; } DrawTriangle(triangle, material, mesh); } var scene = new SceneBuilder(); scene.AddRigidMesh(mesh, Matrix4x4.Identity); var model = scene.ToGltf2(); var bytes = model.WriteGLB().Array; return(bytes); }