首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Phong和渲染方程:余弦是怎么回事?

Phong和渲染方程:余弦是怎么回事?
EN

Computer Graphics用户
提问于 2018-05-07 12:32:08
回答 1查看 1.5K关注 0票数 5

为了简单起见,忽略发射和阴影,可以将渲染方程简化为:

$$L(x,\,\vec \omega) = \int_{\Omega}{f_r(x,\,\vec \omega^\素数,\,\vec \omega \,(\vec \omega^\素\cdot \vec n) \,d\vec \omega^\$$

其中,$f_r$是BRDF,$(\vec \omega^\素\cdot \vec )$是光和表面法线之间夹角的余弦。

对于Lambertian漫射的BRDF $\frac{rho}{pi}$,这很好--我们将它与余弦相乘,看到兰伯特余弦定律的作用。

对于Phong的镜面部分,通常计算像素的颜色如下:

$$I_{out} = I_{in} \,k_{specular} \,(\vec w \cdot \vec r)^\alpha$$

其中$I_{in}$是入射光,$k_{ specular }$是表面的镜面反射率,$\alpha$是Phong指数。注意,在这个方程中没有$(\vec \omega^\素\cdot \vec )$。

要使用呈现方程并得到与上面常见的Phong方程相同的像素值,我们需要编写:

$$f^{Phong}_r(x,\ \,\vec \omega^ \,\,\vec \omega) = \frac{1}{(\vec \omega^\素\cdot \vec n)} } \,k_{specular} \,(\vec w \cdot \vec r)^\alpha$

注意在$L(x,\,\vec \omega)$中消除余弦的分母中的余弦。

费边·吉森( Fabian Giesen )在他的通归一化因子的推导中说:

这是对原始Phong公式的推导,其中$R \cdot V$项不乘以$cos \theta$。如果您将Phong模型的那个版本写成一个BRDF,那么在分子中最后会有一个$cos \theta$来抵消反射方程中的$cos \theta$因子。这个分子在物理上完全是胡说八道,所以Phong模型的现代公式把它去掉了。

我不明白为什么他说的是分子,而不是分母。这是文章中的错误,还是我的误解?

什么是Phong的现代配方?什么叫取消是“完全无稽之谈”?使用归一化因子,$\frac{\α+ X}{2 \pi}$什么时候应该使用$X=1$,什么时候使用$X=2$?

这里是一个路径跟踪并行比较一个反射球,Phong指数100,$X=2$的归一化.左图像的余弦被抵消,而右边的图像包括它,明显地使边框变暗。

EN

回答 1

Computer Graphics用户

发布于 2018-05-12 13:20:58

绘制方程中的余弦项是计算到达表面的光量,而把它从渲染方程中剔除是他所说的“完全无稽之谈”,这是正确的。原来的Phong模型在渲染方程中没有余弦项,所以如果您想用适当的渲染方程来建模原始的无意义Phong,您需要通过在Phong BRDF中添加余弦分母来破解它。

票数 2
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/7590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档