C#开源库SharpGLTF生成GLTF
2026/7/3 5:30:23 网站建设 项目流程

介绍

开源库地址:https://github.com/vpenades/SharpGLTF

SharpGLTF是100%的.NET标准库,旨在支持Khronos Group glTF 2.0文件格式。

示例

创建项目

  1. 创建控制台项目
  2. 在NuGet搜索并添加SharpGLTF.Toolkit库(会自动添加依赖的Core和Runtime库)

代码示例

usingSystem.Numerics;usingSharpGLTF.Geometry;usingSharpGLTF.Materials;usingSharpGLTF.Schema2;usingVERTEX=SharpGLTF.Geometry.VertexTypes.VertexPosition;namespaceTestSharpGLTF{internalclassProgram{staticvoidMain(string[]args){// create two materialsvarmaterial1=newMaterialBuilder().WithDoubleSide(true).WithMetallicRoughnessShader().WithChannelParam(KnownChannel.BaseColor,KnownProperty.RGBA,newVector4(1,0,0,1));varmaterial2=newMaterialBuilder().WithDoubleSide(true).WithMetallicRoughnessShader().WithChannelParam(KnownChannel.BaseColor,KnownProperty.RGBA,newVector4(1,0,1,1));// create a mesh with two primitives, one for each materialvarmesh=newMeshBuilder<VERTEX>("mesh");varprim=mesh.UsePrimitive(material1);prim.AddTriangle(newVERTEX(-10,0,0),newVERTEX(10,0,0),newVERTEX(0,10,0));prim.AddTriangle(newVERTEX(10,0,0),newVERTEX(-10,0,0),newVERTEX(0,-10,0));prim=mesh.UsePrimitive(material2);prim.AddQuadrangle(newVERTEX(-5,0,3),newVERTEX(0,-5,3),newVERTEX(5,0,3),newVERTEX(0,5,3));// create a scenevarscene=newSharpGLTF.Scenes.SceneBuilder();scene.AddRigidMesh(mesh,Matrix4x4.Identity);// save the model in different formatsvarmodel=scene.ToGltf2();model.SaveAsWavefront("mesh.obj");model.SaveGLB("mesh.glb");model.SaveGLTF("mesh.gltf");}}}
  • 创建了两个纯色的材质
  • 创建mesh,并使用前面创建的材质。一个mesh是两个三角形,另一个是一个四边形
  • 创建Scene
  • 导出模型

三维预览

在blender打开生成的gltf文件。

总结

通览整个库,目前没有数据格式转换的功能(其他格式转gltf,gltf转其他格式)。
该库主要是支持gltf数据的读写,所以适合使用该库的API定制gltf文件的内容。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询