3D游戏开发中的常用基础数学概念

  零基础了解3D游戏开发,是一件不容易的事。我们将分几部分为大家细化3D游戏开发的每个环节,希望对你了解3D游戏开发有些许帮助。

博思3D

  在之前的10个小节中,我们已经可以对3D游戏和图形开发,有了一个基础的概念性认知。最后简单介绍一些3D数学的基础常用概念。例如:向量、 矩阵、 欧拉角、四元数、射线、包围体。

  1、向量

  既有大小又有方向的量称之为向量(物理学叫矢量),向量也有维度,例如,2维、3维、4维。与向量对应的是数量(物理学叫标量),数量是只有大小没有方向的量。有的文章把数量理解为1维向量,而我们通常所指的向量是2维或以上维度,不包括1维。

  在LayaAir引擎中,针对2维、3维、4维向量的封装方法示例分别为:Vector2(1, 2) 、Vector3(1, 1, 3)、Vector4(1, 2, 3, 0.5) 。然而LayaAir引擎封装的Vector方法,不仅可以作为向量的使用,还可以用于顶点坐标位置,或者表达颜色的时候使用。比如原点坐标Vector3(0, 0, 0),颜色值Vector3 (0.6, 0.6, 0.6) 、Vector4(0.9, 0.5, 0.1, 1)。

  提到向量,再顺带理解一下分量,我们把一个向量分解成几个方向的向量之和,那这些分解的向量就叫做该向量的分量(也称为向量投影)。例如,某个向量坐标u为(5,10),那分解的向量坐标w1(5,0)和w2(0,10)都是向量坐标u的分量。在引擎中,我们也可以把向量元素视为分量,比如 Vector3( 0.6, 0.6, 0.5) ,有3个分量,其中的0.5称为这个向量的第3个分量。

  2、 矩阵

  在线性代数中,矩阵是以行和列形式组织的矩形数字块。如果把向量定义为1维数组,那么矩阵就是2维数组。这里不要把2维理解为2D,是指来自数组的行与列形成2维。以数组的角度去理解,那向量是数量的数组,矩阵则是向量的数组。

  矩阵是在显卡图形API中直接用于描述方位的形式,可立即进行向量的旋转。LayaAir引擎提供了3×3的旋转矩阵Matrix3x3() 和4×4的变换矩阵Matrix4x4(),变换矩阵可用于平移、旋转、缩放计算。

  3、欧拉角、四元数

  欧拉角与四元数都是用于旋转计算的数学方法,刚刚介绍的矩阵明明也可以用于旋转计算,为什么要介绍这两种呢?相对而言,3×3旋转矩阵需要9个数,欧拉角只需3个数(3维向量),四元数只需要4个数(4维向量),明显轻量了很多。那是不是欧拉角最优,也不尽然。尽管欧拉角内存占用小,也更加易用,但欧拉角也有他特有的问题,那就是可能会导致万向节死锁。而四元数则相对于矩阵内存占用小,也不受万向节死锁的困扰,而且在平滑插值方面只能是四元数才能完成。

  4、射线

  射线是只有一个端点无限延长形成的直的线,在LayaAir引擎中的射线 Ray是一个数据对象,拥有起点与发射方向两个属性。常用于基础的碰撞检测,也可以用于鼠标拾取。

  5、包围体

  包围体用于可见检测计算,基本思想是体积稍大且结构简单的包围体来替代结构复杂的被包围体,当进行检测的时候,达到提高检测效率的作用。比如,一旦检测到包围体被遮挡不可见,那无论包围体内是什么样的模型,那全部不可见。LayaAir引擎中提供了盒状包围体( 包围盒 )与球状包围体(包围球)。

博思3D

  以上就是一些零基础学习3D游戏开发,需要了解的基本情况。如果感兴趣的话,可以来上海博思游戏学校,了解专门的3D游戏开发培养计划。

报名试听

咨询热线

400-720-6969

咨询时间

10:00-23:00

上海博思堂职业技能培训学校  版权所有 沪ICP备11046010号-3  咨询热线:400-720-6969  上海地址:上海市宝山区沪太路2695号A29栋
上海游戏培训 | 游戏美术 | 游戏学校 | 手机游戏开发 | unity3d培训学校 | 游戏原画 | 3d美术 | 3dmax | 动漫绘画 | 游戏策划 | 网站地图

免费领取课程资料