我想直接将像素写入屏幕(而不是使用顶点和多边形)。我已经调查了各种类似问题的答案,其中最值得注意的是这里和这里。
我看到有几种方法可以将像素绘制到屏幕上,但它们都似乎是间接的,并且使用了不必要的浮点运算:
1. 对于屏幕上的每个像素绘制一个
2. 创建一个跨越整个屏幕的二维四边形并向其写入纹理。与第一种选项类似,这似乎是一种在屏幕上放置像素的迂回方式。纹理仍然必须经过光栅化才能放置在屏幕上。此外,纹理必须是正方形,而大多数屏幕不是正方形,因此我必须解决这个问题。
如何以最直接和有效的方式使用OpenGL将颜色矩阵放入屏幕上,其中
直接写入帧缓冲似乎是最有前途的选择,但我只看到人们在使用帧缓冲进行着色。
我看到有几种方法可以将像素绘制到屏幕上,但它们都似乎是间接的,并且使用了不必要的浮点运算:
1. 对于屏幕上的每个像素绘制一个
GL_POINT
。我尝试过这种方法,它可以工作,但这似乎是一种在屏幕上绘制像素的低效方式。为什么要用浮点数编写数据,当它将被转换为像素数据数组时呢?2. 创建一个跨越整个屏幕的二维四边形并向其写入纹理。与第一种选项类似,这似乎是一种在屏幕上放置像素的迂回方式。纹理仍然必须经过光栅化才能放置在屏幕上。此外,纹理必须是正方形,而大多数屏幕不是正方形,因此我必须解决这个问题。
如何以最直接和有效的方式使用OpenGL将颜色矩阵放入屏幕上,其中
pixels [0] [0]
对应于左上角,而pixels [1920] [1080]
对应于右下角?直接写入帧缓冲似乎是最有前途的选择,但我只看到人们在使用帧缓冲进行着色。