summaryrefslogtreecommitdiffstats
path: root/assets/shaders/tacmap/orbit.wgsl
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-05-07 10:12:11 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-05-07 10:12:11 -0400
commitc9041e2e6fe59d6127bb1085b874e8e3cda8000e (patch)
treec339cf86b88743b1c74707f6d714b1a0950c43ff /assets/shaders/tacmap/orbit.wgsl
parentc1adf64c1aaecd5a2b9d532d707ef35971f1aa18 (diff)
downloadsystemic4x-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.wgsl10
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;