From 1148cdc6316535e450c9c1e990a6db614105a9b6 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sun, 18 Oct 2026 09:54:32 +0400 Subject: feat(fx): evaluate generic Op1 point lights --- docs/reference/environment-effects.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'docs/reference') diff --git a/docs/reference/environment-effects.md b/docs/reference/environment-effects.md index 29d85f9..66ed052 100644 --- a/docs/reference/environment-effects.md +++ b/docs/reference/environment-effects.md @@ -143,6 +143,24 @@ slot `+6c`): ширина `RECT` делится на горизонтальны исходную таблицу знаков и минимальный depth fade `0.1`. Renderer сам решает, как загрузить этот квадрат и как смешать его материал. +## Точечный свет из opcode 1 + +Preview вычисляет generic Op1 отдельно от визуальных команд. Переданный +владельцем `command_time` сравнивается с началом и концом интервала из body +opcode 1; обе границы включены, а коэффициент выборки равен +`(command_time - start) / (end - start)`. Заголовочная длительность FXID не +заменяет этот интервал. Для нулевой ширины адаптер не создаёт кадр света, +поскольку у команды нет конечного коэффициента интерполяции. + +Позиция, направление, цвет и range интерполируются по концам команды. +Позиция и направление переводятся через основу родителя; направление после +этого нормализуется, а нулевой вектор остаётся нулевым. Range сохраняет +авторское значение без ограничения снизу. Типы Op1 `1`, `2`, `5`, `6` и `7` +выбирают point-light selector `1`; их native flags сохраняются. Типы `3` и +`4` выбирают другие классы записей LightManager и не попадают в generic список +точечного света. У `LightningEffect` выборка тех же полей использует отдельные +ограничение по длительности FXID и правила безопасной обработки. + ## Молния и звуковые события `decode_env_lightning_fxid` извлекает из FXID длительность, ссылки opcode 3 и -- cgit v1.2.3