diff --git a/projects/voxelization/src/main.cpp b/projects/voxelization/src/main.cpp index f832dd3d023f1daf66b5090d30b5986e56f16688..55522f5f358e8e72d85a4624726498ba6ea15001 100644 --- a/projects/voxelization/src/main.cpp +++ b/projects/voxelization/src/main.cpp @@ -409,6 +409,20 @@ int main(int argc, const char** argv) { } } + // prepare drawcalls + std::vector<vkcv::DrawcallInfo> drawcalls; + std::vector<vkcv::DrawcallInfo> shadowDrawcalls; + std::vector<vkcv::DrawcallInfo> voxelizationDrawcalls; + for (int i = 0; i < scene.vertexGroups.size(); i++) { + vkcv::Mesh mesh(vertexBufferBindings[i], indexBuffers[i].getVulkanHandle(), scene.vertexGroups[i].numIndices); + + vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSets[i]).vulkanHandle); + + drawcalls.push_back(vkcv::DrawcallInfo(mesh, { descriptorUsage })); + shadowDrawcalls.push_back(vkcv::DrawcallInfo(mesh, {})); + voxelizationDrawcalls.push_back(vkcv::DrawcallInfo(mesh, { voxelizationDescriptorUsage })); + } + auto start = std::chrono::system_clock::now(); const auto appStartTime = start; while (window.isWindowOpen()) { @@ -486,19 +500,6 @@ int main(int argc, const char** argv) { const glm::mat4 voxelizationView = glm::translate(glm::mat4(1.f), -voxelizationInfo.offset); const glm::mat4 voxelizationViewProjection = voxelizationProjection * voxelizationView; - std::vector<vkcv::DrawcallInfo> drawcalls; - std::vector<vkcv::DrawcallInfo> shadowDrawcalls; - std::vector<vkcv::DrawcallInfo> voxelizationDrawcalls; - for (int i = 0; i < scene.vertexGroups.size(); i++) { - vkcv::Mesh mesh(vertexBufferBindings[i], indexBuffers[i].getVulkanHandle(), scene.vertexGroups[i].numIndices); - - vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSets[i]).vulkanHandle); - - drawcalls.push_back(vkcv::DrawcallInfo(mesh, { descriptorUsage })); - shadowDrawcalls.push_back(vkcv::DrawcallInfo(mesh, {})); - voxelizationDrawcalls.push_back(vkcv::DrawcallInfo(mesh, { voxelizationDescriptorUsage })); - } - mainPassMatrices.clear(); mvpLight.clear(); voxelizationMatrices.clear();