Мягкость теней: setShadowSoftness + облачность рассеивает тени
...
Движку нужна ручка резкости теней: облачность гасила солнце, но тени
оставались резкими, хотя рассеяный свет даёт мягкую полутень.
Механика: PCF three (0.186) масштабирует диск сэмплов Вогеля
shadow.radius'ом — мягкость без смены типа shadow map. Радиус в текселях
считает чистая функция shadowBlurTexels(k, frustumHalf, mapSize) из
мирового размытия (0..SHADOW_BLUR_MAX = 3 юнита) — зум и высота солнца
меняют фрустум, мировое размытие постоянно (setSun пересчитывает тексели).
API: VoxelRenderer.setShadowSoftness(k) (0 — резкие, ручное поверх);
setCloud(k) тянет мягкость своим k — пасмурная погода даёт диффузные тени
без правок игрового кода. Замер пробы: резких краёв на кадре 14101 → 6614
при облачности 1. Тесты функции — 4, check:fast 357 ✓, гейты
atmosphere/weather ✓.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
14 hours ago