OpenGL 紋理對映Mipmap

2021-07-25 01:11:59 字數 673 閱讀 2438

mipmap是乙個功能強大的紋理技術,它可以提高渲染的效能以及提公升場景的視覺質量,它可以用來解決一般紋理貼圖出現的兩個常見問題:

閃爍,當螢幕上被渲染物體的表面與它所應用的紋理影象相比顯得非常小時,就會出現閃爍,尤其當相機和物體在移動的時候,這種負面效果更容易出現。

效能問題,載入了大量紋理資料之後,還要對其縮小,在螢幕上顯示的只是一小部分,紋理越大,所造成的影響越大。

mipmap有多少個層級是有glteximage的第二個引數level決定的。層級從0開始,0,1,2,3這樣遞增,如果沒有使用mipmap技術,只有第0層的紋理會被載入。在預設情況下, 為了使用mipmap,所有層級都會被載入,但是我們可以用紋理引數來控制要載入的層級範圍,使用gltexparameteri,第二個引數為gl_texture_base_level來指定最低層級的level,第三個引數gl_texture_max_level來指定最高層級的level,例如我只需要載入0到4層級的紋理。

gltexparameteri(gl_texture_2d, gl_texture_base_level, 0);

gltexparameteri(gl_texture_2d,gl_texture_max_level,4);

除此之外,我們還可通過gl_texture_min_lod和gl_texture_max_lod來限制紋理的使用範圍(最底層和最高層)

OpenGL 7 紋理對映

紋理對映前,首先自定義讀取點陣圖的函式,其返回型別為aux rgbimagerec 該結構體定義在glaux.h中 aux rgbimagerec loadbmp char filename file fopen filename,r if file return null 載入失敗,返回null ...

複習 OpenGL 紋理對映 總結

今天系統的複習了一下opengl紋理對映 主要參考資料是這兩個 opengl 教程 總體來看,第二個教程更詳盡一些,比第乙個教程多介紹了一下 如何把 texture2d 物件,傳到 fragment shader 的 sampler2d 的 uniform 變數中。很久以前,自己總結過opengl ...

openGL之API學習(一二八)mipmaps

mipmaps用於計算紋理的一系列的子圖,每個子圖都比前乙個的尺寸縮小了2倍。他們用於在紋理縮小 紋理對映到比自身尺寸小的表面 的時候的去鋸齒。mipmaps 對於紋理快取的一致性也很重要,在遍歷乙個三角形 的片元 的時候,它會強制獲取乙個最近的畫素比例 這個比例保證三角形上的乙個畫素盡量對應紋理上...