时间:2023-03-10 14:51:15
引言:寻求写作上的突破?我们特意为您精选了4篇计算机图形学课程范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
中图分类号:G420 文献标识码:A 文章编号:1672-3791(2014)10(c)-0155-02
计算机图形学是研究通过计算机将数据转换为图形,并在专门的显示设备上显示的原理、方法和技术学科[1]。目前,计算机图形学技术已经深入到人们生活的各个领域,例如:飞机、汽车外形设计、电影、电视广告、游戏制作、天气预报、医药医疗以及地质勘探等。因此,很多高校都越来越重视该门课,并把其列在教学计划中。但是该门课程原理深、算法抽象、实践性强。大部分学生在课程开始时抱着极大的兴趣学习,但随着算法的深入,虽然上课能听懂算法,但是课后实现算法却很困难,这样一来,理论与实践不能很好结合,而使学生觉得枯燥单调,学习的积极性与主动性逐渐下降,教学效果不理想。
1 教学中存在的问题
图形学教学中会存在如下问题:一是实验教材选择不恰当;二是很多高校图形学实验都是基于Turbo C环境下的编程,因编程界面不够友好,使用不方便,多数学生对它不感兴趣。三是过分注重理论教学,实践教学的时间远比理论教学时间少;四是过分强调图形学的数学基础;五是实践课程设置合理,但是实验内容有的过于简单,而有的又太难。以上五方面都会导致学生学习兴趣不浓或厌学。针对此,对实验课程进行改革是非常必要的。
2 图形学教学改革措施
如何针对本校学生实际制定适合其学习的实验方案尤其重要。通过笔者多年的教学实践,我们可以通过计算机图形学实验的演示、验证和开发,来巩固学生对计算机图形学所学知识的理解,同时加强学生的动手操作能力。可以从以下几方面进行改革。
2.1 教材选取
目前,图形学教材非常的多,大部分的经典教材中讲解的知识较多、难度较大,学生学习较吃力。如何选用教材,使学生学到更多知识很重要。在教学的过程中,针对地方高校的特点,学生的基础较差。笔者在教学中,把教学重点定位为二维知识的掌握;三维知识只作简单的了解和介绍,以此来降低学生学习难度,提高学习兴趣,为以后的三维知识的学习打好基础。因此,在选择教材时,尽量考虑偏重二维知识的、包括程序代码的,利于学生上机实验的教材。
2.2 编程环境选择
针对Turbo C编程环境存在的问题,我们在实验过程中可以基于Visual C++的MFC编程。因为VC开发环境是可视化的,编写的程序执行结果明显,学生有成就感,对完成实验更有自信[2-3]。通过实验,学生不但可以学习实用的编程语言,而且也促进其对新知识的学习。
2.3 实验教学改革
目前,课程开展了九个实验,实验内容如表1所示,其中实验类型有验证性、设计性和综合性三种。验证性实验是让学生对理论课程学习的图形学基本算法进行编程验证;设计性实验是一种探索性的实验,不但要求学生综合多种知识来设计实验方案,而且要求学生能充分运用已学到的知识,去发现问题、解决问题,实验中,学生自己选题、自己设计,在教师的指导下进行,以最大限度发挥学生学习的主动性;综合性实验是通过学生一段时间的学习,具有一定的图形学综合知识和技能,且实验内容涉及到这些知识和技能的实验[4]。
2.4 实验项目说明
实验1中,关键是熟悉VC的MFC编程环境,了解如何创建工程及添加消息以及 MFC绘图函数的使用。
实验2中将验证直线生成算法。通过理论分析直接直线生成算法、DDA算法、Bresenham算法、中点画线算法等,找到各算法的优缺点,对比各种算法运行的速度;然后通过上机实现上述算法,并比较各算法在生成同一直线时的效率。
实验3中对比中点画圆算法与Bresenham画圆算法的实现机制及运行效率。
实验4中主要是验证课本中内点表示、边界表示的4连通或8连通种子填充算法填充规则图形(矩形、圆等)及不规则图形(任意形状各异的图形)。实验中,对于基础好的同学,还可试着采用扫描线多边形填充算法(选做)来填充一个简单的图形内部。
实验5中主要是运用已学过的各种图形学的知识来填充圆的内部。A.点到圆心的距离小于等于半径;B.种子填充法;C.Bresenham画圆法;D.用改进的Bresenham画圆算法;E.中点画圆算法;F.改进的中点画圆算法等。并对比各种算法在填充圆的内部时的差异。(见表2)
实验6主要是验证Cohen-Sutherland直线裁剪算法。实验主要是基于矩形窗口的直线裁剪,对于三类型直线裁剪的正确性进行验证:一是直线完全在矩形窗口内;二是直线完全在矩形窗口外;三是直线与矩形窗口有交。其他直线裁剪算法的验证可选做。
实验7中,可针对生成的一个简单图形实现其二维变换。例如三角形的比例、平移、旋转变换等。
实验8中,主要是实现课本中的Bezier曲线生成算法。若能正确生成Bezier曲线,可以结合图形变换知识和平面曲线知识实现的正叶线、正叶线蝴蝶结等图形的生成。
实验9中,可以结合本学期的学习情况,利用所学的图形学知识,发挥想象力,设计一个图形学作品。例如:雪人,火车等。
3 结语
从文中的实验教材、实验教学环境以及实验教学内容的选取以及多年的教学经验,可以看出在计算机图形学实验课程教学中,首先要加强理论与实践相结合,要进行培养方案修改,加大实验课的比例;其次要针对学生的特点,找到适合当前学生学习的方法和实验内容进行教学。经过改革后,教学效果较好。
参考文献
[1] 伏玉琛,周洞汝.计算机图形学――原理、方法与应用[M].武汉:华中科技大学出版社,2003.
中图分类号:G642 文献标识码:B
计算机图形学是一门理论与实验并重的学科。从理论方面看,该学科主要涉及与图形相关的概念和算法,和数
学、物理等相关学科的关系紧密,学起来有一定的难度。而实验是理论教学的深化与补充,是抽象转化为具体的方式,是晦涩难懂的公式变为活生生画面的过程。通过实验,不仅可以培养学生综合运用所学知识解决实际问题的能力,而且对于建立学生自信心、培养学生兴趣也起至关重要的作用。学生对该课程是既喜欢又担心学起来难度太大,如何上好第一次课,改变学生的态度,如何安排教学内容和实验环节,使学生既易于接受又能反映计算机图形学的基础知识和最新知识。本文针对这些问题,结合教学中的实际情况浅谈一下自己的看法和体会。
1课程内容介绍
在多数人的印象中,计算机图形学和其它专业课相比较,数学公式太多,难以学习和理解。但是由于它的诸多应用非常具有吸引力,尤其它是大家所感兴趣的游戏和动画的基础,很多学生又想接触它。如何加强学生的这个念
头,第一次课非常关键,它在很大程度上决定了学生是否选学这门课。图形学的理论虽然抽象,但是所表示的内容却形象,可以以此作为突破口。我们知道被称为“图形学之父”的Sutherland博士论文答辩时,将所研究的内容制作一部电影,边放映边讲解,大获成功。所以我觉得可以从一个动画短片或游戏片段出发,将所涉及的图形学知识融会贯通起来。因为在没学习图形学之前,学生很难建立图形学知识和游戏动画之间的联系。他们只知道图形学理论很抽象,游戏动画很容易吸引学生眼球,而且也知道它们之间的关系很紧密,但具体有什么联系却不是很清楚。我们可以从此出发,引出图形学的相关知识,让学生在不知不觉中了解图形学,接受图形学。这样轻松建立了相关知识点与实际应用的联系,也解答了学生学有何用的疑问。
现以动画短片《棋逢敌手》(Geri's Game)为例来说明如何引出图形学内容。该短片讲述的是Geri老头在公园跟自己下棋的事,故事情节生动,动画效果惟妙惟肖,很具吸引力。学生非常感兴趣,这是怎么做的,采用什么技术,Geri老头是怎么得到的等等一系列问题。我们便可以问题为导向一一解释给学生。Geri老头采用的是一种称为Catmull-Clark的细分曲面造型技术,在造型之前需要准备数据,所谓巧妇难为无米之炊,一般这样的数据是先建立一个实物的模型,然后通过三维激光扫描仪获取的。三维扫描仪扫描实物的表面数据,其数据量大,而且带有噪音,所以需要做去噪,简化等处理。简化后得到Geri老头的表面骨架,然后再采用细分曲面造型技术获取光滑逼真的模型。细分造型是一种逐层加细技术,如图1所示,图1(a)-(c)是不同层次的效果。从中可以看出图(c)图形的光滑效果最好,而图(a)最差。但是图(c)的数据量最大,这就需要根据不同情况选择不同的图形,如图2所示,当图形距离我们较远时可以选择精度不高的(a)图形,而较近时选择(c)图形。在游戏动画方面,对速度要求高,而对图形逼真性的要求相对低,这时可以选择数据量小的图形。这样通过图形展示给学生以感性的认识,一方面易于接受,易于理解,另一方面也能增加学习的兴趣。另外,形象逼真的图形采用真实感绘制技术,场景远近变化利用了图形变换的知识等等。一个短篇,基本上把图形学的相关内容都包括了,我们还可以再结合其它一些具体生动的图形动画介绍给学生。实际上,在图形学授课的各个环节,为了调节枯燥的数学公式,都可以演示一些相关内容的图形,也所谓的多媒体教学,在这方面,图形学应该更有优势。
2理论与实践并重
对计算机图形学这样的专业课而言,理论的学习离不开实践,实验是非常重要的一个环节。抽象的理论,乏味的数学公式,如果不和实验结合,学生是体会不到学习乐趣的。通过实验,所学的知识得以巩固,枯燥的算法与生动的图形之间建立联系。学生的兴趣也是通过实验建立起来的。每次实验报告,我都会要求学生写下心得体会,从报告可以看出,多数学生能够在实验中找到快乐,能够通过实验建立自信心,成就感。他们说做实验很受锻炼,知识掌握的也更牢固。当然有的学生也提到,做实验是一件非常辛苦的事情,特别是没有思路或者找不到错误时,真的很痛苦。但是成功后的满足,特别是做出来的那一瞬间,那种心境别人无法体会。
由于计算机图形学是专业限选课,学时不多。我们一般安排32个上课学时和16个实验学时。为了增加学生的知识面,我们的实验是在Sun工作站Solaris操作系统下采用gcc编译器进行,编程时调用OpenGL库中的图形函数。通常安排4个学时熟悉这些内容。这样根据剩余学时安排五个小实验:直线生成、裁剪、几何变换、曲线生成以及真实感图形绘制,还有一个综合性实验:做一个简单的图形系统。题目的要求随着难易程度变化。直线生成算法比较简单,学生编写的程序应具有通用性,适用于任何直线。裁剪算法是为了确定显示区域内的图形,实验一般要求实现线段裁剪算法,算法易于实现,考虑到易操作性,采用交互式的画线方式,即以鼠标点击绘图区的位置确定线段的起点和终点,其中涉及消息映射和屏幕坐标到世界坐标转化等相关知识。几何变换几乎在每个图形系统或图形应用软件都有使用,其主要包括旋转、平移、缩放以及复合变换等内容。学生对三维图形更感兴趣,尤其是较复杂的图形。在做该实验时,通常先介绍一些三维图形的相关知识,包括几何图形表示、存储形式以及读文件操作等,一般以简单的OBJ数据文件为例。然后让学生实现三维图形的几何变换。另外,考虑到该实验包括几个操作,增加了菜单选择功能。曲线曲面也是图形学的核心内容,生成方法有两种:一种是逐层递推的方法,另一种是根据参数曲线定义。学生根据自己的理解选择不同的方法实现。在曲线生成的基础上,增加鼠标拖动控制点改变曲线曲面形状的功能。真实感实验是为了增加学生学习的兴趣,通过调用OpenGL的库函数做出一些漂亮的效果,让学生感觉到图形学功能很强大,一些看似复杂的效果实现起来也简单,只需调用OpenGL中现成的库函数。综合性实验报告我也鼓励学生做一些自己感兴趣的东西,比如有的学生对游戏很感兴趣,基础也较好,想做一个小游戏,我是完全许可的。应该来说,安排的实验任务重,覆盖内容多,在有限学时内完成这些实验是不可能的,需要学生在课外做许多准备工作。而且,有些知识点较难,学生难以消化。针对这种情况,实验部分也分了解和掌握两种情况,这样做的一个目的就是想增加学生的知识面。
3教学内容安排
计算机图形学知识更新快,内容深而广,如何在有限的学时内安排教学内容,使讲解的知识难度适中,既兼顾基础知识又可以反映计算机图形学的最新成果和技术,同时,既兼顾理论又兼顾实验。另外,在学生可以接受的情况下尽可能介绍三维知识。
我们的教学内容主要分这几部分内容:光栅图形学,图形变换,几何造型,真实感图形绘制。而且,各部分内容贯穿OpenGL的相关知识。前两部分比较基础,内容相对简单,课时尽可能安排紧凑,理论讲的相对深入。但是对于几何造型,尤其是曲线曲面造型部分,内容的深浅需要根据学生情况来把握。曲面难度较大,一般只介绍大致的思路及做一些演示。对于曲线,如果讲得比较深入,对于基础不好的学生来说也难以接受。我曾尝试采用分段多项式的形式推导B样条基函数,不少同学听得很费力,甚至影响后面知识的学习。现在讲这部分内容时,我只是介绍基函数的由来,告诉学生基函数是根据曲线的性质和定义推导出来的,不是随随便便指定的,这样学生比较容易接受。实际上,无论Bezier曲线或B样条曲线,都是曲线造型技术中的经典算法,但也存在缺点。目前比较流行的曲线造型技术是细分算法,它有很多很好的性质,如多分辨率,应用简单等。由于其比较新,很多教科书中尚未介绍。一般我从应用层的角度将三次B样条细分和四点插值细分等典型算法介绍给学生,介绍他们的特点以及实现技术。真实感图形绘制部分,涉及数学、物理、心理学等方面的知识,理论较深,不太适合本科生学习。但由于其做出来的图形太漂亮,很具吸引力。而且,用OpenGL的库函数实现并不难,所以这部分内容我一般是介绍一些基本概念,然后做一些程序演示。一方面增加学习的兴趣,另一方面让他们意识到,有些知识尽管理论比较深,但由于有现成的类似OpenGL库函数这样的技术支撑,也容易实现。很多东西并不是想象的那么神秘,那么可怕。
4结语
计算机图形学是一门理论内容深,应用范围广的课程。本文就如何组织教学内容谈了自己的见解和体会,目的在于提高学生学习兴趣,让学生在易于接受的情况下学到更多有用的知识。实践表明方法具有一定的可行性,普遍学生反映,通过课程的学习体会到了图形学的博大精深,增加了图形学的学习兴趣。但也有部分同学感觉有些内容讲解不够深入,难以理解。所以,如何在有限的学时内更好地组织教学,还有待进一步探讨。相信通过学习、思考和实践可以做得更好。
参考文献:
[1] 唐荣锡,汪嘉业,彭群生. 计算机图形学教程(修订版)[M]. 北京:科学出版社,2000.
中图分类号:G4
文献标识码:A
doi:10.19311/ki.16723198.2017.01.082
0引言
随着市场对游戏开发人才的需求越来越大。许多高校在本科阶段设置了有关游戏开发方向的课程。“计算机图形学”作为一门计算机科学方向的专业基础课,主要讲授包括:模型绘制、模型渲染、纹理和光照等内容。这些内容是构成游戏开发的主要理论基础。然而,在实际教学过程中学生普遍反映“计算机图形学”难学,主要体现在图形学涉及的数学知识较多、相关算法晦涩难懂。如果没有大量的实践,学生会感到空洞与乏味。如何在讲授“计算机图形学”基本理论的同时,结合游戏开发的实践,使得学生将枯燥的理论和算法与游戏开发的能力实现有机的对接,是一个值得深入探讨的问题。本文在分析了目前“计算机图形学”授课内容的基础上,结合其内容与游戏开发之间的内在联系,对面向游戏开发的“计算机图形学”课程建设思路进行了探讨。
1当前“计算机图形学”授课现状
目前大多数高校的本科“计算机图形学”授课时间控制在50学时左右。以笔者所在的学校为例,理论与实验学时分别是36和14学时。如图1所示,理论授课内容主要分为二维、三维模型绘制、几何变换和渲染,相关数学基础和图形引擎库OpenGL等。传统的课堂教学中,二维图形学的内容占据相当大的比例。然而,在实际游戏开发实践中,二维图形涉及的较少,主要以包括:三维建模、几何变换、视图变换、材质、纹理贴图、图形渲染、模型动画等三维图形学的内容为主。如表1所示,实验内容主要以模型的绘制、剪裁、渲染为主,实验类型主要以验证型为主,实现方法主要采用C++语言和OpenGL图形库。学生在学习这一部分内容的时候,普遍感到算法较为枯燥,而且无法和实际应用联系起来,容易产生厌学的情绪。而且,OpenGL作为一款以C++为基础的开源三维图形引擎,优点是独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植,弊端是封装性不够,要实现复杂的游戏动画效果需要学生对底层的动画原理和数学知识有较强的理解和熟练掌握C++编程技能。
在授课环节上,老师一般采用是先讲授图形学理论课,然后进行实验课,目的是在实验环节让学生应用所学的理论知识,锻炼实践能力。但该方式也存在一些弊端:理论课和实验课相对割裂,学生在学习图形学算法和理论时对枯燥的内容感到较难,缺少实践,而在实验环节,在有限的时间内很难真正掌握开发工具并作出具有一定深度的作品。
2面向游戏开发能力的算机图形学课程建设思路
基于上述问题,笔者结合游戏开发所需要的能力特点,从以下几个方面入手,对“计算机图形学”课程的改革进行了论述。
2.1课程内容
由于本门课程的学时限制,我们对目前授课内容的基础上进行了相应的取舍,即讲授重点放在三维图形学的内容。另外,将一些游戏开发过程中较为关键的图形学相关内容补充到授课内容中,例如以下两方面的内容:
场景组织与模型渲染:场景组织是三维游戏中核心内容之一。在一个三维游戏中,需要将许多的模型用某种数据结构的方式将其组织起来,然后在绘制每一帧的时候将其渲染处理。如何合理有效地管理三维场景中物体之间的相关、从属、互相影响的关系会对三维场景的生成效率产生重要影响。场景组织需要牵涉到数据结构中的排序算法,如:N叉树排序、堆排序算法。现有的大多数图形学教材并没有将上述内容列入主要章节,而场景组织的相关算法是实现游戏开发的核心算法之一,对这一部分的内容应补充进授课内容。
模型交互与动画算法:在游戏开发过程中,三维模型的交互是利用鼠标和键盘对模型的运动进行控制。三维模型的动画包括:模型运动、碰撞检测、人体骨骼动画、漫游等。掌握这部分内容对于学生深入理解游戏开发来说也是极有必要的。根据笔者所知,目前的《计算机图形学》教材中,大多数没有涉及这部分内容,但也有一些《计算机图形学》课本增加了三维模型动画及动力学的内容,如潘云鹤等所著的《计算机图形学:原理、方法及应用》一书中,就计算机动画的应用作为专门的一章内容进行介绍。
2.2内容组织
针对图形学中大多数的理论比较抽象,实验也大多为算法的验证型实验。大多数学生在学习本门课之前并没有相关计算机图形学方面的知识储备,因此造成学生普遍反映没能将所学知识应用到实际应用中,从而降低学习本门课程的兴趣。教师在具体讲授过程中,可以按照构造游戏的流程,从角色建模讲起,用游戏设计这一根主线找出各部分内容之间的联系,使得学生对课程的内容和游戏开发之间的关系有一个全貌性的认识。本文对图形学中相关算法与游戏开发的具体应用之间进行必要的对接。例如,在讲解物体建模内容方面,可以先采用三维建模软件(3DMAX或MAYA)实现基本物体的建模过程,并通过不同的视图展示模型的线框或三角面片视图。这样可以让学生直观的感受图形学中三维模型是如何构造的,从而让其理解在OpenGL中所调函数的意义。三维模型的显示方面,通过在三维建模软件中设置摄像机成像原理,经过三维空间中实体的世界变换、视角变换等过程了解模型剪裁、几何变换、投影变换的作用,从而更好的辅助学生了解相关算法的理解。真实感图形学主要包括光照模型、纹理贴图等,是图形学中较为复杂和难理解的内容。老师利用三维建模软件中的灯光、材质、质感、纹理贴图的实现过程,让学生直观的了解图形学中实现真实感的途径与方法。欲使课堂讲授的内容生动起来,必须有实际的案例支撑,因此建设面向游戏方向的图形学案例库,使得学生能够快速理解和掌握相关理论和技术,对于提高图形学课程的授课质量至关重要。
2.3图形库的使用
目前大多数图形学课本都是采用OpenGL作为实验的图形生成库。该图形库对于学生理解简单模型的生成具有良好的作用。但是OpenGL对场景组织、模型渲染、真实感、动画等功能的封装不够,从而造成需要学生对一些渲染、光照等数学模型有着较为深刻的理解,并将其用C++语言和OpenGL实现。为了让学生掌握游戏开发中有关场景组织、模型渲染和动画等相关功能,本文建议使用当前主流的3D图形API,如:DirectX或者OSG(Open Screen Graph)等。DirectX是微软开发的多媒体引擎主要用于Windows操作系统开发。Open Scene Graph是一个著名的开源三维图形库,被广泛的应用在可视化仿真、游戏、虚拟现实、科学计算、三维重建。这两个图形库对涉及场景组织、渲染、光照、模型交互动画等高级算法具有良好的封装,使得学生在使用只需要调用相关的API函数即可生成生动的游戏渲染和动画效果。
3结论
结合图形学教学的实际以及游戏开发专业方向的培养目标,从教学内容、内容组织、图形库选择三个方面对于面向游戏开发导向的“计算机图形学”课程教学改革进行了一些探讨,希望能对游戏开发专业的教学和课程建设有所促进。
参考文献
[1]孙家广,胡事民.计算机图形学基础教程[M].北京:清华大学出版社,2005.
[2]向世明.OpenGL编程与实例[M].北京:电子工业出版社,1999.
计算机图形学是计算机应用领域中一个非常重要的学科。该学科主要研究如何利用计算机表示图形以及生成和处理图形的基本原理、方法和技术。它的应用渗透到了社会生活和生产的各个领域,如虚拟现实、地理信息系统、科学计算可视化等,是现代信息技术不可或缺的重要内容。计算机图形学不仅是高校计算机专业的基础课,也是理、工、农、医等专业的必修课。该课程是一个多学科相互交叉、相互渗透的学科,综合了数学、计算机科学和图学理论等相关学科的知识,其原理抽象、算法复杂、具有很强的理论性、综合性和实践性[1]。作为山西省应用型本科试点院校,课程建设课题组积极探索转型路线,赴国内多家院校探讨学科前沿和先进教学方法;与多家知名企业合作探讨人才培养需求。在山西省精品资源共享课的基础上,从企业对人才的实际需求出发,与企业合作修订人才培养方案,修订教学大纲,以计算机科学与技术专业学生为试点,增强“以能力为导向”的计算机图形学应用课程建设。经过恰当地组织教学内容,有效调整教学模式,采用了“案例引导、传输理论、算法可视化”的新授课模式,突出以学生为主体的“积累知识、积极思考、主动创新”的教学新理念,进一步提高了学生运用基本理论知识分析和解决问题的能力,培养的学生得到了市场和用人单位的认可,并与多家公司签订了人才订单培养协议,实现了人才与市场的无缝对接。
一、计算机图形学教学现状
近年来,随着计算机硬件配置的提高、智能手机的普及,尤其是游戏产业、三维数字城市的迅速发展,计算机图形学课程已经成为计算机专业或数字媒体技术专业的核心课程[2],在培养方案中占有重要的地位。由于该课程是一门原理算法复杂、抽象,实践应用性很强的课程,对教师和学生的编程能力要求较高,因此普遍反映教学有一定难度。通过文献研究,国内高校在计算机图形学课程教学中存在以下问题。
(一)实践教学资源匮乏由于案例源程序匮乏[3],这导致在课堂上教师主要以讲解原理为主,学生存在理论学习和实践应用脱节的现象,存在学习完理论后仍然不会编程实现的情况,这不能满足应用型人才培养的要求。
(二)教学模式单一传统的教学方法以教师课堂讲授为主,教师一次性地将知识灌输给学生[4-5]。教学过程以教师为主体,教师教什么,学生就学什么;教师怎么教,学生就怎么学。这种教学方式忽视了学生的主体性及教师与学生的互动性,限制了学生的主观能动性,制约了对学生在知识、能力和素质方面的综合教育。
(三)教材选择不当教材选择不当,培养目标与企业需求不对接目前,国内计算机图形学教材主要存在“面向理论和面向应用”两种典型教学体系[6]。面向理论的教材是传统教学体系,其重点放在对概念的解释与原理的讲解;面向应用的教材是当前主流的教学体系,它注重培养学生在掌握计算机图形学理论知识的基础上,学会应用典型的图形学API。在这些计算机图形学教材中,多数教材适合高校硕士生与博士生从事科学研究,而面向本科生、按照市场需求基于底层算法开发的计算机图形学的教材相对较少。市场对本科生计算机图形学技术的应用人才需求量巨大,这导致人才培养与工程应用和企业需求不对接。
二、以能力为导向,构建计算机图形学教学内容
应用型工科院校本科人才培养在遵循本科人才培养自身的教育规律基础上,应注重夯实理论、突出实践、强化应用,既不能沿袭普通本科的教育模式办成学科型或研究型的本科,也不能为了突出应用而弱化基础理论的教学。应该是理论教学和实践应用相结合,突出工程特色,培养既有基本的理论素养,又有很强动手能力的应用型人才。应用型工科院校应结合市场和企业的能力需求,积极探索以能力为导向的培养目标,构建突出工程实践能力的教学体系。针对该课程教学存在的不足之处,课题组以培养目标为核心,提出了“教材建设系列化,理论教学目标化,教学过程案例化,实践资源数字化”的课程建设方案[7],为学生搭建可视化课程的整体构架,打造了“精品资源共享课程+系列化教材+微视频”立体化的教学平台。
(一)系列化教材建设课题组从企业对人才的实际需求出发,在注重培养学生系统了解计算机图形学理论知识的同时,又强调培养学生正确使用图形学知识进行软件开发的能力。在教学内容上,主要以能力为导向确定必备的知识点和理论算法,摒弃不必要的偏向数学的公式推导,开发了与理论相对应的实现案例。基于VisualC++中的MFC框架,采用案例教学法建设了丰富的教学资源,解决了实践教学资源匮乏的问题。先后编写了适合应用型本科院校使用的理论和实践相对应的立体化教材,即《计算机图形学基础教程(VisualC++版)》《计算机图形学实践教程(VisualC++版)》和《计算机图形学基础教程(VisualC++版)习题解答与编程实践》《计算机图形学课程设计教程(VisualC++版)》等国家级“十二五”规划系列教材。教材内容从编程角度讲授计算机图形学原理和算法,强调真实感光照模型的实现,在不使用任何图形库的前提下,使用MFC的绘制像素点函数,按照计算机图形学的基本原理开发出可与OpenGL或Direct3D显示效果相媲美的真实感图形。
(二)实践教学案例建设实践教学资源选用VisualC++的MFC作为开发工具,以生成真实感光照模型作为教学主线,开发了满足课堂教学、实验教学、课程设计以及工程化训练需要的“验证性、综合性、创新性和工程化”4个层次的教学资源[8]。在验证性资源方面,主要对应教学内容每一个原理开发了60个源程序案例,此外以出版“习题解答”教材的形式给出了200个习题答案,以及拓展案例,这些资源有益于学生形象化地理解图形学原理和算法。该资源应用于案例化课堂教学和课后练习。在综合性资源方面,开发了金刚石图案的绘制、任意斜率的直线段的绘制、交互式多边形、二维、三维几何变换、裁剪、地理划分线框球、透视投影、简单光照模型、Phong光照模型、Gouraud光照模型、纹理映射等18个源程序案例。该层次资源应用于实验教学,指导学生综合运用所学的图形绘制原理和算法绘制较为复杂的图形。在创新性资源方面,开发了基本图元光栅扫描演示系统、动态光源演示系统、3DS接口演示系统、递归动态球体演示系统和圆环动态纹理演示系统等源程序案例。该层次的资源应用于课程设计,旨在提高学生绘制图形的创新性思维和编程能力。在工程化资源方面,开发了基于3DSMax绘制的建筑物几何模型、基于Maya绘制的人物角色等模型,用户能够将绘制的模型导入到场景内进行驱动。该层次的资源主要应用于毕业设计、大学生创新项目;该资源应用于游戏开发、虚拟现实,以满足企业工程项目开发的需求。4个层次的资源构成了图形学实践教学资源库,资源从单个知识点的学习、到多个知识点的综合应用以及图形系统的开发和基于真实建筑物的场景的绘制,全方位地强化了学生的动手能力。该资源库既覆盖了计算机图形学教学全部知识点及教学全过程,又体现了工程应用特色。同时,该资源库使教学模式由传统的灌输式转换为案例化教学法,有效地培养了学生的逻辑思维能力、实际动手能力和应用创新能力。
(三)““微课程”建设随着数字信息时代的到来,以“微课程”为基础的“微教学”模式逐渐在教育领域发展起来。为提高教学效果、增加学生获取知识的方式,课题组进行了“微课程”资源建设。首先,选取课程的重要知识点和难点,再针对某一知识点进行教学设计,结合案例资源制作演示文稿PPT、微教案、微反思、测试题及教师点评等。其次,采用“录屏”方式录制短小精悍的微视频。“微课程”具体建设项目为:1.直线的Bresenham算法;2.圆的中点算法;3.直线的反走样算法;4.有效边表填充算法;5.二维几何变换算法;6.三维几何变换算法;7.正交投影算法;8.Bezier曲线算法;9.Bezier曲面算法;10.斜投影算法;11.透视投影算法;12.背面剔除算法;13.简单光照模型算法;14.三维纹理映射算法;15.函数纹理映射算法。
三、“案例化”+“微课程”教学方法
(一)““案例化”教学方法使教学重点从传授知识转向能力培养在教学过程中,采用“公式原理-算法实现-实践拓展”的教学法取代传统的知识讲授教学方法,将编程实践贯穿于整个授课过程中,让枯燥的理论在实践中得到检验。教师在讲解原理和算法时,引导学生分析和归纳,设计编程思路,实现所需图形的开发。这样既传授了图形学的理论算法,又提高了学生的编程实践能力。
(二)““微课程”教学方法使教学模式由传授方式转向引导方式“微课程”作为一种教学资源在电子书包、线上线下学习和翻转课堂教学中有着非常重要的作用,它可以作为课堂教学讲授的实例演示与补充,微课还可成为翻转课堂的教学资源。“微课程”具有“碎片化学习”和“情景化学习”的特点,有利于学生课前预习、课后复习,让学生能根据自身掌握的情况反复学习。这种学习方法,更符合学生的认知心理特点[10]。案例化课堂教学是面对面教学,它的优点是可以和学生互动教学,有利于激发学生学习的主动性,有利于学生实践能力的培养;缺点是教学过程不可重复,无法兼顾学生的差别化学习进度与节奏。而微课具有学习可重复性的优点,学生可以根据自己的学习节奏灵活选择,但缺乏课堂互动是微课的缺点。将“课堂案例化”和“微课程”线上线下教学方法相结合,这既改变了传统教学方法的弊端,又激发了学生学习的主动性,能为培养适应社会需求的应用型人才奠定基础。
(三)教学考核评价由于该课程是实践型很强的课程,因此课程考核评价采用以编程操作为主的上机考核。通过建立注重过程评价、突出能力导向的多元化考核评价体系,提高学生参与课堂教学的积极性,从而实现对学生能力导向的全面客观评价。考核评价分为课堂过程性考核+实验考核+期末大型作业上机编程考核。课堂过程考核分值占总分的50%,实验占总分的30%,期末占总分的20%。课堂过程性考核的方法是将学生分组、定期轮流进行考核,要求学生完成课后作业后,按要求进行程序演示并回答教师的提问,最后提交全部的源代码与相关文件的电子档。实验考核方法是根据完成实验项目的情况进行评定成绩,包括程序代码是否符合编写规范、运行程序是否实现了预期效果。期末大型作业通过上机编程进行评价成绩,包括程序运行效果评价、设计报告评价,设计报告内容要求有源代码和说明书。