繁体   English   中英

glTexSubImage3D 不更新纹理

[英]glTexSubImage3D not updating texture

我正在尝试使用glTexSubImage3D仅更新具有 16 个 4096*4096 纹理的大型纹理数组中一个纹理的一部分。 但是,我无法让它工作。 该调用不会引发任何错误。 (虽然将宽度设置为超过 4096 确实如此)。

glTexSubImage3D(  GL_TEXTURE_2D_ARRAY, // target
                                    0, // level
                                    0, // x offset
                                    0, // y offset
                                    0, // z offset
                          TEXTURE_DIM, // width
                          TEXTURE_DIM, // height
                                    0, // depth
                              GL_RGBA, // format
                     GL_UNSIGNED_BYTE, // type
                          textures[1]); // zeroed memory

这很奇怪,因为当我用glTexImage3D替换这个调用时,纹理会更新:

glTexImage3D(GL_TEXTURE_2D_ARRAY, // target
                               0, // level
                        GL_RGBA8, // Internal format
                     TEXTURE_DIM, // width
                     TEXTURE_DIM, // height
                               1,  // the number of layers 
                               0,  // 0 required
                         GL_RGBA,  // format
                GL_UNSIGNED_BYTE,  // type
                     textures[1]); // zeroed memory

我是否缺少glTexSubImage3D需要的一些额外步骤? 可能是什么问题? 感谢您的任何指点

在您的情况下,深度参数必须为 1。 注意,更新区域的大小是width * height * depth 如果深度为 0,则根本没有任何改变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM