From 55e98d7ff6224aa3bf4b5d4260a594705ee2133f Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sun, 1 Nov 2026 14:39:37 +0400 Subject: fix(render): draw translucent water into planar reflections --- docs/reference/render-frame.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'docs/reference/render-frame.md') diff --git a/docs/reference/render-frame.md b/docs/reference/render-frame.md index b3c0be5..4ee0cc3 100644 --- a/docs/reference/render-frame.md +++ b/docs/reference/render-frame.md @@ -404,3 +404,20 @@ D3D7 в `fparkan-render`, а затем один раз меняет знак в GPU может содержать результат смешивания поверхностей; повторное применение его к готовому цвету затемнило бы кадр ещё раз. Поэтому конвертер и сборщик сравнительных пар игнорируют эту альфу, а raw-файл сохраняют без изменений. + +### Вода внутри отражённого вида + +В эталонных DLL из [таблицы сборки](original-binaries.md) Terrain RVA +`0x28A50` задаёт водному пакету material alpha `0,1` и packet category `4`, +когда уже строится отражение. Живой CShade-захват подтверждает одинаковые +водные вершины при `eye_z=115` и `185`, высоте воды `150`: отражённые пакеты +имеют alpha `0,1`, основные — `1`. Это общий проход водных граней, +а не поправка цвета карты. + +Ngi32 mode 7, descriptors RVA `0x36C14` / `0x36C40`, содержит одну текстурную +стадию: `COLOR = TEXTURE × DIFFUSE`, `ALPHA = DIFFUSE`. Packet category 4 +в таблице RVA `0x346E0 + category × 40` включает SRCALPHA / INVSRCALPHA +и альфа-тест GREATEREQUAL. Это отдельная таблица от MAT0 categories. +Depth enable/write передаются из байтов пакета `+0x12C/+0x12D` отдельно; +в захваченном водном проходе оба равны `1`. Начальные ZFUNC=LESSEQUAL, +ALPHAREF=1 задаются конструктором Ngi32; категория их не меняет. -- cgit v1.2.3