光能传递与视点无关,这增加了所涉及的计算,但使它们对所有视点都有用。
该技术有效仅具有扩散表面。这样,形状因子可以被预先计算并且独立于观察者。仅当某些光源发生变化时,才需要更新照明。另一方面,如果该技术将支持镜面反射,则形状因数将取决于观察者。相机移动时,形状因子和照明将需要不断更新。
漫反射面的限制如何增加计算量?漫反射表面需要考虑所有方向的光,这比仅从较小的镜面波瓣获取的光更为复杂。这句话是什么意思吗?是我还是应该改写?
#1 楼
尽管从维基百科文章的表述中可能并不清楚,但作者提出了一个重要问题:与许多其他方法相比,Radiosity需要对所有现有补丁进行计算,而不仅仅是可见补丁。它不是扩散表面的限制增加了所涉及的计算,而是对整个场景中的所有表面(不仅是可见表面)都计算了辐射率这一事实。
这与其他全局对象形成强烈对比照明技术(例如路径跟踪),其中仅针对可见样本计算辐射率。尽管视线可能仍会到达场景的每个点,但场景的某些部分可能从未被任何视线/路径所到达。因此,根本没有任何计算。与本地GI相比,“视点独立性问题”更为明显。
另一方面,正如Wikipedia文章所建议的那样,这也可以看作是非常有用的属性,因为计算可以不需要为每个不同的视点执行。大多数其他技术不是这种情况。
评论
$ \ begingroup $
好的,似乎主要的问题是我将“视点无关”理解为“ BRDF是各向同性的”,而不是“无论您是否看表面都计算出了照明”。我将等待另一天的另一个答案,然后可能会接受这个,谢谢:)
$ \ endgroup $
– David Kuri
2015年9月7日上午10:20
#2 楼
根据定义,光能传递仅处理扩散分量。您不能“限制”光能传递到扩散,因为它已经只在处理该扩散分量(请记住-扩散照明只是能量分布的一种(尽管很流行)应用)。错误地引用了报价。
此外,与普遍的误解相反,您不必花费所有精力就能获得出色的结果。查看渐进式细化方法,该方法仅处理最大的发射器,从而使收敛更快地收敛到“足够接近”的解决方案。
通常,您设置一些阈值(例如,我想重新分配85%能量),然后在处理下一个Shooter补丁之前,对分布式能量的运行总量进行简单检查(并退出循环)。通常,这比参考蛮力方法要快几个数量级(仅需很少的实施成本)。
当然,要获得Radiosity的真正好处(例如颜色渗色),最好重新分配尽可能地(考虑到可用资源)。
#3 楼
这句话说明了这一点:光能传递同时为所有潜在的视点预先计算了一个“图像”,即它不仅聚焦于照射特定观察者的光线。因此,自然会考虑更多的光线,因为您实际上同时在渲染多个视图。表面是否是镜面反射或漫反射与该声明无关。
为了使该方法可行,光能传递会执行非常粗略的渲染,就像使用大光束而不是细射线一样。
评论
我通常同意你的论点。但是我认为作者的意思是,该方法需要针对所有现有补丁执行计算,而不仅仅是可见补丁。有人可能会说,相比之下,路径跟踪仅计算可见斑块/样本的辐射度。尽管光线可能仍然到处传播,但场景的某些部分可能从未接收到任何视线/路径。因此根本没有计算。与本地地理标志相比,“观点独立性问题”更为明显。虽然,我仍然同意您的说法,但应改写。我同意Wumpf的观点,与视图无关的技术没有考虑可见性,这会导致额外的计算,因为无论相机在哪里看,它都需要计算整个场景的照明。此外,您无法在远处降低计算的分辨率。我认为@Wumpf应该将他的评论解释为答案。
@ap_完成。随时编辑:)
您要改善维基百科上的文章吗?我在Computer Graphics SE中经常看到像您这样的问题。也许值得考虑? :)