快速2D线图

时间:2019-02-16 18:15:45

标签: c++ performance opengl line-drawing

几个月前,我用C ++编写了(high quality) zen photon盗窃案,我想从头开始。很有趣,我设法得到了nice results。最大的性能瓶颈是线条绘制部分,因为我需要绘制数百万条线条以“追踪光线”。

我最终将Micah Elizabeth Scott's code直接用于她的github,这比我尝试的所有方法都快。但是我想知道如何更快地画线。问题是,不仅我需要绘制数百万条线,而且还需要“将它们加起来”。

我的程序分为两个主要任务。首先是随机投射来自光源的光线,计算与物体的交点,使它们反弹等等。

第二部分正在画线。最终的图像表示为一个简单的双矢量(每个像素3x64位),画一条线的过程就是将值加到该矢量上。具体来说,当我使用Bresenham算法时,我对与行通过的像素对应的向量的像元进行了+ = 1的处理。

通过将此数组的值映射到[0,255]来渲染图像。然后,我可以玩亮度游戏,进行伽玛校正等。

我尝试了OpenGL和Cairo演示代码来画线。但是我无法实现我想要的行为:以良好的精度在像素阵列(或曲面,缓冲区或其他物体)中添加线条,然后从该阵列渲染图像。

您对如何快速在彼此之间画线以使我能够按照我刚才描述的方式进行操作有任何想法吗?

0 个答案:

没有答案