From 32614f73cc78b6c2aa0d1381cb62b583f4fde6fc Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 21 Feb 2026 07:08:47 +0100 Subject: refine scene1 shader --- src/effects/scene1_effect.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/effects/scene1_effect.cc') diff --git a/src/effects/scene1_effect.cc b/src/effects/scene1_effect.cc index da2797c..71e25a4 100644 --- a/src/effects/scene1_effect.cc +++ b/src/effects/scene1_effect.cc @@ -7,11 +7,13 @@ #include "util/fatal_error.h" #include "util/mini_math.h" -static CameraParams make_scene1_camera() { +static CameraParams make_scene1_camera(float time) { const float TAU = 6.283185307f; - const vec3 ro(0.0f, 2.5f, 5.0f); + const float R = 6.0f; + const vec3 ro(R * sin(time * .43), 2.5f, R * cos(time * .43)); const vec3 la(0.0f, 0.0f, 0.0f); const vec3 up(0.1f, 1.0f, 0.0f); + CameraParams cam; cam.inv_view = mat4::look_at(ro, la, up).inverse(); cam.fov = TAU / 6.0f; // full vfov=60°; tan(fov/2)=tan(PI/6)=1/sqrt(3)=1/shader_fov @@ -31,7 +33,7 @@ Scene1::Scene1(const GpuContext& ctx, const std::vector& inputs, create_dummy_scene_texture(); camera_params_.init(ctx_.device); - camera_params_.update(ctx_.queue, make_scene1_camera()); + camera_params_.update(ctx_.queue, make_scene1_camera(start_time)); pipeline_.set(create_post_process_pipeline( ctx_.device, WGPUTextureFormat_RGBA8Unorm, scene1_shader_wgsl)); @@ -40,6 +42,8 @@ Scene1::Scene1(const GpuContext& ctx, const std::vector& inputs, void Scene1::render(WGPUCommandEncoder encoder, const UniformsSequenceParams& params, NodeRegistry& nodes) { + + camera_params_.update(ctx_.queue, make_scene1_camera(params.time)); WGPUTextureView output_view = nodes.get_view(output_nodes_[0]); pp_update_bind_group(ctx_.device, pipeline_.get(), bind_group_.get_address(), -- cgit v1.2.3