OpenGL C#,颠倒加载纹理

时间:2011-07-24 18:41:44

标签: c# opengl graphics textures opentk

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

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

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

您应该只需改变纹理坐标即可实现所需的翻转。

答案 2 :(得分:1)

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

答案 3 :(得分:-2)

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

这在C ++中对我有用。

问:"如何让glDrawPixels()将图像颠倒翻转?"

答:"试试glPixelZoom(1.0,-1.0)。同样,可以使用glPixelZoom()从左到右翻转图像。请注意,您可能需要调整光栅位置才能正确定位图像。"

src:http://www.mesa3d.org/brianp/sig97/gotchas.htm