【发布时间】:2014-02-06 09:19:47
【问题描述】:
我正在开发一个程序,该程序涉及绘制许多非常简单的重叠阴影。阴影没有什么特别之处:它们有坚硬的边缘,并且在无限远处只有一个光源(即所有阴影都是平行的)。独特之处在于阴影代表部分吸收光的区域,许多阴影可以重叠以形成逐渐变暗的区域。
这里有一张图片来说明这个想法:
我的问题是:在我的程序中获取阴影(存储为凸四边形)并有效地将它们绘制到屏幕上的好方法是什么?
我可以简单地使用适当的 alpha 值将它们全部绘制出来,结果看起来不错,但这样做会变得非常缓慢。我认为这是因为许多阴影中的像素被多次绘制。我怀疑只对每个像素绘制一次的方法可能会快得多。
我的程序是用 C++ 编写的,我正在使用 Qt 来做 UI 和绘图。我很乐意使用库来进行多边形裁剪或其他事情(例如Clipper 或 boost),但我不愿意深入 OpenGL/GPU 的世界(除非有一种特别轻松的方式这样做)。
有什么想法吗?谢谢!
【问题讨论】: