Utility/Mesh: Refactor Mesh & Submeshes
This commit is contained in:
@@ -158,12 +158,7 @@ namespace Nz
|
||||
#endif
|
||||
|
||||
VertexBufferRef vertexBuffer = VertexBuffer::New(parameters.vertexDeclaration, header.num_vertices, parameters.storage, parameters.vertexBufferFlags);
|
||||
StaticMeshRef subMesh = StaticMesh::New(mesh);
|
||||
if (!subMesh->Create(vertexBuffer))
|
||||
{
|
||||
NazaraError("Failed to create SubMesh");
|
||||
return false;
|
||||
}
|
||||
StaticMeshRef subMesh = StaticMesh::New(vertexBuffer, indexBuffer);
|
||||
|
||||
// Extracting vertices
|
||||
stream.SetCursorPos(header.offset_frames);
|
||||
|
||||
@@ -202,13 +202,9 @@ namespace Nz
|
||||
mesh->SetMaterialData(i, std::move(matData));
|
||||
|
||||
// Submesh
|
||||
SkeletalMeshRef subMesh = SkeletalMesh::New(mesh);
|
||||
subMesh->Create(vertexBuffer);
|
||||
|
||||
subMesh->SetIndexBuffer(indexBuffer);
|
||||
SkeletalMeshRef subMesh = SkeletalMesh::New(vertexBuffer, indexBuffer);
|
||||
subMesh->GenerateNormalsAndTangents();
|
||||
subMesh->SetMaterialIndex(i);
|
||||
subMesh->SetPrimitiveMode(PrimitiveMode_TriangleList);
|
||||
|
||||
mesh->AddSubMesh(subMesh);
|
||||
|
||||
@@ -255,6 +251,9 @@ namespace Nz
|
||||
}
|
||||
indexMapper.Unmap();
|
||||
|
||||
if (parameters.optimizeIndexBuffers)
|
||||
indexBuffer->Optimize();
|
||||
|
||||
// Vertex buffer
|
||||
VertexBufferRef vertexBuffer = VertexBuffer::New(parameters.vertexDeclaration, UInt32(vertexCount), parameters.storage, parameters.vertexBufferFlags);
|
||||
|
||||
@@ -287,13 +286,7 @@ namespace Nz
|
||||
vertexMapper.Unmap();
|
||||
|
||||
// Submesh
|
||||
StaticMeshRef subMesh = StaticMesh::New(mesh);
|
||||
subMesh->Create(vertexBuffer);
|
||||
|
||||
if (parameters.optimizeIndexBuffers)
|
||||
indexBuffer->Optimize();
|
||||
|
||||
subMesh->SetIndexBuffer(indexBuffer);
|
||||
StaticMeshRef subMesh = StaticMesh::New(vertexBuffer, indexBuffer);
|
||||
subMesh->GenerateAABB();
|
||||
subMesh->SetMaterialIndex(i);
|
||||
|
||||
|
||||
@@ -311,20 +311,10 @@ namespace Nz
|
||||
|
||||
vertexMapper.Unmap();
|
||||
|
||||
StaticMeshRef subMesh = StaticMesh::New(mesh);
|
||||
if (!subMesh->Create(vertexBuffer))
|
||||
{
|
||||
NazaraError("Failed to create StaticMesh");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (parameters.optimizeIndexBuffers)
|
||||
indexBuffer->Optimize();
|
||||
|
||||
StaticMeshRef subMesh = StaticMesh::New(vertexBuffer, indexBuffer);
|
||||
subMesh->GenerateAABB();
|
||||
subMesh->SetIndexBuffer(indexBuffer);
|
||||
subMesh->SetAABB(subMesh->GetAABB() * 0.5f);
|
||||
subMesh->SetMaterialIndex(meshes[i].material);
|
||||
subMesh->SetPrimitiveMode(PrimitiveMode_TriangleList);
|
||||
|
||||
// Ce que nous pouvons générer dépend des données à disposition (par exemple les tangentes nécessitent des coordonnées de texture)
|
||||
if (hasNormals && hasTexCoords)
|
||||
|
||||
Reference in New Issue
Block a user