diff --git a/src/renderer.cpp b/src/renderer.cpp index acbdd63..2ddedde 100644 --- a/src/renderer.cpp +++ b/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);