我可以了解三者之间的区别吗?一个很好的例子也会加起来。

#1 楼

世界坐标是您游戏世界的基石。最终,直接或通过节点层次结构在世界空间中指定所有对象的3D位置。地面,建筑物,树木和其他固定物体将固定在世界空间中。游戏性计算和物理将在世界空间中进行(如果世界很大,则可能出于精确目的而进行一些本地重新定位)。通常将世界坐标轴表示为罗盘方向,例如X =东,Y =北,Z =上。

局部坐标附加到对象上(有一个局部坐标空间用于每个对象)。轴可能表示对对象有意义的东西,例如对于具有固有方向的对象(例如角色,车辆,枪支等),X =向前,Y =左侧,Z =向上。随着物体的移动,局部空间和世界空间之间的关系(由转换矩阵表示)将发生变化。例如,如果您将汽车上下翻转,则其局部Z轴(在局部空间中为“向上”)现在将指向世界空间中的“向下”。

相机或视图坐标是附加到的局部坐标相机。这仍然是3D坐标系,没有任何投影或任何东西,但轴对齐以匹配屏幕方向:通常X =向右,Y =向上,Z =向后。从世界到视图空间的转换通常称为“视图矩阵”。剪辑空间坐标是顶点着色器输出的坐标:已应用投影矩阵的坐标,但不是观点鸿沟。这是一个4D(同质)空间。 (世界,局部和视图空间是3D且隐含w =1。)之所以这样命名,是因为这是视图视锥截断和剔除(至少在概念上)发生的空间。

归一化的设备坐标,通常也称为“屏幕空间”,尽管该术语有点松散,但它们是将透视图划分应用于剪辑空间坐标后所得到的。 3D坐标现在代表屏幕上点的2D位置,其中X和Y在[-1,1]中,以及深度在深度缓冲区范围内,Z在[0,1]中对于D3D或[-1,1 OpenGL。轴方向为X =右,Y =向上,Z可以向前或向后,具体取决于深度缓冲区配置。

设备坐标是渲染目标中的2D像素坐标,其中(0, 0)在左上角,X =右,Y =向下。通过将视口变换应用于规范化的设备坐标,可以得出设备坐标。视口控制图像在渲染目标中显示的像素偏移和分辨率。需要注意的一件事是设备坐标不是整数值。它们不是像素索引。它们是一个连续的2D坐标系,使用像素大小的单位,但是分数(子像素)值是完全有效的。在此坐标系中,像素中心位于0.5个偏移处(例如0.5、1.5、2.5等)。

评论


$ \ begingroup $
好答案!您是否想澄清[答案]这些术语的使用范围,-它们是否在行业中使用,在大多数书籍中它们具有相同的含义吗?我认为这会有所帮助(至少对我而言)。
$ \ endgroup $
–湖光山色
20 Nov 13'14:58