aboutsummaryrefslogtreecommitdiff
path: root/docs/reference/render-frame.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-31 17:43:05 +0300
committerValentin Popov <valentin@popov.link>2026-10-31 17:43:05 +0300
commit108a04b70e0cd5032d417cc7fd00cec2a385246b (patch)
treeba0380f1d581b6554acaaf12722db944296d4e6b /docs/reference/render-frame.md
parentc31e5b734252c9191afe7809f7ef32f85f68aa0f (diff)
downloadfparkan-108a04b70e0cd5032d417cc7fd00cec2a385246b.tar.xz
fparkan-108a04b70e0cd5032d417cc7fd00cec2a385246b.zip
fix(render): scale Control light radius with emitter transform
Diffstat (limited to 'docs/reference/render-frame.md')
-rw-r--r--docs/reference/render-frame.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/reference/render-frame.md b/docs/reference/render-frame.md
index 08d7c37..3244d1b 100644
--- a/docs/reference/render-frame.md
+++ b/docs/reference/render-frame.md
@@ -71,6 +71,21 @@ RVA `0x1B0F0`, заменяет diffuse alpha пакета без type 16 с bat
путь и ещё не декодирован. Это ограничивает приёмку на частично отсечённых
порталах и не позволяет считать интерьер принятой эталонной сценой.
+## Радиус Control Op1
+
+GOG `Effect.dll` (SHA-256
+`386a3e8db1ce23f61957825d633c7dae1ed40c25cab0cf10a534385fd7cee789`),
+RVA `0xF6E0`, преобразует направление текущей матрицей, сохраняет его длину
+перед нормализацией и умножает на неё интерполированный локальный радиус.
+Умножение видно по RVA `0xFB13`; перед LightManager `+0x10` неположительный
+результат заменяется на `0.01`. В живом «Конструкторе» для синего источника
+завода локальный радиус 7 и длина `0x409B1F91` дали радиус `0x4207BB9F`.
+Это же значение проверяется Rust-тестом общего Op1 evaluator.
+
+Случайные добавки цвета и радиуса ещё не воспроизводятся; приложение сообщает
+число таких Control-команд как `control_op1_jitter_unsupported` и использует
+их авторские значения. У синего источника в проверенном захвате добавки нулевые.
+
## Элемент отрисовки
Подготовленный элемент отрисовки содержит: