Add motion blur

This commit is contained in:
numzero 2024-12-30 02:21:52 +03:00
parent a76332c70c
commit aede1ef03e

View File

@ -59,7 +59,6 @@ fn main() {
let presenter = Presenter::new(&device, output_format); let presenter = Presenter::new(&device, output_format);
let mut frame = 0; let mut frame = 0;
let mut time = 0.0;
let mut surface_configured = false; let mut surface_configured = false;
#[allow(deprecated)] #[allow(deprecated)]
@ -89,9 +88,6 @@ fn main() {
if !surface_configured { if !surface_configured {
return; return;
} }
time += 1. / 60.;
let spheres: Vec<_> = sphere_params.iter().map(|p| p.to_sphere(time)).collect();
let data = TracerData::new(&device, &tracer, &spheres);
let output = surface.get_current_texture().unwrap(); let output = surface.get_current_texture().unwrap();
let view = output.texture.create_view(&wgpu::TextureViewDescriptor::default()); let view = output.texture.create_view(&wgpu::TextureViewDescriptor::default());
@ -125,6 +121,9 @@ fn main() {
}); });
for _ in 0..RAYS_PER_PIXEL { for _ in 0..RAYS_PER_PIXEL {
frame += 1; frame += 1;
let time = frame as f32 / (60. * RAYS_PER_PIXEL as f32);
let spheres: Vec<_> = sphere_params.iter().map(|p| p.to_sphere(time)).collect();
let data = TracerData::new(&device, &tracer, &spheres);
tracer.render( tracer.render(
&mut render_pass, &mut render_pass,
&data, &data,