readme and first steps for storage buffer raytracing

This commit is contained in:
zomseffen 2024-10-18 17:15:33 +02:00
parent 912659bb52
commit 534f1a109a
7 changed files with 424 additions and 44 deletions

View file

@ -111,7 +111,11 @@ fn main() -> Result<()> {
app.cam_angle_y = app.cam_angle_y.max(-90.0).min(90.0);
}
window.set_cursor_position(LogicalPosition::new(window.inner_size().width / 2, window.inner_size().height / 2)).expect("Cannot set Cursor!");
let cursor_res = window.set_cursor_position(LogicalPosition::new(window.inner_size().width / 2, window.inner_size().height / 2));
if cursor_res.is_err() {
println!("Attempted to move cursor while not in possession")
}
app.last_pos = LogicalPosition::new(window.inner_size().width as f32 / 2 as f32, window.inner_size().height as f32 / 2 as f32);
},
WindowEvent::KeyboardInput { device_id, event, is_synthetic } => {
@ -192,6 +196,7 @@ impl App {
scene_handler.prepare_data(&instance, &device, &data)?;
buffer::create_uniform_buffers(&instance, &device, &mut data)?;
buffer::create_storage_buffers(&instance, &device, &mut data)?;
buffer::create_descriptor_pool(&device, &mut data)?;
buffer::create_descriptor_sets(&device, &mut data)?;
@ -321,6 +326,7 @@ impl App {
depth_buffer::create_depth_objects(&self.instance, &self.device, &mut self.data)?;
create_framebuffers(&self.device, &mut self.data)?;
buffer::create_uniform_buffers(&self.instance, &self.device, &mut self.data)?;
buffer::create_storage_buffers(&self.instance, &self.device, &mut self.data)?;
buffer::create_descriptor_sets(&self.device, &mut self.data)?;
command_buffer::create_command_buffers(&self.device, &mut self.data, &self.scene_handler)?;
self.data
@ -346,6 +352,13 @@ impl App {
self.data.uniform_buffers_memory
.iter()
.for_each(|m| self.device.free_memory(*m, None));
self.data.storage_buffers
.iter()
.for_each(|b| self.device.destroy_buffer(*b, None));
self.data.storage_buffers_memory
.iter()
.for_each(|m| self.device.free_memory(*m, None));
self.data.framebuffers
.iter()
.for_each(|f| self.device.destroy_framebuffer(*f, None));
@ -411,6 +424,17 @@ impl App {
self.device.unmap_memory(self.data.uniform_buffers_memory[image_index]);
let memory = self.device.map_memory(
self.data.storage_buffers_memory[image_index],
0,
size_of::<buffer::UniformBufferObject>() as u64,
vk::MemoryMapFlags::empty(),
)?;
memcpy(&ubo, memory.cast(), 1);
self.device.unmap_memory(self.data.storage_buffers_memory[image_index]);
Ok(())
}
}