正如我們所知,OpenGL維護映射點的模型視圖和投影矩陣。初學者對模型到世界座標映射的困惑
如果仔細觀察,我把模型視圖矩陣: MAT4模型視圖= WorldViewMtx * ModelWorldMtx
好,什麼我不明白是怎麼ModelWorldMtx算出來
例如,如果我們有模型corrdinates(MC)和世界座標(WC)在2D中,如下示:
在MC一個點= [1; 1; 1](在均相列向量座標,我表示它的像馬的方式tlab)中,映射到WC的是b = M a = [ - 1 0 4; 0 1 3; 0 0 1] [1; 1] = [3; 4; 1]兩個座標之間的轉換矩陣(我的意思是兩個座標的基矢量之間的關係矩陣)。
如果我們在2D風格中應用gltranslate(1.0,0.0,0.0),那麼平移矩陣是T = [1 0 1.0; 0 1 0.0; 0 0 1]。因此,在這種方式指向映射到WC遺囑:
B」 = M Ť A = [ - 1 0 4 0 1 3 0 0 1] [1 0 1.0 0 1 0.0 0 0 1] [1; 1; 1] = [2; 4; 1]。
那麼在這個例子中,ModelWorldMtx究竟是什麼?
我認爲,仿射變換功能,如glTranslate,glScale只是工作在模型coordinates.If MC和WC在這種情況下不重合,
所以ModelWorldMtx = M T = [ - 1 0 4 ; 0 1 3; 0 0 1] [1 0 1.0; 0 1 0.0; 0 0 1] = [-1 0 3; 0 1 3; 0 0 1]。
如果MC和WC在OpenGL中重合,轉換矩陣M是一個單位矩陣,所以ModelWorldMtx = T,也就是說在調用gltranslate後該點被映射到WC。
我對不對?
究竟是什麼問題? 「那麼在這個例子中,ModelWorldMtx究竟是什麼?」無論你如何定義它。你只是做了2個轉換的組合,並得到了應該預期的結果。但我不明白你在問什麼。 – derhass 2014-09-01 19:33:53