說說紋理常用的采樣方式?
最鄰近點采樣(GL_NEAREST)和雙線性采樣(GL_LINEAR)。
GL_NEAREST 采樣是 OpenGL 默認的紋理采樣方式,OpenGL 會選擇中心點最接近紋理坐標的那個像素,紋理放大的時候會有鋸齒感或者顆粒感。
**GL_LINEAR 采樣會基于紋理坐標附近的紋理像素,計算出一個插值,近似出這些紋理像素之間的顏色。**一個紋理像素的中心距離紋理坐標越近,那么這個紋理像素的顏色對最終的樣本顏色的貢獻越大。因為與周圍的像素做加權平均了,紋理放大的時候會變模糊。
當進行放大(Magnify)和縮小(Minify)操作的時候可以設置紋理過濾的選項,比如你可以在紋理被縮小的時候使用鄰近過濾,被放大時使用線性過濾。
我們需要使用glTexParameter*函數為放大和縮小指定過濾方式。這段代碼看起來會和紋理環繞方式的設置很相似:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
什么是 EGL ?
EGL 是 OpenGL ES 和本地窗口系統(Native Window System)之間的通信接口,它的主要作用:
- 與設備的原生窗口系統通信;
- 查詢繪圖表面的可用類型和配置;
- 創建繪圖表面