我开始使用opengl,我想知道如何在不低于10 fps的情况下在屏幕上放置超过100万像素。目前我已经设置了一个std :: vector,它在主循环的更新阶段然后在渲染之前接收每个像素信息。
渲染阶段如下所示:
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*data.size(),
&data[0], GL_DYNAMIC_DRAW);
然后我glDrawArrays
每个像素采用彩色和2d位置。是否有更快的方法绘制一百万像素?我使用动态绘制,因为我希望在屏幕上更改颜色,同时每个单独的像素提供随机颜色。有点像破碎频道的电视。
答案 0 :(得分:3)
不要将颜色存储在数组中,而是在片段着色器中计算它们。
您可以创建一个噪声纹理并为其采样器使用包装。你还应该传递一些改变每一帧的制服,并以非线性的方式将它们与窗口坐标结合起来。