2 changed files with 48 additions and 2 deletions
@ -0,0 +1,46 @@ |
|||||||
|
# Renderer Development Session (2026-01-03) |
||||||
|
|
||||||
|
## Changes Made: |
||||||
|
|
||||||
|
### 1. Added orbit path visualization |
||||||
|
- Store orbital parameters (eccentricity, semi_major_axis) in CelestialBody struct |
||||||
|
- Render elliptical orbit paths for all non-root bodies |
||||||
|
- Orbits drawn as 100-segment line loops with semi-transparent body colors |
||||||
|
- Correctly places parent body at one focus of the ellipse |
||||||
|
|
||||||
|
### 2. Implemented sim-to-render coordinate transform |
||||||
|
- Simulation uses XY plane (natural for physics) |
||||||
|
- Renderer uses XZ plane (natural for 3D top-down view) |
||||||
|
- `sim_to_render()` applies 90° rotation around X-axis: Y→Z, Z→-Y |
||||||
|
- All positions and orbits use consistent transformation |
||||||
|
|
||||||
|
### 3. Fixed render scaling issue (renderer.cpp:26-27) |
||||||
|
**Problem**: size_scale (5e-7) and distance_scale (1e-9) had inconsistent ratios |
||||||
|
- Sun radius: 6.96e8 m × 5e-7 = 348 units (engulfed orbits!) |
||||||
|
- Earth orbit: 1.496e11 m × 1e-9 = 149.6 units |
||||||
|
|
||||||
|
**Solution**: Set size_scale = 1e-9 to match distance_scale |
||||||
|
- Result: Sun radius now 0.696 units, orbits clearly visible |
||||||
|
- Maintains physical accuracy with uniform scaling |
||||||
|
|
||||||
|
### 4. Visual improvements |
||||||
|
- Changed bodies to wireframe spheres (DrawSphereWires) |
||||||
|
- Custom dark grid (RGB 20,20,20) instead of default bright grid |
||||||
|
- Bodies use saturated colors for visibility |
||||||
|
- Minimum radius (0.5 units) ensures small bodies remain visible |
||||||
|
|
||||||
|
## Rendering Parameters |
||||||
|
|
||||||
|
- `distance_scale = 1e-9` (1 render unit = 1 billion meters = ~0.0067 AU) |
||||||
|
- `size_scale = 1e-9` (same as distance_scale for physical accuracy) |
||||||
|
- `min_radius = 0.5` (minimum visible body size) |
||||||
|
|
||||||
|
## Commits |
||||||
|
|
||||||
|
- `d7d49b7` Add orbit path visualization with sim-to-render coordinate transform |
||||||
|
- `9b4009d` Set DEFAULT_HEADLESS to 0 for renderer development |
||||||
|
- `4e2f00a` Fix render scaling to match simulation coordinates |
||||||
|
|
||||||
|
## Known Issues |
||||||
|
|
||||||
|
- No known rendering issues at this time |
||||||
Loading…
Reference in new issue