From 3dc92fad981e28c760f3c6e95f5a8153ea6c9be4 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Wed, 15 Apr 2026 22:22:45 -0400 Subject: work on orbits (not right yet), orbit camera --- assets/shaders/tacbody.wgsl | 20 ++++++-------------- assets/systems/sol.csv | 2 +- 2 files changed, 7 insertions(+), 15 deletions(-) (limited to 'assets') diff --git a/assets/shaders/tacbody.wgsl b/assets/shaders/tacbody.wgsl index e8fb653..99392ac 100644 --- a/assets/shaders/tacbody.wgsl +++ b/assets/shaders/tacbody.wgsl @@ -31,33 +31,25 @@ fn vs_main( var view = camera.view; //Billboard the circle - view[0][0] = 1.0; - view[0][1] = 0.0; - view[0][2] = 0.0; - - view[1][0] = 0.0; - view[1][1] = 1.0; - view[1][2] = 0.0; - - view[2][0] = 0.0; - view[2][1] = 0.0; - view[2][2] = 1.0; + 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 model_pos = camera_right * model.position.x + + camera_up * model.position.y; let min_size = 0.025; //Scale the world around the camera scale. - let model_pos = model.position; let instance_pos = instance.position * camera.scale; let view_proj = camera.proj * view; let center_view_pos = view_proj * vec4(instance_pos, 1.0); - let vertex_view_pos = view_proj * vec4(instance_pos + (model_pos * camera.scale), 1.0); + let vertex_view_pos = view_proj * vec4(instance_pos + (model_pos * instance.radius * camera.scale), 1.0); let vertex_dist = length(vertex_view_pos - center_view_pos) / center_view_pos.w; if vertex_dist < min_size { out.clip_position = center_view_pos / center_view_pos.w; - out.clip_position += camera.proj * vec4(model_pos.xy * (min_size / 2), 0.0, 0.0); + out.clip_position += camera.proj * vec4(model.position.xy * (min_size / 2), 0.0, 0.0); }else{ out.clip_position = vertex_view_pos; } diff --git a/assets/systems/sol.csv b/assets/systems/sol.csv index 81fc14c..1c6dcfd 100644 --- a/assets/systems/sol.csv +++ b/assets/systems/sol.csv @@ -1,3 +1,3 @@ name,orbits,mass,radius,eccentricity,inclination,long_asc_node,long_periapsis,sgp,mean_long,semi_major_axis -Sol,0,1.988475e30,695700.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +Sol,,1.988475e30,695700.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 Earth,0,5.97217e24,6371.0,0.0167,0.1249,-0.1965,1.7966,3.986e14,1.7534,149598023 -- cgit v1.2.3