[問題] OpenGL glmultmatrixf 方向?

看板C_and_CPP (C/C++)作者 (有點厲害)時間10年前 (2016/04/11 00:48), 10年前編輯推噓7(707)
留言14則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Win7 VC2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) GLUT 3.7 beta 問題(Question): 我在 opengl 中使用了 glmultmatrixf() 函式,來旋轉我的圖形。 可是轉起來怎麼方向是相反的....!? 同樣的旋轉矩陣在 Matlab 是對的,在這裡怎麼反過來了.. 我有google了一下,似乎跟是opengl矩陣左/右乘跟別人不一樣!? 請問我要怎麼設定,才能讓opengl的計算跟一般數學計算一樣呢? 還是我只能手動自己轉置旋轉矩陣..。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.32.108 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460306915.A.913.html

04/11 01:12, , 1F
matlab 不熟。OpenGL 是一堆矩陣乘完以後最後才乘頂點
04/11 01:12, 1F

04/11 01:13, , 2F
效果就會是你執行順序的反向
04/11 01:13, 2F

04/11 01:15, , 3F
然後矩陣是 column major
04/11 01:15, 3F
我知道矩陣是相乘後才乘頂點,我也知道 V_i = A_ij * U_j,的幾何意義。 現在是 opengl 的旋轉矩陣乘的順序跟別人相反, 例如我輸入一個 A_ij,實際上他算出來的是 A_ji, 所以我必須手動轉置 A_ij->A_ji 然後讓 opengl 畫出 A_ij...

04/11 02:04, , 4F
如果搞不清方向,怎麼不用 glRotatef() 方便多了
04/11 02:04, 4F
我知道這是一個四元數的表達方式, 但我還要逆推旋轉矩陣的四元數,豈不是多此一舉嗎?

04/11 13:11, , 5F
所以我說是 column major 啊 XD
04/11 13:11, 5F

04/11 13:14, , 6F
自己用其他library算完座標再畫出來
04/11 13:14, 6F

04/11 13:15, , 7F
然後左右手座標系注意一下
04/11 13:15, 7F
其實我也只有一個旋轉矩陣而已XDDDD

04/12 02:58, , 8F
glMultTransposeMatrix?
04/12 02:58, 8F
因為我是使用已經編譯好的 glut,沒有用到完整的, 所以這個涵式似乎沒有在這個精簡版裡面。 QAQ ※ 編輯: qscgy4 (123.195.32.108), 04/12/2016 23:08:05

04/12 23:38, , 9F
GLee裡有定義那函式 看看要不要用
04/12 23:38, 9F

04/13 01:23, , 10F
GLEE的網頁掛啦...根本連不進去XD
04/13 01:23, 10F

04/13 01:40, , 11F
那個函數不是 glut 的
04/13 01:40, 11F

04/14 01:26, , 12F
我都用glm@@
04/14 01:26, 12F

04/17 13:56, , 13F
我不知道Matlab用什麼表示法,但是OpenGL與DirectX是不
04/17 13:56, 13F

04/17 13:56, , 14F
同的,網路上能找到轉換公式,可以參考,舉一反三
04/17 13:56, 14F
文章代碼(AID): #1N2eFZaJ (C_and_CPP)
文章代碼(AID): #1N2eFZaJ (C_and_CPP)