五.转换为glTF格式

2019-11-27  本文已影响0人  dududuwei

五.转换为glTF格式

SolidWorks插件-将SolidWorks文件转换为gltf格式

5.1.转换为gltf

        public List<string>  SaveAs(SWglTFModel Model, string Path, string Name)
        {
            var scene = new SharpGLTF.Scenes.SceneBuilder();
            
            foreach (var Body in Model.BodyList)
            {

                //创建一个网格
                var Mesh = new MeshBuilder<VERTEX>("mesh");


                var material = (Body.MaterialBuilder == null ? Model.MaterialBuilder : Body.MaterialBuilder);
                if (material == null)
                {
                    material = new MaterialBuilder()
            .WithDoubleSide(true)
            .WithMetallicRoughnessShader()
            .WithChannelParam("BaseColor", new Vector4(1, 0, 0, 1));
                }
                //确定材质属性
                var prim = Mesh.UsePrimitive(material
                    );

                foreach (var face in Body.FaceList)
                {
                    
                    foreach (var tri in face.FaceTri)
                    {
                        prim.AddTriangle(tri.a, tri.b, tri.c);
                    }
                }

                scene.AddMesh(Mesh, Body.BodyTransform);

            }


            var model = scene.ToSchema2();
            model.SaveAsWavefront(Path + "\\" + Name + ".obj");
            model.SaveGLB(Path + "\\" + Name + ".glb");
            model.SaveGLTF(Path + "\\" + Name + ".gltf");
            return new List<string>()
            {
                Path + "\\" + Name + ".obj",
                Path + "\\" + Name + ".glb",
                Path + "\\" + Name + ".gltf"
            };
        }
上一篇 下一篇

猜你喜欢

热点阅读