opengl 自上而下<->自下而上纹理?

发布于 2024-07-11 23:28:26 字数 87 浏览 10 评论 0 原文

当我通过 FreeImage 加载图像时,这些位是从下到上的。 我的 GL 代码期望所有图像都是自上而下的。 当我将位复制到纹理时翻转图像的最佳方法是什么?

When i load an image via FreeImage, the bits are bottom to top.
My GL code expects all images to be topdown. Whats the best way to flip the image when i copy the bits to the texture?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

洋洋洒洒 2024-07-18 23:28:26

您可以使用纹理矩阵来有效地翻转纹理坐标。 我认为这会起作用:

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

You could use the texture matrix to effectively flip texcoords. I think this would work:

glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glScalef(1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
他不在意 2024-07-18 23:28:26

我认为使用简单的数组算术和 1 个临时长字值进行就地翻转是明智的。 (所以每个像素翻转,4 个字节)。

您当然可以翻转纹理坐标,但恕我直言,这是不明智的,因为您可能不想用纹理颠倒的信息污染您的代码。

I think it's wise to do an in-place flip using simple array arithmetic and 1 temporary longword value. (so flip per pixel, 4 bytes).

You could of course flip texture coords but that would be unwise IMHO, as you probably don't want to pollute your code with the info that the texture is upside down.

血之狂魔 2024-07-18 23:28:26

可以尝试一下 FreeImage_FlipVertical() 。

Might give FreeImage_FlipVertical() a try.

假情假意假温柔 2024-07-18 23:28:26

根据您的应用程序,大多数专业游戏会在构建过程中而不是在加载时翻转其纹理。

Depending on your app, most professional games would flip their textures in their build process, not at load time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文