Umrabbit
文章7
标签8
分类3
UE中ReflectVector结点详解

UE中ReflectVector结点详解

一、结点含义

ReflectVector:输入入射向量和法线向量,通过该结点运算,可以输出反射方向向量

二、数学原理

在了解结点连接方式的背后,我们首先需要知道其数学原理

如图所示,已知入射向量V、法线n,求出射向量VR,其中,出射向量VR与入射向量V之间,大小相等,且与法线n之间的夹角均为θ

由于向量的平移不变性(向量平移后大小和方向都不变),我们可以将出射向量VR平移,如下图所示:

由于VR与V的大小相等,所以此时构成了一个等腰三角形

从V向n作垂线,长度为|VP|,其为V向n投影的长度:|VP|=|V|cosθ

|VP|再乘以法线方向,就得到了V在n方向上的投影:VP=n|V|cosθ

又由于其是等腰三角形,V向其边作垂线,得到的是其边长的一半

那么如图所示,粉色向量可以由2VP来表示

那么反射向量VR可以用以下公式表示:VR=V-2VP

三、内部连线

双击打开结点,即可见其内部连线方式,ReflectVector结点内部连线如下:

运算过程如图所示:

注:由于UE中的法向量都是单位向量,所以其模长为1

本文作者:Umrabbit
本文链接:https://umrabbit.github.io/2022/11/18/ReflectVector/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×