浅析对OpenGL三维投影模型的研究

2021-03-01 09:36陈超
科学与财富 2021年27期
关键词:计算机图形学

陈超

摘 要:随着计算机软、硬件突飞猛进的发展,计算机图形学在各个行业的应用也得到迅速普及和深入,目前,计算机图形学己进入三维时代。本文以三维图形为研究对象,对用OpenGL创建三维图形进行研究。

关键词:计算机图形学;三维投影;OpenGL

1、引言

科学计算可视化、计算机动画和虚拟现实已经成为近年来计算机图形学的三大热门话题,而这三大热门话题的技术核心均为三维图形。

三维图形广泛地应用于科学计算的可视化(运动仿真、有限元分析、流体计算、医学成像、分子化学、汽车等曲面造型、地理信息、石油勘探和气候模拟)、游戏开发、虚拟现实技术、影视广告中及CAI等领域。

2、视平面和投影中心的一般化过程

OpenGL中的三维投影坐标系

在三维空间中的观察过程根本就比在二维空间中的观察过程复杂得多。三维观察的额外的复杂性一部分是由被添加的维引起的,还有一部分是由顯示设备仅是二维的这一事实引起的。三维物体和二维显示之间的不匹配问题是通过引入投影来解决的,而投影就是把三维物体变换到二维的投影平面上去。

OpenGL物体坐标系采用左手坐标系。投影三维物体的二维平面称为投影平面,视平面坐标系附在投影平面上。物体坐标系描述物体的模型。取景参考点为物体建模参考点,一般将物体坐标系原点取为建模参考点。视平面坐标系原点为取景参考点在投影平面上的投影点,即平行于投影平面法线且通过取景参考点的直线与投影平面的交点。确定视平面坐标系向上方向的向量称为取景上方向量。取景上方向量确定视平面坐标系绕取景参考点与视平面坐标系原点连线旋转的角度。观察点或视点是观察者眼睛所在的位置,如图1所示:

在三维观察过程中,需要在世界坐标系中设定一个视见体(view volume),在投影平面上给出一个投影,并在观察表面上给定一个视口。三维世界坐标系中的物体被三维视见体裁减,之后进行投影。视见体落在投影平面上的投影的内容(成为窗口)再被变换(映射)到视口进行显示。

3、透视投影变换及视区变换

绘图流程中最终的三维空间称为三维平面空间。在这个空间中,进行视见体的裁剪,使用三维屏幕空间是因为它简化了裁剪和隐藏面消除的操作。另外,这个空间中的物体最终都要经过一个向二维观察平面坐标变换的过程。严格地将,屏幕坐标系是从视平面坐标系通过基本的变换导出的。图2显示了三维观察过程的概念模型:

一般来说,投影是把n维空间坐标系中的点变换成小于n维的坐标系中的点。一个三维物体的投影是用从投影中西发射出来的许多直的投影射线来定义的,这些投影线通过物体的每一点和投影平面相交,形成该物体的投影。透视投影的视觉效果类似于照相系统和人的视觉系统,称为透视缩小效应(perspective foreshortening):一个物体的透视投影的大小与物体到投影中心的距离成反比。因此,透视投影倾向于看起来真实。

4、OpenGL的透视投影变换

OpenGL透视投影利用去角锥的截头体作为取景体积。取景体积决定物体投影的可视部分,而且满足透视投影的远大近小规则。OpenGL用gluPerspective命令指定的透视取景体积如图3所示:

视点放置在角锥的顶点。其参数fovy为y—z平面上取景域的角度,aspect为截头体x(宽度)与y(高度)的比值,zNear与zFar分别为视点与前后剪切面的距离,二者总为正值。进行透视投影变换前,必须用glMatrixMode将参数设置为投影模式GL_PROJECT,用glLoadIdentity置恒等矩阵命令清除过去矩阵的影响,同时用gluPerspective命令指定取景体积进行透视投影。

5、结束语

OpenGL三维图形标准这一开放式图形库使得在微机上实现三维真实感图形的生成与显示成为可能。开发者可以有效地利用OpenGL提供的丰富的三维变换、光照、纹理、动画及特殊效果函数等来建立三维模型和进行三维实时交互,从而开发出效果理想的视景系统,并进一步为虚拟现实的研究与开发打下坚实的基础。

参考文献:

[1] Richard S.Wright,Jr. Benjamin Lipchak.OpenGL 超级宝典(徐波 译). 人民邮电出版社

[2] OpenGL体系结构审核委员会. OpenGL编程指南(第四版). 人民邮电出版社

[3] Alan Watt.3D计算机图形学(包宏 译). 机械工业出版社

[4] James D.Foley,Andries van Dam,Steven K.Feiner,John F.Hughes.计算机图形学原理及实践(唐泽圣,懂士海,李华,吴恩华,汪国平等译). 机械工业出版社. 2004.3

[5] Donald Hearn,M.Pauline Baker.计算机图形学. 北京:电子工业出版社.

[6] 周培德. 《计算几何——算法分析与设计》 北京:清华大学出版社

[7] 周新伦,柳健,刘华志. 《数字图像处理》 北京:国防工业出版社

[8] Poter,T.,and T.Duff 《Compositing Digital Images》

猜你喜欢
计算机图形学
计算机图形学教学中的“差别”培养
用面向科学思维的教学方法改进计算机图形学课程教学
三维投影变换的MATLAB实现
论数字媒体艺术教育中专业方向细分的必要性
基于计算思维的计算机图形学教学改革与实践
计算机图形学教学改革浅论