五.转换为glTF格式

五.转换为glTF格式

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

5.1.转换为gltf

  • 在完成信息提取后,我们只需要用SharpglTF库来实现对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"
            };
        }
  •   SharpglTF帮我们完成了对gltf中JSON格式的序列化,这使我们无需过多关注gltf格式的内部信息。但我们仍然需要理解一下gltf格式的各个节点。

  • 转换完成Win10可以用自带的3D浏览器打开,也可以使用Visual Studio Code的gltf插件浏览,查看生成的Json文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容