summaryrefslogtreecommitdiffstats
path: root/assets
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-04-15 22:22:45 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-04-15 22:22:45 -0400
commit3dc92fad981e28c760f3c6e95f5a8153ea6c9be4 (patch)
tree9e806c4ad09cf22957bc4dccd415718045fc4b0f /assets
parentb5ced3af46c96ceb959fbbf1addfeba3bd4f76d5 (diff)
downloadsystemic4x-3dc92fad981e28c760f3c6e95f5a8153ea6c9be4.tar.gz
systemic4x-3dc92fad981e28c760f3c6e95f5a8153ea6c9be4.tar.bz2
systemic4x-3dc92fad981e28c760f3c6e95f5a8153ea6c9be4.zip
work on orbits (not right yet), orbit camera
Diffstat (limited to 'assets')
-rw-r--r--assets/shaders/tacbody.wgsl20
-rw-r--r--assets/systems/sol.csv2
2 files changed, 7 insertions, 15 deletions
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<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 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<f32>(instance_pos, 1.0);
- let vertex_view_pos = view_proj * vec4<f32>(instance_pos + (model_pos * camera.scale), 1.0);
+ let vertex_view_pos = view_proj * vec4<f32>(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<f32>(model_pos.xy * (min_size / 2), 0.0, 0.0);
+ out.clip_position += camera.proj * vec4<f32>(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