|
Многослойный туман по дальности от камеры + слайдер дев-панели
Композитный проход: сцена → RT с DepthTexture, полноэкранный квад реконструирует мировую точку (в орто глубина линейна) и красит кадр стопкой из 6 слоёв по дистанции вдоль взгляда ОТ КАМЕРЫ. Клубы — fbm по мировым XZ с дрейфом ветра (глубокие слои медленнее — параллакс), высотное затухание собирает туман в низинах; цвет — env-свет сцены (день светло-серый, ночь тёмный). Полоты ⟂ оси взгляда забракованы пробой-изолятом: при взгляде ~63° плоскости уходят под рельеф. Главная грабля: d в шейдере обязан быть dot(wp − uCamPos, uCamF) — глубиной от КАМЕРЫ; вариант от цели давал для видимых пикселей d ∈ [−1.12·V, +1.12·V] при слоях на 2.5..5·V — все smoothstep'ы нули, туман полностью прозрачен (изолят маскировал: камера ближе). Попутно чинит pow-граблю из 55876f8: степень PARTICLE_LIT_GAMMA из TS в GLSL-шаблоне печаталась «2» (int) — pow(int) не компилировался в GLSL ES, lit-слои частиц (дождь/снег/пепел/листья/пыль) молча не рисовали; в GLSL-шаблоны числа из TS — через .toFixed(1). WeatherSpec.fog (0..1), база прудов 0.3; 6-й слайдер «туман» в дев- панели. Гейт weather: 19 проверок (+6 туман: рисуется, глубинный градиент, дрейф, ночь тёмная, слайдер панели). check:fast — 377 ✓. Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| v2/CLAUDE.md |
|---|
| v2/apps/game/index.html |
|---|
| v2/apps/game/src/data/weather.ts |
|---|
| v2/apps/game/src/devview.ts |
|---|
| v2/apps/game/src/main.ts |
|---|
| v2/apps/game/tools/checks/weather.mjs |
|---|
| v2/packages/engine/src/index.ts |
|---|
| v2/packages/engine/src/render/__tests__/fog.test.ts 0 → 100644 |
|---|
| v2/packages/engine/src/render/__tests__/weather.test.ts |
|---|
| v2/packages/engine/src/render/fog.ts 0 → 100644 |
|---|
| v2/packages/engine/src/render/particles.ts |
|---|
| v2/packages/engine/src/render/voxelRenderer.ts |
|---|
| v2/packages/engine/src/render/weather.ts |
|---|