gpt4 book ai didi

opengl - OpenGL 纹理必须翻转吗?

转载 作者:行者123 更新时间:2023-12-02 02:03:44 27 4
gpt4 key购买 nike

假设我从给定文件中加载一个字节数组作为 RGB。

我读到 OpenGL 喜欢“反转”存储其纹理,并且我见过演示程序存储颠倒的图像。

那么在我的程序中,我必须逐字节或逐行反转加载的 RGB 数组吗?

最佳答案

这是因为位图(.bmp) 格式存储的行是颠倒的。我不确定是谁想出这个的,但这是一个文件格式的问题。那么,是的,如果您使用自己的 .bmp 加载器,则必须这样做。但是,您可以使用已经编写好的图像来为您“颠倒”图像。再说一次,这只是一个 .bmp 的东西。 OpenGL 默认情况下适用于非翻转图像。

这里有一个小技巧:如果您不想更改 .bmp 加载程序,您可以告诉 OpenGL 为您翻转图像:

glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glScalef(1.0f, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);

这就是我所说的“默认”的意思。如果您愿意,您可以将 OpenGL 颠倒过来。但是,这仅在您加载 .bmp 文件时才有效。其他文件格式可以正确存储其行。因此,我更喜欢第一种方法 - 使用真正的 .bmp 加载器。

需要明确的是:如果您加载 .bmp 文件,则必须在将图像发送到 OpenGL 之前手动翻转图像(大多数 .bmp 加载程序都会这样做) ,或者将未翻转的图像发送到 OpenGL,并在渲染代码之前添加上述代码。

关于opengl - OpenGL 纹理必须翻转吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811195/

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