编辑: 迷音桑 | 2019-07-06 |
1 1.
1 1.2
2 目录 Introduction 第1章 3D数学基础 1.1 坐标系 1.2 向量 第2章 Unity基础 Unity开发基础
2 My Awesome Book This file file serves as your book's preface, a great place to describe your book's content and idea 本书特点 简明,无废话. 系列书籍 C#简明教程 UGUI简明教程 Shader简明教程 Unity开发基础
3 Introduction Unity开发基础
4 第1章 3D数学基础 坐标系 数 为了度量事物的多少或者大小的程度,我们需要用到1,-1,0,2.3等数字.这些数字又可以 分为整数和小数以及正数、负数和0. 在游戏开发中小数用的非常多.在数学上小数和分数是一样的,比如1/2=0.5,而1/3 = 0.33333333循环.计算机的内存是有限的,不可能存储小数点后无数个3.所以计算机中1/3 的结果是0.33333333,这样就出现了精度损失.如果我们将1/3 * 3数学上应该等于1,而计 算机运算的结果是0.99999999.很显然计算机在做小数运算时容易出现精度损失.所以在游 戏开发时到达了指定地点,不是 与目标间的距离 ==
0 而是 与目标间的距离 < 0.5 // 小于一个很小的值 数轴 在游戏开发中,我们需要研究一些空间问题.这样就需要将这些数字转化图形几何学来研 究.于是我们引入了数轴.在数轴中我们人为的规定一个长度为单位长度,代表大小为1的数 值.并人为的确定一个点为原点,也就是数值0所对应的位置.这样每个数字都可以对应数轴 上一个位置的点. 数轴 坐标系 二维平面坐标系 用一根数轴我们能确定一个数据的大小,比如温度的高低.如果我们想了解在一天中的每个 时间点的温度变化,这就需要两个维度的变量来说明,一个是温度,一个是时间.当然就要 用到两根数轴,把这两根数轴在原点位置垂直相交就组成了一个二维平面坐标系. 二维平面坐标系 Unity开发基础
5 1.1 坐标系 三维空间坐标 在3D游戏中,空间中的一个位置需要用(x, y, z)3个数值来描述,这时需要在二维平面坐标系 再引入一根数轴,这就是三维空间坐标系. 三维空间坐标 三维空间坐标系我们有两种画法,这两种三维空间坐标区别很大,分别叫做左手坐标系与右 手坐标系.在一个系统中,我们都统一用一种坐标系,比如Unity3D中我们用的是左手坐标 系,而3DMax中用的是右手坐标系. 左手坐标系与右手坐标系 常用的坐标系 坐标系的原点是人为选定的,那不同的人或者在不同的情况下,会选择不同的点做为坐标系 的原点. 在不同的坐标系中描述同一个点的位置用的数值是不一样的. 为了编程的方便,我们在游戏开发中常常会用到这么几种坐标系: 世界坐标系: 以一个公认的位置和方向建立的坐标系. 世界坐标系建立了描述其他坐标系所需要的参考框架.可以用它描述其他坐标系的位置. 物体坐标系: 以某个物体自身位置为原点,自身右方、上方、前方为x、y、z轴的坐标系. 每个物体都有他们独立的物体坐标系,当物体移动或改变方向时,该坐标系将也随之同步变 化. 摄像机坐标系 摄像机是游戏开发中一个很重要的物体,以摄像机的位置和方向建立的物体坐标系就是摄像 机坐标系.这个坐标系就定义在屏幕的可视区域. 惯性坐标系 为了简化世界坐标系到物体坐标系的转换.以物体位置为原点,其轴平行于世界坐标系的 轴,而建立的坐标系为惯性坐标系. 坐标系间的转换 惯性坐标系到世界坐标系的转化 Unity开发基础