Skip to content

Commit

Permalink
camera_node passing the camera position to the shader
Browse files Browse the repository at this point in the history
  • Loading branch information
IngmarBitter committed Dec 29, 2020
1 parent fb9fae0 commit eab9ac9
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions crates/bevy_render/src/render_graph/nodes/camera_node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,17 @@ pub fn camera_node_system(
staging_buffer
};

let matrix_size = std::mem::size_of::<[[f32; 4]; 4]>();
let camera_matrix: [f32; 16] =
(camera.projection_matrix * global_transform.compute_matrix().inverse()).to_cols_array();
let camera_pos = &global_transform.translation;
let matrix_size = std::mem::size_of::<[[f32; 4]; 5]>();
let mut camera_matrix_array: Vec<f32> = (camera.projection_matrix * global_transform.compute_matrix().inverse()).to_cols_array().to_vec();
camera_matrix_array.extend_from_slice(&[camera_pos.x, camera_pos.y, camera_pos.z, 1.0]);
let camera_gpu_data = camera_matrix_array.as_slice();

render_resource_context.write_mapped_buffer(
staging_buffer,
0..matrix_size as u64,
&mut |data, _renderer| {
data[0..matrix_size].copy_from_slice(camera_matrix.as_bytes());
data[0..matrix_size].copy_from_slice(camera_gpu_data.as_bytes());
},
);
render_resource_context.unmap_buffer(staging_buffer);
Expand Down

0 comments on commit eab9ac9

Please sign in to comment.