OpenGL C#,加载颠倒纹理

发布于 2024-11-26 08:29:51 字数 200 浏览 1 评论 0原文

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

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

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

Is there a way to load images into openGL with the y-coords flipped? (upside down). I'm using the .NET Bitmap and BitmapData classes, and passing BitmapData.Scan0 to OpenGL.

Flipping the Bitmap on the CPU using .RotateFlip() is too slow.

Aside from flipping all of the texcoords, can I solve this problem in our engine?

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

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

发布评论

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

评论(4

来世叙缘 2024-12-03 08:29:51

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

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

If you render using a fragment shader, you get to interpret the u, v coordinates anyway you want. Turning them upside down should be trivial and (nearly) free.

Other than that, just flip your texture coordinates. It should not be difficult to achieve this.

疯到世界奔溃 2024-12-03 08:29:51

您应该能够仅更改纹理坐标即可实现所需的翻转。

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

失去的东西太少 2024-12-03 08:29:51

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

I think the answer is no. OpenGl takes a pointer to an image as texture data, and I never seen any way to tell him to flip the lines.

往日 2024-12-03 08:29:51

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

这在 C++ 中对我有用。

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

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

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

(edit: Disregard, question is textures instead of DrawPixels)

This worked for me in C++.

Q: "How can I make glDrawPixels() draw an image flipped upside down?"

A: "Try glPixelZoom( 1.0, -1.0 ). Similarly, an image can be flipped left to right with glPixelZoom(). Note that you may have to adjust your raster position to position the image correctly."

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

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