diff --git a/data/shaders/raytracing/raytracing.comp b/data/shaders/raytracing/raytracing.comp index 3cf2ec91..4f455323 100644 --- a/data/shaders/raytracing/raytracing.comp +++ b/data/shaders/raytracing/raytracing.comp @@ -206,7 +206,7 @@ vec3 renderScene(inout vec3 rayO, inout vec3 rayD, inout int id) normal = sphereNormal(pos, spheres[i]); float diffuse = lightDiffuse(normal, lightVec); float specular = lightSpecular(normal, lightVec, spheres[i].specular); - color = diffuse * spheres[i].diffuse.rgb + specular; + color = diffuse * spheres[i].diffuse + specular; } } diff --git a/raytracing/raytracing.cpp b/raytracing/raytracing.cpp index 120fbba8..ed9ebb11 100644 --- a/raytracing/raytracing.cpp +++ b/raytracing/raytracing.cpp @@ -97,6 +97,13 @@ public: compute.ubo.aspectRatio = (float)width / (float)height; paused = true; timerSpeed *= 0.5f; + + camera.type = Camera::CameraType::lookat; + camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 512.0f); + camera.setRotation(glm::vec3(0.0f, 0.0f, 0.0f)); + camera.setTranslation(glm::vec3(0.0f, 0.0f, -4.0f)); + camera.rotationSpeed = 0.0f; + camera.movementSpeed = 2.5f; } ~VulkanExample() @@ -670,7 +677,7 @@ public: compute.ubo.lightPos.y = 0.0f + sin(glm::radians(timer * 360.0f)) * 2.0f; compute.ubo.lightPos.z = 0.0f + cos(glm::radians(timer * 360.0f)) * 2.0f; - compute.ubo.lightPos.y = 2.0f; + compute.ubo.camera.pos = camera.position * -1.0f; VK_CHECK_RESULT(compute.uniformBuffer.map()); memcpy(compute.uniformBuffer.mapped, &compute.ubo, sizeof(compute.ubo));