UE4材質中的點乘DotProduct


向量點乘的定義

如果a和b是兩個向量,那么

a·b = |a|·|b|·cos(θ)

其中θ是兩個向量的夾角,cos是余弦。(數學公式輸入好麻煩。。)

下圖說明了關系。

單位向量的點乘

在游戲中,表示方向的向量往往是單位向量。

為了簡化起見,假設a和b都是單位向量,也就是長度為1,那么:

a·b = cos(θ)

那么這個公式就簡單了。

用點乘判斷向量朝向關系

考慮到,cos(0)=1,cos(π)=-1,cos(π/2)=0,那么我們就可以用點乘來判斷兩個向量的朝向關系了。

友情提示,有些同學可能不太記得了,π就是180度的實數表示。

如果兩個向量方向完全相同,那么夾角為0,則cos(θ)為1;

如果兩個向量方向垂直,那么夾角為90度即π/2,則cos(θ)為0;

如果兩個向量方向完全相反,那么夾角為180度即π,則cos(θ)為-1;

其他情況,點乘的值介於-1~1之間。

用點乘判斷角色是否正對物體

這是給物體一個材質。

這個是材質的節點網絡。

簡單解釋一下。

CameraVector是相機的朝向。

CameraPosition是相機位置,ActorPosition是物體的位置,這兩個相減是以相機為起點、物體為終點的向量。

Normalize是歸一化,把向量變成單位向量。

Power是為了讓變化更明顯。


原文地址:原文地址

本文首發於翰者學堂


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM