【发布时间】:2014-08-13 12:07:34
【问题描述】:
我正在尝试加载 3x10 图像,每个“像素”仅使用 1 个字节。该像素是单个 Alpha。
当我如下加载图像时,由于某种原因,每四个像素都会被丢弃。没有 opengl 错误,我没有 2 个硬件支持。
所以如果我有以下像素缓冲区:{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },图像将如下所示:
0 1 2
4 5 6
8 9 10
...
纹理加载代码:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA8, 3, 10, 0, GL_ALPHA, GL_UNSIGNED_BYTE, pixels);
我不确定发生了什么,我很困惑。有什么可能导致这种行为吗?我也有最新的 opengl 驱动程序...
【问题讨论】:
-
是否存在某种内部限制?我看到它每行添加 4 个字节,而不是假设的 3 个字节。
标签: opengl