說明:兩者的都是生成紋理,即:將載入的位圖文件(*.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()支持任意分辨率位圖文件。
見過glTexImage2D()的缺陷了,但是在基於對話框下的openGL 用gluBuild2DMipmaps()咋會出現異常(Integer division by zero),兩個函數都加載不了紋理(能加載的,我在沒有使繪圖描述表爲當前調用現程的當前繪圖描述表就加載材質了,所以貼圖一直顯示不了)