码迷,mamicode.com
首页 > 其他好文 > 详细

UE4材质中的点乘DotProduct

时间:2018-09-04 19:05:27      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:节点   ali   数学公式   角色   相同   cto   title   解释   输入   

向量点乘的定义

如果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是为了让变化更明显。


原文地址:原文地址

本文首发于翰者学堂

UE4材质中的点乘DotProduct

标签:节点   ali   数学公式   角色   相同   cto   title   解释   输入   

原文地址:https://www.cnblogs.com/henzhe/p/9586141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!