[英]OpenGL glTexSubImage Data Packing
当使用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)
data
应该看起来像{ 255 }
还是{ 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_ALIGNMENT
, GL_UNPACK_ROW_LENGTH
和朋友控制。 请参阅OpenGL规范§8.4像素矩形 。
在您的特定情况下, data
必须指向单个值,例如{ 255 }
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.