private void ExportStaticMeshLods(CStaticMeshLod lod, FArchiveWriter Ar, List <MaterialExporter>?materialExports, ETexturePlatform platform = ETexturePlatform.DesktopMobile) { var share = new CVertexShare(); var boneHdr = new VChunkHeader(); var infHdr = new VChunkHeader(); share.Prepare(lod.Verts); foreach (var vert in lod.Verts) { share.AddVertex(vert.Position, vert.Normal); } ExportCommonMeshData(Ar, lod.Sections.Value, lod.Verts, lod.Indices.Value, share, materialExports, platform); boneHdr.DataCount = 0; boneHdr.DataSize = 120; Ar.SerializeChunkHeader(boneHdr, "REFSKELT"); infHdr.DataCount = 0; infHdr.DataSize = 12; Ar.SerializeChunkHeader(infHdr, "RAWWEIGHTS"); ExportVertexColors(Ar, lod.VertexColors, lod.NumVerts); ExportExtraUV(Ar, lod.ExtraUV.Value, lod.NumVerts, lod.NumTexCoords); }
public Gltf(string name, CStaticMeshLod lod, List <MaterialExporter>?materialExports) { var mesh = new MeshBuilder <VERTEX, VertexColorXTextureX, VertexEmpty>(name); for (var i = 0; i < lod.Sections.Value.Length; i++) { ExportStaticMeshSections(i, lod, lod.Sections.Value[i], materialExports, mesh); } var sceneBuilder = new SceneBuilder(); sceneBuilder.AddRigidMesh(mesh, Matrix4x4.Identity); Model = sceneBuilder.ToGltf2(); }