关于脏光线的一些想法

要想计算实时的光线追踪,除了改进模型以外,一个很重要并且通用的计算思想应该被重视:只计算变化过了的光能传递过程.
以photonmap为例,类似于windows的脏矩形算法,我们应该想办法标记出由于光源或者场景的改变而引起了哪些传递过程的改变.我们可以管它叫做脏光线算法(我随便起的名字,不知道是不是有人已经实现了类似的想法).
一个简单的想法是:给初始的每个光子标记它的光源来源.在一次相交中,入射光子叫做父光子,而新产生的光子被叫做子光子,子光子的光源属性等于它所有的父光子光源的和集.当某一个光源产生变化时,我们先从photonmap中除去所有标记有相关光源属性的光子,保留剩下的.然后每一桢我们再逐量追加采样,结合传统的每桢删除旧光子,增加新光子的方法,应该会有更好的效果.假想一下,当光源被分割到多个独立的空间的时候,而每个空间又有可能被玩家看到的话,这个想法应该会有效.

2005.12.13
posted @ 2006-01-19 17:30  fire  阅读(322)  评论(1编辑  收藏  举报