五.轉(zhuǎn)換為glTF格式
SolidWorks插件-將SolidWorks文件轉(zhuǎn)換為gltf格式
- 一.SolidWorks文件轉(zhuǎn)換為glTF格式
- 二.搭建一個Taskpane的SolidWorks插件
- 三.獲取SolidWorks文件中的網(wǎng)格信息
- 四.獲取SolidWorks中的材質(zhì)信息
- 五.轉(zhuǎn)換為glTF格式
- 六.裝配體和多實體格式的轉(zhuǎn)換
- 去Github查看代碼或下載插件安裝包
5.1.轉(zhuǎn)換為gltf
- 在完成信息提取后辕漂,我們只需要用SharpglTF庫來實現(xiàn)對gltf格式的操作即可
public List<string> SaveAs(SWglTFModel Model, string Path, string Name)
{
var scene = new SharpGLTF.Scenes.SceneBuilder();
foreach (var Body in Model.BodyList)
{
//創(chuàng)建一個網(wǎng)格
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));
}
//確定材質(zhì)屬性
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格式的序列化,這使我們無需過多關(guān)注gltf格式的內(nèi)部信息蜒车。但我們?nèi)匀恍枰斫庖幌耮ltf格式的各個節(jié)點棒卷。
轉(zhuǎn)換完成Win10可以用自帶的3D瀏覽器打開纺棺,也可以使用Visual Studio Code的gltf插件瀏覽蒙袍,查看生成的Json文件。