时间:2023-03-16 17:34:23
导言:作为写作爱好者,不可错过为您精心挑选的10篇计算机图形学课程,它们将为您的写作提供全新的视角,我们衷心期待您的阅读,并希望这些内容能为您提供灵感和参考。
\[3\]杨开城,李文光,胡学农.现代教学设计的理论体系初探\[J\].中国电化教育,2002(2).
\[4\]张贵芹.以“学习活动”为中心的《课程理论》课的教学设计\[EB/OL\]..
\[5\]杨开城.教学设计理论新探索\[M\].北京:电子工业出版社,2005.
\[6\]王楠.在线学习活动设计策略研究\[J\].中国远程教育,2011 (2).
计算机图形学是伴随着计算机及其他设备的发展而产生的,是一门研究怎样利用计算机表示、生成、处理和显示图形的原理、算法、方法和技术的学科[1-2]。目前,计算机图形学已经成为计算机学科中发展最活跃、应用最广泛的分支之一,成为许多计算机从业人员的必备素质之一,也是计算机及相关专业本科生的一门专业选修课。该课程在我校已经开设了多年,其教学任务是本着理论与实践相结合的原则,以基本概念、算法原理和实践技术为主线,使学生掌握计算机图形生成与处理技术的基础知识、基本原理和方法,培养学生的实际动手能力。然而,历年的教学工作中发现,由于该课程学科内容丰富、理论难度大、实践性强,且作为专业限选课学时又有限,导致了学生对所学内容不易掌握,疲于应付,甚至产生学生厌学、教学低效等现象。
因此,如何提高学生的学习兴趣,增加课堂信息量,解决课时少与内容多的矛盾、理论与实践的矛盾,是计算机图形学教学工作中一个非常值得思考的问题。本文面向计算机科学与技术专业,在分析计算机图形学教学中存在问题的基础上,针对该课程的学科特点和学生的特点,根据笔者近年来在教学实践中的亲身体会,探讨一种新的教学思路和方法。
1计算机图形学的学科特点
计算机图形学是一门理论和实践兼顾、综合性很强的交叉学科,涉及内容和应用领域都很广泛。它涵盖了计算机科学、数学、物理学等其他相关学科的知识,学科交叉繁杂,且整个学科的发展日新月异。同时,该课程对高等数学、线性代数等基础数学有较高的要求,以数据结构、计算机高级语言、图形基本原理等为先导课程。因此,要将这样一门课的内容保质保量地传授给学生,不是一件容易的事,需要积极探讨新的教学方法和教学思路。
2教学中存在的问题
在教学实践中,笔者发现该课程的教学问题主要体现在以下几个方面:
1) 理论基础要求高,教学效果差。计算机图形学理论性强,部分算法抽象且以数学为依托,教学过程中过分强调课程的数学基础,侧重于算法原理的推导,而多数学生数学功底薄弱,故在学习过程中表现出畏难情绪;同时,其先修课程都是在低年级开设的,容易遗忘,而在计算机图形学的课堂上又不可能花太多的时间进行先修课程的复习,从而使其成为部分学生难以逾越的障碍。
2) 教学内容多,知识点分散。计算机图形学涉及的方法原理很多,教学内容易面面俱到,导致学生只掌握了分散的知识点,没有形成一条完整的知识链,学生对所学知识无所适从,失去学习的目标,极大影响了学生的学习热情;同时,教学内容只局限于经典的算法原理,面向学科前沿动态的内容涉及较少,不利于开阔学生视野,激发他们自主学习的意识和兴趣。
3) 实验课比例较小且实践环节滞后。计算机图形学也是一门实践性很强的学科[3-4],上机实践是培养学生动手能力的主要手段,也是学好这门课的必要手段。但是,由于总课时的压缩,实验课时很少,仅提供8学时,使原本很重要的实践活动变成了搭配;上机实习平台采用的是目前已不作为主要开发工具的Turbo C,致使学生不能在实验中获得将来就业环境下需要掌握的编程知识,上机兴趣不高,同时大部分学生本身的编程能力也不强,最终导致学生丧失编程的兴趣和能力。
4) 学生积极性不高。计算机图形学开设在大三上学期,大部分同学把精力用在考研和考公务员等方面,而这门课不是考研的必考课,学分也不高,因此,大多数同学认为图形学不重要,学习的积极性不高,整个学习过程都很被动。
3教学思路探讨
计算机图形学的教学目标之一,就是通过本课程的学习,使学生对计算机图形学有一个全面、感性的认识,理解并掌握部分经典算法,了解当前的研究热点。根据这一实际要求,提出了计算机图形学课程的总体教学思路。在教学中,以基本理论和算法原理为主线,以Turbo C、OpenGL等软件为载体,对图形学内容进行整体优化,加以创新处理,采用多种教学方式,加强理论与实践的结合,通过正确引导,激发学生的兴趣,挖掘学生的潜能,最终培养学生的逻辑思维能力和实际动手能力。以下笔者将根据自身的教学实践来阐述该课程教学过程中的认识和做法。
3.1上好绪论课,激发学生的学习兴趣
教学过程中调查发现,大多数学生对计算机图形学采取的是一种敬而远之的态度。首先,他们通过计算机图形学在娱乐、广告等领域的广泛应用充分感受到该课程的生动有趣及实用性,对该课程饱含热情;而与此同时,在他们的印象中,计算机图形学涉及学科很多,尤其数学公式很多,很多内容难以理解和掌握,故他们又对学好这门课充满怀疑。也正是这种期望与现实的失衡成为打击学生学习热情的“元凶”。因此,我们应该重视绪论课,并以此作为突破口,通过查阅大量资料,结合目前图形学的发展动向,根据所讲授内容,充分利用多种教学手段,将图形学知识融汇贯通起来,让学生在不知不觉中了解并接受计算机图形学,解除他们的疑惑,鼓舞他们的热情。如在介绍图形学在虚拟现实的应用时,可以插入一段视频,模拟人在虚拟场景中漫步,不但可以讲明具体应用,而且学生易于接受,印象深刻。
3.2教学内容
计算机图形学内容深而广,知识更新快,教学工作者需要在有限的学时内,即兼顾基础知识又能反映计算机图形学的研究进展,因此,教学过程中,在教学内容上要注意以下几点:
1) 根据学生的接受程度,精选核心内容,压缩或屏蔽部分知识,使学生专注于必要知识的学习,从而提高教学效率和教学质量。我们的教学内容主要包括:图形变换、光栅图形学、几何造型、图形裁剪及真实感图形绘制。其中,前两部分相比较而言,是基础,内容较简单,讲解要深入一些,保证该部分理论具有“点”的深度,如几何变换,包括;平移、旋转、缩放等变换,以及几何变换的矩阵表示形式和复合变换的多矩阵组合形式,此外还要说明齐次坐标引入的必要性;几何造型中,尤其是曲线曲面造型部分,要根据学生的实际情况来决定内容的深浅。对于曲面,难度较大,理解起来比较困难,不适合本科生的学习,故其生成算法完全被屏蔽;而曲线的生成算法虽较曲面易理解,但也不能过于深入,这里只重点介绍B样条曲线和贝塞尔曲线的生成技术和特点,并且讲解过程中,结合现实生活的例子,引入具体应用,如在汽车、飞机外形设计中的应用;裁减计算,也是计算机图形学的核心,这里重点讲解直线段的裁剪算法和多边形裁剪算法;对于真实感图形绘制部分,由于涉及的知识面广,理论深,同样不适合本科生的学习,故这一部分内容只介绍一些基本概念。总之,上述的内容涉及许多概念和算法,要求学生把重点放在基本概念和算法的思想上,不强调学生去掌握和实现算法的具体细节,但要求掌握几个经典的算法。
2) 注重基础,强调基本原理和基本概念的理解,同时还要突出重点、重视应用。对一些要求学生掌握的经典算法,如Bresenhan算法,扫描线填充算法等,要重点讲授,仔细分析,强调其基本原理和基本思想,并在学生理解掌握的基础上,结合具体实例的剖析,告诉学生理论和实际应用的切入点,给予学生理论结合实际的基点,激发学生兴趣,逐步培养他们的科研能力。
3) 制定教学内容时还应跟上时代步伐,介绍一些最新的学科前沿和研究进展,一方面增加理论教学的趣味性,另一方面使学生对学科前沿有一个概念性的直观理解,增加学习兴趣,拓宽他们的知识面,从而为学生从事该领域的应用开发或研究工作打下良好基础。
3.3理论教学
计算机图形学的教学应采取课堂讲授为主、上机实验为辅、以学生为主体、教师为主导的教学模式。为达到教学效果,理论教学应从以下几方面加强:
1) 加强可视化教学。
计算机图形学的很多算法理论性很强,数学模型也比较抽象,单纯采用文字叙述附以静态图片的PPT形式的教学手段,教学效果并不理想,尤其是对于一些经典或复杂的算法,效果更差。因此,应充分利用目前流行的课件制作工具,如Flash、OpenGL等,制作经典算法的仿真演示,使晦涩难懂的原理公式变成栩栩如生的画面。笔者在讲授经典算法时,将其原理用Flash做成动画插入到PPT中,使学生可以直观感受到算法的效果,提高了课堂气氛,增加了学生的学习兴趣。
2) 注重启发式教学。
平铺直叙、满堂灌的教学方法只会让学生感到枯燥、乏味,从而影响他们的学习积极性和主动性。尤其在讲授以数学知识为支撑的算法时,切忌繁琐复杂的公式推导和连篇累牍的算法分析,避免学生的烦躁情绪,而应采用启发式教学方法,通过“提出问题同学解答问题分析问题解决问题分析解决方法的优缺点”的思路,引导学生思考,层层深入、逐步展开,充分调动学生的学习积极性。例如在讲解多边形裁剪时,首先启发学生多边形是由线段组成的,是否可以将线段裁剪方法用于多边形裁剪?学生点点头,然后接着问,那么是否适用呢?学生进入了思考的状态,这时借助课件给出采用线段裁剪算法对多边形进行裁剪得到的裁剪结果,并给出一个否定的答案,继续提问为什么会不适用?引导学生进一步思考,然后进行分析,给出不适用的原因,在线段裁剪算法中,是把一条线段的两个端点孤立地加以考虑,而多边形是由一些有序的线段组成,要求裁剪后的多边形仍保持原多边形各边的连接顺序。既然这个算法不适用,就应该寻找一种有效的裁剪算法,接着引入多边形的逐边裁剪算法。介绍完逐边裁剪算法后,继续启发学生思考,这种算法是否适用于所有的多边形?学生会给出肯定的回答,这时进一步启发,如果是凹多边形,逐边裁减算法是否适用,如果不适用,如何改进?这可能是学生没有预料到的,他们会对接下来的内容表现出浓厚的学习兴趣,进一步分析,当多边形为凹多边形,且裁剪后的多边形有两个或多个分离部分的时候,由于只有一个输出顶点表,表中最后一个顶点总是连着第一个顶点,会出现多余连线的现象,这就是下一步需要改进的地方,而边界裁剪算法则可以避免这一问题。再如,在讲解直线段的绘制时,首先让学生自己设计一个算法,这时几乎全部的学生都会给出直线段生成的普通算法,即根据直线方程,通过设置x取值范围,求出屏幕的一系列点,然后提问学生,从算法效率角度来看,普通算法存在怎样的问题,引导学生思考,最后引入直线段的绘制算法。因此,启发式教学方法可以给学生主动思维和积极思维的空间,将学生一步步带入算法设计中,有效提高教学质量。
3) 做好课前回顾。
以目前课程开设时间和学生的实际情况,要求学生课后复习课前预习似乎是强人所难。为了加强知识的连贯性,巩固所学知识,应该在课前拿出较短时间对上堂课的学习内容进行简单回顾,然后过渡到新的教学内容。
3.4实践教学
实践教学是理论教学的深化和补充,是学好计算机图形学的重要保证,也是培养学生动手能力的有力武器。因此,教学过程中要加强实践教学,将理论教学和实践教学密切结合起来。
1) 实验题目层次化。
根据大纲要求,结合学生的实际情况,将实践教学由浅到深分层次进行。我们共有8个学时的实验,按照由浅到深的原则安排了4个小实验:直线生成、图形变换、裁剪计算、曲线生成,以及1个综合性实验。对于验证型实验,即那些有代表性的算法,如直线生成、裁剪计算等,要求每个学生根据教材的子程序亲自动手实现,加强对课堂所学基本算法的理解,培养他们的成就感,并且,题目的要求也随着难易程度发生变化,如直线生成算法比较简单,要求学生实现的算法必须具有通用性,同时,为增加学生的学习兴趣,可以巧妙设计实验内容,如在实现直线生成算法时,可以让学生画线生成汉字;图形变换主要让学生实现二维图形的变换,包括平移、旋转、缩放及复合变换等内容,由于这一实验包含多个操作,要求学生增加菜单选择功能;裁剪计算要求实现线段裁剪算法,从易操作的角度出发,要求算法采用交互式的画线方法;曲线生成算法要求学生采用根据参数曲线定义的方法来实现,对于编程能力强的同学,在曲线生成的基础上,增加鼠标拖动控制点改变曲线形状的要求。对于综合型实验项目,学生可根据自身学习能力和实践能力选择独立完成或合作完成,通过综合型实践训练,不但培养了学生的动手能力和创新意识,而且还培养了他们的团队协作精神。
2) 开发环境多元化。
完善教学内容,扩展学生的知识面,实践教学采用开发环境的联合。对于验证性实验,学生可在Turbo C环境中实现,而对于综合性实验,鼓励学生基于OpenGL进行编程。让学生提前介入到使用OpenGL编写“应用软件”,不但可以满足学生的兴趣,还可以提高学生的实际动手能力。
4结语
计算机图形学是一门不断发展的交叉学科,其教学方法需要在实践中不断探索。我们教学工作者在研究高效率的教学手段和教学方法的同时,还应积极参与教学内容相关的科研工作,从而更加明确教学重点和难点,做到在教学过程中有的放矢,激发学生学习和思考的积极性和主动性。
参考文献:
[1] 何援军. 计算机图形学[M]. 2版. 北京:机械工业出版社,2009:2.
[2] 吴元斌.“计算机图形学”教学的几点体会[J]. 安康师专学报,2004(4):119-121.
[3] 鲁敏,于慧颖,郑平刚. 信息工程专业计算机图形学教学模式思考[J]. 高等教育研究学报,2006,29(3):31-33.
[4] 潘革生,何援军,赵峻颖. 计算机图形学教学理念的研究与实践[R]. 烟台:第一届中国图学大会,2007:476-479.
The Thinking of Teaching on Computer Graphics
WANG Yanchun, ZHANG Jinzheng, LI Shaojing
关键词:双语教学;专业英语阅读;计算机图形学
中图分类号:G642
文献标识码:B
在当今社会全球化发展的时代背景下,计算机和英语已经成为学生必须掌握的工具。对于计算机专业的学生来讲,计算机的很多技术文献(指令)都是英文的,能熟练阅读英文资料、文献和书籍是顺利完成计算机专业课程学习的一个必要条件。
1计算机图形学课程实施双语教学的目标
计算机图形学(Computer Graphics)是计算机科学学科发展最活跃的分支之一,在国民发展的各个领域中发挥着重要的作用,2002年该课程被批准成为北京工业大学十门首批设立的双语教学课程之一。
双语教学是指使用汉语和英语这两种语言进行教学,而不是纯英语教学,它应该是两种语言的合理应用,包括讲授内容的针对性、学生的理解性、专业知识的主导性,主要目的不是学习英语,而是为了使学生通过外语这一语言工具探索世界,并适应社会多样化的需求。
在教育部举办的一次有关双语教学的研讨会上有专家指出,高校开展双语教学可以得到三个层面的收获:一是外文专业词汇和外文水平的提高,二是学科知识和能力的掌握,三是吸收国外先进的理念。
要在计算机图形学课程中有效实施双语教学并取得良好效果,必须首先清楚双语教学的目标,并在教材选择、教学方式、课堂母语使用度、双语教师的选择及考核方法等具体实施过程中贯彻执行。
传统的英语教学往往以生活语言及文学语言为主要教学内容,强调学生的生活交际能力。很多学生虽然通过了四、六级英语考试,但在阅读很普通的英文专业资料时仍然困难重重,毕业论文的摘要破绽百出。因此,专业课双语教学应致力于为学生创造使用外语进行学术思维和交流的氛围,作为传统英语教学的有效补充,提升学生应用英语进行工作交流的能力。
具体而言,课程开展过程中,学生逐步能听懂英文授课、英文学术报告,进而参与和主持英文学术讨论和辩论;准确、全面地理解教材内容,流畅地阅读专业文献,用英文撰写作业或与专业相关的描述性、说明性、叙述性和论述性文章。
学生通过语言关后,还要通过英语这一工具获得新的知识并将知识化为实际工作能力。计算机专业的双语教学要致力于在专业教育上保证教学内容的先进性,教学内容与国际接轨,激发学生双语学习的积极性,同时要开拓学生专业知识的深度和广度,这就对双语教学的专业课任课教师提出了更高的要求。
2计算机图形学双语教学的模式
通过这些年在双语教学中的实践探索,作者摸索出了一些有效的教学方法,并对其中一些必须面对的问题进行了深入的思考。
(1) 教材的选择。原版教材的使用可以帮助教师学习和借鉴国外现代的教学理念、先进的教学方法和手段,有选择地吸收新的教育思想和与国际接轨的人才培养新体系。尤其该学科专业领域的资深学者所编写的教材,往往具有独特的逻辑结构和思维方式,使学生能够清晰准确地理解所学课程的内容。
从目前国内进行的双语教学实践来看,学生更欢迎原版教材,普遍认为原版教材内容更加实用,更能采用符合国际惯例的方式处理专业事务和信息。但是,原版教材在某些方面脱离我国国情,不适合高校原有教学体系的情况,影响了学生专业知识的系统性和完整性。这就需要任课老师认真选择适合学生使用的教材。
(2) 大纲的制定和学时的调整。由于使用两种语言授课,且学生接受能力有限,双语教学过程中为了让学生理解透彻所授内容,难免出现课程进度减缓的情形。因此,教学大纲可以允许与纯母语教学有一定出入,任课教师可根据经验确定向学生传授的知识系统结构。对国外教材没有必要照搬,对基础理论和重点内容一定要讲清、讲透,就是多占用一些课时也在所不惜。
(3) 讲授的方式。目前学生间英语水平相差较大,在讲课时要由浅入深,一开始可以适当使用较多的中文,循序渐进地增加英文内容。作者在每次上课时总要抽出十分钟的时间用英文回顾一下上次课所讲的主要内容,让学生对所学知识有一个整体回顾,又能在熟悉的语言环境中锻炼英文的理解能力。由于计算机图形学是基础课程,以学习基础知识为主,一些专业术语采用渐进式加入,简单的内容用全英文讲解,在算法、原理等核心内容部分用中文讲解,最后用英文对所讲内容进行总结。这样既营造出一个英文学习的环境,又用中文让学生很好地理解本章节所学的重要知识点。随着学生英文学习能力的增加,在课件中加大英文的内容,直到全部使用英文课件。这样学生在学习过程中不会因为外语水平而失去对这门功课的学习兴趣。
当然这也需要任课教师具备很好的技巧,在适当的语境中完成英文的转化,让学生学会专业知识的同时又提高了专业英语水平。在一些较难的知识点中,作者会通过肢体语言、板书等方式来帮助学生理解概念,避免由于语言滞后造成学生的思维障碍。教师还需循序渐进地增加专业词汇,在课堂上有针对性地把原版教材中的基础理论、关键概念和词汇提取出来进行讲解。通过老师细致的观察及时捕捉学生的反馈,若发现学生没有很好地反馈,就要用中文及时讲解一下,使学生充分理解这一知识点,再用英文来讲授。
3双语教学的思考
(1) 教师队伍。尽管国内多数高校在试行双语教学的过程中不断强调要重视双语教师师资的培养,但是即使是有留学经历的教师,完全用英语授课也有困难。教师水平成为顺利推广双语教学的瓶颈之一,这将是一个长期努力探索的过程。
值得注意的是,双语教师的培养不同于一般的专业授课教师的培养,也不应等同于英语专业的教师培养,必须两者兼顾。专业课英语大多属于科技英语,准确无误地使用专业英语进行口头和书面表达应当是双语教师在自我提升过程中必须做到的。
另外,双语教师本身应是热爱双语教学的,能够以最大的热情投入到双语教学中去。双语教学具有很大的难度,不是业务水平高或是英文底子好就可以胜任的。因为,双语课程除了要讲好一门课,还要运用好一门外语,更重要的是,必须将两者都很好的兼顾。熟练运用两种语言授课,合理分配两种语言整合知识点,必须成为双语教师对自身的要求。如果双语教师的热情不够,往往会造成虎头蛇尾的情况。
中图分类号:TP391.9 文献标识码:A 文章编号:1009-3044(2014)01-0209-04
1 概述
虚拟现实(Virtual Reality)也称虚拟现实环境,是指用计算机技术生成一个逼真的三维视觉、听觉、触觉或嗅觉等感觉世界,让用户可以从自己的视点出发,利用自然的技能和某些设备对这一生成的虚拟世界客体进行浏览和交互考察。简单的说,虚拟现实是一种可以创建和体验虚拟世界的计算机系统,提供了先进的人机交流技术。目前虚拟现实技术已被广泛应用视景仿真现实、军事驾驶模拟、3D游戏开发、虚拟设计与规划、仿真培训、远程操作控制等领域之中[1]。
虚拟现实技术同时也是一项综合性计算机图形交互技术。计算机图形学中的一些方法,如三维造型与变换、光照模型、科学计算可视化等为虚拟现实技术提供了理论和技术基础。计算机图形学的发展带动了虚拟现实技术的进步,同时虚拟现实技术在各领域中的广泛应用也使图形学的各个研究方向得到充分发展[2]。在高校计算机专业的计算机图形学课件的教学中,虚拟现实不算是一个重要的、必修的知识点,但如能在掌握三维造型方法的基础上辅以虚拟现实的运用,那么将能有效地提升实践操作的实际应用意义,激发学生研究探索兴趣,令图形学课程的相关知识综合运用起来,达到学以致用,相得益彰。
2 虚拟实现技术简介
虚拟现实有四个主要特征:多感性;沉浸感;交互性;自主性。理想的、最高境界的VR技术是:虚拟场景具备与真实环境一样的真实感、能调动一切人所具有的感知功能、操作者完全感受与自然环境一样的自由度和人-物交互感应。但实现中由于技术的限制,达到高度逼真的虚拟现实比较困难。目前,从技术难度和体验程度来划分,虚拟现实技术主要分成以下三类:
1) 桌面虚拟现实(Desktop VR):利用个人计算机和工作站进行仿真,将计算机的屏幕作为用户观察虚拟境界的一个窗口,通过各种输入设备实现与虚拟现实世界的充分交互。
2) 沉浸式虚拟现实(Immersive VR):利用头盔式显示器、位置跟踪器、数据手套等多种交互设备,为参与者提供一个新的、虚拟的感觉空间,并产生一种身临其境、全心投入和沉浸其中的感觉。
3) 分布式虚拟现实(Distributed VR):将不同用户通过计算机网络连接在一起,共享同一个虚拟空间并协同工作达到一个更高的参与协作境界[3]。
其中,桌面虚拟现实是最基础的VR方式,虽然现实体验真实感不足,但该方式成本低最易容实现,且其应用也最为广泛。在计算机图形学教学实践中,根据学习程度的不同,可以引导学生通过以下三种方式实践桌面虚拟现实的实验:(1) 基于VRML的VR实现;(2) 基于三维建模技术的VR实现;(3) 基于Web3D技术的VR实现。
3 计算机图形学的虚拟现实实验探索
3.1 基于VRML的VR实现
VRML(Vritual Reality modeling Language,虚拟实现建模语言)于1997年作为国标标准正式,它揭开VR技术在互联网上的应用序幕,也推动了后来Web3D技术的发展更新。
VRML提供对三维基本对象如长方体、球体、圆锥、圆柱等的描述,同时定义了三维应用中常用的语言描述,如层次变换、光源、视点、材质和纹理映射等,并且有简单的行为特征描述功能。一个VRML文件一般由文件头、脚本和路由组成,其基本语法结构如下:
#VRML V2.0 utf8 #文件头,放在第一行,是VRML文件的标志
节点名{
域 域值
… …
}Script{ #脚本节点
… …
}
ROUTE … … #路由,把入事件与出事件相关联
以一个简单的程序实例说明VRML的编程模式。该程序建立了三个3D对象:长方体、球体和圆锥并赋予了不同的方位、颜色等属性。
#VRML V2.0 utf8
DEF box Transform{ #定义一个变换节点box
translation -5 0 0 #设置空间坐标位置
children [ #定义节点的子节点
Shape { #定义形状
geometry Box{size 2.0 3.0 1.0} #长方体定义
appearance Appearance{ #定义外观
material Material{ #定义材质
diffuseColor 1 0 0 #设置漫射色颜色
} } } ] }
DEF sphere Transform{
translation 0 0 0
children [
Shape {
geometry Sphere{} #定义一个球体
appearance Appearance{
material Material{ diffuseColor 0 1 0 }
} } ] }
DEF cone Transform{
translation 5 0 0
children [
Shape {
geometry Cone{ } #定义一个圆锥体
appearance Appearance{
material Material{ diffuseColor 0 0 1 }
} } ] }
VRML程序保存成.wrl文件格式。另外,要使浏览器提供VRML的浏览功能,还必须安装VRML插件,常用的插件有Contact、Cosmoplayer、Cortona等,图1是上述程序在安装了BS Contact VRML插件的IE浏览器中的显示效果。在浏览器中用户可通过系统提供的工具实现对三维对象的交互式显示操作。
基于VRML的虚拟实现技术可展示虚拟场景中各部件的位置及相互之间的关系,其文件短小,适用于网络应用。但其不足之处是三维图象质量一般,难以实现复杂场景展示及交互,与外界的通信能力也比较差。
3.2 基于三维建模技术的VR实现
在掌握一定三维建模方法的基础上,也可借助三维建模软件的功能进行VR实现。三维建模软件能够提供虚拟现实中所需要的各种三维模型,较常用的软件有3DSmax、Maya及Creator等,这些软件把复杂的建模过程变得非常简单和易于理解。以下以3DSmax实现摆球仿真为例介绍VR实现方法:(1)在软件平台中建立了仿真摆球模型,并实现摆球的运动动画,如图2如示。(2)使用3DSmax“导出”功能将该模型导出为VRML97(*.WRL)格式文件。(3)使用安装了VRML插件的浏览器打开该wrl文件实现摆球的虚拟运动展示及交互。图3为摆球在IE浏览器中的VR显示效果,用户可用工且以任意方位和角度观察摆球的运动。
该方法可在实现较复杂模型、动态模型的基础上现实VR。其最终显示方式仍是VRML描述模式,由于受插件的限制,浏览器达不到理想的实时展示和实时交互效果。
3.3 基于Web3D技术的VR实现
目前更主流的虚拟现实技术是凭借Unity3D、Wirefusion、Cult 3D、Virtools、C3d、Truntool等一类引擎下实现的Web3d技术。这些软件使用专用的文件格式和浏览器插件,在实现实时渲染、图像质量、造型技术、交互性以及数据的压缩与优化上均优于VRML。此外,这些软件也可与3DSmax等三维建模软件配合使用。
以Unity3D为例,它是一款VR应用程序开发引擎,具有跨平台、强大的地形编辑功能、高效高质渲染效果、支持用户定制交互要求等特点,非常适合开发高逼真虚拟和交互展示的需求。基于Unity3D的虚拟现实是用Unity3D引擎开发的一个能够实现动态加载和展现3D模型的Web Player应用。通过安装Unity3D插件就可以实现在浏览器上运行Web Player来加载产品模型展示[4]。
在虚拟展示系统中,用户对场景中具体的产品的选取及操作是交互性最充分的体现,即当用户在虚拟场景中用鼠标点击或指向某一产品时,系统应做出相应设定的响应[5]。Unity3D 的GUI接口提供了各种控件(如按钮、窗口等)以支持编辑用户交互界面;通过重写鼠标事件可以检测用户的各种输入信息并作出相应的响应;通过变换组件又可以完成产品的平移、旋转、比例变换等各种操作。图4及图5是运用Unity3D和3Dsmax开发的“运动与健康虚拟现实展厅”。作品通过VR技术实现主题为“运动与健康”的漫游展厅,并以Web3D网页形式提供了一个实时交互的参观平台,使用户可以身临其境地感受展厅内的景观。
就目前而言,大多数的Web3D技术主要用于三维显示技术的网络应用开发,这也决定了Web3D技术主要特点就是对3D模型的网上三维交互演示。
4 结束语
虚拟现实技术与图形学技术紧密关联,图形学三维造型等技术是虚拟现实的一个坚实台阶,VR技术又是图形学的拓展延伸,具有广泛的应用前景。该文尝试在高校计算机图形学教学中引入桌面虚拟现实的实验,并由浅入深地提出三种VR实现方法,旨以使计算机图形学的实验开展更具实用及研究意义。
参考文献:
[1] 陆枫,何云峰. 计算机图形学基础[M].2版.北京:电子工业出版社,2008:11-12.
[2] 石玉玲.虚拟现实技术与图形学[J]. 职大学报,2008(2):90-91
Abstract At present, computer graphics has become an important part of undergraduate computer education, and it is also plays an important role to cultivate innovative talents to adapt to the information age. Based on the teaching of computer graphics course by the author as an example, analyzes the existing problems in the teaching of computer graphics, and put forward improvement ideas from three aspects: according to the different needs of students utilizing the third party demonstration teaching and cross curriculum interpretation, introducing course group to replace single course, employing group practice examination instead of individual, and other forms to improve the quality of teaching.
Keywords computer graphics; third party demonstration; course group; group practic
计算机图形学是一门介绍显示、生成和处理计算机图形的原理和方法的课程。它在计算机总体教学体系中属内容综合性较强且发展迅速的方向之一。该课程既有具体的图形软硬件实现,又有抽象的理论和算法,旨在为学生从事相关工作打下坚实基础。学生须以高等数学和线性代数的基本理论和较熟练的程序设计能力作为本课程学习的基础。课程的难点在于计算机图形学研究范围广,与其他学科交叉性强,且知识不断更新变化。在教学实施过程中,难点是理解和掌握相应的基础理论和算法,以及利用计算机图形学相关工具进行图形学实际问题的解决。
本课程对学生的培养学生围绕以下三个方面展开: (1)建立对计算机图形学的基本认识,理解图形的表示与数据结构、曲线曲面的基本概念。(2)理解并掌握基本图形的生成算法,并能对现有的算法进行改进,理解图形的变换和裁减算法。 (3)面向算机图形的程序设计能力,以底层图形生成算法为核心构建应用程序。相应的考查方式由理论授课、上机实习和课外作业三个单元构成。从近年的授课实践和考试情况分析,该教学内容难度设置合理,深入浅出且相互承接成为体系,学生总体反馈良好。但也存在一些矛盾和问题。以下将对几个问题进行重点阐述与思考,并提出课程改革思路。
1 计算机图形学与计算机辅助设计衔接问题
笔者所在院校是具有航空航天背景的工科院校,“CAD计算机辅助设计”是飞行器设计、机械设计与制造等多学科的重要课程。相关学科学生期望通过对计算机图形学知识的深入理解,促进CAD设计工具诸如Catia、Solidwork和Rhino等先进工具的运用能力。然而,目前的计算机图形学课程的教学和考察环节倚重低层算法讲解与基于OPENGL等的程序设计,除综述外并未具体引入CAD相关内容。产生的问题是,一方面,飞行器设计及机械设计与制造等专业的学生由于程序设计能力不足,难以驾驭较复杂的程序设计任务,在学习过程中心理压力较大;另一方面,由于授课均为教师为计算机相关专业背景,该课程的讲授并未衔接CAD相关技术,学生难以构建二者之间的联系。
解决方案:
本质上,该问题是由于选课学生的学习动机和基础不同造成的。以单一的教学和考查方式难以兼顾这类面向具体应用的学习需求。在教学方法上,采用第三方案例教学法和交叉讲解法相结合以解决此问题。具体的,将CAD等应用场合以具体案例形式讲解,授课教师邀请飞行器、机械设计相关教研组研究生以4~6学时的讲台演示的形式呈现CAD工具完整设计过程。授课教师则以交叉讲解方式为学生讲解运用到的计算机图形学知识点,同时与学生交互式的问答和探讨。在考查形式上,考虑到不同的学习动机和基础,采用多样化实践环节考查。计算机专业学生以OPENGL程序设计为考点,而外专业学生以CAD等面向应用的实践工具为考点,以兼顾各专业的学习需求。
2 计算机图形学与计算机视觉相结合的问题
当前,虚拟现实技术(VR)和人工智能技术(AI)两个最重要最热门的研究领域。虚拟现实的基础理论支撑是计算机图形学,例如三维场景的生成与显示。而人工智能的一个重要应用场景是计算机视觉,例如基于图像智能识别的自动驾驶技术和场景理解技术。很多学生对以计算机视觉为代表的人工智能技术怀有浓厚兴趣,同时,学生又难以区分计算机图形学和计算机视觉的关系。同时,二者在近年来的研究中呈现相互融合的趋势。如基于三维立体视觉的机器人与场景实时定位与重建。如何在计算机图形学课程中,很好地体现两门课程的不同,避免学生的混淆,拓展学生的知识面,都是具有现实意义的课题。
解决方案:
实际上,计算机图形学和计算机视觉可不失一般性的概括为互逆的关系:计算机图形学是由概念设计到模型生成,最终绘制图形图像的过程;而计算机视觉则是从原始图像中再加工并分析理解、以产生新图像(如二维到三维)或输出语义信息(如图像自动标注与理解、目标检测与识别)。将计算机图形学纳入“视觉处理课程群”框架,使学生首先掌握课程群中各课程的侧重点,着重理解图形学在课程群中的作用。精心选取2~3个计算机视觉和图形学交叉的当前主流研究方向,展开概念层面的演示讲解,不深究具体算法,着重阐述两种技术的相互依赖关系并对比二者的区别。相关领域的演示还包括增强现实、人机交互、计算机辅助诊断等等。鼓励学生自主学习,最终使学生在做中学、用中学,提高独立分析新问题和综合运用知识解决问题的能力。
3 如何平衡算法讲解和程序应用技能
计算机图形学涉及的算法多,核心算法是该课程的必讲内容,在算法细节的讲解过程中学生容易产生畏难厌学情绪,注意教学方法以调动学生的兴趣尤为重要。另一方面,对学生的考察方式最终是通过编程实践完成。学生在编程实践中常常遇到大量调试问题,同时要阅读大量文档以了解OPENGL接口函数的调用方法,这个过程占用了很大工作量。
解决方案:
在理论教学部分,着重讲清计算机图形学原理和概念、全面解析经典算法思想。课程强调对理论核心思想的阐述,用通俗易懂的语言,条例清晰的逻辑,进行简明透彻的阐述,附以直观、形象的动态演示系统,力图使学生在较短的时间内、有效地掌握基本理论。分析图形学各种经典算法的原理、可行性及几何复杂性,尽可能多地比较算法之间的思想差异,分别指出它们的优缺点和应用场合,并促进学生思考如何在保证算法的准确性、可靠性的前提下,提高算法的效率。同时注重接近国际前沿的研究内容,注重讲授经典知识和最新进展相结合,以激发学生的学习兴趣,提高课堂效率和活跃度,力争以较少的课时阐述计算机图形学的基本原理、基本方法,加大实践环节比重。通过往年学生完成的优秀课程作业作品的展示,激发学生的创造热情。改革实践环节的考查方式,以项目小组形式取代对个体的考查。原则上每组3~5人,自由组合。在课程结束前,采用小组现场演示讲解的方式,展示小组成员通过编程实践环节完成的一个项目。学生在项目小M中锻炼了团队协作能力,降低了个人工作强度,同时互相学习和督促的氛围使课程作业的质量得以大幅提高。以基础实验――目标性重建实验――自主性训练的层次化实践框架模式,逐步培养学生自主研究,独立解决问题、分析问题,确定解决方案的能力,树立正确的科学研究习惯,培养学生的科学研究能力。
总之,合理设计实践教学案例,进一步实现课程体系和实践内容的统一,建立一个多层次、立体化的实践教学体系,注重学生的参与性与实践性,引导和鼓励学生进行创新实践和课外研学。改革考核方式和考试形式,加大实践环节在成绩中的比重,强化实践能力培养,寓教于乐的同时引导学生追求卓越。此外,计算机图形学技术是发展非常快的一个研究及应用领域,且对编程要求较高,应注重实验室机房投入更新必要硬件,并保障软件编程环境的正常运行。
L鼙疚氖苤泄┦亢蠡YBA15035,江苏省教改项目JGLX13_008资助
参考文献
[1] 孙家广,胡事民.计算机图形学基础教程.北京:清华大学出版社,2005.2.
[2] 唐荣锡,汪嘉业,彭群生等.计算机图形学教程(修订版).北京:科学出版社,2000.
[3] LIU Hailan.On development and application of computer graphics[J].Computer Knowledge and Technology,2010(3):9551-9552.
计算机图形学是近年来发展最快的计算机学科方向之一,是计算机应用专业的必修课程。但在实际的教学过程中,按照传统的教学方式,我们发现计算机图形学涉及到大量的数学知识,包括各种生成算法、处理技术和显示过程,涉及到数学模型和复杂的公式推导,在理解上要求具有比较强的空间想象力,学生理解上比较困难。本文结合二类本科院校培养具有一定创新能力的应用型人才的要求,根据十多年的教学实践,提出了图形系统案例教学方法,将计算机图形学知识和实现图形系统结合起来,从现有系统中找灵感,从计算机图形学课程中学理论,搭建自己的图形系统,使学生真正理解计算机图形学的本质,达到理论与实践双丰收,取得了比较明显的教学效果。
一、课程特点和教学模式
1.课程特点
(1) 计算机图形学不仅涉及到图形硬件、软件和大量的实现算法,而且与微电子学、信息科学、几何学、图论学等专业学科密切相关,并在发展中逐步与图像处理、模式识别、人工智能、计算机网络和计算机语音处理结合起来,要求授课教师具有比较全面的知识结构,讲解有所侧重,合理取舍。
(2) 计算机图形学需要用到大量的数学模型和算法。计算机图形学作为图形显示和处理的一门学科,具有很深的数学理论基础和实用技术。计算机图形学的基础是数学,任何图形的显示都必须首先构造出数学模型,然后再通过算法程序实现图形的显示和处理。另一方面,为了在计算机上显示和处理复杂的图形,要求人们不断地学习和研究数学,构造精巧的数学模型和实现算法,这就是计算机图形学的实质。但对于初学者来说,应当讲授较少的数学知识,或者直接采用数学结论,而简略中间繁琐的数学推导过程。在讲课过程中,如果过分注重图形学所涉及到的理论知识、数学模型和构造算法,学生就会感到比较抽象和难懂。
(3) 计算机图形学是一门实践性很强的课程,不仅要求学量的理论知识,而且更多的是要求算法的实现,要求程序的编写和调式能力,因此需要更加重视实验环节。学习计算机图形学的目的在于构建图形系统,包括计算机图形硬件的搭建和图形软件的编写。计算机图形学是设计AutoCAD、Photoshop、CoreDraw等图形系统软件的理论基础。
学习计算机图形学,要与使用图形系统软件区分开来。计算机图形学是设计图形系统软件的基础,而学习现有的图形软件则是为了进行计算机平面设计、动画设计、影视制作、CAD等具体的应用领域。反过来,参考和学习这些现有的图形系统软件可以帮助理解计算机图形学的知识和方法。
根据用户和计算机图形系统的关系,可以把利用计算机图形学的用户分为三类:一是图形理论研究,二是系统设计程序员,三是图形系统的操作员。
计算机图形学的目标在于培养前两种人才,即图形理论研究与图形系统实现者,研究图形学新的理论和技术,编写各种专业图形处理软件,品设计人员使用。
2.系统案例教学模式
案例教学作为一种教学手段已经得到广大师生的认可。该教学法是在教师的精心策划和指导下,根据教学目的和教学内容的要求,运用典型案例,将学生引入到特定实践环节情境中,并以学生为中心对案例进行交互式讨论和探索的过程。案例教学具有下面四个共同的特点:一是真实性,案例必须是真实可靠的事件;二是典型性,必须是包括特殊情境和具有代表性的问题;三是浓缩性,必须多角度地呈现问题,提供足够的信息;四是启发性,必须是经过研究,能够引起讨论,提供分析和反思。
系统案例教学法是以设计实际的系统为目标,制定系统总体框架,结合理论教学,布置相关实验任务和实践环节,最后将各个独立的实验程序整合在一起,搭建起一个小型实用系统。系统案例教学法要求学习目标要明确,方案设计要合理,理论与实践要一致。针对计算机图形学课程,采用系统案例教学法还要注意以下事项:
(1) 以学生为中心,充分发挥学生能动性。由于所定目标软件系统功能复杂,而课堂教学时间有限,不可能面面俱到。因此,要充分调动学生学习兴趣,发挥主观能动性。学生是案例教学的主角,老师在讲授理论基础上,更重要的是启发和辅导。
(2) 系统案例教学法是一种模拟系统实践的教学过程。虽然类似的软件系统市面上已经有很多,但我们的目的是学生模仿实现,所用到的理论知识在课堂上同步学习,加强学生对理论课程学习兴趣,并结合学生自己的理解和体会,亲自动手实现自己的系统。
(3) 系统案例教学又是一种动态的、开放的教学方式。课堂上讲授的系统理论相同,但系统实现的方法可以不同,在系统实现的过程中锻炼学生运用各种理论知识、综合分析和解决实际问题的能力。
(4) 系统案例教学注重的是系统实现的过程,要的是结果,但这样的要求也反过来促进学生对理论知识的学习,同时也锻炼了学生实际动手能力。
二、系统案例教学方案实施
计算机图形学课程内容包括了图形学的基本概念、图形系统和图形标准、基本图形生成技术、图形几何变换、曲线和曲面、真实图形和计算机动画等,这些内容是设计一个图形系统必备的理论体系。为了实现系统案例教学,实施方案如下:
第一步:明确目标、搭建平台。计算机图形学第一章概述部分主要讲解课程目标和目的、国内外的发展状况和应用领域,加深学生对课程的认识。图形系统和图形标准则是实现图形系统所用到的硬件设备和软件系统,以及图形系统的国际标准。这两部分为学生明确学习目标、搭建系统平台奠定了基础。为了编写图形系统,在第三部分讲解了Visual C++图形程序设计,主要介绍Visual C++集成编成环境的使用、图形设备接口、图形程序设计方法、鼠标编程以及菜单设计等基础,目的是通过对Visual C++的学习,掌握Visual C++图形程序设计的方法,为计算机图形学原理部分的算法实现提供程序工具和方法。
第二步:系统设计、分步实施。按照课程体系和实际图形系统的要求,我们精心设计10个实验项目,覆盖了计算机图形学大部分的知识点,包括:
(1) Visual C++图形程序设计。主要学习Visual C++图形程序设计的方法,掌握Visual C++集成编成环境的使用、图形设备接口和常用图形程序设计、鼠标编程、橡皮筋交互技术、画刷与画笔以及菜单设计等,使学生能够熟练掌握Visual C++图形程序设计。
(2) 直线的生成。理解直线生成算法思想,写出实现程序;添加鼠标功能,实现交互式画直线程序;将10个像素作为步距单位,编出Bresenham算法的示例。
(3) 圆与椭圆的生成。编写中点画圆法的扫描转换程序,考虑原点在(x0,y0)处程序的改动;添加鼠标程序,实现交互式画圆;编写中点画椭圆法的扫描转换程序;添加鼠标程序,实现交互式画椭圆;
(4) 区域填充算法。多边形有序边表算法程序设计;边填充算法和边标志填充算法;简单的种子填充算法和扫描线填充算法;区域填充图案程序设计;要求实现种子填充算法、扫描线填充算法和图案填充算法。
(5) 裁剪算法。编码裁剪算法程序设计;要求用鼠标画线技术,实现交互式裁剪效果;
(6) 交互式技术和用户接口。学习VC++菜单资源编辑器,菜单程序设计举例;学习Autocad绘图的基本方法,了解常用的交互式技术;
(7) 曲线与曲面;抛物线程序设计;Hermite曲线程序设计;Bezier曲线的算法实现;B样条曲线的程序设计。要求加入鼠标和橡皮筋技术,实现交互式生成曲线,并且可以通过调整控制点来随意修改曲线的形状。
(8) 二维几何变换。通过二维几何变换的数学模型,编写平移、旋转、放缩、对称变换;加入鼠标功能,实现交互式移动图形;
(9) 真实图形技术。实现一种消隐技术和光照模型。
(10) 计算机动画。利用一种动画技术,实现一个小型动画。
每个实验都详细地列出了实验目的、实验任务、实验步骤、实验结果分析和实验总结和思考,通过改进程序和算法,提高学生的思考问题和编程动手能力。
第三步:系统整合、实现系统。利用Visual C++菜单编程、工具栏和图标技术,选择实用的绘图实验程序,挂在累累菜单上,并设计出工具栏,就可以进行简易的图形绘制。
第四步:综合评价,创新考核。我们学校开设的计算机图形学是考查课(必修课),主讲教师可以比较方便的安排最后的考核方式。按照系统案例法的思想,我们注重理论结合实践,看重的是系统设计的过程和最后的结果,不能采用一张试卷定成绩的方式,而是采用了50+30+20的考核方式,即最后的系统设计技术报告和系统软件演示占50分,要求技术报告撰写规范,总体设计和分步实施详细,总结部分包括理论学习的知识点、系统实现的优缺点以及系统的扩展和展望等。平时的分步实验结果和实验报告占30分,督促学生课下及时预习和准备实验,并写好实验报告。平时上课考核和作业占20分。这种考核方式可以将学生的考试压力分散到平时,也可以保证系统案例教学的效果。
三、效果分析
经过三年系统案例教学方法的实践,明显地达到了以下教学效果:
关键词:计算机图形学;游戏开发;课程建设
中图分类号:G642
文献标识码:B
1引言
“计算机图形学”是计算机领域一门重要的学科,也是计算机学科方向的核心课程之一,作为一门不断发展的学科,“计算机图形学”的教学应该跟上学科的快速发展以及社会对本学科的人才需求。当前,伴随着计算机科学与媒体技术的相互融合,形成了数字媒体技术这一新的学科,越来越多的国内外高校开始开设数字媒体技术专业,而相当多的高校将“游戏开发”作为数字媒体技术专业的一个主要方向进行发展。游戏设计以高质量的3D技术来展现游戏画面,从角色建模、灯光、渲染、纹理等,无不是基于计算机图形学的算法和理论,因此,“计算机图形学”也成为数字媒体技术专业重要的一门专业基础课。
如何在讲授“计算机图形学”课程的同时,考虑游戏专业人才的培养目标,结合游戏设计的实例来进行实践,使得学生不至于因为算法和理论的枯燥而产生厌学情绪,同时又能将图形学理论和游戏设计实践很好地结合起来,是一个值得深入探讨的问题。
本文分析了“计算机图形学”课程的特点及其在游戏开发专业培养课程体系中的地位以及图形学授课过程中存在的问题,给出了面向游戏设计专业的“计算机图形学”课程教学改革的思路。
2 “计算机图形学”课程的特点及其在游戏开发专业培养课程体系中的地位
游戏开发专业的教育目标是帮助学生了解游戏从策划、设计、开发、测试、运营过程的整个环节,使学生获得扎实的理论基础,同时使学生具备较强的实践能力,掌握最先进的主流游戏开发技术。
“计算机图形学”是游戏设计专业的一门重要专业基础课,当前的主流图形API是对图形学的基本原理和算法的实现,因此,对图形学算法和原理的掌握,能够帮助学生更快更好地理解和掌握主流的图形API,而这些主流的图形API也是当前游戏开发过程中必不可少的工具。
由此也可看出,“计算机图形学”课程应该理论与实践并重,既要讲解清楚图形学的基本理论和算法,又能给学生充分的实践机会和时间,为学生后续学习游戏开发技术打下坚实的基础。
处理好图形学授课过程中的理论讲授和实践的关系,对于这门课程的学习效果至关重要。
当前的图形学的教学现状与游戏专业的教学目标相比,存在如下一些问题。
3 “计算机图形学”授课过程中存在的问题
(1) 传统的计算机图形学的内容可以分为二维、三维两部分,其中二维部分即光栅图形学部分,包括:基本图形(直线、圆弧、椭圆等)的生成算法、二维裁剪算法、填充算法、曲线曲面、图形反走样等内容。三维图形学算法则围绕三维物体的建模、运动、三维场景的建立组织,包括:物体建模(物体在计算机内的表示模型、几何造型)、三维图形的显示(三维图形的几何变换、三维图形的投影变换、三维裁剪)、真实感图形学(消隐算法、光照模型、光线跟踪技术、阴影、纹理、辐射度算法等),有些图形学教材还增加了计算机动画技术、交互技术、图形处理高级技术等内容。
分析上述内容,其中与游戏设计关系最为密切的部分是:基本的图形学数学算法,包括向量部分的内容、图形变换、视图变换、图形渲染、材质、纹理贴图、模型动画等三维图形学的内容;而二维图形学的内容在游戏开发中使用的相对较少。
而在传统的图形学教材中,二维图形学的内容占据相当大的比例,学生在学习这一部分内容的时候,普遍感到算法较为枯燥,而无法和实际应用联系起来,易产生厌学的情绪。
(2) 对于当前主流图形库的学习安排
为了更好的开发出具有丰富3D效果的游戏,必须学会使用3D技术,而当前主流的3D图形API为OpenGL和DirectX,早期的很多游戏的底层引擎是基于OpenGL开发的,如“3D游戏之父”Carmack的经典游戏“DOOM”、“Quake”,在当前的游戏行业中,微软开发的DirectX多媒体引擎大有后来居上之势,当前基于Windows操作系统的游戏绝大多数都是基于DirectX开发。虽然如此,在其他操作系统的游戏开发和工作站上的图形应用程序开发,OpenGL仍然是不二的选择。
因此掌握好这两种图形库,是游戏专业的学生必须掌握的技能;在两种图形库的偏重上,DirectX所占的分量应该更重一些,而当前的图形学理论和实践教材基本上都是基于OpenGL,缺少合适的基于DirectX的计算机图形学实验指导教材。
(3) 对于图形学课程理论和实践的安排
一般图形学课程的安排是先讲授图形学理论,之后进行图形学课程设计,目的是在课程设计环节让学生应用所学的理论知识,锻炼实践能力。但也存在一些弊病:理论讲授和实践环节割裂,学生在学习图形学算法和理论时对枯燥的内容感到较难,缺少实践,而在实践环节,由于时间有限,很难真正掌握开发工具并作出具有一定深度的作品。
基于上述问题,结合游戏开发专业的特点,我们认为必须从以下几方面入手做工作,确保“计算机图形学”课程的教学效果,加快课程建设。
4面向游戏开发专业方向的计算机图形学课程建设思路
(1) 针对游戏专业的特色,在内容选择上,应有所取舍,有所补充,不拘泥于某本计算机图形学教材的具体内容作为授课内容,而是根据培养目标和专业特色,灵活安排。
首先,重点讲授三维图形学的内容;另外,将一些游戏开发过程中较为关键的图形学相关算法和内容补充到图形学的授课内容中,例如以下两种算法:
场景管理及相关算法:场景管理是3D游戏引擎最核心的部分,对于一个3D场景来说,有很多的物体,最简单的组织方法就是把它们用一个List连接起来,然后在绘制每一帧的时候一次送入渲染器进行处理,这样的方法即使处理一个简单的场景都会显得非常慢。因此,如何合理有效地管理3D场景中物体之间的相关、从属、互相影响的关系,如何组织这些关系,并将它们与3D引擎的其他部分的功能联系起来,就是场景管理需要完成的工作。牵涉到空间排序,有多种算法来实现,基本的方法为:N叉树算法,包括:二叉树算法、四叉树算法和八叉树算法。
现有的各种图形学教材,有些根本没有提到上述算法,有些在图形消隐的章节讲授其中的某种算法。而上述算法是游戏引擎的核心算法,对游戏专业学生这一部分的内容应补充进授课内容。
三维模型动画及动力学的基础知识:在游戏开发过程中,有了模型之后,需要为三维模型添加相应的动作,实现游戏效果。对于当前的三维图形库,比如Direct3D,也支持丰富的三维模型动画,包括:关节动画、单一网格模型动画、骨骼动画和Morp。这一部分内容对于游戏开发人员来说也是必须掌握的一部分,但在现有的《计算机图形学》教材中,绝大多数没有涉及这部分内容,但也有一些《计算机图形学》课本增加了三维模型动画及动力学的内容,如美国加州州立大学斯坦尼斯洛斯分校Steve Cunningham所著的《计算机图形学》一书中,就将动力学和动画作为专门的一章内容进行介绍。
(2) 理清图形学各部分内容和具体的游戏应用之间的关系,采用多种方式,有针对性地讲述。
游戏专业方向的“计算机图形学”课程在讲授的时候,不能完全沿用传统的“计算机图形学”的授课方式,而应该找出相关内容和具体的游戏开发实践之间的关系,教师在讲述相关理论和算法的时候,应将游戏开发过程中如何应用该算法或理论以及如何实现该算法和理论进行讲解,将相对枯燥的理论和实际联系起来,让学生能学以致用。
下表对图形学的内容和游戏开发实践中的应用作了粗略的总结。
教师在具体讲授时可以在此基础上进行丰富,使得授课内容生动起来。并在课程结束的时候,按照构造游戏的流程,从角色建模讲起,用游戏设计这一根主线找出各部分内容之间的联系,使得学生对课程的内容和游戏开发之间的关系有一个全貌性的认识。
(3) 在理论环节和实践环节的安排上,采用理论课+实验课+课程设计的方式,在平时图形学理论讲授的过程中,穿插实验课,在最后安排课程设计,加大实践环节所占比重。
(4) 建设与开发面向游戏方向的图形学案例库
欲使课堂讲授的内容生动起来,必须有实际的案例支撑,因此建设面向游戏方向的图形学案例库,使得学生能够快速理解和掌握相关理论和技术,对于提高图形学课程的授课质量至关重要。
(5) 教材建设方面
编制面向游戏开发专业的计算机图形学教材以及编制面向游戏开发专业的图形学课程设计指导书是非常紧迫和必须的任务。
5总结
本文结合图形学教学的实际以及游戏开发专业方向的培养目标,对于面向游戏设计专业的“计算机图形学”课程教学改革进行了一些探讨,希望能对游戏开发专业的教学和课程建设有所促进。
参考文献:
[1] 培养具有创新意识的复合型数字媒体技术人才――山东大学软件学院数字媒体系人才培养[J]. 计算机教育,2008,(15).
[2] 博采众家智慧,培育复合型、创新型人才――山东大学软件学院孟祥旭院长谈数字媒体技术专业人才培养[J]. 计算机教育,2008,(15).
[3] 徐延宁. 计算机游戏课程体系建设[J]. 计算机教育,2008,(15).
[4] 尹义龙. 数字媒体技术专业的教学实践体系探讨[J]. 计算机教育,2008,(15).
[5] 向辉. 数字媒体技术专业课程体系探讨[J]. 计算机教育,2008,(15).
[6] 潘荣江. 扬长补短的 “2+X” 数字媒体技术专业培养模式[J]. 计算机教育,2008,(15).
[7] 庞晓溪. 游戏引擎教程[M]. 北京:中国水利水电出版社,2008.
[中图分类号] G642 [文献标志码] A [文章编号] 1008-2549(2016) 07-0106-02
一 计算机图形学课程教学中存在的问题
本科的计算机图形学教学对数学理论有一定要求,往往体现为公式推导、演化等形式,同时也涉及算法设计及其代码实现。而传统计算机图形学教学重点一般侧重于考核学生对知识点的掌握,课程实践所占比例较低。因此传统的教学模式不适用于计算机图形学课程,若仍沿用传统教学模式,则不仅不利于维持学生的学习兴趣,更不利于学生发现问题、解决问题以及创新能力的培养。
1 计算机图形学教学内容与学生的学习兴趣
传统的计算机图形学内容主要有:计算机图形系统概述;二维图形生成和变换技术;三维图形生成和变换技术;真实感图形生成技术;计算机动画技术与实践。该课程入门阶段需要的数学知识主要涉及代数、三角学和线性代数,数学原理与图形的结合在理论教学中占据了一定比重。
传统的计算机图形学教学目标是侧重于培养学生对计算机图形学理论知识的了解与掌握,在教学内容的设置上主要强调图形学知识、概念的系统性与整体性,重点是概念解释与原理讲解,体现为大量的公式推导。
未进入图形学教学前,学生们对该课程的理解大致分为两类:一类认为该课程主要讲述游戏开发。另一类认为是艺术设计。实际上,在本科阶段开设的计算机图形学课程,通常立足于计算机图形学科的入门,教学内容主要是理解与掌握基本的图形绘制原理及其实现算法,能进行基本图形的程序设计。由此,学习内容的枯燥、教学内容与现实应用的巨大落差会导致部分学生的学习兴趣随课程的深入而有所下降。
2 计算机图形学课程实验的设置
计算机图形学的实验内容主要集中于基本图形算法的实现,需要学生运用高级程序语言进行编程,然而作为专业基础课程学习的此类高级程序设计课程,往往以基本知识、程序设计、数据组织三方面为主要内容,一般不涉及图形库编程接口(API)。这导致在本课程的实验教学时,需要针对授课学生原先所学的高级程序语言,补充对应的图形库编程知识,这使得实际的有效实验学时被缩减,而且增大了学生实现算法的难度,以至于进一步加剧了理论与实践脱节的现象。
二 理论教学与实践教学的改革方法与目标
我们在大学本科的第7个学期开设计算机图形学课程,并将其分为理论课与实验课两门课程,两门课程单独核算成绩。其中理论课为32学时,2.0学分;实验课为16学时,0.5学分。在理论课程完成后开始实验课程,计算机图形学的实验不再是传统教学中对理论课知识点的简单重复与验证,而是对所学知识的综合运用与深化。由此,需要合理选择理论课教学内容,以完成与实验课程的衔接。同时,设计合适的实验项目使学生掌握课程基础知识,提高学生的动手能力,以提升计算机图形学的教学质量。
1 理论课教学内容的设计
计算机图形学技术在快速的发展着,与之相适应,图形学课程的教学也发生着变化。现阶段,在计算机图形学教学中主要有3种教学体系,大致分为:理论为主、编程为主、问题为主。其中,理论为主是传统的教学体系,强调对计算机图形学理论的理解与掌握,以公式推导为主要呈现方式,国内外此类教材有Floey的《计算机图形学原理及实践――C语言描述(原书第2版)》,孙家广的《计算机图形学》等。编程为主的教学体系侧重于培养学生初步掌握一种典型的图形学API,以图形学使用者的角度讲授计算机图形学所需的理论与概念,去除非必需的数学原理与公式推导。国内外此类教材有Donald的《计算机图形学(第四版)》,徐文鹏的《计算机图形学基础(OpenGL版)》等。问题为主教学体系的教学目标着重于培养利用计算机图形学知识建立与用户交流的能力,从而实现问题的图形化建模并解决问题。相应的教学内容既涵盖了图形学中的基本概念和技术,也涉及了实现这些概念和技术的图形学工具,然而重点在于介绍如何使用计算机图形学知识来解决实际问题以及如何有效地进行结果展示,Steve Cunningham的《计算机图形学》是此类教学体系的典型教材。此类问题为主的教学体系近年来在美国兴起。
在我们的本科教学中,考虑到学生前期课程的设置与掌握情况,采用了结合OpenGL实现算法的编程为主的教学体系。在实际教学中,既要保证计算机图形学基本概念、理论的完整讲述,也为后续的实践课程做铺垫,有针对性地介绍图形支撑软件,使学生在掌握图形学基本知识的同时,能够在一定程度上自主实践,保持与激发学生的学习兴趣。
2 以思维导图优化图形学教学的实践应用
思维导图(又称心智图),是英国教育学家东尼・博赞在20世纪60年代创造的,它作为模拟放射性思维的图形工具,能激发大脑的潜力。在人获得信息后,进入大脑的信息以新的思想中心与其他信息建立关联,形成向外发散的网状结构。此后,每一个发散出的节点,又将作为新的中心,再次发散形成新连接。
3 实验课教学内容的设计
【基金项目】中国地质大学(武汉)教学研究项目,项目编号 200923。
【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2013)10-0144-02
一、引言
计算机图形学是研究如何利用计算机显示和处理图形的原理、方法和技术的一门学科。除了是计算机与信息相关学科的一门专业必修课程外,它也是许多非计算机专业本科一项重要的专业限选/选修课程[1]。在以地学专业为主的中国地质大学(武汉),计算机图形学教学也得到了相当的重视。以地空学院为例,其下属的两个专业地球物理与地球信息科学的教学大纲中都明确开设了这门课程。但与其他兄弟院系一样,该课程教学中所达到的实际效果却并不尽如人意。一方面,地质制图以及地学数据的图形表现等知识在学生本科毕业后从事的地学应用工作中占有重要成分;另一方面,传统计算机图形学本身所讲述的内容又无法满足地学专业工作、科研的需要[2]。随着时间的推移,计算机图形学课程所处的地位日渐尴尬,将其从教学计划中取消固然不妥,但又确实达不到应有的效果。认真分析其原因主要有如下两点:
1.从课程的定位来看,作为一门独立学科,计算机图形学本身定位于使用数学算法构造图形的数学模型,并通过程序实现图形的显示和处理。数学建模与算法实现是计算机图形学的核心与基础[3]。该课程涉及的内容也非常之多,包括图形生成技术,计算机辅助制图,计算机视觉等部分[4]。然而作为一个主要培养地学领域人才的高等院校,计算机图形学在地学领域的主要应用集中于数据制图与数据可视化处理。即要求学生能够具备一定计算机图形学基础知识,并能够使用计算机对地学数据进行图形绘制与表现,进一步生产出社会所需求的各种图形产品包括二维地质图以及三维造型,场景演示视频等。因此可见,课程定位与专业需求存在着一定的差别。
2.从教学大纲与教学内容上来看,传统计算机图形学教学基本以清华大学孙家广院士主编的《计算机图形学》内容为范本。教学内容大部分重点集中于图形生成算法,图形标准、图形交互、曲线曲面造型、真实感图形生成与显示算法等章节[5]。这其中的许多知识点都与地学专业应用无关。此外,地学专业的学生往往在离散数学、算法逻辑等方面基础较为薄弱。这就导致授课老师要花更多的时间来将这些知识点讲授清楚,但学生在学习过程中却逐渐失去兴趣。
上述主要原因使得我校地学相关专业中的计算机图形学课程教学无法达到满意的效果。特别是由于课程的一些内容或章节与专业的实际应用偏离太多,更造成了学生们应付考试,老师们照本宣科的现象。许多讲授该课程的老师都或多或少的意识到了这一点,他们努力在教学过程中做出适当的调整,但却苦于缺乏统一的指导思想。
基于此,在校方支持下,笔者与其他授课老师一起开展了面向地学专业的计算机图形学教学改革活动。在这次改革中,老师们将自己的授课经历进行了分享,并着重对地学相关专业计算机图形学教学过程中的问题进行了总结,然后通过讨论交流提出了一系列改革方案。最后将这些方案措施在教学活动中进行验证。实践证明,教改方案可以有效的激发学生的学习热情,并引导他们将理论知识充分运用到实际问题中,有利于培养地学专业高素质人才[6]。
二、改革措施
首先,此次课程改革的目的很明确,即为地学或地学相关专业的学生量身打造适合他们需要的计算机图形学课程。该课程的教学必须真正贴近专业的需要,不再流于形式,为学生将来的工作与研究深造打下良好的基础。具体的改革措施总结如下:
1.深入了解我校地学专业相关院系的专业需求,讨论并制订面向地学领域的计算机图形学教学大纲和教学计划。传统的计算机图形学教学内容涉及到数学、物理、计算机等多个学科[7]。每个学科又涉及到一些相对抽象的理论与复杂算法实现。这些内容均使得地学专业的学生难以在短时间内掌握。此外,随着技术的不断发展,目前计算机图形学的一些教学安排与现实也存在一定的脱节。如许多计算机图形学的实习环节中会要求学生去实现基本图形的生成算法,对许多非计算机专业本科生而言,这一做法的必要性值得商榷。因为就其专业应用领域,大部分的图形生成算法实现都已经固化到了计算机硬件(显卡、GPU)中,现实工作中极少场合需要编程实现这些已经非常成熟的算法[8]。
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)30-0191-03
一、引言
《计算机图形学》是数字媒体技术专业的一门理论基础课,主要研究如何利用计算机来表示、生成、处理和显示图形的原理、方法和技术。目前,大多数高校计算机以及数字媒体等相关专业都会开设《计算机图形学》课程。由于图形学技术在计算机游戏、数字娱乐、平面设计、网页设计等行业中的广泛应用,学生在选择这门课程时都抱有很大的兴趣和期待。然而,《计算机图形学》要求学生具有较好的数学基础和较强的编程能力,所以随着课程的深入,学生普遍感到学习比较吃力,达不到应有的教学效果。
本文在分析《计算机图形学》的学科特点以及当前教学中存在问题的基础上,从合理选择教学内容、灵活运用多种教学方法和手段、注重实践教学、重视过程考核等方面对《计算机图形学》的教学思路进行了一些探讨。
二、学科分析及教学现状
1.《计算机图形学》的学科特点。《计算机图形学》是建立在图论、现代数学和计算机科学基础上的一门新兴学科,该学科涵盖了计算机科学、数学、物理学等其他学科的相关知识,学科交叉繁杂,研究内容非常广泛,如图形硬件、图形软件标准、图形交互技术、基本图形生成算法、建模、渲染、计算C动画等。总体来说,《计算机图形学》是一门以应用为背景,以数学为基础,以算法为核心的强理论,重实践的课程。同时,该课程又以C语言、数据结构等为先导课程,因此,要将这样一门课的内容较好的传授给数字媒体专业的学生,不是一件容易的事情,需要积极探讨新的教学思路和教学方法。
2.教学中存在的主要问题。《计算机图形学》内容丰富,理论性和实践性都比较强,造成该课程讲授起来比较枯燥;同时,由于数字媒体专业的学生数学基础和编程基础都不是太好,学生普遍感到对于图形学的内容难以接受,学习的积极性和主动性都受到了影响,学习效果较差。在教学实践中,笔者发现目前的图形学教学普遍存在以下问题。
(1)理论性强,难度大,导致学生兴趣减弱。《计算机图形学》主要研究如何在二维的屏幕上显示三维的图形,其中涉及到三维形状的建模,渲染以及动画等。图形渲染流水线的背后,要求学生具有较强的数学功底,特别是向量和矩阵的一些基础知识,要熟练掌握。学生要能用向量的思想去解决图形学中的一些基本问题。对于数学基础较弱的数字媒体专业的学生,这种要求往往令他们产生畏惧心理,极大的影响了他们的学习兴趣和信心。
(2)教学内容多,知识点分散。《计算机图形学》学科交叉繁杂,内容丰富,不仅涉及图形硬件、软件和大量的实际算法,而且还与微电子学、计算几何、图论学等专业学科密切相关,并在发展过程中逐步与数字图像处理、数字几何处理、模式识别、人工智能、虚拟现实等相结合,这就要求授课教师要具有比较全面的知识结构,对于内容的讲解有所侧重,合理取舍,透彻了解各学科之间的关系。目前国内大部分图形学教材都是从底层的图形硬件设备开始讲起,然后是基本图形元素的生成算法,最后逐步过渡到光照模型和纹理映射等高层的真实感图形渲染方法,这容易导致学生只掌握了分散的知识点,很难将各个知识点串连起来。另外,现在的图形学教材一般都只局限于经典的图形学算法原理,而对于学科前沿的研究动态少有涉及,这样不利于开阔学生的视野,激发他们自主学习的兴趣和意识。
(3)实验课时少,学生缺乏实践训练。《计算机图形学》是一门实践性很强的学科,要求学生具有较强的编程能力和动手操作能力。上机实践是锻炼学生编程能力的主要手段,也是学好这门课的必要手段。没有实验课的训练,学生很难真正理解图形学中的算法原理。但是,由于总课时的压缩,实验课时很少,仅提供6次实验机会,而且实验基本上都是验证性试验,学生很难在实验中获得将来工作时需要掌握的编程知识,另外大部分学生本身的编程能力不强,上机兴趣也不高,最终导致学生无法获得充足的实践锻炼机会。
(4)考核形式单一,无法调动学生的学习主动性。目前《计算机图形学》的考核形式主要还是通过卷面笔试的形式来进行。卷面笔试考核通常考察的是学生对知识点的记忆和理解能力,适用于基础课教学,强调的是“记”和“背”。但是对于以实践和应用为主的专业课程而言,它强调的是“做”和“用”,因此,要求学生死记硬背相关理论和算法,无疑是一种资源浪费,学生不能学以致用就等于白学。这种考核方法也无法调动学生平时的学习积极性,他们大都寄希望于最后几周的突击复习,考试完之后很快就忘记了,达不到课程教学的培养目标。
三、教学思路探讨