Browse Source

add fix for circular orbit rendering

main
cinnaboot 6 months ago
parent
commit
2ad3e12ec3
  1. 9
      src/renderer.cpp

9
src/renderer.cpp

@ -367,7 +367,14 @@ struct OrbitalBasis {
static OrbitalBasis calculate_orbital_basis(Vec3 r_vec, Vec3 velocity, Vec3 e_vec) {
OrbitalBasis basis;
basis.periapsis_dir = vec3_normalize(e_vec);
Vec3 e_dir = vec3_normalize(e_vec);
// For circular orbits, use position direction as periapsis direction
if (vec3_magnitude(e_dir) < 0.001) {
basis.periapsis_dir = vec3_normalize(r_vec);
} else {
basis.periapsis_dir = e_dir;
}
Vec3 h_vec = vec3_cross(r_vec, velocity);
basis.normal = vec3_normalize(h_vec);

Loading…
Cancel
Save