fix(fx): orient Type 1 quads along their authored axis
Docs Deploy / Build and Deploy MkDocs (push) Successful in 37s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 37s
This commit is contained in:
2 files changed
+89
-11
No files matched your search
@@ -294,6 +294,24 @@ D110-порядок. Все три evaluator-а принимают уже соб
|
||||
`context + 0x60 < 8`, а API этих evaluator-ов не выбирает другой context.
|
||||
Evaluator типа 2 принимает индекс context явно и учитывает этот gate в `active`.
|
||||
|
||||
У Op3 mode 1 ось задаёт длину прямоугольника, а не его нормаль. Для
|
||||
локального вектора к камере `v` и анимируемой оси `a` столбцы базиса имеют
|
||||
порядок `[a, u, w]`, где `u = normalize(v × a)`, `w = a × u`. Плоскость
|
||||
прямоугольника — XY, поэтому первая сторона идёт вдоль авторской оси, а
|
||||
вторая поворачивается к камере. Это сохраняет соединение между точками
|
||||
локатора при движении камеры. Если поставить ось в третий столбец,
|
||||
прямоугольник займёт поперечную плоскость и связь превратится в полоску или
|
||||
небольшой диск.
|
||||
|
||||
Порядок подтверждён аргументами конструктора матрицы в GOG `Effect.dll`
|
||||
(сборка из [таблицы бинарников](original-binaries.md), SHA-256
|
||||
`386a3e8db1ce23f61957825d633c7dae1ed40c25cab0cf10a534385fd7cee789`):
|
||||
RVA `0x93D0`, ветка mode 1 с `0x9739`, сборка столбцов `0x97F6–0x983C`.
|
||||
Например, `a = (1, 0, 0)` и `v = (2, 1, 0)` дают столбцы
|
||||
`(1, 0, 0)`, `(0, 0, -1)`, `(0, 1, 0)`. При нативном вызове длины последних
|
||||
двух столбцов могут немного отличаться от единицы из-за приближённой
|
||||
нормализации выбранного `g_FastProc`; порядок осей от этого не меняется.
|
||||
|
||||
## Частицы Op7
|
||||
|
||||
`fparkan-fx::op7` вычисляет фиксированный набор частиц Op7 по body команды,
|
||||
|
||||
Reference in new issue
Block a user