节省时间,网上偷的一张图看懂,看不懂再往下看吧 节省时间,网上偷的一张图看懂,看不懂再往下看吧 节省时间,网上偷的一张图看懂,看不懂再往下看吧
Arctangent2
和 Arctangent
仅一字之差,但其用法却截然不同,我们好像学了三角函数,知道arc
和arctan
但是却好像不太能理解arctangent2是干嘛的??
下面简单回顾一下
1. 正切(Tan)
在三角函数中中,正切 (Tangent, tan
)函数是直角三角形中对边与邻边的比值。
tan(x) 输入和输出都是一维的,它的输出在数值上跟直角三角形中的对边与邻边的长度之比相等。
t a n ( θ ) = 对边 邻边 {tan}(\theta) = \frac{\text{对边}}{\text{邻边}} tan(θ)=邻边对边
2. 反正切(Arctangent)
反正切 (Arctangent, atan
)是正切函数的逆运算,用于从一个正切值计算出相应的角度值。输入通常是一个已知的比值(对边/邻边),而输出的是相应的角度值。输出和输入都是一维的
3. 反正切2(Arctangent2)
反正切2 (Arctangent2, atan2
)是一种更高级的反正切运算。与 Arctangent
不同,Arctangent2
接受两个参数,分别代表三角形的对边和邻边。通过这种方式,Arctangent2
可以区分出点相对于原点的位置,从而计算出准确的角度值(包括象限信息)。
在材质编辑器中,Arctangent2
节点需要两个输入值(通常是 X 和 Y 分量),它会输出一个范围在 -π
到 π
之间的角度。这种实现方式有效解决了 Arctangent
节点无法判断象限的缺陷。例如,给出坐标 (1, 1) 和 (1, -1),Arctangent
会得出相同的结果,但 Arctangent2
能够识别出它们分别位于第一和第四象限,因此能输出45度和-45度。
在UE材质编辑器中试验一下:
提示:
-
想要像上图中这样预览窗口不是显示mesh而是整块屏幕作为一个四边形给你预览,只需要在材质编辑器左下角细节面板中,把材质域修改为后期处理 即可。
-
UE中,屏幕空间的UV坐标的U坐标跟笛卡尔坐标系方向一致,也就是向右为正,但是V坐标是向下为正,上面的材质中,我对采样到的UV坐标进行了重新映射,坐标范围变成
(-1,1)
,原点位于屏幕正中间,并对V额外的反向了一下,因此传入arctangent2
节点的坐标值跟笛卡尔坐标一致