Home › Forums › Games202-高质量实时渲染 › 为什么E_avg是E(μ)的cos加权平均,而不是立体角积分? Tagged: Kulla Conty This topic has 7 replies, 5 voices, and was last updated 2 years, 1 month ago by graphicslearner. Viewing 4 reply threads Author Posts 2022年4月6日 at 下午11:50 #11242 Score: 0 AidanParticipant Kulla Conty算法里面的E_avg,表示一个点反射出来的能量。为什么E_avg是E(μ)的cos加权平均,而不是E(μ)对立体角进行积分呢? cos加权平均结果是2∫E(μ)μdμ,如果是对E(μ)进行立体角积分的话,结果是2π∫E(μ)dμ,会比cos加权平均要大很多。 那么为什么这样做呢,不就应该算出所有方向上反射出的能量么。为什么cos越小,也就是视线越接近法线,权重会越大呢? 2022年4月8日 at 下午8:53 #11258 Score: 0 hannochParticipant 这部分我的mu用的sin,就是按照课件上说的 而且我还有个疑惑,这边的Eavg是不是应该不需要采样呢,因此Emu*mu的积分本来就是对所有出射方向做积分了,而Emu已经计算好了,采样也只是要采样入射光,和这个积分无关才对…… 2022年4月12日 at 下午10:55 #11284 Score: 0 AidanParticipant 更正一下问题: E_avg表示对于一条入射光,经过单次反射,出来的能量。为什么E_avg是E(μ)的cos加权平均,而不是E(θ,φ)在整个半球的平均?具体来说是两个问题: 1.为什么用E(μ),而不是用E(θ,φ)进行加权平均,毕竟E(θ,φ)才真正表示“一个”方向,而E(μ)表示的是某个θ下的E(θ,φ)。 2. 为什么不是简单平均,而是cos加权平均? 我觉得原因有可能是,这个公式认为 θ越小时,入射光分布的概率越大;θ越大时(grazing angle),入射光分布的概率越小。有大佬可以解释下原因吗? 2022年5月30日 at 下午7:30 #11644 Score: 1 charvlParticipant Karma: 2 pts 附件 This post has received 1 vote up. Attachments:You must be logged in to view attached files. 2022年5月30日 at 下午7:32 #11646 Score: 0 charvlParticipant Karma: 2 pts 如果假设个方向的入射 Radiance 是 1,那么 E(u) 也是一个 Radiance,所以需要 cos\theta 的加权 2022年8月9日 at 下午2:49 #12140 Score: 0 graphicslearnerParticipant 那想请问一下代码中计算Eavg是+=Emu*sin*2吗 2022年6月2日 at 下午4:47 #11659 Score: 0 qwmnerbvqwmnParticipant 因为Eavg是放在brdf里,最终要用到渲染方程里的,渲染方程自带一个costheta,求avg时,越多考虑原本式子里的项,求出的avg越精确。别的项都是运行时变动的,不好预计算,但costheta是定死的,不用白不用。下边的图里是具体的说明 Attachments:You must be logged in to view attached files. 2022年6月2日 at 下午5:38 #11661 Score: 0 qwmnerbvqwmnParticipant Eavg理解错了,无视吧 Author Posts Viewing 4 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In