| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > PhysX + OpenGL |
| Автор: Vetos 24.11.2012, 13:10 | ||||||||
| Здравствуйте! Изучаю PhysX 3, всё бы ничего но только при получении положения шейпа т.е. позицию и поворот, возникла трудность. В мануалах написано, что по умолчанию PhysX настроен под OpenGL. Т.к. OpenGL напрямую непонимает квантернион, в шейдер были введены две доп функции, перемножение квантернионов, и поворот точки с помощью квантерниона:
Этот код я нашел еще когдато давно гдето в недрах сети:) Но прикол в том что если напрямую передать квантернион в виде как он есть:
то обьекты на сцене(в моем случае кубы) ведут себя как бы неправильно, положение совпадает а вот с вращением беда, вращаются они как бы наоборот. Путем научного тыка, я добился того чтобы обьекты вращались правильно, но для этого пришлось сделать вот что:
т.е. поменять местами значения x и z, да еще и их знаки. Вот откуда взялись vec3, quat и Location:
Раньше с использованием квантерниона небыло никаких проблем(без PhysX), вроде все вращалось как надо. Но сейчас проблема с освещением, я думаю это связано с неправильным вращением нормалей. Либо ошибка в функциях в шейдере, либо в передаче квантерниона с PhysX в OpenGL в чем я не сомневаюсь. я вспомнил откуда коды функций в шейдере, человек писал что взял их с исходников Quake, так что думаю проблема не в них, а именно в передаче квантерниона. Прошу помощи, может квантернион с PhysX нужно както по другому передавать в QQuaternion??? |
| Автор: Vetos 24.11.2012, 19:04 |
| Странно, при переводе в матрицу поворота и отрисовке с ее помощью, кубы крутятся правильно.Но проблема с освещением не решилась :( Значит квантенионы тут ни при чем, но все равно интересно чем отличаются квантернионы в Qt, и в PhysX? |
| Автор: Vetos 25.11.2012, 00:13 | ||
Проблема решена, через связанные функции можно правильно передать квантернион с PhysX в Qt:
Теперь квантернион создается как положено и проблем с отображением физики и освещения нет. |