From c9041e2e6fe59d6127bb1085b874e8e3cda8000e Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Thu, 7 May 2026 10:12:11 -0400 Subject: more intense position-relative rendering to fix some precision problems --- assets/shaders/tacmap/orbit.wgsl | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'assets/shaders/tacmap/orbit.wgsl') 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, proj: mat4x4, - pos: vec3, + abs_pos: vec3, + rel_pos: vec3, 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(view[0][0], view[1][0], view[2][0]); - let camera_up = vec3(view[0][1], view[1][1], view[2][1]); - let camera_forward = vec3(view[0][2], view[1][2], view[2][2]); let orbit_normal = normalize(model.position); var normal = orbit_normal; -- cgit v1.2.3