C#开源库SharpGLTF生成GLTF

📅 2026/6/28 3:42:44
C#开源库SharpGLTF生成GLTF
介绍开源库地址https://github.com/vpenades/SharpGLTFSharpGLTF是100%的.NET标准库旨在支持Khronos Group glTF 2.0文件格式。示例创建项目创建控制台项目在NuGet搜索并添加SharpGLTF.Toolkit库会自动添加依赖的Core和Runtime库代码示例usingSystem.Numerics;usingSharpGLTF.Geometry;usingSharpGLTF.Materials;usingSharpGLTF.Schema2;usingVERTEXSharpGLTF.Geometry.VertexTypes.VertexPosition;namespaceTestSharpGLTF{internalclassProgram{staticvoidMain(string[]args){// create two materialsvarmaterial1newMaterialBuilder().WithDoubleSide(true).WithMetallicRoughnessShader().WithChannelParam(KnownChannel.BaseColor,KnownProperty.RGBA,newVector4(1,0,0,1));varmaterial2newMaterialBuilder().WithDoubleSide(true).WithMetallicRoughnessShader().WithChannelParam(KnownChannel.BaseColor,KnownProperty.RGBA,newVector4(1,0,1,1));// create a mesh with two primitives, one for each materialvarmeshnewMeshBuilderVERTEX(mesh);varprimmesh.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));primmesh.UsePrimitive(material2);prim.AddQuadrangle(newVERTEX(-5,0,3),newVERTEX(0,-5,3),newVERTEX(5,0,3),newVERTEX(0,5,3));// create a scenevarscenenewSharpGLTF.Scenes.SceneBuilder();scene.AddRigidMesh(mesh,Matrix4x4.Identity);// save the model in different formatsvarmodelscene.ToGltf2();model.SaveAsWavefront(mesh.obj);model.SaveGLB(mesh.glb);model.SaveGLTF(mesh.gltf);}}}创建了两个纯色的材质创建mesh并使用前面创建的材质。一个mesh是两个三角形另一个是一个四边形创建Scene导出模型三维预览在blender打开生成的gltf文件。总结通览整个库目前没有数据格式转换的功能其他格式转gltfgltf转其他格式。该库主要是支持gltf数据的读写所以适合使用该库的API定制gltf文件的内容。