Skip to content
Snippets Groups Projects
Commit 7a63f8f7 authored by Alexander Gauggel's avatar Alexander Gauggel
Browse files

[#105] Use model matrix for bounding sphere computation

parent ae190a87
No related branches found
No related tags found
1 merge request!88Resolve "Indirect Draw"
Pipeline #27384 passed
...@@ -128,13 +128,15 @@ void interleaveScene(vkcv::asset::Scene scene, ...@@ -128,13 +128,15 @@ void interleaveScene(vkcv::asset::Scene scene,
v.normal = *reinterpret_cast<const glm::vec3*>(&(vertexData[normalOffset])); v.normal = *reinterpret_cast<const glm::vec3*>(&(vertexData[normalOffset]));
v.uv = *reinterpret_cast<const glm::vec3*>(&(vertexData[uvOffset])); v.uv = *reinterpret_cast<const glm::vec3*>(&(vertexData[uvOffset]));
max_pos.x = glm::max(max_pos.x, v.position.x); glm::vec3 posWorld = glm::make_mat4(mesh.modelMatrix.data()) * glm::vec4(v.position, 1);
max_pos.y = glm::max(max_pos.y, v.position.y);
max_pos.z = glm::max(max_pos.z, v.position.z);
min_pos.x = glm::min(min_pos.x, v.position.x); max_pos.x = glm::max(max_pos.x, posWorld.x);
min_pos.y = glm::min(min_pos.y, v.position.y); max_pos.y = glm::max(max_pos.y, posWorld.y);
min_pos.z = glm::min(min_pos.z, v.position.z); max_pos.z = glm::max(max_pos.z, posWorld.z);
min_pos.x = glm::min(min_pos.x, posWorld.x);
min_pos.y = glm::min(min_pos.y, posWorld.y);
min_pos.z = glm::min(min_pos.z, posWorld.z);
vertices.push_back(v); vertices.push_back(v);
} }
...@@ -567,13 +569,13 @@ int main(int argc, const char** argv) { ...@@ -567,13 +569,13 @@ int main(int argc, const char** argv) {
const std::vector<vkcv::ImageHandle> renderTargets = { swapchainInput, depthBuffer }; const std::vector<vkcv::ImageHandle> renderTargets = { swapchainInput, depthBuffer };
auto cmdStream = core.createCommandStream(vkcv::QueueType::Graphics); auto cmdStream = core.createCommandStream(vkcv::QueueType::Graphics);
//core.recordComputeDispatchToCmdStream(cmdStream, core.recordComputeDispatchToCmdStream(cmdStream,
// cullingPipelineHandle, cullingPipelineHandle,
// dispatchCount, dispatchCount,
// {cullingUsage}, {cullingUsage},
// emptyPushConstant); emptyPushConstant);
//core.recordBufferMemoryBarrier(cmdStream, indirectBuffer.getHandle()); core.recordBufferMemoryBarrier(cmdStream, indirectBuffer.getHandle());
core.recordIndexedIndirectDrawcallsToCmdStream( core.recordIndexedIndirectDrawcallsToCmdStream(
cmdStream, cmdStream,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment