glCopyImageSubData复制TEXTURE_1D_ARRAY返回GL_INVALID_VALUE报错求助
问题根因
调用glCopyImageSubData时的维度参数填写错误,问题出在最后三个传值:64, 2, 1。
对于GL_TEXTURE_1D_ARRAY类型的纹理,其在glCopyImageSubData中的维度映射规则如下:
- width参数对应1D纹理的长度,你填写的64是正确的
- height参数固定为1,因为1D纹理本身没有高度维度
- depth参数对应需要复制的数组层数,你需要复制2层纹理,所以这里应该填2
你填写height=2,已经超出了1D_ARRAY纹理高度固定为1的边界,所以触发了GL_INVALID_VALUE错误。
修正代码
glCopyImageSubData( tex0, GL_TEXTURE_1D_ARRAY, 0, 0, 0, 0, tex1, GL_TEXTURE_1D_ARRAY, 0, 0, 0, 0, 64, 1, 2 );
内容的提问来源于stack exchange,提问作者tuket
相关产品推荐
相关产品推荐

