fix(render): use native squared distance for vertex fog
Docs Deploy / Build and Deploy MkDocs (push) Successful in 36s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 36s
This commit is contained in:
7 files changed
+75
-8
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user