首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于纹理数组的opengl glTexSubImage

用于纹理数组的opengl glTexSubImage
EN

Stack Overflow用户
提问于 2020-12-03 21:09:38
回答 1查看 131关注 0票数 0

对于1D和2D纹理,我们只有一个图像,要获得特定mipmap上的图像,我们可以调整level参数

但是对于一维和二维数组,尽管docs指定可以使用这些数组标志作为有效参数,但他们并没有告诉我们如何使用它从一维和二维数组中读取图像

假设我将mipmap级别指定为5

代码语言:javascript
复制
by using
glTexParameteri(GL_TEXTURE_1D_ARRAY,GL_TEXTURE_BASE_LEVEL,0);
glTexParameteri(GL_TEXTURE_1D_ARRAY,GL_TEXTURE_MAX_LEVEL,5);

并且我使用以下命令自动生成mipmap

代码语言:javascript
复制
glGenerateMipmap(GL_TEXTURE_1D_ARRAY);

我的texture1D阵列有5个1D图像,阵列中的每个图像都有5*5= 25 images5 mip映射级别

如何使用glGetTexImage()读取特定数组索引和mipmap级别的图像?假设我想读取数组中第二个图像的第三个mip映射级别,我该如何做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-03 21:35:30

一维阵列纹理基本上是2D纹理,当涉及到给出x,y,z偏移和宽度,高度,深度参数的OpenGL应用编程接口函数时,2d阵列纹理基本上是3D纹理。

因此,为了访问一维阵列纹理上第八个数组层的第四个mip级别,从x-offset = 50个纹素开始,并读取800个纹素宽的行,您将使用以下调用:

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65126632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档