大家都知道,opengl es對紋理的尺寸有限制,就是長和寬都必須是2的整數次冪。(實際上opengl都有此限制,但有一些擴充套件可以解決此問題)。因此處理方案有兩種:
將紋理尺寸限制為2的整數次冪。比如,我有乙個480×320的背景圖案,我可以用photoshop將畫布設定為512×512,在紋理對映時只使用480×320部分。當然我也可以將多個圖案合成在乙個紋理中,在紋理對映時根據圖案的位置進行對映。
仍然使用正常的影象尺寸,但在使用時進行轉換。下面是源**: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 首先調整紋理的長和寬為2的整數次冪 if(
( _width
!= 1 )
&&( _width
&( _width
- 1)))
if(( _height
!= 1 )
&&( _height
&( _height
- 1)))
// 如果調整後的影象尺寸大於最大紋理尺寸(1024),那麼需要縮小
while
(( _width
& gt
; kmaxtexturesize
)||( _height
& gt
; kmaxtexturesize
))
OpenGL ES 紋理基礎
位圖 點陣圖是一系列的0和 1,表示開啟或關閉的畫素值 點陣圖中 一塊記憶體中的每個位正好對應於螢幕上的乙個畫素的狀態.它可 以表示掩碼 字型和字元多邊形甚至是兩色的抖 像.畫素圖 與點陣圖相比 畫素圖更有趣 用途更大 畫素圖在記憶體中的布局與點陣圖相似.但是 它的每個畫素可以由超過 1個位的儲存空...
OpenGL ES 3 紋理基礎
1 讀取檔案 將儲存的檔案讀取到記憶體 方法很多 inputstream is this.getresources openrawresource path bitmap bitmaptmp try finally catch ioexception e 2 載入紋理 將記憶體影象資料上傳到視訊記憶...
OpenGL ES 3 紋理環繞
紋理座標的範圍通常是從 0,0 到 1,1 那如果我們把紋理座標設定在範圍之外會發生什麼?無論是 s 軸還是 t 軸的紋理座標都是在 0.0 1.0 的範圍內,這滿足了大多數情況。但在特定的情況下,也可以設定大於 1 的紋理座標。當紋理座標大於 1 以後,設定的?方式就會起作用了。1 重複紋理環繞 ...