Мягкость теней: 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>
1 parent bdc5c43 commit 3ba9b1dc954130ccc851fb46ecb326f20d1f41e6
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 13 hours ago
Showing 4 changed files
View
v2/CLAUDE.md
View
v2/packages/engine/src/index.ts
View
v2/packages/engine/src/render/__tests__/shadowSoftness.test.ts 0 → 100644
View
v2/packages/engine/src/render/voxelRenderer.ts