private static void _MergeIndices(IEnumerable <PackedPrimitiveBuilder <TMaterial> > primitives) { var indexBuffers = new PackedBuffer(); foreach (var p in primitives) { indexBuffers.AddAccessors(p._IndexAccessors); } indexBuffers.MergeBuffers(); }
private static void _MergeStridedVertices(IEnumerable <PackedPrimitiveBuilder <TMaterial> > primitives) { var perVertexGroups = primitives .ToList() .GroupBy(item => item._StridedVertexType); foreach (var group in perVertexGroups) { var vertexBuffers = new PackedBuffer(); foreach (var p in group) { vertexBuffers.AddAccessors(p._VertexAccessors); } vertexBuffers.MergeBuffers(); } }
private static void _MergeStreamedVertices(IEnumerable <Memory.MemoryAccessor[]> primitives) { var vertexBuffers = new Dictionary <string, PackedBuffer>(); foreach (var vvv in primitives) { foreach (var v in vvv) { var k = v.Attribute.Name; if (!vertexBuffers.TryGetValue(k, out PackedBuffer packed)) { vertexBuffers[k] = packed = new PackedBuffer(); } packed.AddAccessors(v); } } foreach (var vb in vertexBuffers.Values) { vb.MergeBuffers(); } }