pixel pos now not affected by zoom, also added ability to change speed
This commit is contained in:
@@ -62,13 +62,19 @@ impl Client<'_> {
|
||||
* state.camera.orientation;
|
||||
}
|
||||
state.camera.orientation.renormalize();
|
||||
|
||||
// zoom
|
||||
if input.scroll_delta != 0.0 {
|
||||
if input.pressed(Key::ControlLeft) {
|
||||
state.camera_scroll += input.scroll_delta;
|
||||
state.camera.scale = (state.camera_scroll * 0.2).exp();
|
||||
} else {
|
||||
state.speed += input.scroll_delta * 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
// camera position
|
||||
let move_dist = dt * (chunk::SIDE_LENGTH / 16) as f32;
|
||||
let move_dist = dt * state.speed.exp() * (chunk::SIDE_LENGTH / 16) as f32;
|
||||
if input.pressed(Key::KeyW) {
|
||||
state.camera.pos += *state.camera.forward() * move_dist;
|
||||
}
|
||||
|
||||
@@ -35,12 +35,11 @@ fn main(@builtin(global_invocation_id) cell: vec3<u32>) {
|
||||
}
|
||||
let view_dim_f = vec2<f32>(view_dim);
|
||||
let aspect = view_dim_f.y / view_dim_f.x;
|
||||
let pixel_pos = vec3<f32>(
|
||||
(vec2<f32>(cell.xy) / view_dim_f - vec2<f32>(0.5)) * vec2<f32>(2.0, -2.0 * aspect),
|
||||
view.zoom
|
||||
let pixel_pos = vec2<f32>(
|
||||
(vec2<f32>(cell.xy) / view_dim_f - vec2<f32>(0.5)) * vec2<f32>(2.0, -2.0 * aspect)
|
||||
);
|
||||
let pos = view.transform * vec4<f32>(pixel_pos, 1.0);
|
||||
let dir = view.transform * vec4<f32>(normalize(pixel_pos), 0.0);
|
||||
let pos = view.transform * vec4<f32>(pixel_pos, 1.0, 1.0);
|
||||
let dir = view.transform * vec4<f32>(normalize(vec3<f32>(pixel_pos, view.zoom)), 0.0);
|
||||
|
||||
var color = trace_full(pos, dir);
|
||||
let light_mult = clamp((-dot(dir.xyz, global_lights[0].dir) - 0.99) * 200.0, 0.0, 1.0);
|
||||
|
||||
@@ -3,6 +3,7 @@ use super::camera::Camera;
|
||||
pub struct ClientState {
|
||||
pub camera: Camera,
|
||||
pub camera_scroll: f32,
|
||||
pub speed: f32,
|
||||
}
|
||||
|
||||
impl ClientState {
|
||||
@@ -10,6 +11,7 @@ impl ClientState {
|
||||
Self {
|
||||
camera: Camera::default(),
|
||||
camera_scroll: 0.0,
|
||||
speed: 0.0,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user