diff options
| author | Valentin Popov <valentin@popov.link> | 2026-10-31 18:13:43 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-10-31 18:13:43 +0300 |
| commit | 9f643149a69a149612cffd65a953527630e95647 (patch) | |
| tree | 16954a813dc0b7a870f75f2e1f113041676d0837 /docs/reference | |
| parent | 108a04b70e0cd5032d417cc7fd00cec2a385246b (diff) | |
| download | fparkan-9f643149a69a149612cffd65a953527630e95647.tar.xz fparkan-9f643149a69a149612cffd65a953527630e95647.zip | |
fix(render): use native squared distance for vertex fog
Diffstat (limited to 'docs/reference')
| -rw-r--r-- | docs/reference/render-frame.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/reference/render-frame.md b/docs/reference/render-frame.md index 3244d1b..b2a6a93 100644 --- a/docs/reference/render-frame.md +++ b/docs/reference/render-frame.md @@ -71,6 +71,26 @@ RVA `0x1B0F0`, заменяет diffuse alpha пакета без type 16 с bat путь и ещё не декодирован. Это ограничивает приёмку на частично отсечённых порталах и не позволяет считать интерьер принятой эталонной сценой. +## Дистанционная кривая тумана + +Программный `CShade::ShadeIndexedStrided` в GOG Terrain.dll сравнивает квадрат +дистанции с квадратами ближней и дальней границ. По RVA `0x2EEED–0x2EF45` +видимость равна `1 - (distance² - near²) / (far² - near²)` между границами, +единице перед ближней и нулю за дальней. Такой же закон использует отдельный +путь цвета пакета `0x2F230`. Линейная интерполяция по самой дистанции давала +слишком плотный туман в середине диапазона. + +В работающем оригинале границы 0 и `0x442389E6`, квадрат дистанции +`0x47707B04` дали видимость `0x3F5B2B94`. Rust-тест проверяет передаваемые GPU +квадраты границ по этому наблюдению. GLSL вычисляет квадрат расстояния вершины, +после чего растеризатор интерполирует коэффициент по треугольнику. +`native_fog.effective.sink_rgb` совпадает с `sky.packed[1]`, нижней границей +освещения CShade. Это не подтверждает значение GPU fog color. Приложение пока +сохраняет цвет экранного горизонта; выбор цвета и проходов требует отдельной +проверки GPU-состояния. +Выбор проходов по native shade-state пока приближён общим туманом мира и +считается как `render_coverage fog_pass_eligibility_approx`. + ## Радиус Control Op1 GOG `Effect.dll` (SHA-256 |
