观察坐标系( View Coordinate System)在正投影视图中是屏幕坐标系,而在非正投影视图中,观察坐标系可切换到世界坐标系。这是因为用户通常会从某个角度来观察场景。1
简介观察坐标系,为在不同的距离和角度上观察物体而建立的便于研究物体的坐标系。
观察坐标系又称目坐标系( Eye Coordinates),简称EC,该坐标系是一个可定义在用户坐标系中任何方向、任何地方的三维直角辅助坐标系。在观察坐标系中通常要定义一个垂直于该坐标系Z轴的平面,称观察平面。该坐标系主要用于指定裁剪空间,确定三维几何形体哪一部分需要在屏幕上输出;此外,通过观察平面可以把世界坐标系中三维几何形体需输岀部分的坐标值转换为规格化坐标系中的坐标值。2
在显示三维物体的过程中,不仅要定义一个观察平面和一个投影方向(对于平行投影)或一个投影中心(中心投影),还要对物体进行三维剪取,只留下观察者感兴趣的部分,并将这部分立体的视图在输出设备上显示出来,这就需要在世界坐标系中指定一个观察空间,将这个观察空间以外的物体去掉,只对观察空间内部的物体作投影变换并最终显示出来。3
将三维物体放进世界坐标系后,只是在内存空间里表示其空间信息,为能观察到这些物体,我们还需要设置虚拟摄像机的信息。正如在现实世界中一样,在世界上存在的物体中,我们只能看到眼前的物体。在游戏中,三维场景中也摆放了各种各样的三维物体,而虚拟摄像机就扮演了人眼这个角色,它可以让位于其视域体内的物体显示在游戏画面中,在世界坐标系中安置好虚拟摄像机后,通过取景变换,世界坐标系中的三维物体就位于观察坐标系中了。4
用途观察坐标系是右手坐标系。它有两个主要用途:一是指定裁剪空间;二是通过定义投影平面,把三维形体的用户坐标变换成规格化设备坐标。5
应用与物理设备无关,用于设置观察窗口,观察和描述用户感兴趣的区域内的部分对象,其取值范围由用户确定。
操作方式采用左手直角坐标系,可在用户坐标系中的任何位置、任何方向定义,其中有一个坐标轴与观察方向同向,并与观察平面垂直。6
由于图形对象在观察平面的投影与在输出设备上显示的图形保持一致,因此,在建立观察坐标系和观察平面后,可通过改变视点的位置或改变方向使用户可在不同的距离和角度观察三维图形对象,这是生成各种观察效果的主要途径,也是在三维场景中进行漫游的理论基础。
(1)保持视点位置不变,通过改变观察方向来得到多种观察效果。如连续沿逆时针或顺时针方向改变观察方向,可以获得站在原地环视周围场景的效果;又如隔一定角度取得若干场景的画面并将其拼在一起显示,可得到广角镜头拍摄的效果。
(2)保持视点的方向不变,而改变视点位置也可获得多种观察效果。如在观察方向上前后移动视点,可获得放大或缩小观察对象的效果;又如在与视点垂直方向上移动视点,则可模拟运动的移镜效果。
(3)视点和观察方向同时改变,可取得在场景中漫游的视觉效果。7
本词条内容贡献者为:
苏智勇 - 副教授 - 南京理工大学自动化学院