OpenGL着色器?

dim*_*ime 3 java opengl gpu

我正在用Java写一个游戏,LJGWL(OpenGL).我正在使用一个为我处理大量杂乱细节的库,但需要找到更快的方法来实现这一点.

基本上我想设置屏幕上的每个像素尽可能快地说出随机颜色."随机颜色"只是一个每隔2-3秒更新一次的Array [] [].我已经尝试过绘制rects和使用图像,两者都非常慢,我想做什么.

我想我想学习如何编写GPU着色器?这是最快的方法吗?LJGWL将OpenGL api暴露给java.有关如何开始使用OpenGL着色器的任何基础教程?或者我应该动态创建某种纹理,然后只是抛出整个纹理,那会更快吗?

jay*_*lee 6

如果是静态显示相同图像的情况,那么使用纹理或显示列表就足够了.但是,由于您希望经常更新它,着色器确实是最佳选择.着色器代码在GPU上执行并修改GRAM中的数据,因此您没有瓶颈从CPU转移到GPU.下一个最好的事情可能是像素或帧缓冲对象.缓冲对象允许您通过DMA读取/写入GRAM(无需通过CPU),因此它们可以非常快.

我还没有写任何着色器,所以我不能推荐任何好的资源.但SongHo的OpenGL页面是学习缓冲对象的好地方.(他的例子是用C++编写的)