我想找到一个详细的描述,最好是使用渐进细化辐射算法的 OpenGL 的例子,但不能。更准确地说,您如何计算应该用来更新收集器四边形的光能传递度以及其父射手四边形的未射击功率的值。
我尝试阅读GPU gems,我认为我正在寻找的部分是
DE = r * FF * E
add DE to residual texture
add DE to radiosity texture
但我不确定。
没错,这就是将能量从源四边形分配到其他四边形的部分。FF 是一个形状因子,它是一个介于 0 和 1 之间的值。
外形尺寸考虑了四边形的距离和方向,以确定接收到多少光。因此,例如,两个非常靠近、相对的四边形将获得接近 1 的形状因子,而两个在其法线之间具有小角度、非常远或两者的四边形将获得接近 0 的值。
r 将是源四边形和收集四边形之间的差异面积。如果聚集四边形区域比源四边形大 4 倍,我认为 r 将为 4。如果你的四边形大小一致(它只是 1),你就不需要这个。
E 是从源四边形发射的能量。它是一个存储值,当四边形为源时不计算。它仅在四边形聚集时更新。
DE 是单个聚集四边形接收到的 E 量。
我认为这两篇文章更好:
http://www.flipcode.com/archives/Radioity_In_English-The_Basics.shtml http://www.flipcode.com/archives/Radioity_In_English-Form_Factor_Calculation.shtml