|
Мягкость теней: 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> |
|---|
|
|
| v2/CLAUDE.md |
|---|
| v2/packages/engine/src/index.ts |
|---|
| v2/packages/engine/src/render/__tests__/shadowSoftness.test.ts 0 → 100644 |
|---|
| v2/packages/engine/src/render/voxelRenderer.ts |
|---|