簡體   English   中英

opengl glTexSubImage 紋理 arrays

[英]opengl glTexSubImage for texture arrays

對於 1D 和 2D 紋理,我們只有一個圖像,並且要在特定的 mipmap 上獲取圖像,我們可以調整 level 參數

但是對於 1D 和 2D Arrays,即使文檔指定您可以使用這些數組標志作為有效參數,他們也沒有告訴我們如何使用它從 1D 和 2D 數組中讀取圖像

假設我將 mipmap 級別指定為 5

by using
glTexParameteri(GL_TEXTURE_1D_ARRAY,GL_TEXTURE_BASE_LEVEL,0);
glTexParameteri(GL_TEXTURE_1D_ARRAY,GL_TEXTURE_MAX_LEVEL,5);

我使用自動生成 mipmap

glGenerateMipmap(GL_TEXTURE_1D_ARRAY);

我的 texture1D 數組有 5 個 1D 圖像,這將給我 5 * 5 = 25 個圖像[數組中每個圖像的 5 mip map 級別]

如何使用 glGetTexImage() 讀取特定數組索引和 mipmap 級別的圖像? 假設我想讀取陣列中第二個圖像的第三個 mip map 級別,我該怎么做?

一維數組紋理基本上是二維紋理,二維數組紋理基本上是 3D 紋理當涉及到 OpenGL API 函數給你 x,深度偏移參數和高度,z

因此,為了訪問一維數組紋理上第八個數組層的第四個 mip 級別,從 x-offset = 50 texels 開始並讀取 800 texels 寬的行,您將使用以下調用:

glGetTextureSubImage(
 texture,
 3,  // <- we want the fourth mip-level
 50, // <- there, we want to start at x-offset = 50 texels
 7,  // <- we want the eighth array layer
 0,  // <- irrelevant for 1D array textures
 800,// <- we want to read 800 texels (starting from 50)
 1,  // <- we want 1 array layer
 1,  // <- must use 1
 format,
 type,
 bufSize,
 pixels)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM