private void SerializeLODs(SerializingContainer Container) { int count = 0; if (!Container.isLoading) { count = LODModels.Count(); } count = Container + count; if (Container.isLoading) { LODModels = new List <LODModelStruct>(); for (int i = 0; i < count; i++) { LODModels.Add(new LODModelStruct()); } } for (int i = 0; i < count; i++) { LODModelStruct lod = LODModels[i]; lod.Serialize(Container); LODModels[i] = lod; } //ReadEnd = Container.GetPos(); }
private void GenerateDXMeshes() { DirectXSections = new List <CustomVertex.PositionTextured[]>(); for (int i = 0; i < LODModels.Count; i++) { LODModelStruct l = LODModels[i]; CustomVertex.PositionTextured[] list = new CustomVertex.PositionTextured[l.IndexBuffer.Indexes.Count]; for (int j = 0; j < l.IndexBuffer.Indexes.Count; j++) { int idx = l.IndexBuffer.Indexes[j]; GPUSkinVertexStruct v = l.VertexBufferGPUSkin.Vertices[idx]; list[j] = new CustomVertex.PositionTextured(v.Position, HalfToFloat(v.U), HalfToFloat(v.V)); } DirectXSections.Add(list); } }
private void SerializeLODs(SerializingContainer Container) { int count = 0; if (!Container.isLoading) { count = LODModels.Count(); } count = Container + count; // this is the actual number of lods but we only care about lod0 (and it prevents us from looking for other lods in ME1/ME2) // so we force count to 1. count = 1; if (Container.isLoading) { LODModels = new List <LODModelStruct>(); for (int i = 0; i < count; i++) { LODModels.Add(new LODModelStruct()); } } for (int i = 0; i < count; i++) { LODModelStruct lod = LODModels[i]; MEVersion version = MEVersion.ME1; if (Owner is ME2Package) { version = MEVersion.ME2; } else if (Owner is ME3Package) { version = MEVersion.ME3; } lod.Serialize(Container, version); LODModels[i] = lod; } }