Graphics 镜面反射问题

Graphics 镜面反射问题,graphics,visualization,computer-vision,Graphics,Visualization,Computer Vision,有人知道为什么镜面反射被定义为 反射=2(正常光)正常光 其中法线是平面的法线 光是来自光源的标准化矢量?它可能是此处描述的一般反射的结果: ) 您可能需要了解一点向量几何或线性代数来理解原因。要反映向量,您需要反转位于特定轴上的向量分量。例如,要从x轴反射向量,可以只翻转y分量的符号。另一种方法是将y分量乘以因子-1。实现这一目标的另一种方法是将y分量本身减去两倍。最后一个变量是您所在站点的公式中使用的变量 我们想从方向向量中减去曲面法线的倍数。(Normal.Light)项提供沿法线的光向量

有人知道为什么镜面反射被定义为 反射=2(正常光)正常光 其中法线是平面的法线
光是来自光源的标准化矢量?

它可能是此处描述的一般反射的结果:

)


您可能需要了解一点向量几何或线性代数来理解原因。

要反映向量,您需要反转位于特定轴上的向量分量。例如,要从x轴反射向量,可以只翻转y分量的符号。另一种方法是将y分量乘以因子-1。实现这一目标的另一种方法是将y分量本身减去两倍。最后一个变量是您所在站点的公式中使用的变量


我们想从方向向量中减去曲面法线的倍数。(Normal.Light)项提供沿法线的光向量分量(类似于上面示例中的y分量)。然后我们需要两倍的量(因此是2),我们想要改变向量在法线方向上,所以这个数需要乘以法线。您似乎在负号附近交换了术语。

谢谢您的回复@phkahler,公式实际上在此处给出。我想应该是对的。我想我能理解你想说的话。反射的矢量是法向光。然而,我真的不明白我们需要点积正常和光的部分。为什么需要乘以2。如果你仔细阅读,他解释了这一点。点积是光向量在法线上的投影,你需要两倍于此才能得到反射向量。感谢启示=x,但我不能真正理解点积的概念是光向量在法线上的投影。。