OPENGL 在计算机图形学教学中的应用研究

2012-09-19 03:48:38
滁州学院学报 2012年5期
关键词:图形学投影可视化

杨 斌

(滁州学院 计算机与信息工程学院,安徽 滁州 239012)

OPENGL 在计算机图形学教学中的应用研究

杨 斌

(滁州学院 计算机与信息工程学院,安徽 滁州 239012)

计算机图形学是计算机及相关学科的一门重要专业课,该课程理论性强,学习难度大。针对计算机图形学教学中存在的问题,把OPENGL可视化编程技术应用到该课程的教学中,使抽象复杂的问题形象化,并设置具有应用背景的实验项目,借此达到激发学生的学习兴趣和培养学生实践能力的目的,能够有效地提高教学质量。

计算机图形学;OPENGL;教学质量

计算机图形学是研究如何利用计算机显示和处理图形的原理、方法和技术的一门学科,是计算机学科中发展最活跃、应用最广泛的分支之一[1],在CAD/CAM、机械设计、计算机动画、计算机艺术、虚拟现实、地理信息系统和科学计算可视化等领域都有重要的应用[2-4]。

在该课程教学过程中,学生十分容易表现出畏难的情绪,主要原因为:(1)课程内容偏重于抽象的理论,算法复杂且不易理解[5];(2)传统的程序设计语言实现图形可视化编程较为繁琐,缺乏市场需求的支撑,尤其是三维图形实验更难以开展[6]。笔者把OPENGL可视化编程技术[7]应用到该课程的理论和实验教学中,使学生从抽象的理解和复杂的数学计算中解脱出来,激发学生学习兴趣,提高教学效果。

1 教学中存在的问题

在教学实践中,笔者发现该课程的教学问题主要体现在以下几个方面:

1.1 理论基础要求高,教学效果差

计算机图形学理论性强,部分算法抽象且以数学为依托,教学过程中过分强调课程的数学基础,侧重于算法原理的推导,而多数学生数学功底薄弱,故在学习过程中表现出畏难情绪;同时,其先修课程都是在低年级开设的,容易遗忘,而在计算机图形学的课堂上又不可能花太多的时间进行先修课程的复习,从而使其成为部分学生难以逾越的障碍。

1.2 实验教学中实验项目设置缺乏应用背景

在设计实验课程的环节中,部分教师对实验项目的实际应用背景考虑不足。学生在实验的过程中,只会根据教师的要求,对一些关键算法进行简单的编程实现,却很难将所掌握的基本理论知识与相关应用领域建立起联系,更谈不上灵活应用与创新。这一做法使得原本很重要的实践环节变成了理论学习的辅助部分,同时缺乏对算法的可视化显示,极大地降低了实验课程对学生的吸引力。

1.3 学生积极性不高

计算机图形学开设在大三下学期,大部分同学把精力用于就业市场实际需求的应用技术的学习,传统的计算机图形学教学过程中只要求学生掌握一些图形算法,缺乏对目前市场急需的可视化技术的介绍,如OPENGL技术,因此,大多数同学认为计算机图形学不重要,学习的积极性不高,整个学习过程都很被动。

2 OPENGL在计算机图形学教学中的应用

2.1 辅助理论课堂教学

计算机图形学算法丰富且抽象,而教材上相关的图例又表达乏力,难以引导学生认知和理解。OPENGL编程技术不需要考虑复杂的数学计算过程,课堂上的实例演示使教学过程生动富有说服力,且该技术在市场上具有广泛的应用前景,这样不仅激发了学习学习兴趣,同时为学生将来从事计算机图形学相关的软件开发奠定了坚实的基础。以三维投影变换为例,投影变换研究如何在二维屏幕上显示三维物体,可以分为:正射投影和透视投影[8]。正射投影的最大特点是无论物体距离视点多远,投影后的物体大小尺寸不变。这种投影通常用在建筑蓝图绘制和计算机辅助设计等方面,这些行业要求投影后的物体尺寸及相互间的角度不变,以便施工或制造时物体比例大小正确。透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点。透视投影通常用于动画、视觉仿真以及其它真实感图形的绘制领域。实现这两种投影变换的功能,需经过复杂的数学计算,要求学生具有较高的数学基础,传统的理论推导大部分学生难以接受,且最终投影的效果难以显示,利用OPENGL编程技术,不需要学生具有扎实的数学基础,且可视化的显示方式使学生更容易接受,同时提高学生的实践编程能力。下面为投影变换的OPENGL编程实例,其中图1演示了投影变换的可视化效果,从图1(a-b)可以看出,每幅图上绘制的两个与视点距离不同的茶壶,正射投影绘制效果为两个茶壶的大小相同,透视投影绘制效果为距视点近的茶壶较大,距视点远的茶壶较小。

图1 投影变换可视化效果

2.2 设置具有应用背景的实验项目

计算机图形学的实验教学是计算机图形学理论教学的必要补充和重要环节,它可以帮助学生巩固课堂教学成果,增强动手能力,有利于他们更好地掌握和理解计算机图形学知识,实现理论与实际相联系。传统的实验过程采用Visual C++6.0作为开发环境,在这种环境下只能进行一些简单的图形算法编程,如二维图形生成、区域填充、图形变换等实验,无法进行如三维图形生成、纹理贴图、光照、视点变换等实验。这一缺陷极大地限制了具有实际应用背景实验的开展。目前,我校在计算机图形学实验中引入了OpenGL,所有的实验都要求在安装了GLUT的Visual C++6.0的环境下进行,设置了一些具有实际应用背景的实验项目,提高了学生图形软件的实践开发能力。以下列举两个实验教学案例:

(1)月球车漫游仿真系统的设计与实现。

要求该漫游系统实现月球车在月球上运动场景的仿真,并且能够人工控制月球车的运动和一些必要的功能操作,通过方向键控制月球车的前进后退与左右旋转操作,通过功能键控制太阳能电池板的伸展,电子眼的方向扫描,以及机械手臂的各种运动等。

(2)教室漫游系统的设计与实现。

图2 月球车漫游系统的绘制

图3 教室漫游系统的绘制

要求该漫游系统具有较强的真实感效果,教室内物体布局合理,光线效果良好,并且要求系统能够实时响应键盘的操作,且人机界面友好。图2和图3是学生完成以上两个实验项目的效果图,通过设置此类具有实际应用背景的实验项目,激发了学生对图形学的热爱,使学生具有强烈的求知欲,提高了学生实际图形软件的开发能力,克服了传统图形学实验教学存在的弊端。

3 结论

本文基于当前计算机图形学教学的实际情况,立足于本校“应用型人才培养”模式的改革。把OPENGL编程技术应用到该课程的理论和实验教学中,实践表明,该方法能很好地激发学生的学习热情,迅速培养和提高学生实际的动手操作能力,为学生将来从事图形软件的开发奠定良好的基础。

[1]孔令德.计算机图形学基础教程(Visual C++版)[M].北京:清华大学出版社,2008:4-5.

[2]ÖZTIRELI A C,ALEXA M,GROSS M H.Spectral sampling of manifolds[C]//Proceedings of ACM SIGGRAPH A-sia.New York:ACM Press,2010:1-7.

[3]DURANLEAU F,BEAUDOIN P,POULIN P.Multiresolution point-set surfaces[C]//Proceedings of Graphics Interface 2008.Canada:Canadian Information Processing Society,2008:211-218.

[4]SUN W,BRADLEY C,ZHANG,Y F.Cloud data modeling employing a unified,non-redundant triangular mesh[J].Computer-Aided Design,2001,33(2):183-193.

[5]孔令德,刘晋钢.应用型工科院校计算机图形学教学模式改革[J].计算机教育,2011(18):20-22.

[6]王艳春,张金政,李绍静.计算机图形学课程教学思考[J].计算机教育,2011(14):63-66.

[7]EDWARD A.OpenGL:A Primer[M].New Jersey:Pearson Education,2008:20-25.

[8]陆 枫,何云峰.计算机图形学基础[M].北京:电子工业出版社,2008:115-118.

G642

A

1673-1794(2012)05-0105-03

杨 斌(1981-),男,讲师,硕士,研究方向:计算机图形学。

滁州学院数学建模教学与竞赛团队建设项目 (2011jxtd01)

2012-03-27

猜你喜欢
图形学投影可视化
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
云南化工(2021年8期)2021-12-21 06:37:54
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
传媒评论(2019年4期)2019-07-13 05:49:14
找投影
找投影
学生天地(2019年15期)2019-05-05 06:28:28
突出实践需求的GIS专业《计算机图形学》课程优化改革
第7届国际图象图形学学术会议