viktor 发表于 2013-4-4 22:43
另外因为我暂时只需要对1个大的Bitmap进行处理,从效率上来说,就按你先前说的,先拷贝过去,再处理,再 ...
我懂了,你的光照是一个窗口大小的bitmap是吧。
很遗憾的告诉你……就算你用了Shader,优化效果不会特别明显(比Ruby肯定快,但是和直接用C操作),而且这种实现其实是有问题的。
首先,你是要计算一个BrightnessMap作为每个像素的亮度,
如果直接
for i in 0...width
for j in 0...height
end
end
的话非常慢(O(N^2))(其实我搞不懂你为什么一定要用模糊)。
另外我也不知道你到底用了什么算法计算:
是根据光源暴力扩展亮度还是根据距离和轮廓线进行计算……
【另外提一点,这里可以用kdtree优化……具体看《计算几何算法与应用》光线采样什么的。。】