我很难理解,为什么从根本上说,三角形通过Gouraud阴影和那些阴影通过Phong阴影看起来不同。
根据我的理解,Gouraud阴影取三角形的顶点。它在顶点法线的帮助下计算每个顶点的颜色,并在每个像素的三角形上插值该颜色。Phong阴影计算每个顶点的法线,并在每个像素的三角形上插值法线,并使用插值的法线对所述像素进行阴影。
两者都涉及到插值。为什么插值的法线会产生更真实的结果,而直接插值的颜色却不能呢?是什么使它的颜色插值不太准确?
在遮风罩下,难道插值不只是一种类似于插值法线和在每一点找到颜色的颜色吗?如果不是,直觉地说,这两者有何不同呢?
发布于 2021-07-22 16:40:56
视角一直在变化。在戈洛阴影中,每个顶点进行一次颜色采样。
但是,在phong阴影中,每个像素的视角与法线之间的角度是计算的。
那怎么会不一样。很简单,因为角度的变化,以及它的余弦,不是一个线性变化的量。(当我到达电脑时,我会画一幅画)
想象一个大平面的漫射面。然后,你看到的漫射阴影是基于法线和归一化矢量到光的点乘积。现在想象一下光在飞机的中间。如果你只在飞机的拐角处有一些垂直物体,你就会得到一个均匀的强度。如果你不分的话。如果你细分为像素,你得到phong阴影和由于点加不是线性,一个不同的答案。

博士
非线性函数不能很好地用线性函数逼近。
发布于 2021-07-21 14:32:29
RGB“颜色”包含色度(颜色)和亮度(亮度),法向量包含方向和大小。
Gouraud阴影近似于颜色梯度。
Phong阴影近似于表面梯度。
想象一个大的三角形,在中心有一个小的高光点,所有的三个顶点位置都有指向高光点的法线矢量,所以只有微弱的光线。
内插的颜色将完全失去突出显示,并只给出那些在3个顶点位置之间的值。
内插法向量将强制改变矢量的方向,使高光可见。
此外,法向量的插值改变了它们的长度,可以在碎片阴影中重新计算,以帮助改进近似。但是,我们几乎没有什么办法来帮助纠正插值的颜色。
编辑:为什么两个向量之间的插值会改变长度。对于插值向量,我们使用公式N_c = N_a\alpha+N_b(1-\alpha),其中N_a和N_b是被插值的两个向量。这包括两个向量的和。添加向量可以被认为是将它们端到端地放置,因此两个向量的和导致了第三个向量,其长度由两个向量之间的角度所决定。

正如西蒙f在评论中指出的那样,我对马赫显带的描述措辞拙劣,具有误导性。见下面的评论。这是一个效果在行动的图像。

https://computergraphics.stackexchange.com/questions/11065
复制相似问题