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
@@ -185,21 +185,27 @@ RGB palette 12 с минимумом `80/255` на канал и alpha `150/255`
|
||||
|
||||
## Туман и свет
|
||||
|
||||
Нативное обновление `CSky` записывает две дальности и один packed RGB.
|
||||
Нативное обновление `CSky` записывает две дальности и нижнюю границу освещения.
|
||||
`FogFrame` повторяет этот контракт:
|
||||
|
||||
```text
|
||||
fog.start = sky.values[0] * 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
|
||||
передаёт цвет и дальности в frame uniforms; vertex shader вычисляет линейный
|
||||
коэффициент по расстоянию до камеры, а fragment shader смешивает RGB материала
|
||||
с fog color в ветвях combiner, которые используют туман. Конкретный draw state
|
||||
может обходить это смешивание.
|
||||
`SkySample`, а преобразование выполняется только в `fog_frame`. Нижняя граница
|
||||
освещения ограничивает результат расчёта света снизу; она не задаёт цвет тумана.
|
||||
Обычный цвет тумана выбирается из `sky.colors[0..4]` по направлению камеры,
|
||||
как цвет горизонта. Это подтверждено в `CSky::Render` и живым совпадением
|
||||
его значения с `D3DRENDERSTATE_FOGCOLOR` в том же игровом тике.
|
||||
|
||||
Vulkan path передаёт эти параметры раздельно. Vertex shader вычисляет
|
||||
коэффициент по квадратам расстояния и границ, а fragment shader смешивает
|
||||
RGB материала с цветом тумана. Конкретный native draw state может обходить
|
||||
смешивание или временно менять его цвет, например на чёрный для отдельного
|
||||
прохода. Полный выбор таких проходов ещё не воспроизведён.
|
||||
|
||||
Цвет primary света солнца — RGB palette 12, нормированный делением на 255 и
|
||||
умноженный на trailing parameter 2. `SunFrame::direction` — нормированный
|
||||
|
||||
Reference in new issue
Block a user