我想找到一个详细的描述,最好用例如使用渐进细化光能传递算法的OpenGL,但不能。更确切地说,你如何计算你应该更新采集四边形的光能传递的值,以及他们的父射手四边形的未射击功率。我尝试阅读GPU宝石(http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter39.html),我认为我正在寻找的部分是
DE = r * FF * E
add DE to residual texture
add DE to radiosity texture
但我不确定。
答案 0 :(得分:2)
你是对的,这是将能量源从四边形分配到其他四边形的部分。 FF是一个形状因子,它是0到1之间的值。
形状因子考虑了四边形的距离和方向,以确定接收的光量。因此,例如,两个非常接近,相对的四边形将获得接近1的形状因子,并且两个四边形在其法线之间,非常远或两者之间具有小角度,将得到接近0的值。
r将是源四元组和聚集四元组之间的差分区域。如果聚集四边形区域比源四边形大4倍,我认为r将为4。如果你的四边形大小一致(它只是1),你不需要这个。
E是从源四边形射出的能量。它是一个存储值,当四边形是源时不会计算。它仅在四边形聚集时才更新。
DE是单个聚集四元组收到的E的数量。
我认为这两篇文章更好:
http://www.flipcode.com/archives/Radiosity_In_English-The_Basics.shtml http://www.flipcode.com/archives/Radiosity_In_English-Form_Factor_Calculation.shtml