作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了这样的二维纹理数组
glTexImage3D(GL_TEXTURE_2D_ARRAY,
0, // No mipmaps
GL_RGBA8, // Internal format
width, height, 100, // width,height,layer count
0, // border?
GL_RGBA, // format
GL_UNSIGNED_BYTE, // type
0); // pointer to data
例如,如何将其大小从 100 增加到 200?我想我必须创建一个大小为 200 的新二维数组并使用 glCopyTexSubImage3D
复制图像?
glBindTexture(GL_TEXTURE_2D_ARRAY, texture_id);
glCopyTexSubImage3D(GL_TEXTURE_2D_ARRAY,
0,
0, 0, 0,
0, 0,
width, height
);
glDeleteTextures(1, &texture_id);
GLuint new_tex_id;
glGenTextures(1, &new_tex_id);
glBindTexture(GL_TEXTURE_2D_ARRAY, new_tex_id);
glTexImage3D(GL_TEXTURE_2D_ARRAY,
0,
GL_RGBA8,
width, height, 200,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
0);
//How do I get the data in `GL_READ_BUFFER` into my newly bound texture?
texture_id = new_tex_id;
但是我实际上如何从 GL_READ_BUFFER
中获取数据?
最佳答案
glCopyTexSubImage
从帧缓冲区复制数据,而不是从纹理复制数据。这就是复制时不需要两个纹理对象的原因。
从一个纹理复制到另一个纹理需要 glCopyImageSubData
.这是来自 ARB_copy_image 的 OpenGL 4.3 函数。在 NV_copy_image 中也可以找到类似的功能,可能会得到更广泛的支持。
顺便说一句,您通常应该完全避免执行此操作。如果您需要一个 200 元素数组纹理,您应该在第一时间分配它。
关于c++ - 如何增长 GL_TEXTURE_2D_ARRAY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34239049/
我是一名优秀的程序员,十分优秀!