快速坐标系变换及其在真实感图形中的应用

2017-09-25 09:59卫洪春
四川文理学院学报 2017年5期
关键词:图形学顺时针重合

卫洪春

(四川文理学院继续教育学院,四川达州635000)

快速坐标系变换及其在真实感图形中的应用

卫洪春

(四川文理学院继续教育学院,四川达州635000)

讨论了在计算机生成真实感图形的过程中,将世界坐标系统表示的场景转换为观察坐标系统表示的场景的三种变换方法的基本原理.虽然三种变换方式均可达到场景表达的目的,但在计算效率上不尽相同.在一般情况下经过两次变换就能实现转换更为合理,计算工作量可以减少三分之一.由于三种变换方式的实现方法各不相同,导致最终的变换结果也互不相同.

世界坐标;观察坐标;真实感图形;变换;场景

现实世界中所有物体都以三维形式存在.但三维物体在计算机中却都以二维平面形式进行显示.将物体从三维真实形式变换到二维显示需要经过一系列变换.从三维空间到二维平面的变换过程与相机拍照过程十分相似,通常需经历模型变换、观察变换、投影变换、规范化变换与裁剪及视口变换,最后在设备上进行显示.其中观察变换讨论了如何将世界坐标系中的物体变换到观察坐标系(亦称相机坐标系),从而可以用某种投影方式将物体投影变换到观察平面,实现将三维空间物体用相应的二维平面图形图像进行显示.本文讨论从世界坐标系到观察坐标系变换的几种方法,并对其变换效率进行了比较.[1-4]

1 三维场景观察与三维观察坐标系

1.1 三维场景观察

为了获得三维世界坐标系场景的二维显示,首先需建立观察用坐标系VS(亦称相机坐标系或摄影坐标系)的相关参数,该坐标系定义与照相机胶片平面对应的观察平面或投影平面的方向;然后将世界坐标系WS中的物体经过一系列变换,将WS中的这些物体转换成观察坐标系统VS中的对象;最后采用适当的投影方式,把VS中的这些对象投影到观察平面上,在输出设备上生成对象视图可以用线框图形式进行表示,也可以采用光照明技术和表面绘制技术,从而获得与现实情况非常接近的真实感图形.三维观察流水线如图1所示.[5-7]

图1 三维观察流水线

1.2 三维观察坐标系

在世界坐标系XYZ中选定一点P作为观察点(亦称为视点或相机位置),并指定观察向上向量Yv.对于三维空间的描述还需两个方向向量,一般将过P点指向世界坐标系原点的方向作为观察方向Zv,第三个向量Xv可用Yv与Zv进行叉乘得到.由Xv YvZv所得到的坐标系统就是三维观察坐标系统,如图2所示.三维观察坐标系统可以是左手系统,也可以是右手系统,在本文中选用左手坐标系.

图2 世界坐标系中建立的观察坐标系

图3 向上向量V的调整

在观察坐标系中需定义观察平面(即投影平面),用以将场景投影到该平面上进行显示.通常定义观察平面与视线方向垂直,并让观察平面通过世界坐标系的原点(也可以是过空间任意点),此时观察方向即为观察平面的法线向量N.

如前所述,仅选定观察平面法向量N还不能唯一确定观察坐标系统VS,因些尚需确定用于观察的向上向量V.因为必须有两个不平行的空间向量后才能确定一个三维空间系统.观察向上向量V的作用就是用来确定Yv轴的正向.一般情况下,向量V按这样的规则来确定,即观察向上向量V是从世界坐标系WS的原点到WS中的某个定点所形成的向量.但此时法向量N(即Zv轴方向)与向上向量V的内积通常不等于零(除非选定的WS中的定点正好位于与N垂直的方向上),说明V与N不垂直,必须将调整向量V,调整方法是:向上向量V投影到观察平面上得到投影Yv,法向量N垂直于观察平面,Yv属于观察平面,因此N与V垂直,如图3所示.从理论分析可知,V的确定可以任意选择(但V与N不能平行),但在实际应用中,一种方便的选择是使用平行于世界坐标系轴Y的方向,通常使用(0,1, 0)作为向上向量V,该向量与世界坐标系的Y轴方向平行.

2 世界坐标系变换到观察坐标系

世界坐标系与观察坐标系的变换不是唯一的,尽管如此,但都能将世界坐标系中的场景变换为观察坐标系中的场景,下面讨论从世界坐标系统变换到观察坐标系统的几种方法.[8-11]

2.1 观察坐标系变换到世界坐标系

在该变换下,世界坐标系保持不变,将观察坐标系及世界坐标系中的场景作为整体,平移后使观察坐标系的视点(观察点)与世界坐标系的原点重合.然后将观察坐标系相对于世界坐标系进行旋转变换,使观察坐标系的坐标轴分别与对应的世界坐标系的三条坐标轴重合,此时场景中各点的坐标即为观察坐标系中的坐标,具体变换过程如下:

首先将观察坐标系及场景平移至观察点(即视点)与世界坐标系的原点重合(图4).在图4(1)中,设P(0,0,1)、Q(1,0,0)、R(0,1,0)分别是观察坐标系中Xv、Yv、Zv上的单位向量点,P’是P点在XOY面上的投影,α角是PP’O面与ZOX面所形成的二面角.

(1)将观察坐标系Xv YvZv绕Z轴顺时针α角后,P点(即Zv)位于ZOX面(图4(2)).

(2)将观察坐标系Xv YvZv绕Y轴顺时针β角后,P点(即Zv)位于Z轴,此时Xv、Yv位于XOY平面上,但Xv与X、Yv与Y分别形成相同的夹角γ(图4(3)).

(4)将Xv、Yv绕Z轴逆时针γ角后,Xv、Yv、Zv分别与ZYZ向量的方向重合(图4(4)).

经过上述变换,原观察坐标系的Xv、Yv、Zv轴分别与世界坐标系的X、Y、Z轴重合,从而原世界坐标系中的各点亦变换为观察系中的各点的坐标.

图4 从观察坐标系VS到世界坐标系WS的变换

2.2 世界坐标系变换到观察坐标系

在图5(1)中,设观察坐标系的视线向量为PO,保持世界坐标系XYZ中的所有物体对象(即场景)在观察坐标系Xv YvZv中的相对位置不变,将XYZ系统及其原点O平移到Xv YvZv系统的视点P,然后经过系列旋转变换后,使世界坐标系的Z轴与观察坐标系的视线向量PO重合,即可完成从世界坐标系到观察坐标系的变换,详细变换过程如下:

(1)设空间点P(观察坐标系中的视点)位于世界坐标系XYZ中(图5(1)).

(2)将世界坐标系XYZ平移致P点,坐标轴变换为Xv、Yv、Zv(图5(2)).

(3)将Yv、Zv绕Xv逆时针旋转90o(图5 (3)),为了使场景与观察坐标系保持不变,则场景需顺时针旋转90o.

(4)将Xv、Zv绕Yv顺时针旋转α角后,Zv位于PA上,场景则逆时针旋转α角以保持其在观察坐标系中的相对位置不变,此时向量Zv位于面PAO上(图5(4)).

(5)将Yv、Zv绕Xv逆时针旋转β角后,Zv位于向量PO上,场景则顺时针旋转β角以保持其空间位置不变.此时Yv位于OBPA面上(图5 (5)).

图5 从世界坐标系XYZ到观察坐标系Xv YvZv的变换

经过上述变换后,完成将场景从世界坐标系变换至观察坐标系,然后采用合适的投影方式将场景变换到观察平面.

2.3 对2.2变换的改进

在2.2的变换中,其主要目的是保持场景与观察坐标系的相对位置不变,通过平移世界坐标系来完成,但该变换需涉及三次旋转变换.经过分析,可以只经过两次旋转变换即可实现使Z轴与视线向量PO重合,从而使计算工作量减少三分之一,如图6所示.变换过程如下:

(1)设空间点P(观察坐标系中的视点)位于世界坐标系XYZ中(图6(1)).

(2)将世界坐标系XYZ平移致P点,从而坐标轴变为Xv、Yv、Zv(图6(2)).

(3)将向量Yv、Zv绕Xv轴逆时针旋转90o+α角,则场景顺时针旋转90o+α角(图6(3)与图6(4)合并为一个变换).此时向量Zv与向量PA重合(图6(5)).

(4)经过上述变换后,由于X、Xv、Zv(PA)、PO共面,且均与Yv垂直.故绕Yv顺时针旋转β角后Zv与向量PO重合.此时Yv位于ABP面(图6).场景则逆时针旋转β角以保持其空间位置不变.

图6 世界坐标系变换到观察坐标系(两次旋转变换)

在上述三种变换过程中,虽然各种变换均能将世界坐标系中的场景变换至观察坐标系中,但由于旋转变换过程的顺序不同,所采用的向上向量不同,因而变换后的最终效果不同.在变换效率上,最后一次变换的效率最高,旋转变换的计算量可以减少三分之一.通过场景建模、光照明计算、坐标系变换、透视变换、消隐处理后,分别在上述三种变换方式下,得到的计算结果如图7(1)到图7(3)所示.[12-14]

图7 各种变换的结果比较

3 结语

在计算机生成真实感图形的过程中,涉及到模型变换、观察变换、投影变换、规范化变换与裁剪及视口变换,最后才能在设备上进行显示.其中观察变换的目的就是要把在世界坐标系中表示的场景转换为在观察坐标系中表示的场景,然后进行透视投影变换,以期达到最佳的显示效果.[15-17]本文讨论的三种变换均可达到这一目的,但前两种变换方式在计算效率上均比第三种方式低三分之一,在场景较大的情况下,采用第三种转换方式更为合理;但由于三种变换方式实现的方法各不相同,因此最终的变换结果也互不相同,但这并不影响真实感图形的生成与表现.上述分析对于加深对图形学相关理论的深入理解及开发真实感图形系统具有较好的参考价值.

[1]王汝传,黄海平,林巧民,等.计算机图形学教程[M].北京:人民邮电出版社,2014:11.

[2]苏小红,李 东,唐好选,等.计算机图形学实用教程[M].北京:人民邮电出版社,2014:32.

[3]Donald Hearn,M.Pauline Baker,Warren R.Carithers.Computer Graphics with OpenGL(4th)[M].北京:电子工业出版社,2014:22.

[4]徐长青,许志闻,郭晓新,等.计算机图形学[M].北京:机械工业出版社,2013:30.

[5]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2015:27.

[6]张雪彬,刘培国,曹 兵.基于C++语言的多维动态数组的实现[J].现代电子技术,2006(24):68-69.

[7]许金超,曾国荪.基于栈状态关系的动态软件水印算法[J].计算机应用,2013(4):1065-1069.

[8]丁宇辰.圆弧的生成算法研究[J].南京工程学院学报:自然科学版,2010(2):59-62.

[9]孙崇璇.圆弧生成方法探究与实现[J].云南师范大学学报:自然科学版,2011(4):64-68.

[10]朱庆生,唐 汇,冯 骥.Delaunay三角剖分在离群点检测中的应用[J].计算机工程与应用,2015(16):166-170.

[11]王志俊,姜咏梅,田 记.矩阵在图形学几何变换中的应用[J].高等数学研究,2014(1):87-89,99.

[12]鄢 涛,余 悦,于 曦.基于C++的大整数类型的设计与实现[J].成都大学学报:自然科学版,2016(3):252-255,270.

[13]董鑫正,单 缅,傅晓阳.C++教学中的知识点逻辑关系探讨[J].计算机教育,2016(9):163-166.

[14]张麟华,孔令德,杨慧炯.面向图形图像处理的C++课程案例设计[J].计算机教育,2013(4):88-91.

[15]袁小翠,吴禄慎,陈华伟.Delaunay三角剖分算法改进与对比分析[J].计算机应用与软件,2016(9):163-166.

[16]徐文鹏,强晓焕,侯守明.面向问题解决的图形学教学改革探讨[J].高等理科教育,2013(5):107-111.

[17]祝 恩,殷建平.以实际问题驱动图形图像处理技术研究型教学[J].高等教育研究学报,2013(2):24-26.

[责任编辑 范 藻]

Fast Transformation of Coordinate System and Application in Realistic Graphics

WEI Hongchun
(Computer Science School of Sichuan University of Arts and Sciences,Dazhou Sichuan 635000,China)

This paper discusses the principles of three kinds of transformation methods,which transforms the scene of the world coordinate system into the observation coordinate system.For expressing the scene correctly,although the three transformation methods can achieve the same purpose,their computational efficiencies are different.In general,it ismore reasonable that two times transformation can gain the end,the computation can be reduced by one-third.Because the implementation methods of those transformation are different,the vonversation results are different too.The analysis of this article has a good reference for understanding graphics theory in depth,improving teaching quality and developing realistic graphics system.

world coordinate;observation coordinate;realistic graphics;transformation;scene

TP391

A

1674-5248(2017)05-0023-04

2017-05-07

四川省教育厅项目(15ZB0326);四川文理学院项目(2015TP003Y);四川省教育厅自然科学项目(17ZB0369)

卫洪春(1972—),男,四川达州人.讲师,硕士,主要从事软件工程、数字媒体技术研究.

猜你喜欢
图形学顺时针重合
最后才吃梨
图形前线
为什么表的指针都按照顺时针方向转动
心情不好
电力系统单回线自适应重合闸的研究
突出实践需求的GIS专业《计算机图形学》课程优化改革
考虑暂态稳定优化的自适应重合闸方法
220kV线路重合闸运行分析
第7届国际图象图形学学术会议
非计算机专业计算机图形学教学改革初探