大小不一致的OpenGL纹理解压缩参数

时间:2019-06-19 16:39:05

标签: opengl

想象一下源图像的大小为1024x1024像素,纹理的大小为512x512。现在,我需要获取部分源图片并将其上传到纹理。

要这样做,我就这样使用glPixelStorei

glPixelStorei(GL_UNPACK_ROW_LENGTH, 1024);
glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, 1024 );
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0 );
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0 );

glTexSubImage2D           ( GL_TEXTURE_2D, mipmap,
                                    0, 
                                    0, 
                                    512,
                                    512,
                                    dataFormat,
                                    dataType
                                    dataPtr );

虽然GL_UNPACK_SKIP_PIXELS +纹理大小小于或等于源大小,但一切看起来都很清楚。

但是,如果GL_UNPACK_SKIP_PIXELS例如为768,那么源数据将不覆盖请求的数据区域(768 + 512> 1024),将会发生什么?会是未定义的行为还是其他?是否记录在某处?据我所知,OpenGL驱动程序没有产生任何错误。

0 个答案:

没有答案