Unity中Shader用到的向量的乘积


前言

Unity中Shader用到的向量的乘积


一、向量的乘法

1、点积

2、差积


二、点积(结果是一个标量)

1、数学表示法

  • a ⃗ = ( 1 , 2 ) \vec {a} = (1,2) a =(1,2)
  • b ⃗ = ( 3 , 2 ) \vec{b} = (3,2) b =(3,2)
  • a ⃗ ⋅ b ⃗ = ( x a , y b ) ⋅ ( x b , y b ) = x a ∗ x b + y a ∗ y b = 1 ∗ 3 + 2 ∗ 2 = 7 \vec{a}· \vec{b} = (x_a,y_b) · (x_b,y_b) = x_a*x_b +y_a*y_b = 1*3 + 2*2 = 7 a b =(xa,yb)(xb,yb)=xaxb+yayb=13+22=7

在这里插入图片描述

2、几何表示法

在这里插入图片描述

  • a ⃗ ⋅ b ⃗ = ∣ m ∣ ∗ ∣ b ⃗ ∣ \vec{a}·\vec{b} = \lvert m \rvert * \lvert \vec{b} \rvert a b =mb
  • ∣ m ∣ \lvert m \rvert m a ⃗ \vec{a} a b ⃗ \vec{b} b 上的投影长度
  • c o s ( θ ) = 邻边 斜边 cos(θ) = \frac{邻边}{斜边} cos(θ)=斜边邻边
  • 邻边 = c o s ( θ ) ∗ 斜边 邻边 = cos(θ) * 斜边 邻边=cos(θ)斜边
  • ∣ m ∣ = c o s ( θ ) ∗ ∣ a ⃗ ∣ \lvert m \rvert = cos(θ)*\lvert \vec{a} \rvert m=cos(θ)a
  • a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∗ ∣ b ⃗ ∣ ∗ c o s ( θ ) \vec{a}·\vec{b} = \lvert \vec{a} \rvert * \lvert \vec{b} \rvert*cos(θ) a b =a b cos(θ)

一句话概述:两向量的点积 = 一个向量在另一个向量上的投影值 * 另一个向量的模长

注意:向量的点积主要用于光照模型中


三、叉积

在这里插入图片描述

  • a ⃗ × b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ s i n ( θ ) n ⃗ \vec{a} \times \vec{b} = \lvert\vec{a} \rvert \lvert\vec{b} \rvert sin(θ)\vec{n} a ×b =a b sin(θ)n
  • n ⃗ \vec{n} n 是与 a ⃗ \vec{a} a b ⃗ \vec{b} b 垂直的单位向量

1、向量叉积的结果 与 两个相乘的向量互相垂直

2、判断结果正负方向的方法:右手法则

食指指第一个向量,中指指第二个向量,大拇指就是结果向量的方向

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠溪泽岸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值