[OpenGL] OpenGL的紋理座標問題

Window系統中,屏幕座標原點在屏幕的左上角,X軸向右爲正,Y軸向下爲正.度量單位是象素

OpenGL的定義中,紋理座標原點在畫布的左下角,X軸向右爲正,Y軸向上爲正

                                左下角座標爲(0.0f, 0,0f), 右上角座標爲(1.0f, 1.0f)和形狀(矩形是否爲正方形)無關,

                                其他位置取0到1之間的一個浮點數插值得到

這也是爲什麼在Windows平臺進行OpenGL編程的時候需要將讀入的圖片首先進行垂直翻轉的原因。

 

舉例:

假設一個簡單的矩形,在OpenGL中,我們給其Vertex Buffer內頂點座標賦值爲:

那麼對應的Windows系統中屏幕上顯示的位置爲:

這個矩形可以以兩個三角形來繪製,現在我們要給矩形ABCD貼上紋理,首先載入紋理圖片

然後vertical flip,然後按照OpenGL中的座標規則給每個頂點分配合適的紋理座標:

這樣分析之後就可以得到B(1,0),D(0,1),所以最後的Vertex Buffer內容爲:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章