adjusting some lens calculations

This commit is contained in:
2025-07-10 22:23:38 +02:00
parent 47b9b5c877
commit e23f55ed1f
3 changed files with 5 additions and 12 deletions
+5 -4
View File
@@ -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
@@ -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;
@@ -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"