美文网首页
五.转换为glTF格式

五.转换为glTF格式

作者: dududuwei | 来源:发表于2019-11-27 22:20 被阅读0次

五.转换为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文件。

相关文章

网友评论

      本文标题:五.转换为glTF格式

      本文链接:https://www.haomeiwen.com/subject/xmgmwctx.html