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>
1 parent 2b26115 commit 8eca72f42ba95e37078432bc163a3bf823b28418
@root root authored 4 hours ago
Showing 7 changed files
View
docs/engine/recipes.md
View
docs/engine/render.md
View
packages/engine/src/index.ts
View
packages/engine/src/render/Lighting.ts
View
packages/engine/src/render/__tests__/Lighting.test.ts
View
packages/engine/src/render/__tests__/lightSim.test.ts
View
packages/engine/src/render/lightSim.ts