gluBuild2DMipmaps()與glTexImage2D()的使用方法

說明:兩者的都是生成紋理,即:將載入的位圖文件(*.bmp)轉換成紋理貼圖。


glTexImage2D()的用法舉例


glTexImage2D(GL_TEXTURE_2D, //此紋理是一個2D紋理
0,                                         //代表圖像的詳細程度, 默認爲0即可 
3,                                         //顏色成分R(紅色分量)、G(綠色分量)、B(藍色分量)三部分,若爲4則是R(紅


                                         //色分量)、G(綠色分量)、B(藍色分量)、Alpha
TextureImage[0]->sizeX,          //紋理的寬度
TextureImage[0]->sizeY,          //紋理的高度
0,                                         //邊框的值
GL_RGB,                               //告訴OpenGL圖像數據由紅、綠、藍三色數據組成
GL_UNSIGNED_BYTE,                //組成圖像的數據是無符號字節類型
TextureImage[0]->data);          //告訴OpenGL紋理數據的來源,此例中指向存放在TextureImage[0]記錄中的數據


gluBuild2DMipmaps()的用法舉例


gluBuild2DMipmaps(GL_TEXTURE_2D,//此紋理是一個2D紋理
3,                                             //顏色成分R(紅色分量)、G(綠色分量)、B(藍色分量)三部分,若爲4則是R(紅色分量)、G(綠色分量)、B(藍色分量)、Alpha
TextureImage[0]->sizeX,               //紋理的寬度
TextureImage[0]->sizeY,               //紋理的高度
GL_RGB,                                      //告訴OpenGL圖像數據由紅、綠、藍三色數據組成
GL_UNSIGNED_BYTE,                     //組成圖像的數據是無符號字節類型
TextureImage[0]->data);             //告訴OpenGL紋理數據的來源,此例中指向存放在TextureImage[0]記錄中的數據


                                                                          使用注意事項


使用glTexImage2D()時所採用的位圖文件分辨率必須爲:64×64、128×128、256×256三種格式,如果其他大小則會出現繪製不正常。gluBuild2DMipmaps()支持任意分辨率位圖文件。



=======================================================================================

glTexParameteri()紋理過濾函數.

圖象從紋理圖象空間映射到幀緩衝圖象空間(映射需要重新構造紋理圖像,這樣就會造成應用到多邊形上的圖像失真),

這時就可用glTexParmeteri()函數來確定如何把紋理象素映射成像素.

你這裏的參數功能說明如下:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);

GL_TEXTURE_2D: 操作2D紋理.

GL_TEXTURE_WRAP_S: S方向上的貼圖模式.

GL_CLAMP: 將紋理座標限制在0.0,1.0的範圍之內.如果超出了會如何呢.不會錯誤,只是會邊緣拉伸填充.

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

這裏同上,只是它是T方向

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

這是紋理過濾

GL_TEXTURE_MAG_FILTER: 放大過濾

GL_LINEAR: 線性過濾, 使用距離當前渲染像素中心最近的4個紋素加權平均值.

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);

GL_TEXTURE_MIN_FILTER: 縮小過濾

GL_LINEAR_MIPMAP_NEAREST: 使用GL_NEAREST對最接近當前多邊形的解析度的兩個層級貼圖進行採樣,然後用這兩個值進行線性插值.

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