[bug] Объёмные облака композятся только поверх неба и не скрывают технику/рельеф внутри слоя #67
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Ревью
6f3fc644bc5194311a86baba722bc340215306b7. После #53 облака выглядят объёмно на фоне неба, но не участвуют в видимости объектов за облаком/внутри него.Подтверждено кодом патчей 23/26
gfx/hd/cloud.wgsl::fs_cloudмарширует весь cloud slab до 4200 блоков; scene depth не читает. Вgfx/hd/light.wgsl::fs_lightприменениеc = c * cl.a + cl.rgbнаходится внутриif d <= 0.0 && atmosphere. Любой пиксель с глубиной геометрии целиком исключает облачный объём, независимо от того, находится геометрия перед облаком или за ним.Пример: камера на Y=210 внутри слоя 192.33..264.33, гора/ракета в 200 блоках впереди. На фоне неба луч проходит густое облако; на соседних пикселях силуэта та же плотность перестаёт участвовать в расчёте. С выключенным volumetric fog (
HORIZON_HD_VOLFOG=0) различие особенно легко отделить от обычной дымки. Это статическое подтверждение shader path; картинки на GPU здесь не снимались.Нужно
Маршировать/композить облачное рассеяние до ближайшей видимой поверхности (с понятным порядком воды/прозрачностей), включая камеру внутри слоя. Одного удаления
d<=0недостаточно: нельзя накладывать облака, находящиеся позади ближней горы/техники. Нужна глубина или depth-resolved представление облачного объёма; корректное upsample на границах.Приёмка
Камера внутри и ниже облака; близкая техника перед слоем, далёкая техника/гора за ним, ракета и вспышка внутри. Сквозь плотный объём объект затухает; перед объёмом остаётся виден. Проверить water/translucency, render scale, camera cut и GPU-бюджет на Mac. Не подменять облако единым экранным fog.
🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/f43fa5e (запушено в main).