diff --git a/res/shaders/raytracing/RayGen.slang b/res/shaders/raytracing/RayGen.slang index 81d0de5..f4571d9 100644 --- a/res/shaders/raytracing/RayGen.slang +++ b/res/shaders/raytracing/RayGen.slang @@ -66,9 +66,10 @@ void raygen() //-- define cam Ray cam = Ray(pViewParams.cameraPosition_WS.xyz, pViewParams.cameraForward_WS.xyz); float3 cx = -normalize(cross(cam.d, abs(cam.d.y) < 0.9 ? float3(0, 1, 0) : float3(0, 0, 1))), cy = cross(cam.d, cx); - const float2 sdim = float2(0.036, 0.024); + //use standard sensor size of 36mm while keeping the screen aspect ratio + const float2 sdim = float2(0.036, 0.036/pViewParams.screenDimensions.x*pViewParams.screenDimensions.y); - float f = sdim.y / (2 * tan(70.0f * 0.5f)); + float f = sdim.x / (2 * tan(radians(70.0f) * 0.5f)); float S_I = (S_O * f) / (S_O - f); @@ -76,8 +77,8 @@ void raygen() float2 rnd2 = 2*rand01(uint3(pix, pSamps.pass)).xy; // vvv tent filter sample float2 tent = float2(rnd2.x<1 ? sqrt(rnd2.x)-1 : 1-sqrt(2-rnd2.x), rnd2.y<1 ? sqrt(rnd2.y)-1 : 1-sqrt(2-rnd2.y)); float2 s = ((pix + 0.5 * (0.5 + float2((pSamps.pass/2)%2, pSamps.pass%2) + tent)) / float2(imgdim) - 0.5) * sdim; - float3 spos = cam.o + cx*s.x + cy*s.y, lc = cam.o + cam.d * 0.035; // sample on 3d sensor plane - Ray r = Ray(lc, normalize(lc - spos)); // construct ray + float3 spos = cam.o + cx*s.x + cy*s.y, lc = cam.o + cam.d * S_I; // sample on 3d sensor plane + Ray r = Ray(lc, normalize(spos - lc)); // construct ray //-- setup lens diff --git a/src/Engine/Graphics/RenderPass/BasePass.cpp b/src/Engine/Graphics/RenderPass/BasePass.cpp index dc31895..f8c2335 100644 --- a/src/Engine/Graphics/RenderPass/BasePass.cpp +++ b/src/Engine/Graphics/RenderPass/BasePass.cpp @@ -1,10 +1,7 @@ #include "BasePass.h" -#include "Actor/CameraActor.h" #include "Asset/AssetRegistry.h" #include "Asset/EnvironmentMapAsset.h" #include "Component/Camera.h" -#include "Component/Mesh.h" -#include "Component/WaterTile.h" #include "Graphics/Command.h" #include "Graphics/Descriptor.h" #include "Graphics/Enums.h" @@ -12,12 +9,9 @@ #include "Graphics/Initializer.h" #include "Graphics/Pipeline.h" #include "Graphics/Shader.h" -#include "Graphics/StaticMeshVertexData.h" #include "Material/MaterialInstance.h" #include "Math/Matrix.h" #include "Math/Vector.h" -#include "RenderGraph.h" -#include "Window/Window.h" using namespace Seele; diff --git a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp index c6a5fd8..8c8d615 100644 --- a/src/Engine/Graphics/RenderPass/RayTracingPass.cpp +++ b/src/Engine/Graphics/RenderPass/RayTracingPass.cpp @@ -1,8 +1,6 @@ #include "RayTracingPass.h" #include "Asset/AssetRegistry.h" -#include "Asset/MeshAsset.h" #include "Asset/EnvironmentMapAsset.h" -#include "Graphics/Mesh.h" #include "Graphics/RayTracing.h" #include "Graphics/Shader.h" #include "Graphics/StaticMeshVertexData.h"