UnityShader学习笔记_向量

  • 向量概念

    • 向量的组合

      1. 向量可以解释为基向量的两个方向缩放的线性组合,利用三角形法则可以构造出向量。
      2. 什么是线性组合,就是通过向量的乘法和向量的加法,对基向量进行缩放或扩展。
        在这里插入图片描述
    • 书写方式
      不同的表现法只是形式上的不同,意思都相同。

      1. 行向量为[1,2,3]
      2. 列向量:在这里插入图片描述
    • 向量的含义

      1. 与标量不同,向量表示一段位移,只有大小与方向,跟位置无关,例如速度,而标量表示一段长度。

      2. 可以表示为一系列的位移,例如向量P[4,5,7] 表示向X轴平移4单位,向Y轴平移5单位,向Z轴平移7单位,顺序可不同,结果都相同。

    • 点与向量的关系

      1. 表示位置,不表示方向与大小,例如P[4,5,7] ,可以看做一个点,在X轴为4,Y轴为5,Z轴为7的地方。
      2. 区分一个点与向量,点与向量都是相对的,例如点P相对于原点在[4,5,7]的位置,把P点看做向量,表示从原点往哪个方向偏移多少,例如线段v,点与向量是两种不同的概念,一个表示位置,一个表示偏移。
      3. 一点都能用从原点开始的向量来表达,例如A的位置在原点,点P在[4,5,7],A点到P点的偏移向量v[4,5,7],如果把A点加上向量P,那么就是把A点偏移[4,5,7],某情况很适用:把角色A向某个方向偏移多少,使角色移动到那个位置上。
        在这里插入图片描述
  • 向量的几何运算

    • 向量的模

      1. 向量既有大小,也有方向,大小就是模,一个向量P(Vx,Vy,Vz)的模(长度)的计算公式,如下:在这里插入图片描述
      2. 例如计算向量[5,-4,7]的模,如下在这里插入图片描述
    • 零向量与负向量

      1. 零向量是唯一大小为零的向量,也是唯一没有方向的向量,可以表示为没有位移没有方向的向量。
      2. 负向量表示与原向量方向相反,大小相同的向量,只需在原向量加上符号-,表示形式为在这里插入图片描述
    • 向量与标量的乘法

      1. 向量可以与标量相乘,例如 2x[2,4,5] = [ 2x2,2x4,2x5]=[4,8,10]。
      2. 列向量表示法在这里插入图片描述
      3. 标量不能除以向量,向量可以除以标量。
      4. 可以通过标量作为向量的缩放因子,例如把向量P扩大2倍,或缩小2倍。
    • 单位向量

      1. 单位向量就是大小为1的向量,零向量没有单位向量。
      2. 计算公式在这里插入图片描述
      3. 例如:P向量(12,-5)的单位向量Alt
      4. 单位向量的用处很广,例如,角色向某个方向移动,不需要他的大小,大小由数量控制,求出单位向量是必要的。
    • 向量的加减法

    1. 列向量为例在这里插入图片描述
    2. 三角形法则在这里插入图片描述
    • 基于两点计算向量

      1. 一个点到另一个点的的向量,原理是使用了三角形法则和向量的减法,例如点A(1,2,3)与点B(2,2,2),计算A点到B点的向量,那么B-A =C,C等于(1,0,-1)为AB向量,也就是B点相对于A点的偏移量。在这里插入图片描述
    • 向量点乘计算

      1. 点乘求出的值为标量,点乘一般来判断两个向量的相交情况,也用在向某个向量或者平面上投影。
      2. 点乘的公式,例如ab向量在这里插入图片描述
        在这里插入图片描述
      3. 另一种几何公式为在这里插入图片描述
      4. 点乘的结果越大,两个向量越相似在这里插入图片描述
      5. 根据点乘的结果来判断两个向量的方向
        在这里插入图片描述
      6. 零向量与任意向量垂直。
    • 向量的叉乘

      1. 向量的叉乘是一个向量,垂直于叉乘的两个向量。

      2. 公式表示在这里插入图片描述
        在这里插入图片描述

      3. 另一种几何表示在这里插入图片描述

      4. 标量与向量不能相乘。

      5. 叉乘求出的结果为向量,垂直于两相交向量所形成的平面。在这里插入图片描述

      6. 向量叉乘等于以ab为邻边求出的平行四边形面积(四边形面积),可以通过移动某一个角到另一个位置构成四边形,并根据三角形法则求出高度。在这里插入图片描述在这里插入图片描述
        在这里插入图片描述

      7. 确定叉乘后的向量的方向。在这里插入图片描述

        • 在左手坐标系中,a与b呈顺时针,那么axb叉乘向量指向屏幕,呈逆时针,axb叉乘向量指向远离屏幕的方向。
        • 在右手坐标系中,a与b呈顺时针,那么axb叉乘向量远离屏幕,呈逆时针,axb叉乘向量指向指向屏幕方向。
    • 向量的投影

      在这里插入图片描述

      1. V可以分解成, V ∣ ∣ V_{||} V与V⊥, V ∣ ∣ V_{||} V与n平行,并满足V=V⊥+| V ∣ ∣ V_{||} V| ,那么 V ∣ ∣ V_{||} V就是V在n上的投影。
      2. 计算 V ∣ ∣ V_{||} V的表达式, V ∣ ∣ V_{||} V的单位向量与n的单位向量相等,可得在这里插入图片描述
      3. | V ∣ ∣ V_{||} V| 不知道,可以根据三角函数,求得在这里插入图片描述
      4. 计算把 V ∣ ∣ V_{||} V代入公式
      5. 在这里插入图片描述在这里插入图片描述
      6. 如果n的单位向量,那么n可以忽略。
      7. 计算V⊥,可以根据 V=V⊥+| V ∣ ∣ V_{||} V| 求得在这里插入图片描述
    • 相关资料

      1. B站视频,https://www.bilibili.com/video/BV1Ys411k7yQ/?spm_id_from=333.788.videocard.1
      2. 3D.Math.Primer.for.Graphics.and.Game.Development
      3. UnityShader入门精要
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晨守星

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

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

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

打赏作者

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

抵扣说明:

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

余额充值