docs(render): distinguish fog color from the lighting floor
Docs Deploy / Build and Deploy MkDocs (push) Successful in 40s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 40s
This commit is contained in:
3 files changed
+22
-11
No files matched your search
@@ -11,7 +11,8 @@ authoring API без динамического подтверждения.
|
|||||||
state transitions и окончательный порядок части transparent/FX/shadow subpasses.
|
state transitions и окончательный порядок части transparent/FX/shadow subpasses.
|
||||||
|
|
||||||
Дистанционная кривая тумана по квадратам границ подтверждена в живом CShade.
|
Дистанционная кривая тумана по квадратам границ подтверждена в живом CShade.
|
||||||
Выбор проходов по native shade-state и GPU fog color пока заменён общим туманом мира с цветом горизонта;
|
Обычный GPU fog color из горизонта подтверждён исполнением; выбор проходов по
|
||||||
|
native shade-state и их временные изменения цвета пока заменены общим туманом мира;
|
||||||
это приближение считается как `render_coverage fog_pass_eligibility_approx`.
|
это приближение считается как `render_coverage fog_pass_eligibility_approx`.
|
||||||
|
|
||||||
После ограничения цели рельефом интерактивная камера проверяет движение
|
После ограничения цели рельефом интерактивная камера проверяет движение
|
||||||
|
|||||||
@@ -185,21 +185,27 @@ RGB palette 12 с минимумом `80/255` на канал и alpha `150/255`
|
|||||||
|
|
||||||
## Туман и свет
|
## Туман и свет
|
||||||
|
|
||||||
Нативное обновление `CSky` записывает две дальности и один packed RGB.
|
Нативное обновление `CSky` записывает две дальности и нижнюю границу освещения.
|
||||||
`FogFrame` повторяет этот контракт:
|
`FogFrame` повторяет этот контракт:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
fog.start = sky.values[0] * 700
|
fog.start = sky.values[0] * 700
|
||||||
fog.end = sky.values[1] * 700
|
fog.end = sky.values[1] * 700
|
||||||
fog.color = RGB(sky.packed[1]) / 255
|
lighting_floor = RGB(sky.packed[1]) / 255
|
||||||
```
|
```
|
||||||
|
|
||||||
Поля не скрывают порядок исходных параметров: значения сохраняются в
|
Поля не скрывают порядок исходных параметров: значения сохраняются в
|
||||||
`SkySample`, а преобразование выполняется только в `fog_frame`. Vulkan path
|
`SkySample`, а преобразование выполняется только в `fog_frame`. Нижняя граница
|
||||||
передаёт цвет и дальности в frame uniforms; vertex shader вычисляет линейный
|
освещения ограничивает результат расчёта света снизу; она не задаёт цвет тумана.
|
||||||
коэффициент по расстоянию до камеры, а fragment shader смешивает RGB материала
|
Обычный цвет тумана выбирается из `sky.colors[0..4]` по направлению камеры,
|
||||||
с fog color в ветвях combiner, которые используют туман. Конкретный draw state
|
как цвет горизонта. Это подтверждено в `CSky::Render` и живым совпадением
|
||||||
может обходить это смешивание.
|
его значения с `D3DRENDERSTATE_FOGCOLOR` в том же игровом тике.
|
||||||
|
|
||||||
|
Vulkan path передаёт эти параметры раздельно. Vertex shader вычисляет
|
||||||
|
коэффициент по квадратам расстояния и границ, а fragment shader смешивает
|
||||||
|
RGB материала с цветом тумана. Конкретный native draw state может обходить
|
||||||
|
смешивание или временно менять его цвет, например на чёрный для отдельного
|
||||||
|
прохода. Полный выбор таких проходов ещё не воспроизведён.
|
||||||
|
|
||||||
Цвет primary света солнца — RGB palette 12, нормированный делением на 255 и
|
Цвет primary света солнца — RGB palette 12, нормированный делением на 255 и
|
||||||
умноженный на trailing parameter 2. `SunFrame::direction` — нормированный
|
умноженный на trailing parameter 2. `SunFrame::direction` — нормированный
|
||||||
|
|||||||
@@ -85,9 +85,13 @@ RVA `0x1B0F0`, заменяет diffuse alpha пакета без type 16 с bat
|
|||||||
квадраты границ по этому наблюдению. GLSL вычисляет квадрат расстояния вершины,
|
квадраты границ по этому наблюдению. GLSL вычисляет квадрат расстояния вершины,
|
||||||
после чего растеризатор интерполирует коэффициент по треугольнику.
|
после чего растеризатор интерполирует коэффициент по треугольнику.
|
||||||
`native_fog.effective.sink_rgb` совпадает с `sky.packed[1]`, нижней границей
|
`native_fog.effective.sink_rgb` совпадает с `sky.packed[1]`, нижней границей
|
||||||
освещения CShade. Это не подтверждает значение GPU fog color. Приложение пока
|
освещения CShade. Обычный GPU fog color подтверждён отдельно: `CSky::Render`
|
||||||
сохраняет цвет экранного горизонта; выбор цвета и проходов требует отдельной
|
по RVA `0x48341` задаёт renderer default из цвета горизонта. В живом замере
|
||||||
проверки GPU-состояния.
|
`0xFF404064` дошёл до `IDirect3DDevice7::SetRenderState(34)` в том же игровом
|
||||||
|
тике. В другом ракурсе палитра `[0xFFA8A5CE, 0xFFABA9D5, 0xFFBAA9D5,
|
||||||
|
0xFFABA9D5]` дала default `0xFFA9A7D1`. Это не покрывает временные изменения
|
||||||
|
цвета отдельных проходов: например, native render path устанавливает чёрный
|
||||||
|
цвет и затем восстанавливает сохранённый.
|
||||||
Выбор проходов по native shade-state пока приближён общим туманом мира и
|
Выбор проходов по native shade-state пока приближён общим туманом мира и
|
||||||
считается как `render_coverage fog_pass_eligibility_approx`.
|
считается как `render_coverage fog_pass_eligibility_approx`.
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user