fix(render): scale Control light radius with emitter transform
Docs Deploy / Build and Deploy MkDocs (push) Successful in 39s

This commit is contained in:
Valentin Popov committed 2026-10-31 18:43:05 +04:00
1 parent c31e5b7342
commit 108a04b70e
5 files changed
+92 -23

No files matched your search

+15
View File
@@ -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` и использует
их авторские значения. У синего источника в проверенном захвате добавки нулевые.
## Элемент отрисовки
Подготовленный элемент отрисовки содержит: