diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-05-07 10:12:11 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-05-07 10:12:11 -0400 |
| commit | c9041e2e6fe59d6127bb1085b874e8e3cda8000e (patch) | |
| tree | c339cf86b88743b1c74707f6d714b1a0950c43ff /assets/shaders/tacmap/orbit.wgsl | |
| parent | c1adf64c1aaecd5a2b9d532d707ef35971f1aa18 (diff) | |
| download | systemic4x-c9041e2e6fe59d6127bb1085b874e8e3cda8000e.tar.gz systemic4x-c9041e2e6fe59d6127bb1085b874e8e3cda8000e.tar.bz2 systemic4x-c9041e2e6fe59d6127bb1085b874e8e3cda8000e.zip | |
more intense position-relative rendering to fix some precision problems
Diffstat (limited to 'assets/shaders/tacmap/orbit.wgsl')
| -rw-r--r-- | assets/shaders/tacmap/orbit.wgsl | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/assets/shaders/tacmap/orbit.wgsl b/assets/shaders/tacmap/orbit.wgsl index 901200f..a890fd8 100644 --- a/assets/shaders/tacmap/orbit.wgsl +++ b/assets/shaders/tacmap/orbit.wgsl @@ -11,7 +11,8 @@ struct VertexOutput { struct CameraUniform { view: mat4x4<f32>, proj: mat4x4<f32>, - pos: vec3<f32>, + abs_pos: vec3<f32>, + rel_pos: vec3<f32>, scale: f32 }; @@ -37,13 +38,10 @@ fn vs_main( origins[model.origin][1], origins[model.origin][2]); - let model_pos = ((origin - camera.pos) + model.position) * camera.scale; - let origin_pos = (origin - camera.pos) * camera.scale; + let model_pos = ((origin - camera.abs_pos - camera.rel_pos) + model.position) * camera.scale; + let origin_pos = (origin - camera.abs_pos - camera.rel_pos) * camera.scale; let view = camera.view; - let camera_right = vec3<f32>(view[0][0], view[1][0], view[2][0]); - let camera_up = vec3<f32>(view[0][1], view[1][1], view[2][1]); - let camera_forward = vec3<f32>(view[0][2], view[1][2], view[2][2]); let orbit_normal = normalize(model.position); var normal = orbit_normal; |
