纹理不会在预期的位置包裹

时间:2014-01-08 05:09:52

标签: opengl

我正在生成一个位图(每个像素1个字节)并尝试将其用于alpha混合。我成功地使用了位图,但看起来纹理没有像我期望的那样包裹线条。

当我使用下面的代码时,它会根据输入图像包装我期望的位置。我得到了我期望的X集。

std::ofstream file{ R"(FileName.txt)" };

file << "width: " << gs.width() << "\theight: " << gs.height() << "\n";

for (int i = 0; i < gs.height(); ++i)
{
    for (int j = 0; j < gs.width(); ++j)
    {
        file << ((gs.alpha()[j + i * gs.width()]) ? 'X' : ' ');
    }
    file << "\n";
}

当我加载纹理时,看起来纹理的宽度与gs.width()不匹配,因为它奇怪地包裹。

Output when expecting a lower case 'a'.

这是我用来创建纹理并用位图加载它的代码。

GLuint tex;
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
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_DEPTH_COMPONENT, gs.width(), gs.height(), 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, gs.alpha());

任何人都可以提出我可能做错的建议吗?

0 个答案:

没有答案