无论如何要加快速度吗? 我开始学习,访问Frame Buffer本身可以快速完成。但我不知道怎么......在opengl中有没有办法做到这一点?
答案 0 :(得分:3)
如果您为了学习Bresenham而实施Bresenham,那么我建议您使用"像素"你即将绘制成一个数组(C ++中的std::vector
)。然后,当您完成Bresenham" rasterization"时,将该数组作为顶点数组传递给OpenGL,并使用单个glDrawArrays
调用绘制它。
否则,如果您的目标是绘制一条线,只需使用OpenGL线。
答案 1 :(得分:0)
为了补充@ datenwolf的答案,你可能发出了大量的呐喊。这可能并且将会产生重大的性能缺陷。您甚至不必直接访问帧缓冲区,只需确保不要在每个点之间进行不必要的操作。有多种方法可以实现这一点,实际上映射缓冲区就是其中之一。你也可以坚持自己的记忆,只需" blit"结果给了OGL。
同样,如果您只是想绘制一条线,GL_LINES
几乎总是更快更方便。