0

有没有办法在翻转 y 坐标的情况下将图像加载到 openGL 中?(上下翻转)。我正在使用 .NET Bitmap 和 BitmapData 类,并将 BitmapData.Scan0 传递给 OpenGL。

在 CPU 上使用翻转位图.RotateFlip()太慢了。

除了翻转所有的 texcoords,我可以在我们的引擎中解决这个问题吗?

4

4 回答 4

2

You should be able to just alter your texture coordinates to achieve the desired flip.

于 2011-07-24T20:25:09.340 回答
2

如果您使用片段着色器进行渲染,您可以随意解释 u、v 坐标。将它们颠倒过来应该是微不足道的并且(几乎)是免费的。

除此之外,只需翻转您的纹理坐标。实现这一点应该不难。

于 2011-07-24T19:14:22.997 回答
1

我认为答案是否定的。OpenGL将指向图像的指针作为纹理数据,我从未见过任何方法告诉他翻转线条。

于 2011-07-24T18:47:30.373 回答
-2

(编辑:忽略,问题是纹理而不是 DrawPixels)

这在 C++ 中对我有用。

问:“如何让 glDrawPixels() 绘制一个倒置的图像?”

A:“试试 glPixelZoom(1.0, -1.0)。类似地,可以使用 glPixelZoom() 从左到右翻转图像。请注意,您可能需要调整光栅位置才能正确定位图像。”

来源:http ://www.mesa3d.org/brianp/sig97/gotchas.htm

于 2012-01-30T13:27:25.470 回答