钟若武 王惠平
摘要:计算机动画是计算机图形学的热门话题之一。三维图形是计算机动画的核心技术。OpenGL作为各种计算机环境的三维应用程序接口,可以更好地实现三维动画编程。就我校结合OpenGL的《三维动画编程》课程的建设探索情况做了介绍,主要包括教学目标、教学内容、教学模式、实验项目等各个方面。
关键词:OpenGL;动画;编程;计算机图形学;教学
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)28-0117-02
Exploration and Construction of 3D Animation Programming Combined with OpenGL
ZHONG Ruo-wu, WANG Hui-ping
(School of Information Science and Engineering, Shaoguan University, Shaoguan 512005, China)
Abstract: Computer animation is one of the hot topics of computer graphics. 3D graphics is the core technology of computer animation. OpenGL can realize 3D animation programming well as it is 3D API suitable for every kinds of computer environments. This article introduced the exploration and construction of 3D Animation Programming combined with OpenGL. It covered the teaching goal, teaching content, teaching modern, lab content, etc.
Key words: OpenGL; animation; programming; computer graphics; teaching
1 引言
计算机图形学是计算机科学领域发展最活跃、应用最广泛的分支之一[1]。科学计算可视化、计算机动画、虚拟现实是近年来计算机图形学的三大热门话题,而三维图形是这三大热门话题的核心技术[2]。当前三维图形在医学、军事、航空、航天、地质勘探、艺术造型和文化娱乐等方面有着十分广泛的应用。
1992年,OpenGL正式成为各种计算机环境下的三维应用程序接口。它具有使用简便、高效率、稳定可靠、性能高、可扩展移植、适应性强等特点,是唯一真正开放、独立于供应商、跨平台的图形开发行业标准,是图形开发工作者必须掌握的开发工具[3]。而OpenGL图形系统是指一个丰富的三维图形函数库,是图形系统中的一个软件接口,允许程序开发者创建一个交互性的程序,从而能够产生三维移动的物体的彩色图像。它除了具有基本的OpenGL 函数以外,还能够支持OpenGL实用库、OpenGL辅助库、Windows专用库函数、Win32 API 函数等其他四类函数。它还可以有双缓存的功能,主要应用于制作动画[4]。
我校结合时代发展开设了《三维动画编程》这门课。本文介绍了我校结合OpenGL的《三维动画编程》课程的建设探索情况。
2 当前课程现状
我校计算机专业在大三上学期开设《三维动画编程》。该门课程是专业选修课,共计54学时,其中理论课40学时,实验课14学时。该门课程的内容涉及计算机图形学和编程知识,对学生前期的知识储备和编程技能要求较高。由于课程属于动画方面,学生普遍对该门课程具有浓厚的兴趣。
3 结合OpenGL的三维动画编程课程建设思路
3.1 明确教学目标
对于本门课程的建设,首先要明确教学目标。经过笔者深入思考与调研,确定本门课的教学目标如下:
(1)知道《三维动画编程》这门课程的性质、地位和价值。了解OpenGL的研究范围、基本框架、研究方法和未来发展方向。
(2)学会用C语言调用OpenGL函数库实现三维动画的生成。
(3)掌握使用OpenGL绘制基本图形、三维坐标转换、颜色光照材质、纹理映射、动画生成。
(4)了解OpenGL的使用图形技巧,例如曲线的生成,特殊效果混合、雾化、抗锯齿,片段测试。
(5)通过本课程的学习,应达到用编程方法去实现三维动画的效果。
3.2 设计教学内容
理论教学内容分为以下8讲:
第1讲为3D图形学基本原理,主要介绍计算机图形学的基本原理、OpenGL的发展历史,OpenGL的特点功能,OpenGL的操作步骤,课时为2学时。
第2讲为OpenGL的空间绘制几何物体,主要介绍绘制幾何点、绘制3D直线、绘制3D三角形、绘制其他多边形、创建实心物体、法线向量,课时为6学时。
第3讲为OpenGL坐标变换,主要介绍视点变换、模型变换、投影变换、视口变换、裁剪变换、矩阵堆栈操作、显示列表,课时为8学时。
第4讲为OpenGL光照材质的使用,主要介绍颜色的使用、光照的使用、材质的使用,课时为8学时。
第5讲为纹理贴图,主要介绍位图和图像、纹理映射,课时为6学时。
第6讲为特殊效果,主要介绍混合、雾化、抗锯齿,课时为4学时。
第7讲为曲线和曲面的绘制,主要介绍二维曲线的绘制、三维曲线的绘制、二维曲面的绘制、三维曲面的绘制、NURBS曲线和曲面的绘制、二次几何体的绘制,课时为4学时。
第8讲为片段测试,主要介绍裁剪测试、Alpha测试、模板测试、深度检测,课时为2学时。
本门课程注重理论和实际相结合,在每一章的讲解过程中精选案例,进行案例教学。在每一章讲完理论后,紧接着介绍如何采用OpenGL 进行具体编程,使学生可以利用所学知识做出自己的图形,提高学生的学习兴趣与编程能力。
3.3 确定教学模式
在教学模式选择上,结合学生的实际情况,笔者采用控制台应用程序结合OpenGL模式。这种模式较为简单。教师教学准备方便,学生在掌握基本C语言编程知识和OpenGL实用程序工具包GLUT的窗口管理方法基础上,可集中精力学习OpenGL的图形绘制技术。学生学习理解容易、上手快,数学效果明显。
VC++里采用控制台应用程序结合OpenGL的图形编程模式实际上是一种用C语言调用OpenGL函数的面向过程的编程框架,其程序的基本结构是定义窗口、清理窗口、绘制物体和结束运行。
其基本步骤如下:
(1)定义窗口。
(2)清理窗口。
(3)绘制物体。
(4)结束运行。
3.4 设置实验项目
《三维动画编程》是一门实践性很强的课程。为了使学生能学以致用,真正掌握目前应用广泛的三维动画技术,做到与时俱进,除了理论教学外,必须辅以足够的实验教学,着重培养学生的编程实现能力,使得学生学习该课程后能够利用OpenGL进行具体的三维图形编程。笔者结合教学目标和教学内容,对本门课做了实验设置。表1 所示的实验项目设置方案,不仅要求学生掌握基本算法,更注重学生能力的培养,包括学习应用新技术的能力、综合编程能力、分析问题的能力、解决问题的能力以及创新能力。在实验过程中注意控制实例的难易程度,让学生直观、轻松地理解每种模型的思路、效果,进而领会对应的编程算法[5]。
4 结论
本文介绍了我校结合OpenGL的《三维动画编程》课程的建设探索情况。本课程的教学目标是既要讲透基本原理,又能适当融合当前三维计算机图形技术的最新发展,并结合具体实践开展案例教学。本着这一目标,我们设计了课程的教学内容和实验内容,确定了教学模式,希望学生学习完课程后能够学到最新的三维动画技术,并能进行具体的动画编程。
参考文献:
[1]廖宁.泛在学习下独立学院《计算机图形学》混合式教学构建源[J].高教学刊,2018(14):127-128.
[2]张小红,梁志琼. 计算机图形学与图形图像处理技术及应用分析[J].信息与电脑,2018(11):169-170.
[3]陈永强.结合OpenGL的图形編程教学模式研究[J].软件导刊,2013(6):148-149.
[4]张灿.基于OpenGL实验平台的计算机图形学教学改革研究[J].电脑知识与技术,2012(8):7826-7827.
[5]刘宇,王瑜蕾.计算机图形学选修课实验教学改革探讨[J].计算机时代,2018(6):91-93.
【通联编辑:王力】