OpenGL ES紋理尺寸限制的處理方法

2021-06-16 05:06:10 字數 1020 閱讀 9484

大家都知道,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 重複紋理環繞 ...