Unity 3D数学\图形学基础-游戏开发(向量)

  • 向量运算的几何意义
    • 标量与向量的计算
    • 向量的模长
    • 标准化向量 normalize
    • 0向量
    • 向量与向量的加减法
    • 两点间距离公式(向量间距离)
    • 点积,点乘,内积(dot)
    • 向量夹角与点积
    • 投影与点积
    • 向量的叉积 (外积)
      • 二重向量叉乘化简公式
  • 两向量角平分向量

向量运算的几何意义

标量与向量的计算

● ·几何解释:向量乘以标量的效果是以标量的大小缩放向量的长度,负值则方向相反。

向量的模长

向量的长度。结果为一个标量。

标准化向量 normalize

将一个普通的向量进行标准化的到的。
标准化向量只表示了向量的方向,剔除了向量的大小。(比如法线)

计算:

标准化向量 = 向量 / 模长

且有:a // b (平行), 则 a / ||a|| = b / ||b||,a,b !=0

0向量

各个分量都是0的向量,
表示没有方向,大小为0的向量。

向量与向量的加减法

(a, b) + (c, d) = (a + c, b + d)

两点间距离公式(向量间距离)

若:b - a = c
||b - a|| = || c ||
即:b到a的距离等于c的模长。

点积,点乘,内积(dot)

点乘的结果为一个标量。
(a1, a2) * (b1, b2) = (a1 * b1 + a2 * b2)
满足:交换律 a * b = b * a
不满足: a * b * c != a * c * b ,
类似的: U * V * U != U * U * V = U^2 * V
可发现:两向量dot结果为标量,3向量dot结果为矢量…

向量夹角与点积

点乘的结果描述了两个向量的相似程度(方向接近程度),点乘的夹角越小,两个向量越接近。
a * b = ||a|| * ||b|| * cosX, X为向量夹角

可得向量间夹角为:cosX = (a * b) / (||a|| * ||b||)
即:cosX = norma(a) * norma(b), norma(a)表示a的标准化向量

应用:
兰伯特光照模型,通过光照的反方向和模型法线方向夹角计算物体表面亮度。得出的值表示 模型迎光的夹角

投影与点积

向量V在任意向量n上的投影向量V//:
只要不是0向量就可投影,投影不关心n的大小(是否是单位向量,只关心方向)
可以理解为V在 n这个向量方向的投影。

推导过程:

向量的叉积 (外积)

向量叉乘是分量交叉然后相乘。仅用于在3D空间中的向量。
运算:

几何意义:

  1. 叉乘得到的向量垂直于原来的两个向量。垂直方向满足右手定则。
  2. 外积可以表示以a、b为边的平行四边形的面积。

a × b = ||a||*||b|| * sinX
方向根据右手定则:
若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。

运算规律:
● 满足加法的分配律
a x (b + c) = a x b + a x c
● 不满足交换律,反交换律
a x b = - (b x a)
● 满足雅可比恒等式
a x (b x c) + b x (c x a) + c x (a x b) = 0

参考:

二重向量叉乘化简公式

3个向量叉乘简化为如下:
(a x b) x c = b * (a * c) - a * (b * c)
a x (b x c) = b * (a * c) - c * (a * b)

证明参考:

两向量角平分向量

Unity 3D数学\图形学基础-游戏开发(向量)相关推荐

  1. Unity游戏开发——向量运算(点乘和叉乘)

    Unity游戏开发--向量运算(点乘和叉乘) 0.前言 在游戏开发中,确定目标得方向,朝向,夹角等相关数据需要用到向量的计算,其中最常用到的就时点乘和叉乘. 因为我们主要研究的是游戏开发中的3D世界向 ...

  2. 基于Unity的多人协作游戏开发

    基于Unity的多人协作游戏开发–第一次迭代 小组成立与大型应用软件设计第一周课堂,小组由一共5名成员组成,由王虎林担任组长,组员分别是:陈志健 李子钊 杨捷 林博韬.下面将是我们第一次迭代的主要历程 ...

  3. 视频教程 | 3D版切水果游戏开发实战5:加载美术资源

    在我们的前4期开发实战中,我们写代码使用的切割物体都是Egret Pro自带的实体,如:球体.椎体.立方体等,今天我们就来讲讲如何将游戏场景中的切割对象换成美术提供的水果和切刀素材. 核心内容比较简单 ...

  4. 3d数学基础:图形和游戏开发(第2版)_游戏引擎编程需要哪些基本数学知识?

    现今,想要从头写一个功能强大的3D引擎,个人的力量恐怕难以胜任,即使能力足够,时间恐怕也不允许.在这个美好的开源时代,你只需具备修改各种引擎的能力便足以满足开发游戏的各项需求.现代游戏引擎的复杂级别已 ...

  5. Unity 3D数学 — 向量运算

    向量(又称适量)是游戏开发中非常重要的概念.是用于描述具有方向和大小两个属性的物理量. 在数学里有大小和方向的量就是向量.在几何中,向量可以用一段有方向的线段表示. 1.向量的运算 (1)加减法:向量 ...

  6. [Unity游戏开发]向量在游戏开发中的应用(一)

    本文已同步发表在博客园:http://www.cnblogs.com/davidsheh/p/5246213.html ---------------------------------------- ...

  7. 两个向量的点乘和叉乘怎么算_Unity游戏开发——向量运算(点乘和叉乘)

    0.前言 在游戏开发中,确定目标的方位,朝向,夹角等相关数据需要用到向量间的计算,其中最常用到的就是点乘和叉乘. 说实话,因为向量的运算在平时开发中不是经常使用,我也总弄混这两种运算的含义,所以这次好 ...

  8. 【Unity】1.3 Unity3D游戏开发学习路线

    一.基本思路 第1步--了解编辑器 首先了解unity3d的菜单,视图界面.这些是最基本的基础,可以像学word操作一样,大致能明白有几个菜单,几个基本的视图,各自起什么作用就可以了.当然还要了解人物 ...

  9. 3d数学基础图形与游戏开发第二版_游戏开发完整学习路线,都在这里了

    在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的. 平台与编程语言选 ...

最新文章

  1. Spring 4 + Reactor Integration Example--转
  2. Intel Realsense pyrealsense2 points对象
  3. 必知必会的RocketMQ消息类型
  4. 戴尔服务器板载系统raid管理,戴尔PowerEdge RAID控制卡使用示例(PERC H710P为例)
  5. sap 导出系统所有的单位_导出SAP系统表结构及数据供HANA使用
  6. web前端的易错点和冷知识,新人必看!
  7. 映射网络驱动器 net use
  8. linux下组管理命令详解
  9. EFR32FG1开发教程1--点亮LED
  10. 自制VBS自动刷屏器,再也不怕刷屏刷不过别人了
  11. 一分钟学会神经网络3——图解深度学习原理(有这篇博客就够了)
  12. P4556 雨天的尾巴 线段树合并
  13. 猫推荐算法大赛Top 9团队
  14. 3D模型轻量化处理教程【Blender】
  15. 重装系统:cdboot:couldn't find ntldr
  16. 记录druid整合springboot+logback配置打印sql日志
  17. 大数据学习之路 JUC篇
  18. 《那一天,那一月,那一年,那一世》-------仓央嘉措
  19. v2视频服务器退出系统怎么启动,v2视频会议系统操作手册.doc
  20. 天猫店铺如何设计详情页?

热门文章

  1. L11 盛最多水的容器
  2. python大鱼吃小鱼_GitHub - freex/OzgGameEatFish: OzgGame - 大鱼吃小鱼,cocos2d-x-3.6
  3. 为什么有些 985 的本科学生即使在大学里混得很水,在找工作时学历却那么管用?...
  4. vue项目区分打开的是pc端还是移动端
  5. windows 命令行打印
  6. 结合实际代码谈常见串行通讯方式—USART、SPI以及IIC
  7. 建立一个Person类和学生类
  8. 每天和琦琦学点新知识_大数据_数仓分析
  9. ASP.NET 实现人民币大写转换函数
  10. java获取微信小程序openid