engine: чистая математика неба (sky.ts) + рефакторинг setSun на неё
...
render/sky.ts — подсистема неба без three: дуги светил celestialDir/
sunDirection/sunElevation (формулы бывшего setSun бит-в-бит), луна
moonK/moonPhase (косинусный цикл фаз), палитра skyColors (день →
золотой час → ночь + облачность через cloudDim), starBrightness,
srgbToLinear/linearRgb и packSkyBodies — упаковка до SKY_BODY_MAX=4
небесных тел в юниформы (диск+ореол+фаза; база для SkyLayer).
setSun теперь зовёт sunDirection/sunElevation/sunTint — числа те же
(замок: тест k=0.5 по посчитанным числам + гейт render.mjs изо-кадра).
+16 тестов (sky.test.ts): монотонность/симметрия дуги, moonK/moonPhase,
палитра, звёзды, клампы упаковки. Итого 423.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
17 hours ago