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


原文地址:原文地址
本文首发于翰者学堂

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值