diff options
Diffstat (limited to 'common/shaders/camera_common.wgsl')
| -rw-r--r-- | common/shaders/camera_common.wgsl | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/common/shaders/camera_common.wgsl b/common/shaders/camera_common.wgsl deleted file mode 100644 index 846d052..0000000 --- a/common/shaders/camera_common.wgsl +++ /dev/null @@ -1,52 +0,0 @@ -// Camera parameters and helpers for SDF raymarching effects - -struct CameraParams { - inv_view: mat4x4f, - fov: f32, - near_plane: f32, - far_plane: f32, - aspect_ratio: f32, -} - -struct Ray { - origin: vec3f, - direction: vec3f, -} - -// Generate camera ray for given UV coordinates (-1 to 1) -fn getCameraRay(cam: CameraParams, uv: vec2f) -> Ray { - let cam_pos = vec3f(cam.inv_view[3].x, cam.inv_view[3].y, cam.inv_view[3].z); - - // Compute ray direction from FOV and aspect ratio - let tan_fov = tan(cam.fov * 0.5); - let ndc = vec3f(uv.x * cam.aspect_ratio * tan_fov, uv.y * tan_fov, -1.0); - - // Transform direction by inverse view matrix (rotation only) - let dir = normalize( - cam.inv_view[0].xyz * ndc.x + - cam.inv_view[1].xyz * ndc.y + - cam.inv_view[2].xyz * ndc.z - ); - - return Ray(cam_pos, dir); -} - -// Extract camera position from inverse view matrix -fn getCameraPosition(cam: CameraParams) -> vec3f { - return vec3f(cam.inv_view[3].x, cam.inv_view[3].y, cam.inv_view[3].z); -} - -// Extract camera forward vector (view direction) -fn getCameraForward(cam: CameraParams) -> vec3f { - return -normalize(vec3f(cam.inv_view[2].x, cam.inv_view[2].y, cam.inv_view[2].z)); -} - -// Extract camera up vector -fn getCameraUp(cam: CameraParams) -> vec3f { - return normalize(vec3f(cam.inv_view[1].x, cam.inv_view[1].y, cam.inv_view[1].z)); -} - -// Extract camera right vector -fn getCameraRight(cam: CameraParams) -> vec3f { - return normalize(vec3f(cam.inv_view[0].x, cam.inv_view[0].y, cam.inv_view[0].z)); -} |
