Bullet и DirectX: система координат

Насколько я понял из доков у булета правостороняя система координат. Такой вопрос если его дружить с деректом и его левосторонней системой, то достаточно ли конвертации матрицы трансформации? или надо еще что конвертировать (вектора инерции например)

Если достаточно конвертации матрицы трансформации, то как ее правильно сконвертировать, только изменить вектор переноса, или еще вид системы учитывается в кватернионах поворота?

Submitted by Victor on

Комментарии

Достаточно матрицы конвертить. Тензоры инерции всё равно обычно вычисляются по shape'у (я никогда руками не считал, только до Bullet).

Вообще, за полчаса и несколько экспериментов достоверно выясняется как конвертить матрицы под свою систему -- комбинаций немного Smile

Submitted by BLK Dragon on

Чтото я всеравно не могу понять. Ведь для симулятора физики должно быть равнобезразлично какая система координат используется. Для рендера понятно - если перепутать систему координат, то будет одна из осей на экране выглядить перевернутой... но физика то каким боком до этого, если все чем она занимается по сути дела это конвертацией одних данных в другие по заранее описанным законам?

Логично же помойму что если в физике на входе задавать все данные в левостонней системе, то и на выходе она будет возвращать их в левостороней, а если на вход подовать в правостороней, то на выходе получится правостороняя.

Или чтото тут не так?

Последняя правка: сб, 05/11/2011 - 21:47
Submitted by Victor on

Эм. Математике вообще побоку право/левостороннесть системы координат. В смысле dot-product/cross-product и всё такие прочее работают совершенно так же (ибо оперируют абстрактными векторами и матрицами).

Вот когда ты начинаешь интерпретировать матрицы/вектора как "позиции" и "повороты", нужно чётко понимать, как у тебя (и в физике) всё хранится (вектро-строка или вектор-столбец, матрицы column-major или row-major и т.п.)

Submitted by BLK Dragon on

Вдогонку. 

Утверждения "в ДиректХ левосторонняя системя координат" и "в ОпенГЛ правосторонняя система координат" вообще не очень верные.
Это функции D3DX и всякие glProjection предполагают использование определённых систем координат. Когда сам вычисляешь матрицы проекции и сам вычисляешь все векторные операции — можешь использовать любимую систему координат Smile

Submitted by BLK Dragon on

GameDev.by