《计算机图形学论文通用5篇》由精心整编,希望在【计算机图形学】的写作上带给您相应的帮助与启发。
关键词:计算机专业教育;图形学;图像处理;多媒体;教学改革
中图分类号:TP391,G642 文献标识码:A
文章编号:1672-5913 (2007) 24-0080-05
1对图形图像与多媒体知识的要求
1.1CC2004知识领域要求
在CC2004中,和图形图像与多媒体相关的知识领域是人―机交互(Human-Computer Interaction -HC)、图形学与可视计算(Graphics & Visual Computing-GV)、信息系统(Information Management -IM)、网络计算(NetCentric Computing-NC)等几个部分。表1是CC2004列出的五种课程计划中所含人―机交互和图形学与可视计算两个计算机主题的比重。表中的数字表示对应的专业与相应的知识域的相关性,范围从0~5。其中,min值表示该学科报告中列举的学生对相应知识域掌握的典型的最低要求,也是相对于其它专业最低要求的值,max值表示该专业学生对相应知识域掌握的典型的最高要求。
表1 计算机主题的比重
分析CC2004中各课程计划和表1可得出,CC-CS2001对图形图像与多媒体的知识要求最高,所涉及的具体知识单元见表2。
表2 和图形图像与多媒体相关的知识单元
CC-CS2001在附录B的课程描述中,推荐了一些覆盖知识领域和单元的课程,每门课程里对预备课程、课程提纲、覆盖的知识单元、各单元学时做了较为详细的描述。相应地,和图形图像与多媒体有关的中介课程有CS250W人机交互和CS255W计算机图形学等课程,高级课程有CS352图形用户接口、CS355高级计算机图形学、CS356图像处理等课程,但高级课程只给出课程名称,还没有详细描述。
CS250W人机交互课程要求全面介绍人机交互原理和技术,CS255W计算机图形学课程则要介绍计算机图形学的原理和技术,两门课程覆盖的知识单元见表3。
表3 CS250W和CS255W的知识单元
1.2CCC2002和教指委计算机科学规范的要求
CCC2002同CC2001一样,把计算机科学与技术学科的知识体系划分为知识领域、知识单元和知识点等三个相互关联的层次结构。完整的本科课程体系结构由三部分组成,即奠定基础的基础课程,涵盖知识体系大部分核心单元的主干课程,用来完备课程体系的特色课程。根据我国计算机科学与技术学科教育的现状及对典型课程设置的分析,给出了16门课程,分别为计算机导论,程序设计基础,离散结构,算法与数据结构,计算机组织与体系结构,微型机系统与接口,操作系统,数据库系统原理,编译原理,()软件工程,计算机图形学,计算机网络,人工智能,数字逻辑,计算机组成基础,计算机体系结构。在教指委的《计算机科学规范》中,也选取部分知识单元组成了15门核心课程,分别是计算机导论,程序设计基础,离散结构,算法与数据结构,计算机组成基础,计算机体系结构,操作系统,数据库系统原理,编译原理,软件工程,计算机图形学,计算机网络,人工智能,数字逻辑,社会与职业道德。可见,计算机图形学都为核心课程之一。
在《计算机科学规范》中,计算机图形学和可视化计算可以划分成以下四个相互关联的领域:
(1) 计算机图形学:计算机图形学是一门以计算机产生并在其上展示的图像作为通信信息的艺术和科学。它有以下几方面的要求:①表示信息的模型的设计和构建应有助于图像的产生和观察;②方便用户使之能够通过精心设计的设备和技术与模型(或者说观察到的图像)进行交互;③能提供绘制模型的技术;④设计出有助于图像保存的技术。计算机图形学的目标是对人类的视觉中心及其他的认知中心有进一步深入的了解;
(2) 可视化技术:主要目标是确定并展示存在于科学的(如计算和医学科学)和比较抽象的数据集中的基本的相互关联结构与关系。展示的主要目标则应当是发掘在数据集中潜在的信息,从而有助于用户增强对它们的理解。虽然,当前的可视化技术主要是探索人类的视觉能力,但是其他的一些感知通道,包括触觉和听觉,也均在考虑之中,以便通过它们进一步发现信息的处理过程;
(3) 虚拟现实:虚拟现实(VR)是要让用户经历由计算机图形学以及可能的其他感知通道所产生的三维环境,提供一种能增进用户与计算机创建的“世界”交互作用的环境;
(4) 计算机视觉:计算机视觉的目标是推导出一幅或多幅二维图像所表示的三维图像世界的结构及性质。对计算机视觉的理解和实践依赖于计算学科中的核心概念,但也和其他一些学科(如物理、数学、心理学等)密切相关。
CC2004和CCC2002的规范中给出的课程建议规定了每门课程的最小核心内容,包括的这些单元是要获得学位必须具备的相应知识。核心单元不是课程的全部,核心单元是课程最小的部分,但不能构成完整的本科课程,每门课程应当包括来自知识体系中的附加选修单元。核心单元不能仅安排在本科阶段的入门性课程中。许多核心单元属于入门的导论性知识,但这不意味着它们必须安排在低年级的入门性课程中,因为有些导论性的知识,只有当学生具有必需的基础知识后才能接受。另外,引论性课程也可以包括选修单元。所以核心这一说法只是意味着必须具备的含义,而并没有限制它必须安排在那些课程里。
从以上国内外计算机专业推荐的教学计划和设置的课程可以得到,涉及到图形图像与多媒体的内容,一般宜设置计算机图形学、数字图像处理、多媒体技术等课程及相关课程,可涵盖的知识有人―机交互、图形学、图像处理、多媒体技术等基础内容,这样才可基本达到规范的要求。
2部分高校课程开设情况
从网上可查到的清华大学、上海交通大学、中国科技大学等几所高校的计算机科学与技术专业本科生培养教学计划中计算机图形学、数字图像处理、多媒体技术等课程设置情况如表4。
表4 涉及图形图像与多媒体类课程开设情况
从表4可看到,近几年在计算机专业里,国内的大学普遍增加了图形图像与多媒体类课程的课程数量和教学时间。
3 存在问题及教改研究
3.1问题
关键词:计算机图形学;教学方法;上机实践
计算机图形学是伴随着计算机及其他设备的发展而产生的,是一门研究怎样利用计算机表示、生成、处理和显示图形的原理、算法、方法和技术的学科[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
(Science and Information College, Qingdao Agricultural University, Qingdao 266109, China)
一、计算机图形学教学的重要性
随着信息技术的发展,与计算机图形学(以下简称图形学)相关的理论与方法,越来越受到关注与重视。图形学是研究与讨论用计算机把数据转换为图形,并在显示终端上显示的学科[1]。由于图形所携带的信息比纯文本方式要丰富多彩,图形数字化的应用迅速在各领域快速发展,计算机图形学技术深入人们工作、生活的各个领域,从航空航天飞行器以及汽车外形的设计、天气预报,到电影电视广告、游戏制作、可视电话、微信等,都因为计算机图形学技术的应用而精彩。
目前国内高校的计算机以及相关专业多数开置了“计算机图形学”课程,也是计算机及相关专业的重要课程之一。该课程理论与实用并重,又是如数字图像与模式识别、3D动画编程等实用性强的课程的前置课程,因此,学生对计算机图形学课程充满好奇与期待。
二、计算机图形学课程特点、教学过程中存在的问题及教学改革
1.计算机图形学课程特点。首先,涉及内容广,是计算机图形学课程的特点之一。计算机图形学是一门涉及多学科的综合性课程,其内容包括计算机硬件、软件、空间解析几何、算法原理、编程等,因此要求学生具备多方面的知识。如较好的数学基础,特别是空间解析几何、线性代数、矩阵论等数学基础知识,计算机语言编程、数据结构等方面的知识。
其次,?课程在理论方面,涉及的原理需要一定的数学基础才能较好理解,繁多又抽象的图形生成算法增加了学习的难度。
第三,理论与实验并重的课程。用计算机语言描述并实现图形学的问题的过程。也就是其内容包括计算机语言及图形学知识。一般而言,对图形学相关的基本算法描述的理解是学生学习计算机图形学的一个难点,是一个从理论到实践的认识过程。
2.存在的问题。由于计算机图形学课程的特点,在教学过程中,学生普遍反映:都能认识到计算机图形学是一门重要的、有用的、实用的课程,对学习计算机图形学课程开始时抱着极大的兴趣学习,但是,随着课程的深入学习,图形算法越来越复杂,虽然课堂上能听懂算法的原理与流程,但是课后上机实现算法却感到困难,理论与实践不能很好结合。随着时间的推移,不能解决的问题的累加,旧的内容未理解、问题还没解决,又要忙于学习新内容,学习变成了一种压力,积极性和自信心受到打击,学习主动性逐渐下降,这样一来,教学效果不理想。总之,学生感到图形学的内容不易理解、不好学,理论与实验总是存在一定的距离。
3.教学方法的改革。为了解决面对教学过程遇到的问题,提高计算机图形学课程教学质量、收到更好的教学效果,不少计算机图形学的老师们在教学实践中,尝试用不同的教学方法进行课堂教学,收到了很好的教学效果[2]。
计算图形学的内容中,其重点与难点都会涉及到复杂算法的内容,而这些内容对学生来说,是最难理解的,用常规的教学方法,其效果相对较低,因此,计算机图形学教学过程中,不同的教学内容,应选取和采用合适的教学方法才能收到更好的教学效果,使教学方法的效率最大化,实现教学方法精准化。为了在计算机图形学的教学实现教学方法的精准应用,本文提出:在涉及复杂算法内容教学过程中,引入虚拟现实技术[3],用三维交互技术对复杂算法的流程及运行机理进行描述,使复杂算法问题具体化、简单化,更易于理解,把理论与实验这两者这间更好地融会贯通,更好地抓住学习计算机图形学的重点与难点,把握学好计算机图形学的关键,化解学习过程中的难题。
三、计算机图形学虚拟现实技术教学改革
1.虚拟现实技术引入计算机图形学课堂教学的必要性和重要性。要实现与理论与实践相结合,首先要充分理解算法的原理、算法的核心、流程。但是,大部分计算机图形学的算法,都以数学理论为支撑,要求学生具备如空间解析几何、线性代数、矩阵理论及应用等数学基础知识,换言之,良好的数学基础,是学好计算机图学算法的有利条件。而良好的数学基础,需要通过专业训练。一般情况下,我们面对的学生其数学基础都不是很好,这也是学生对算法学习感到相对困难的原因。针对这种情况,在算法教学过程中,利用现代信息技术替代传统的粉笔和黑板,引入计算机技术进行算法的模拟演示,使算法的描述和实现的流程形象化、具体化,也就是通过虚拟现实技术,把抽象的算法转化虚拟环境进行动画演示,让学生易于接受与理解,从而激发学生主动学习的积极性,让教学效果达到最佳,为学生课后上机实现算法做好充分的准备,实现理论与实践的结合。因此,在教学过程中引入虚拟现实技术,是很有必要的。
2.虚拟现实技术引入计算机图形学课堂教学的过程。教学过程中,将抽象、无形的数学模型通用虚拟现实技术将其具体化、形象化。具体实现如下:将算法实现的过程分解,用虚拟技术的方法将算法运行中的步骤和中间结果一步一步演示,以课件的形式在课堂演示,让学生建立数学模型、算法与代码之的对应关系,达到更深刻地理解各种图形算法的原理及实现过程。
本文选择Virtools4.0+3Ds MAX作为课件的开发环境。3DsMax具有很强的建模功能,由于图形学算法实现流程中的计算单元(内存、函数等)在对应的虚拟实验场景中可用简单的几何体(正方体、园柱体、球体等)表示,在单一的场景中,3DsMax可以实现快速、高效的建模,此外,Max带有许多批量建模的工具,如使用镜像、散布、阵列等工具,可实现任意多个精确(几何体的坐标)的建模,完全满足了图形学虚拟实验场景建模的需要。Virtools是一款比较成熟具有三维交互式的最后合成软件,其良好的兼容性突显其优势,通过相应的插件直接导入经过转换输出的3DsMax构建的虚拟场景及动画(3DsMax中预设的动画),Virtools中支持多场景功能,可通过交互功能实现多场景间的切换、跳转等,使虚拟实验表现力更强、更灵活和多样,表现出虚拟实验直观、交互、多样性等优势。
??现过程:将图形学算法实现过程中涉及的内存单元、变量以及函数在虚拟场景中实体化(在虚拟场景中可用长方体或球体等表示),构成图形算法实现的虚拟的场景,在3DsMAX中建好的(单一)场景导入Virtools中,按算法的流程进行动画编排。由于Virtools支持多场景功能,可根据需要,将复杂的图形算法的实现过程分解为若干个子算法(过程),在Virtools中用不同的场景表现不同的相对独立的子算法,即依次在不同场景中编排相应的场景动画实现子算法,在各场景上设计交互界面,实现场景间的切换和跳转,最后导出生成具有交互功能的三维虚拟实验课件。
关键词:计算机图形学;计算机仿真;科学计算;程序设计基本方法;可视化
中图分类号:G642
文献标识码:B
1 “计算机图形学”的学科特性
所谓“计算机图形学”是计算机仿真(即按模型计算以生成图像)与科学计算(即通过在计算机上建立模型并模拟物理过程来进行科学调查和研究)的一种基本形式,是研究图形数据模型在计算机内部的产生、设计与构造过程,它是显示图形不可分割的前提(这相当于画家作画之前,对绘画作品的设计思想、表达方式、绘画构思、作品内容与结构等的创作与思考过程;只有当这个绘画作品设计方案成熟之后,画家才动笔绘画);而图形显示是用点、线、面、色彩、纹理等可视化的数学方式表达这种数据仿真计算结果的数学含义、或表达仿真过程中各种实体仿真模型与场景效果的物理含义的一种直观表达方式。参考文献[1,2]已向读者证明这一结论,只有这样,才能较好的理顺“计算机图形学”课程的授课关系,使读者建立用计算机生成图形的完整概念。
我们用这一指导思想主导“计算机图形学”教育20多年,并用“计算机图形学”的授课内容解决了多年来国内计算机程序设计课程没有解决好的计算可行性(可计算性的实现前提)这一教学难题,使该课程成为初学者学习计算机程序设计基本方法、认识图形数据模型构造与显示的一般规律、进行可视化应用程序开发三位一体教学目的的最佳选择,并有效地弥补了从算法语言、数据结构到软件工程之间关于应用程序编程系统训练与计算机仿真等教学环节的缺失。这种教学方法使“计算机图形学”的教学内容完全纳入了计算机科学的教育体系,同时使“计算机图形学”与“数据库”、“网络通信”这三门课程成为现代计算机应用程序的三个基本特征(数据计算、数据存储与检索、数据联网通信)的典型代表,由此转变了“计算机图形学”课程的教育观念与教育思想。在教学过程中,作者曾遇到学生们提出的多种学习问题,今整理成文,以飨读者。
2学习“计算机图形学”的原因与重要性
为什么要学“计算机图形学”,这是计算机专业选修“计算机图形学”课程的读者关心的首要问题。众所周知,计算机科学是处理信息技术(IT)的一门学科,通信科学是传输信息技术的一门学科。对于信息技术而言,常用于表达信息数据含义的4种方式分别是①数字与字符方式表述;②图形方式显示;③播放声音表述;④用机械力表达(即把电信号转换成机械运动)。这4种表达信息数据含义的方式又称信息数据的多媒体表达方式(即多媒体技术)。其中,用图形显示这种方式表达信息数据的含义符合人们观察了解事物运动规律的习惯,而且信息容量大,直观方便,同时是人们获得外部世界信息来源的主要依据;也就是说信息数据的可视化是信息技术与计算机科学发展的一种潮流与必然趋势。随着计算机工业的发展与进步,实际应用课题与现代程序设计对信息数据的可视化处理要求已经越来越高,这就要求人们深入研究并掌握图形显示的一般规律,才能更好的为计算机信息数据的可视化服务。
按现代教科书对“计算机图形学”的新定义,“计算机图形学”代表了计算机应用学科的一个重要发展方向――科学计算、计算机仿真、计算机辅助设计、信息数据的可视化、动画与游戏、虚拟现实、数字娱乐,其编程应用还涉及程序设计方法。它们代表了当今计算机技术的发展潮流与应用水平,是解决计算机专业人才出路的有效途径之一;而“计算机图形学”是该方向的公共基础课程,是目前国内计算机本科教育应当加强的内容。显然,仅仅靠学习计算机程序设计语言、数据结构、编译原理、操作系统、数据库、软件工程、形式语言与自动机理论等课程还不能完全使学生的能力直接达到开发这些应用软件的目的,因为原则上这些课程是为用户使用计算机的计算功能而系统量身打造的软件使用工具(数据结构、软件工程除外),它们的教学目的是为用户掌握并研制这些软件工具服
务、而不是为用户使用这些软件工具系统地开发应用程序而开设的课程。计算机专业主要沿这条主线向前发展:研究、设计、制造计算机硬件设备,为用户使用计算机的计算等功能提供一切便利的手段、方法与软件辅助工具,这包括总结用户使用计算机的基本类型与模式,而对于复杂且很难全面概括使用计算机的方法等、则留给一般用户自己解决,这或许是计算机专业本科课堂教学没有介绍对数据计算类型的应用软件系统开发要遵循的基本规律与发展模式的原因之一,“计算机图形学”的教学正好可以弥补这个缺陷。
由于计算机教育本身并不能直接提供认识世界、改造世界的能力,加之我国没有掌握具有国际竞争能力的计算机硬件与系统软件的核心开发技术,这使中国大量的优秀人才在计算机专业上的最后发展受到了严重制约。而“计算机图形学”的仿真方法为计算机专业人员的发展提供了这样一种新的学习方法与重新选择的机遇,它能为计算机专业人员学习其他行业的专业知识(即学习新专业的物理、数学方法)、成为其他行业的专家助手,进行新行业系统仿真与系统设计以获得新生;由于各行业都有各自的研究领域与待解决的研究问题、研究方法与理论研究模型等,当用计算机仿真的方法对这些研究课题进行辅助研究,并用图形等可视化的方法表达计算机仿真研究的中间结果与最终成果时,这将使计算机的应用走向深入。
科学研究的目的就是探索未知世界、认识世界、改造世界、造福于人类自己,而“计算机图形学”的教育正是遵循这样一条主线:通过物理实验认识待解决问题的本质,并用数学模型的方法来描述这种物理现象的变化过程,从而达到用计算机程序设计的方法来仿真光线在自然界中的传播,以及光线在照相机中传播而生成图像效果,这类物理仿真过程是科学研究方法中的一种基本形式,这种科学研究方法的教育思想(包括人文精神)是国内计算机专业本科课堂教育所欠缺的(计算机专业往往专注于数理逻辑思想的基础训练)――即“计算机图形学”的教育,不仅拓展了计算机专业人才的知识领域,也为其毕业增加了就业渠道,同时能培养计算机专业人员的基本科学研究素养,这正是目前国内计算机教育改革所追求的目标之一。
需要说明,全日制普通本科教育是普适教育,它需要建立各专业自己的知识框架,学习基本的概念,了解基本的范畴,明确其发展方向,计算机专业也是如此。本科教育重在基础,提高本科教育质量与水平并非拔高与创新,而是要做到全面、均衡的发展,除要求学生掌握本学科专业已成熟的系统理论知识外,还需培养学生用学科的基本思想与方法独立自主分析问题、解决问题的能力,这种理论与实践相结合的教育方法,能确保学生今后得到稳步的发展。“计算机图形学”就是培养学生利用计算机、数学、物理等学科的系统知识解决实际应用问题能力的一种有效方法,这样培养的学生才能适应社会竞争与选择的需求;只有在研究生阶段,通过再次系统学习、阅读原著与相关论文并参与项目开发等活动,达到全面提升对学科的认识能力,并向某一个研究方向发展、去探索未知世界的变化规律、解决前人没有解决好的难题、逐步走入学术研究的殿堂(即创新教育);当然人们也能在日后的工作中慢慢积累这种工作能力。
文献[2,3]系统论述了“计算机图形学”课程在计算机科学教育中的作用与地位。目前很难找出一门具有像“计算机图形学”类似重要性与多样性的其它计算机本科专业基础课程,能使读者正确掌握数据计算类型的计算机应用程序设计的基本方法,并使计算机这一工具直接服务于社会,这是我们应该重视“计算机图形学”教育的根本原因。
3学习“计算机图形学”的方法
由于“计算机图形学”属于计算机应用软件的范畴,因此,数据计算类型的应用软件的设计方法就是学习“计算机图形学”应该遵循的原则。就“计算机图形学”课程的学习而言,它要求:
(1) 全面掌握程序设计语言的特性与数据结构的基本内容,是实现“计算机图形学”编程的基础。
(2) 掌握建立解决实际应用问题的数学模型与软件系统的概念,是计算机程序设计的两个关键点。软件系统是一个能自动运行的综合执行程序,它能从输入、存储、运算处理、输出等方面全面处理用户在某个领域中提出的诸多数学模型并完成其模型描述数据的加工任务,使用户很容易明确这种软件的组成、功能与使用范围。一般利用二维图形的简单性,可以较完整的介绍二维图形软件系统这一概念。软件系统的概念是目前程序设计语言与数据结构课程中所欠缺的关键内容。
(3) 正确的认识“计算机图形学”与计算机仿真的相互关系。“计算机图形学”的重点与难点在三维图形的数学模型研制(包括照相机模型,灯光模型,颜色模型,照明模型,物体的几何模型,物体表面的材质与纹理模型等)与模型描述数据的构造上;由于计算机图形学追求像照相机拍照一样的三维真实感图形显示效果,这决定了要在计算机中使用物理学仿真的方法(仿真光线在自然界中的传播所产生的显示效果或把这种传播效果映射至物体的表面上)才能达到这一目的,这自然需要读者对相应的物理知识有个基本的了解才能进行。
(4) 需要了解一些计算机仿真的基础知识,以确保“计算机图形学”的物理仿真教学过程不会出现偏差。
计算机仿真的主要过程分系统、模型、编程实现(仿真算法)、评估四个步骤。这里①系统是指相互关联又相互作用着的研究对象的有机组合,它决定了被研究考察对象的组成与边界范围。②计算机仿真一般可以用数学模型(简称模型)的方法代替实物研究对象,事实上模型也可以是对现实世界的事务、现象、过程或系统的简化描述,但它反映了实际问题最本质的特征和量的关系。目前“计算机图形学”所述的模型多限于对所研究对象的物理性质、运动变化规律等特性的一种数学描述,它使人们能解释那些难以直接观察到的事物的内部构造、事物的变化以及事物之间的关系――即模型描述了现实世界中有显著影响的因素和相互关系。但这种描述有一定的使用条件与限制范围,研究的目的不同,对该研究对象的数学模型的描述方法以及模型的种类会不一样。③仿真(编程实现)就是在模型上做实验,从理论上测试构建的理想系统的动态行为特性,以评估系统的效能。④系统的用途不一样,评估的方法也不同,人们往往用事先约定的一组指标来评估仿真系统的结果;当所得仿真结果没有达到预期的理想效果时,人们往往不断改进仿真模型与仿真算法。例如计算机图形系统,用途可以是显示三维图形,查看它的真实感逼真显示效果就是人们主要关心的问题;模型的运动与操作(如游戏),看它的操作性与故事情节等如何表达用户的情感与智能(简称好玩)就是人们关心的主要问题;机械设备的综合运动与仿真,考察所设计的复杂设备的工作性能就是人们关心的主要问题;电气系统的系统仿真,能考察系统工作参数如何设计以满足用户的不同需求;作战系统的仿真模拟,能考察作战人员的训练水平、武器性能、指挥作战方式对作战进程的不同影响与作战效能,等等。
(5) 努力把图形学所介绍的各种模型与算法(算法是对模型描述数据的加工与变换处理的步骤与方法,“计算机图形学”中的主要算法有各种线段图形的生成与实面积多边形的填充算法、着色算法、消隐算法、纹理映射算法、阴影算法,光线跟踪算法与辐射度算法)都编写成程序代码,这使读者能直接体验自己的学习效果,也是其它课程不容易做到的。编程时要考虑算法的复杂度,特别是按照软件系统的方法把编写的程序代码组成一个系统整体,这是形成成熟商品软件很重要的前提。显然,此时软件系统中的各种数学模型反映了仿真系统中研究对象之间的相互关系。
(6) 掌握“计算机图形学”打造的绘图工具,是可视化应用软件编程的重要基础。用“计算机图形学”知识研制的工具常用的有OpenGL与Direct3D等三维图形标准,虚拟现实建模语言VRML。而三维动画与CAD等软件可以看成是“计算机图形学”为影视制作、游戏建模与计算机辅助设计部门打造的专业计算工具。仅把图形标准与计算机绘图等应用当作“计算机图形学”很不完备,因为它不能在课堂教学中向读者正确、完整、系统地展示计算机图形学学科发展的基本规律,并人为地割裂了计算机图形数据模型的构造与显示这两个过程。
(7) 学会看中英文专业杂志等参考资料,这些参考资料记录了学科的发展历程与学科当前的研究热点(一本教科书不可能全部包含这些内容),且是一种更重要、复杂、深入的学习研究方法,也是目前国内本科教育的弱项(因为国际上最新的研究成果多用英文发表)。只有这样,才能跟踪计算机图形学的最新发展并站在学科发展的前沿、才能开阔人们的视野并有所鉴别,便于读者日后针对用户的多种需求展开开创性创新或针对已有成果的不足、提出修补与改进等渐进性创新等学术研究活动。
(8) 勇于参与课程实践与项目开发,是巩固、检验所学知识、提高实际动手能力的好方法。实际软件开发工作往往是多种知识的综合应用,它需要对实际处理事务有一个比较透彻的了解(用户需求报告)、并建立这些待解决问题的数学模型与系统流程后才能有效进行(按照软件工程的方法组织实施)。
只有把自己开发的软件做成有效商品、服务于社会,才能使所学的知识转变成生产力,才能使自己得到升华;同时也应注意把自己的心得与研究成果总结发表,与人共享;还应参加学术活动,注意留意不同学术流派之间的观点、思想、方法与学术动态,取长补短,形成自己的风格,广结人缘,相互交流,为学科建设添砖加瓦。
(9) 一本计算机图形学教科书的容量使其只能介绍计算机图形学发展历程中产生的最基本、最经典的模型与算法,这些内容是人们耳熟能详的物理原理与相对简单的数学知识在计算机中的综合应用,太复杂的计算关系因会影响图形的显示速度而一般不采用;目前计算机图形学教科书的理论体系已成熟且“计算机图形学”的教学内容已经构成了一个大系统,这使“计算机图形学”的教学过程变得简单、容易。
4目前国内“计算机图形学”教育未受到重视的原因分析
既然如此,为什么目前人们感觉“计算机图形学”教育的受重视的程度不如数据库与网络通信等计算机应用软件呢?笔者认为其原因之一在于:这是因为“计算机图形学”造就的工具即图形标准的特殊应用环境要求限制了它在很大一部分应用程序中的具体应用;三维图形标准目前仅仅在游戏领域获得了商业上的成功,一些应用软件不调用图形标准也能自己绘图;国内的计算机应用程序可视化的开发要求暂时还较低;关键是作为学科领头羊的美国人目前还没有把“计算机图形学”课程作为计算机本科专业的核心课程,这是因为他们对“计算机图形学”课程的本质与其在计算机学科中的作用与地位认识不到位所致,美国人图形学这种教育现状(目前多以图形标准的原理讲授为主)和局限性与美国人在3D游戏、计算机动画、计算机辅助设计等应用软件的开发上执世界牛耳之地位不相称。
当然,早期计算机图形学教科书编写内容、体系的不够成熟,也影响了人们对“计算机图形学”课程的认识与学习的积极性。例如仅停留在数学公式与算法的层面上介绍二维、三维图形的生成而不注重其建模思想与方法的介绍,且人为的把物体几何模型的构建与其图形显示分解成“计算机辅助几何设计”与“计算机图形学”这两门课程,这直接导致图形学课程教学内容缺少被处理的图形显示对象,加之计算机课程与图形学的教育又没有软件系统的概念,这样安排虽然能满足图形标准等商业软件的发展需求,但却很难让初学者全面掌握“计算机图形学”学科系统性的概念、思想和方法与学科发展的基本规律――用数学模型的方法指导编程实践,在计算复杂性可接受的条件下,针对已有成果中存在的不足,不断用新的数学模型与仿真算法等方法对其进行改进,使图形学的数学仿真过程不断的逼近现实物体模型(包括刚体、软体、流体、气体)的构造、运动、变形、切割和拼接与反光效果的显示这一真实的物理变化过程。即初学者没有用计算机生成图形的完整概念,这也是以往人们认为计算机图形学课程难教、难学的主要原因。
由于“计算机图形学”的绘图原理不像数据库软件那样,数据库的功能可以被所有的应用程序所调用;也不像通信软件那样,所有要联网的计算机都离不开通信技术与网络技术,而计算机显卡工业、3D游戏、计算机动画、计算机辅助设计等产业的市场份额小于数据库与计算机通信等产业的市场份额,即应用软件的商业价值决定了它们在人们工作与学习中的地位。
参考文献:
[1] 魏海涛。 计算机图形学(第2版)[M]. 北京:电子工业出版社,2007.
[2] 魏海涛。 科学的构建‘计算机图形学’的教学内容,促进计算学科的全面发展[J]. 计算机教育,2008,(10).
关键词:计算机图形学;教学改革;实例教学;实践教学
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)38-0051-02
《计算机图形学》既是计算机科学研究领域中一门重要的学科,同时也是建立在传统图学、现代数学及计算机科学上的一门交叉学科。它已广泛应用在于计算机辅助设计与制造、计算机辅助绘图、计算机辅助教学、工业过程控制、计算机动画艺术、科学计算可视化、人机交互和虚拟现实等诸多领域[1]。基于《计算机图形学》领域的巨大发展和《计算机图形学》课程教学中存在的诸多问题,有必要对该课程的教学进行改革,从而提升该课程的教学水平。《计算机图形学》的研究内容主要包括图形软硬件、光栅图形生成、真实感图形计算与显示、曲线曲面造型、人机交互技术、科学计算可视化、计算机动画、自然景物仿真、虚拟现实等[2]。
一、目前教学中存在的问题
《计算机图形学》课程是一门理论与实践结合性强的课程,这导致在实际教学过程中存在以下四个问题。
1.教与学的目的不统一。笔者通过教学过程中与学生的交流发现,大部分学生对本课程的理解不是很正确。他们之所以选修这门课程,主要是因为他们认为通过对《计算机图形学》的学习可以处理漂亮的图片、制作炫目的动画和进行游戏编程等。然而该课程实际上是去探究实现这些操作的原理,是研究更本质的知识。学生一开始对该课程充满好奇和期待,但随着课程的深入讲解,他们会感到本课程的理论知识枯燥,导致学习兴趣不断下降。
2.学生动手能力的不足。《计算机图形学》这门课程要求学生具有较强的编程能力和动手能力,因为要掌握和实现一些图形学基本算法。而在教学中发现,大部分学生的编程能力和动手能力都一般,很多任务不能正常完成,从而间接打击了学生的积极性,使得他们对该课程的兴趣与日递减,最后转为放弃学习。
3.课程设置不合理。《计算机图形学》尽管是计算机科学的一门重要学科,但在计算机科学与技术专业并不是核心课程,因此在课程设置中只是将该课程作为高年级的方向选修课开设。很大部分选修学生不是真心想学习该课程,再加上这些学生对课程的理解也存在着偏颇。基于这个现状,任课教师也就只能在实际授课时力求简单,从而导致教师无法完成必需的教学内容。
4.实践教学重视不够。传统教学模式只重视理论而忽视实践,一方面表现在实践课时安排上(本校课堂教学的课时是实践教学的两倍);另一方面是开设的实验更多的只是算法验证性实验。这使得原本很重要的实践活动转变为形式,这势必阻碍学生运用所学图形学理论知识提升其自身的创新能力。
二、教学改革具体措施
1.板书与多媒体相结合。多媒体教学作为现代教育的有效手段,确实具有传统教学无法比拟的优势,它信息量大、效率高、趣味性强,使教师的授课更便捷,让算法的演示更形象具体,从而有利于激发学生的学习热情,使教学效果达到最优化。因此,目前基本上所有的高校都采用多媒体方式进行授课。但其实对于图形学这门课程,由于其涉及到大量的数学推导,比如,基本图形的生成、图形几何变换和曲线曲面造型等,在多媒体教学的同时,需要运用板书进行相关数学推导,这可以使学生在教师板书的过程中学会思考,从而更好、更正确地理解各种图形算法。
2.加强实例教学。由于图形学课程需要掌握很多算法,因此在讲解图形学算法时,不能只讲理论,这样太空洞。应围绕具体的实例进行教学,借助计算机技术(比如flash)对一些算法进行动画模拟演示,从而使算法的描述更加形象化和具体化。这一方面有利于学生更快更好的掌握这些算法;另一方面也可以激发学生学习的热情和积极性。比如,在讲解“多边形填充4连通边界填充算法”时,利用flash演示像素入栈出栈原理,如图1所示,更直观地展示算法的基本思想,从而充分调动了学生的学习积极性,使其具备主动学习的能力。不过因为课时有限,演示实例不能太复杂,能把算法讲解清楚即可。
3.加强实践能力的培养。《计算机图形学》理论和算法是比较深奥和难懂的,不是很容易掌握,但其实验结果却是直观和生动的。该课程具有很强的实践性和应用性,因此上机实验是其重要环节。在教学过程中需要继续加强学生实践能力的培养,引导学生把所学的基本理论知识应用于实践操作,不断提高学生发现问题、分析问题和解决问题的能力。《计算机图形学》在本校的总学时数为48学时,其中的实验课时数为14学时,这14个学时7次实验基本能够满足课程实践教学的需要。本课程的实验根据难易程度可分为如下两个层次[3]:①基本实验。主要是为了锻炼学生对算法的理解能力、算法到程序的转换能力以及用VC编程实现算法的能力,主要包括基本图形(直线、圆和椭圆)算法、线型和线宽的处理、字符的生成技术、线段的裁剪、二维和三维图形的几何变换和投影变换、曲线绘制等,要求学生能够独立完成。②综合实验。这类实验包括多边形裁剪算法、多边形区域填充算法、区域图案填充算法、多面体的消影、画家隐面算法和Z-Buffer隐面算法等,它们无论从算法复杂性上还是程序编写难度上都要高于基本实验。可以考虑将学生分成若干小组,以小组的形式在规定的时间内完成。
参考文献:
[1]陆枫,何云峰。计算机图形学基础(第2版)[M].北京:电子工业出版社,2011.