有没有办法加快速度?我来学习了,访问 Frame Buffer 本身可以很快做到。但我不知道如何......有没有办法在opengl中做到这一点?
问问题
261 次
2 回答
3
如果您为了学习 Bresenham 而实现 Bresenham,那么我建议您将要绘制的“像素”放入数组中(std::vector
在 C++ 中)。然后,当您完成 Bresenham“光栅化”时,将该数组作为顶点数组传递给 OpenGL,并通过一次glDrawArrays
调用来绘制它。
否则,如果您的目标是画一条线,只需使用 OpenGL 线。
于 2015-01-12T14:19:55.070 回答
0
为了补充@datenwolf 的回答,您可能会发出很多drawcall。这可以并且将会造成显着的性能缺陷。您甚至不必直接访问帧缓冲区,只需确保不要在每个点之间进行不必要的操作。有多种方法可以实现这一点,实际上映射缓冲区就是其中之一。您也可以坚持自己的记忆,然后简单地将结果“blit”到 OGL。
同样,如果您只是想画一条线,GL_LINES
几乎总是会更快、更方便。
于 2015-01-12T14:28:18.140 回答