gpt4 book ai didi

c++ - OpenGL glTexSubImage 数据打包

转载 作者:搜寻专家 更新时间:2023-10-31 01:33:27 24 4
gpt4 key购买 nike

当使用 OpenGL 的 glTexSubImage2D 和 glTexSubImage3D 函数时,子图像不等于纹理的实际尺寸,数据指针应该包含打包的数据以匹配实际纹理尺寸还是子图像的尺寸?

例如,如果您有一个简单的 3x3 纹理,并且您只想上传中心像素,那么这将是一个 x 偏移量为 1、y 偏移量为 1、宽度为 1 和高度为 1 的子图像,您可以调用...

glTexSubImage2D(GL_TEXTURE_2D, 0, 1, 1, 1, 1, GL_RED, GL_UNSIGNED_BYTE, 数据)

data 应该像 { 255 } 还是像 { 0, 0, 0, 0, 255, 0, 0, 0, 0 } } ?

最佳答案

纹理的大小无关紧要。

子区域的大小已更新。具体来说,glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, data) 期望 data 指向大小为 ( width, height) 适当的类型和格式。数据从内存中解包的方式由 GL_UNPACK_ALIGNMENTGL_UNPACK_ROW_LENGTH 和 friend 控制。查看OpenGL specification §8.4 Pixel Rectangles .

在您的特定情况下,data 必须指向单个值,例如 { 255 }

关于c++ - OpenGL glTexSubImage 数据打包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41392856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com