OpenGL 3.0中glDrawPixels的替代方案

An alternative to glDrawPixels in OpenGL 3.0?

本文关键字:方案 glDrawPixels OpenGL      更新时间:2023-10-16

所以我知道glDrawPixels已被弃用。有没有做同样事情的函数?我曾想过使用纹理,但它们是由当前矩阵修改的,而不是由glDrawPixels绘制的像素。

我想过使用纹理,但它们被当前的矩阵修改了

"当前矩阵"在3.0中被弃用,在3.1+中也被删除。所以,如果你不使用glDrawPixels,你也不会使用矩阵函数。所以没什么好担心的。

您可以使用片段着色器,其中gl_FragCoord的函数用于对矩形纹理进行采样。

或者,您可以使用更传统的方法,只需设置变换矩阵来近似窗口的像素坐标系,然后用图像绘制纹理四边形。

您需要使用绘制一个四边形

  • 一个特定的ModelViewProjection矩阵,它将把它放在你想要的地方(正如Nicol所说,现在已经没有"当前"矩阵了)
  • 一个简单的顶点着色器,它将使用所述矩阵来实际变换顶点
  • 一个简单的片段着色器,它将对纹理进行采样
  • 当然,还有足够的纹理坐标

首先,使用"标识"矩阵和X坐标和Y坐标在0和1之间的网格。

您可能需要使用http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/和http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-11-2d-text/(尽管后一个应该根据所使用的矩阵进行改进)