From 10661e87a65fe40c66c6efdd54b942540fc2521e Mon Sep 17 00:00:00 2001 From: Vanessa Karolek <vaka1997@uni-koblenz.de> Date: Mon, 26 Jul 2021 15:32:08 +0200 Subject: [PATCH] [#94] correct projected texture coordinates --- projects/saf_r/shaders/shader.vert | 5 +++-- projects/saf_r/src/main.cpp | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/projects/saf_r/shaders/shader.vert b/projects/saf_r/shaders/shader.vert index fe51e232..b6419f5e 100644 --- a/projects/saf_r/shaders/shader.vert +++ b/projects/saf_r/shaders/shader.vert @@ -6,6 +6,7 @@ layout(location = 1) out vec2 texCoord; layout( push_constant ) uniform constants{ mat4 mvp; + mat4 proj; }; void main() { @@ -24,8 +25,8 @@ void main() { vec4 position = mvp * vec4(positions[gl_VertexIndex], 1.0); gl_Position = position; - texCoord.x = (positions[gl_VertexIndex].x + 1.0) * 0.5; - texCoord.y = (-positions[gl_VertexIndex].y + 1.0) * 0.5; + texCoord.x = ((proj * vec4(positions[gl_VertexIndex], 1.0)).x + 1.0) * 0.5; + texCoord.y = ((proj * vec4(positions[gl_VertexIndex], 1.0)).y + 1.0) * 0.5; fragColor = colors[gl_VertexIndex]; } \ No newline at end of file diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp index 00359492..886f8473 100644 --- a/projects/saf_r/src/main.cpp +++ b/projects/saf_r/src/main.cpp @@ -175,10 +175,10 @@ int main(int argc, const char** argv) { Material mirror(glm::vec3(0.0, 10.0, 0.8), glm::vec3(1.0, 1.0, 1.0), 1425.); std::vector<Sphere> spheres; - spheres.push_back(Sphere(glm::vec3(-3, 0, -16), 2, ivory)); + spheres.push_back(Sphere(glm::vec3(-3, 0, -16), 2, ivory)); spheres.push_back(Sphere(glm::vec3(-1.0, -1.5, -12), 2, mirror)); spheres.push_back(Sphere(glm::vec3( 1.5, -0.5, -18), 3, red_rubber)); - spheres.push_back(Sphere(glm::vec3( 7, 5, -18), 4, mirror)); + spheres.push_back(Sphere(glm::vec3( 7, 5, -18), 4, mirror)); std::vector<Light> lights; lights.push_back(Light(glm::vec3(-20, 20, 20), 1.5)); @@ -278,9 +278,10 @@ int main(int argc, const char** argv) { cameraManager.update(0.000001 * static_cast<double>(deltatime.count())); glm::mat4 mvp = cameraManager.getActiveCamera().getMVP(); + glm::mat4 proj = cameraManager.getActiveCamera().getProjection(); - vkcv::PushConstants pushConstants (sizeof(glm::mat4)); - pushConstants.appendDrawcall(mvp); + vkcv::PushConstants pushConstants (sizeof(glm::mat4) * 2); + pushConstants.appendDrawcall(std::array<glm::mat4, 2>{ mvp, proj }); auto cmdStream = core.createCommandStream(vkcv::QueueType::Graphics); -- GitLab