Skip to content
Snippets Groups Projects
Verified Commit 16ba7a91 authored by Tobias Frisch's avatar Tobias Frisch
Browse files

[#56] Completed the frustum culling.. probably

parent 2ecac98c
No related branches found
No related tags found
1 merge request!45Resolve "Szene-Repräsentation"
Pipeline #26232 passed
...@@ -81,13 +81,12 @@ namespace vkcv::scene { ...@@ -81,13 +81,12 @@ namespace vkcv::scene {
static glm::vec3 projectPoint(const glm::mat4& transform, const glm::vec3& point) { static glm::vec3 projectPoint(const glm::mat4& transform, const glm::vec3& point) {
const glm::vec4 position = transform * glm::vec4(point, 1.0f); const glm::vec4 position = transform * glm::vec4(point, 1.0f);
const float perspective = std::abs(position[3]);
//std::cout << "POS: " << position.x << " " << position.y << " " << position.z << " " << position.w << std::endl;
return glm::vec3( return glm::vec3(
position[0] / position[3], position[0] / perspective,
position[1] / position[3], position[1] / perspective,
position[2] / position[3] position[2] / perspective
); );
} }
...@@ -120,8 +119,7 @@ namespace vkcv::scene { ...@@ -120,8 +119,7 @@ namespace vkcv::scene {
} }
if (!checkFrustum(aabb)) { if (!checkFrustum(aabb)) {
m_drawcalls[i].instanceCount = 2; continue;
//continue;
} }
matrices.push_back(transform); matrices.push_back(transform);
......
...@@ -66,10 +66,6 @@ namespace vkcv::scene { ...@@ -66,10 +66,6 @@ namespace vkcv::scene {
return m_materials[index].m_data; return m_materials[index].m_data;
} }
std::ostream& operator << (std::ostream& out, const glm::vec3& vec) {
return out << vec.x << " " << vec.y << " " << vec.z;
}
void Scene::recordDrawcalls(CommandStreamHandle &cmdStream, void Scene::recordDrawcalls(CommandStreamHandle &cmdStream,
const camera::Camera &camera, const camera::Camera &camera,
const PassHandle &pass, const PassHandle &pass,
...@@ -78,8 +74,6 @@ namespace vkcv::scene { ...@@ -78,8 +74,6 @@ namespace vkcv::scene {
std::vector<glm::mat4> matrices; std::vector<glm::mat4> matrices;
std::vector<DrawcallInfo> drawcalls; std::vector<DrawcallInfo> drawcalls;
std::cout << camera.getPosition() << " | " << camera.getFront() << std::endl;
const glm::mat4 viewProjection = camera.getMVP(); const glm::mat4 viewProjection = camera.getMVP();
for (auto& node : m_nodes) { for (auto& node : m_nodes) {
......
...@@ -26,12 +26,7 @@ int main(int argc, const char** argv) { ...@@ -26,12 +26,7 @@ int main(int argc, const char** argv) {
uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT);
uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL);
glm::vec3 pos (-7.96175f, 0.889579f, -0.514462f); cameraManager.getCamera(camIndex0).setPosition(glm::vec3(-8, 1, -0.5));
glm::vec3 front (-0.504636f, -0.603207f, 0.617643f);
cameraManager.getCamera(camIndex0).setPosition(pos);
cameraManager.getCamera(camIndex0).setFront(front);
//cameraManager.getCamera(camIndex0).setPosition(glm::vec3(0, 0, -3));
cameraManager.getCamera(camIndex0).setNearFar(0.1f, 30.0f); cameraManager.getCamera(camIndex0).setNearFar(0.1f, 30.0f);
cameraManager.getCamera(camIndex1).setNearFar(0.1f, 30.0f); cameraManager.getCamera(camIndex1).setNearFar(0.1f, 30.0f);
...@@ -46,7 +41,7 @@ int main(int argc, const char** argv) { ...@@ -46,7 +41,7 @@ int main(int argc, const char** argv) {
); );
vkcv::scene::Scene scene = vkcv::scene::Scene::load(core, std::filesystem::path( vkcv::scene::Scene scene = vkcv::scene::Scene::load(core, std::filesystem::path(
argc > 1 ? argv[1] : "resources/Sponza/SponzaFloor.gltf" argc > 1 ? argv[1] : "resources/Sponza/Sponza.gltf"
)); ));
const vkcv::AttachmentDescription present_color_attachment( const vkcv::AttachmentDescription present_color_attachment(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment