原来大型3A游戏中还用到了这些数学知识


数学是万物本质和世界运行规律的抽象和描述 , 是对万事万物做作的量化描述 。 科学发展到今日 , 很难想象如果没有数学的世界是什么样子 。 而在游戏开发中 , 数学的重要性更是不言而喻 , 不但开发游戏引擎需要大量的数学知识 , 哪怕是游戏开发的逻辑 , 也需要有数学作为支撑 。
原来大型3A游戏中还用到了这些数学知识
本文插图
比如现在非常流行的Unity3d游戏引擎 , 在做3D游戏时 , 需要掌握立体几何的知识 , 用来计算转向 , 位置等逻辑 。 在进行数值计算时 , 如何利用数学模型让打怪升级的体验更加丝滑 。 可以说游戏开发所需要的数学知识覆盖了我们大学的所有数学课程 , 《概率论与数理统计》《线性代数》《高等数学》等等 。
6月3日的《HelloWorld公开课》 , 资深游戏开发工程师查勋老师就带你走进游戏的世界 , 让我们看看游戏开发究竟需要哪些数学知识 。
【原来大型3A游戏中还用到了这些数学知识】 游戏中最常用的就是坐标系了 , 它是万物的尺度 。 坐标系分为左手坐标系和右手坐标系 , OpenGL游戏引擎使用的是右手坐标系-笛卡尔坐标 。 而我们熟知的Windows则是用的左手坐标系 。
在iOS、Android等平台用原生SDK开发应用时使用的是标准屏幕坐标系 , 原点为屏幕左上角 , x向右为正 , y向下为正 。 游戏引擎一般使用和OpenGL坐标系一致 。 原点在左下角 , x向右为正 , y向上为正 。
如下图所示 , 极坐标系也是经常使用的一种坐标系 。 在平面上取一定点o , 称为极点 , 由o出发的一条射线ox , 称为极轴 。 再取定一个长度单位 , 通常规定角度取逆时针方向为正 。 这样 , 平面上任一点P的位置就可以用线段OP的长度ρ以及从Ox到OP的角度θ来确定 , 有序数对(ρ , θ)就称为P点的极坐标 , 记为P(ρ , θ);ρ称为P点的极径 , θ称为P点的极角 。
原来大型3A游戏中还用到了这些数学知识
本文插图
中学时学习的三角函数也是在游戏开发中必不可少的知识 , 比如OPENGL绘图的时候使用了大量的三角函数 。 这是我们不去讨论那些非常复杂的三角函数 。 只需了解下图所示最基本的正弦、余弦等概念就足矣 。
原来大型3A游戏中还用到了这些数学知识
本文插图
原来大型3A游戏中还用到了这些数学知识
本文插图
向量也被称为矢量 , 是所有3D游戏开发中最重要的基础 , 比如游戏中的物体的位置或者三角网格的顶点 。 向量还可以用来表示空间中的方向 , 掌握向量运算是3D图形程序员的基本技能 。 AndreLamothe说也曾经说过向量几何是游戏程序员最好的朋友” 。