3D图形数学基础(一)坐标系

一、常用坐标系

1. 笛卡尔坐标系

     两条垂直数轴相交于一点构成的坐标系称为2D笛卡尔坐标系,而三条数轴两两垂直并相交于一点构成的坐标系称为3D笛卡尔坐标系。对于2D笛卡尔坐标系来说,某一轴向坐标系通过翻转都可以得到其它不同轴向的坐标系,所以我们说所有的2D笛卡尔坐标系都是“等价”的。但是3D笛卡尔坐标系通过翻转等操作,仍有某个轴的反向坐标系不能得到。通过观察发现,当某两个轴的方向确定时,另外一个轴的正反两个方向分别确定了两个坐标系——左手坐标系右手坐标系
    在3D笛卡尔坐标系中,有48种不同轴向的坐标系,其中24种为左手坐标系,另外24种为右手坐标系。左手坐标系的某个轴向坐标系可以通过旋转得到另外23种轴向坐标系,所以这24种轴向坐标系是“等价”的;右手坐标系亦相同。左右手坐标系只有某个轴向相反,所以通过只翻转一个轴的正负号,可以实现简单的坐标转换。一般使用场景中,图形学常使用左手坐标系,比如UE4的世界场景坐标系;而在线代数学中使用右手坐标系。所以在数学计算时,注意区分坐标系,否则无法得到正确结果。
左右手坐标系

2. 极坐标系

在平面上取定一点O,称为极点。从O出发引一条射线Ox,称为极轴。再取定一个单位长度,通常规定角度取逆时针方向为正。这样,平面上任一点P的位置就可以用线段OP的长度ρ以及从Ox到OP的角度θ来确定,有序数对(ρ,θ)就称为P点的极坐标,记为P(ρ,θ);ρ称为P点的极径,θ称为P点的极角。
极坐标系

二、建立坐标系

1. 世界坐标系

世界坐标系是相对于整个世界建立起的坐标系,所有物体(Actor)在世界场景中都有相对于世界坐标系的绝对坐标位置,也可以描述世界场景中其他坐标系的位置。

2. 惯性坐标系

惯性坐标系是在单个物体(Actor)上建立的坐标系,它的坐标轴平行于世界坐标系。并且,惯性坐标系和下面的物体坐标系为同一个原地。因为惯性坐标系的轴平行于世界坐标系,所以我们可以通过平移惯性坐标系得到世界坐标系。
在UE4的场景中,我们把视窗的坐标系设置为“World”,此时,当我们选中物体时,显示在物体上的坐标系就是物体的惯性坐标系。
惯性坐标系

3. 物体坐标系

物体坐标系也是在单个物体(Actor)上建立的坐标系。与惯性坐标系不同的是,它坐标轴并不一定平行于世界坐标系,而是一个完全独立的坐标系。因为物体坐标系和惯性坐标系使用同一个坐标原点,所以通过旋转物体坐标系可以得到惯性坐标系。
而当我们将坐标系设置为“Local”,选中的物体则显示物体坐标系。
物体坐标系

4. 坐标系嵌套

    在世界场景中,我们建立一个世界坐标系,每个物体都有相对于世界坐标系的绝对位置。而物体上的组件在世界坐标系中也有一个绝对坐标。但是在很多应用场景中,我们很难直接计算物体组件的绝对坐标。比如,当世界场景中的人抬起胳膊时,如果同时计算胳膊和手的实时绝对坐标,事情会变得复杂。而把胳膊和手看做一个整体,并建立坐标系,我们只需要计算此坐标系在世界坐标系中的绝对坐标即可,而手相对于此坐标系的位置却是不变的,所以可以直接将此物体坐标位置加手相对此坐标的位置即可得出手在世界坐标系中的实时变化的绝对位置。而如果手也同时进行变化时,也可以直接根据此坐标系去计算也方便很多。在世界坐标系中建立物体坐标系的方法,就叫坐标系的嵌套。在物体上建立的坐标系可以看做是世界坐标系空间中的子空间或子坐标系。保存物体坐标系的信息时,需要记录两个数据,一个是物体坐标原点的绝对位置和物体坐标系的轴向。

5. 摄像机坐标系

    摄像机坐标系与2D屏幕坐标系也有很大关系。摄像机坐标系是定义在摄像机的屏幕可视区域的特殊坐标系,一般以摄像机为原点,x轴向右,z轴向前(摄像机朝向),y轴向上(摄像机上方,而不是世界坐标的上方)。它是以观察者的角度建立起来的坐标系。将物体转换到2D屏幕上是通过投影过程转换得到的,投影相关知识后面再总结补充。
摄像机坐标系和世界坐标系
投影

三、坐标转换

     上面讲了世界坐标系、惯性坐标系和物体坐标系,在实际使用中,我们经常需要进行坐标转换。我们常用的坐标系是世界坐标系和物体坐标系,而惯性坐标系是世界坐标和物体坐标转换的一个媒介坐标系。
     若已知一个组件的相对位置(即物体坐标系位置),可以通过旋转物体坐标系与惯性坐标系重合得到其在惯性坐标系中的坐标,而将惯性坐标系平移与世界坐标系重合,又可以得到其在世界坐标系的绝对坐标。所以通过一个惯性坐标系,相对坐标可以通过旋转、平移得到其绝对坐标;而绝对位置通过平移、旋转得到相对坐标。
坐标系

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3D数学基础图形与游戏开发中起着至关重要的作用。它是构建3D图形和游戏的数学原理和技术的基础,涵盖向量、矩阵、几何变换、投影等多个方面。 在图形和游戏开发中,我们需要使用向量来表示空间中的位置、方向和大小。通过向量的加法、减法和乘法,我们可以进行各种计算,如对象之间的相对位置、碰撞检测等。 矩阵是另一个基本概念,用于表示和处理几何变换,如平移、旋转和缩放。通过矩阵的乘法,我们可以将一个对象从一个坐标系转换到另一个坐标系。 几何变换是实现物体在三维空间中移动、旋转和缩放的核心技术。通过将对象的顶点坐标与变换矩阵相乘,我们可以实现各种几何变换。 投影是将3D物体映射到2D屏幕上的过程,包括透视和正交投影。通过投影矩阵,我们可以将3D坐标转化为2D坐标,并渲染到屏幕上。 在图形和游戏开发中,我们还需要了解光照、纹理、碰撞检测等相关概念和技术。例如,通过了解光照模型和纹理贴图,我们可以实现更加逼真的图像效果。碰撞检测则是实现游戏物体之间的交互和碰撞反应的重要技术。 总之,3D数学基础图形与游戏开发中是不可或缺的。它提供了实现3D图形和游戏的数学原理和技术,包括向量、矩阵、几何变换和投影等方面的知识。通过掌握这些基础知识,开发者可以更好地理解和应用相关技术,实现出更加真实和精美的3D图形和游戏作品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值