|
feat(engine): свет «тьма с прорезями» — RT-карта силы тьмы вместо аддитивных пятен
- lightSim: stepAlphas/HOLE_PROFILE/TONE_PROFILE (ступенчатые профили прорези
и тона), quantizeHoleAlpha (шаг 1/8) — детерминизм bake
- Lighting: RenderTexture хранит силу тьмы (fill → erase-прорези), display-
спрайт multiply с tint=ambient — смена цвета дня/ночи без перерисовки RT;
bake по dirty-подписи {round(x),round(y),scale·1/8,alpha·1/8}; day fast-path
(белый ambient — слой выключен); fallback без renderer (тесты в node)
- источник = прорезь (makeHoleTexture, 7 ступеней) + приглушённый тон
(makeToneTexture, TONE_GAIN 0.3) — спрайты под светом остаются читаемыми
- тесты: fake-renderer (bake/dirty/fast-path/destroy), профиль ступеней;
docs/engine/render.md + practices.md
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|---|
|
|
| docs/engine/practices.md |
|---|
| docs/engine/render.md |
|---|
| packages/engine/src/render/Lighting.ts |
|---|
| packages/engine/src/render/__tests__/Lighting.test.ts |
|---|
| packages/engine/src/render/lightSim.ts |
|---|