OpenGL紋理高階

2022-05-03 00:57:07 字數 1102 閱讀 7112

矩形紋理

對於二維紋理來說,除了gl_texture_2d之外,使用gl_texture_rectangle就可以使用矩形紋理。

矩形紋理幾大特點:

不能mip,只能載入glteximage2d的level 0

紋理座標非標準化

不支援壓縮紋理

這種方式通常用於處理和提交影象資料的應用,比起通常的2d紋理硬體支援也更加簡單,效率更高。

glsl取樣器sampler2d --> samplerrect

多重紋理

多重紋理支援查詢:

glint n;

glgetitegerv(gl_max_texture_units,&n);

使用多重紋理

紋理陣列

使用gl_texture_2d_array作為相關函式的第乙個引數。使用glteximage3d載入一**像。

可以將最後乙個引數設定為null,gl將會使其保持未初始化狀態,然後在後面使用gltexsubimage3d迴圈載入所有的影象。

在glsl中使用uniform sampler2darray進行取樣

紋理**

使用紋理**可以查詢支援的紋理資訊。

建立乙個紋理**就像建立乙個紋理一樣,但是第乙個引數應該是下列之一:

gl_proxy_texture_1d

gl_proxy_texture_2d 

gl_proxy_texture_3d

gl_proxy_texture_cube_map

最後乙個引數應該為null。

值得注意的是,這並不是真的建立了乙個紋理。

在建立之後我們就可以向下面這樣來查詢相應的資訊了(這個意思就是,我們先把指定的值賦給他,然後來查詢這個值到底是多少):

glteximage2d(gl_proxy_texture_2d,0,gl_rgba,2048,4096,0

,gl_bgra,gl_unsigned,null);

//檢視是否支援4096的高度

void glgettexlevelparameter(gl_texture_2d,0,gl_texture_height,&height);

渲染世界的OPENGL 16 紋理高階 紋理陣列

著色器可以一次性訪問幾個紋理物件,我們可以進一步使用稱為紋理陣列的特性。在紋理陣列上,我們可以將整個陣列的紋理影象繫結到乙個紋理物件上,然後在著色器當中對他們進行檢索,這樣就大大增加著色器可用紋理資料的數量。1 載入2d紋理陣列 紋理陣列新增了兩個新的紋理物件作為大多數紋理管理函式的有效引數 gl ...

opengl紋理單元

可以這樣簡單的理解為 顯示卡中有n個紋理單元 具體數目依賴你的顯示卡能力 每個紋理單元 gl texture0 gl texture1等 都有gl texture 1d gl texture 2d等,如下 cpp view plain copy print struct textureunit te...

openGL 紋理使用

最近找了點資料學習了下opengl 紋理的使用 先有個 整體把握,然後再去看大部頭中的細節講解,感覺這樣的學習方式好些 總結下紋理使用總體流程 1 啟用紋理 glenable gl texture 2d 2 載入紋理 3 紋理 的顯示 載入紋理 1 讀取紋理影象高寬和畫素資料到記憶體中,老版本 op...