diff options
Diffstat (limited to 'src/gpu/sdf_effect.h')
| -rw-r--r-- | src/gpu/sdf_effect.h | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/gpu/sdf_effect.h b/src/gpu/sdf_effect.h deleted file mode 100644 index 12ea556..0000000 --- a/src/gpu/sdf_effect.h +++ /dev/null @@ -1,48 +0,0 @@ -// This file is part of the 64k demo project. -// SDF raymarching effect base class. - -#pragma once - -#include "3d/camera.h" -#include "gpu/camera_params.h" -#include "gpu/effect.h" -#include "gpu/uniform_helper.h" - -// Binding convention: -// @group(0) @binding(2): UniformsSequenceParams -// @group(0) @binding(3): CameraParams -// @group(0) @binding(4+): Per-effect custom parameters -class SDFEffect : public Effect { - public: - SDFEffect(const GpuContext& ctx) : Effect(ctx) { - camera_params_.init(ctx.device); - } - - virtual ~SDFEffect() = default; - - void update_camera(const Camera& camera, float aspect_ratio) { - CameraParams params; - params.inv_view = camera.get_view_matrix().inverse(); - params.fov = camera.fov_y_rad; - params.near_plane = camera.near_plane; - params.far_plane = camera.far_plane; - params.aspect_ratio = aspect_ratio; - camera_params_.update(ctx_.queue, params); - } - - void update_camera(const vec3& position, const vec3& target, const vec3& up, - float fov, float near_plane, float far_plane, - float aspect_ratio) { - mat4 view = mat4::look_at(position, target, up); - CameraParams params; - params.inv_view = view.inverse(); - params.fov = fov; - params.near_plane = near_plane; - params.far_plane = far_plane; - params.aspect_ratio = aspect_ratio; - camera_params_.update(ctx_.queue, params); - } - - protected: - UniformBuffer<CameraParams> camera_params_; -}; |
