0

“每个阵列层都有许多面。面、层和级别产生一个图像。” http://www.opengl.org/wiki/Texture_Storage

  • glTex--Sub--Image 命令允许将数据上传到纹理图像的矩形区域。
  • 使用 glCopyTexImage*D,您可以指定 mipmap 级别和纹理数组的偏移量。

我遇到的问题是我可能正在使用更复杂的纹理类型(GL_TEXTURE_2D_ARRAY​或 GL_TEXTURE_CUBE_MAP_ARRAY​),它可以具有数组层(以及后一个示例的立方体面)我如何计算特定层(或面)的偏移量获取我要替换的 2D 图像的开头?

我认为为了解决立方体面,我将纹理绑定到像 GL_TEXTURE_CUBE_MAP_POSITIVE_X 之类的目标。但我不确定这和层的偏移计算。

4

1 回答 1

1

你在说什么“偏移计算”?

阵列纹理中的图像和立方体贴图阵列中的层面具有“索引”。没有要计算的偏移量。如果要修改数组中的特定图像,请上传到特定的图层/图层面索引。

因此,如果要上传到数组中的第一张图像,请将 glTexSubImage2D/3D 的 yoffset/zoffset 参数设置为 0(因为数组使用从零开始的索引)。并且您将高度/深度参数设置为 1,以便您只更新一层。

于 2013-08-22T08:44:06.680 回答