|
feat(engine): импульсы света, виньетка и тёмные пятна в Lighting
- lightSim: PulseSpec {attack, hold?, decay} + pulseEnvelope/pulseTotal
(чистая трапеция-огибающая, тестируется в node)
- Lighting.pulseLight: вспышка в точке, занимает пул источников,
авто-снятие по концу огибающей; в frames() видна как pulse#N
- Lighting.pulseAmbient: аддитивная вспышка на весь экран, один слот
- Lighting.setVignette: затемнение краёв (makeVignetteTexture, ступенчатые
кольца) с лерпом по образцу ambient
- Lighting.upsertDarkSpot/removeDarkSpot: локальные тени (multiply),
отдельный пул maxDarkSpots, рисуются под источниками
- makeGlowTexture: 4 ступени + дизер-кольцо по внешнему радиусу
- доки: render.md (раздел «Импульсы, виньетка, тёмные пятна»),
recipes.md (вспышки / виньетка / тёмная аура)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|---|
|
|
| docs/engine/recipes.md |
|---|
| docs/engine/render.md |
|---|
| packages/engine/src/index.ts |
|---|
| packages/engine/src/render/Lighting.ts |
|---|
| packages/engine/src/render/__tests__/Lighting.test.ts |
|---|
| packages/engine/src/render/__tests__/lightSim.test.ts |
|---|
| packages/engine/src/render/lightSim.ts |
|---|