五.转换为glTF格式
SolidWorks插件-将SolidWorks文件转换为gltf格式
- 一.SolidWorks文件转换为glTF格式
- 二.搭建一个Taskpane的SolidWorks插件
- 三.获取SolidWorks文件中的网格信息
- 四.获取SolidWorks中的材质信息
- 五.转换为glTF格式
- 六.装配体和多实体格式的转换
- 去Github查看代码或下载插件安装包
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文件。
网友评论