Home Forums Games202-高质量实时渲染 为什么E_avg是E(μ)的cos加权平均,而不是立体角积分?

Tagged: 

Viewing 2 reply threads
  • Author
    Posts
    • #11242 Score: 0
      Aidan
      Participant

      Kulla Conty算法里面的E_avg,表示一个点反射出来的能量。为什么E_avg是E(μ)的cos加权平均,而不是E(μ)对立体角进行积分呢?
      cos加权平均结果是2∫E(μ)μdμ,如果是对E(μ)进行立体角积分的话,结果是2π∫E(μ)dμ,会比cos加权平均要大很多。
      那么为什么这样做呢,不就应该算出所有方向上反射出的能量么。为什么cos越小,也就是视线越接近法线,权重会越大呢?

    • #11258 Score: 0
      hannoch
      Participant

      这部分我的mu用的sin,就是按照课件上说的
      而且我还有个疑惑,这边的Eavg是不是应该不需要采样呢,因此Emu*mu的积分本来就是对所有出射方向做积分了,而Emu已经计算好了,采样也只是要采样入射光,和这个积分无关才对……

    • #11284 Score: 0
      Aidan
      Participant

      更正一下问题:
      E_avg表示对于一条入射光,经过单次反射,出来的能量。为什么E_avg是E(μ)的cos加权平均,而不是E(θ,φ)在整个半球的平均?具体来说是两个问题:
      1.为什么用E(μ),而不是用E(θ,φ)进行加权平均,毕竟E(θ,φ)才真正表示“一个”方向,而E(μ)表示的是某个θ下的E(θ,φ)。
      2. 为什么不是简单平均,而是cos加权平均?
      我觉得原因有可能是,这个公式认为 θ越小时,入射光分布的概率越大;θ越大时(grazing angle),入射光分布的概率越小。有大佬可以解释下原因吗?

Viewing 2 reply threads
  • You must be logged in to reply to this topic.