有没有办法在翻转 y 坐标的情况下将图像加载到 openGL 中?(上下翻转)。我正在使用 .NET Bitmap 和 BitmapData 类,并将 BitmapData.Scan0 传递给 OpenGL。
在 CPU 上使用翻转位图.RotateFlip()
太慢了。
除了翻转所有的 texcoords,我可以在我们的引擎中解决这个问题吗?
You should be able to just alter your texture coordinates to achieve the desired flip.
如果您使用片段着色器进行渲染,您可以随意解释 u、v 坐标。将它们颠倒过来应该是微不足道的并且(几乎)是免费的。
除此之外,只需翻转您的纹理坐标。实现这一点应该不难。
我认为答案是否定的。OpenGL将指向图像的指针作为纹理数据,我从未见过任何方法告诉他翻转线条。
(编辑:忽略,问题是纹理而不是 DrawPixels)
这在 C++ 中对我有用。
问:“如何让 glDrawPixels() 绘制一个倒置的图像?”
A:“试试 glPixelZoom(1.0, -1.0)。类似地,可以使用 glPixelZoom() 从左到右翻转图像。请注意,您可能需要调整光栅位置才能正确定位图像。”