IT WORKS(somewhat)
This commit is contained in:
@@ -261,6 +261,7 @@ void MeshLoader::loadGlobalMeshes(const aiScene* scene, const Array<PMaterialIns
|
|||||||
globalMeshes[meshIndex]->id = id;
|
globalMeshes[meshIndex]->id = id;
|
||||||
globalMeshes[meshIndex]->referencedMaterial = materials[mesh->mMaterialIndex];
|
globalMeshes[meshIndex]->referencedMaterial = materials[mesh->mMaterialIndex];
|
||||||
globalMeshes[meshIndex]->meshlets = std::move(meshlets);
|
globalMeshes[meshIndex]->meshlets = std::move(meshlets);
|
||||||
|
globalMeshes[meshIndex]->indices = std::move(indices);
|
||||||
globalMeshes[meshIndex]->vertexCount = mesh->mNumVertices;
|
globalMeshes[meshIndex]->vertexCount = mesh->mNumVertices;
|
||||||
globalMeshes[meshIndex]->indexBuffer = std::move(indexBuffer);
|
globalMeshes[meshIndex]->indexBuffer = std::move(indexBuffer);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ IndexBuffer::IndexBuffer(QueueFamilyMapping mapping, uint64 size, Gfx::SeIndexTy
|
|||||||
break;
|
break;
|
||||||
case SE_INDEX_TYPE_UINT32:
|
case SE_INDEX_TYPE_UINT32:
|
||||||
numIndices = size / sizeof(uint32);
|
numIndices = size / sizeof(uint32);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ void Mesh::save(ArchiveBuffer& buffer) const
|
|||||||
{
|
{
|
||||||
Serialization::save(buffer, vertexData->getTypeName());
|
Serialization::save(buffer, vertexData->getTypeName());
|
||||||
Serialization::save(buffer, vertexCount);
|
Serialization::save(buffer, vertexCount);
|
||||||
|
Serialization::save(buffer, indices);
|
||||||
Serialization::save(buffer, meshlets);
|
Serialization::save(buffer, meshlets);
|
||||||
Serialization::save(buffer, referencedMaterial->getAssetIdentifier());
|
Serialization::save(buffer, referencedMaterial->getAssetIdentifier());
|
||||||
vertexData->serializeMesh(id, vertexCount, buffer);
|
vertexData->serializeMesh(id, vertexCount, buffer);
|
||||||
@@ -27,6 +28,14 @@ void Mesh::load(ArchiveBuffer& buffer)
|
|||||||
Serialization::load(buffer, typeName);
|
Serialization::load(buffer, typeName);
|
||||||
Serialization::load(buffer, vertexCount);
|
Serialization::load(buffer, vertexCount);
|
||||||
vertexData = VertexData::findByTypeName(typeName);
|
vertexData = VertexData::findByTypeName(typeName);
|
||||||
|
Serialization::load(buffer, indices);
|
||||||
|
indexBuffer = buffer.getGraphics()->createIndexBuffer(IndexBufferCreateInfo{
|
||||||
|
.sourceData = {
|
||||||
|
.size = sizeof(uint32) * indices.size(),
|
||||||
|
.data = (uint8*)indices.data(),
|
||||||
|
},
|
||||||
|
.indexType = Gfx::SeIndexType::SE_INDEX_TYPE_UINT32,
|
||||||
|
});
|
||||||
Serialization::load(buffer, meshlets);
|
Serialization::load(buffer, meshlets);
|
||||||
std::string refId;
|
std::string refId;
|
||||||
Serialization::load(buffer, refId);
|
Serialization::load(buffer, refId);
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ public:
|
|||||||
uint64 vertexCount;
|
uint64 vertexCount;
|
||||||
Gfx::OIndexBuffer indexBuffer;
|
Gfx::OIndexBuffer indexBuffer;
|
||||||
PMaterialInstanceAsset referencedMaterial;
|
PMaterialInstanceAsset referencedMaterial;
|
||||||
|
Array<uint32> indices;
|
||||||
Array<Meshlet> meshlets;
|
Array<Meshlet> meshlets;
|
||||||
void save(ArchiveBuffer& buffer) const;
|
void save(ArchiveBuffer& buffer) const;
|
||||||
void load(ArchiveBuffer& buffer);
|
void load(ArchiveBuffer& buffer);
|
||||||
|
|||||||
Reference in New Issue
Block a user