将像素渲染为纹理

时间:2017-01-11 15:18:50

标签: android opengl-es draw

我需要使用Android上的OpenGL ES 2.0将动态变化的像素渲染到屏幕上。

我有一个方法可以生成宽*高的颜色数组(RGBA,4 * GLubyte)。还有PutPixel(x,y,color)方法替换具有(x,y)坐标的数组中的像素颜色。

我的解决方案是:每个Draw()方法调用我调用BindTexture,glTexImage2D使用数组作为纹理源,然后在全视口上渲染此纹理。

这是正确的方法吗?还是有另一个更好的解决方案?

1 个答案:

答案 0 :(得分:1)

您的方法可能会产生足以满足您需求的性能,尤其是当您的宽度*高度小于全屏分辨率时。它还具有非常简单的优点。

但是,如果您可以在游戏过程中减少CPU和GPU之间的传输大小,通常可以获得更好的性能。

假设您永远不需要在CPU上读取像素颜色,并且通常每帧只渲染几个像素,那么最好的选择可能是使用渲染到纹理的方法。基本上,您创建一个宽度为*高度的可渲染纹理,并让您的PutPixel函数将彩色点渲染到纹理中(将它们分批以最小化绘制调用)。