前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的计算机图形学课程主题范文,仅供参考,欢迎阅读并收藏。
关键词:计算机图形学;教学方法;上机实践
计算机图形学是伴随着计算机及其他设备的发展而产生的,是一门研究怎样利用计算机表示、生成、处理和显示图形的原理、算法、方法和技术的学科[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)
关键词 计算机图形学 第三方演示 课程群 分组实践
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.
[4] 娄凤伟.创造性思维与计算机基础教学[J].教育探索,2002.
[关键词] 计算机图形学;思维导图;图形学理论教学;图形学实践教学
[中图分类号] 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 实验课教学内容的设计
计算机图形学传统教学中的实践一般使用C++来实现相关算法,实现难度过大,导致学生没有时间和兴趣去完成。实践教学的本意是对理论教学的巩固、完善与提高,为实现理论与实践教学的平稳衔接,我们在实践教学环节中,采用OpenGL作为图形算法接口,让学生有针对性地完成若干实验项目。
关键词:计算机图形学 教材 OpenGL
中图分类号:G642 文献标识码:A 文章编号:1672-3791(2014)10(c)-0178-02
从学科角度来看,计算机图形学是一门理论和实践都很强的综合性学科;从技术层面来看,计算机图形学是计算机应用领域的一个重要分支,其应用已经渗透到社会的各个方面,例如计算机游戏产业和影视动画,人们使用手机和计算机时操作的图形用户接口,这些应用与人们的生活密不可分。计算机辅助设计与制造、科学数据可视化、虚拟现实等等,计算机图形学在科学研究、生产实践和人们的日常生活中均占有重要地位。因此,学生在学习计算机图形学课程之前对该课程具有一定的好奇和期待,但是如果按照当前市场上流行的教材组织教学会使学生很失望,从而失去学习该课程的热情。
1 计算机图形学教材存在的问题
计算机图形学是研究用计算机生成、处理和显示图形的一门学科,本科段的主要教学内容由以下几个部分组成:光栅图形学、图形变换、图形裁剪、可见面判断、曲线和曲面、简单的真实感图形生成。基于这些内容,国内教材基本上以计算机基本图形的生成原理及其相应的经典算法为核心,注重算法的推导过程,也就是数学演算过程,使得教材内容理论性很强,对学生的数学基础要求较高。这样的教材适合培养学术研究型的学生,所学知识为他们进一步学习、从事计算机图形学的研究打下坚实的基础。但是应用型本科院校计算机专业的绝大多数学生毕业后走向职场,即使考上研究生进一步深造的学生,选择计算机图形学作为研究方向的可以说是凤毛麟角。更加重要的是,应用型本科院校计算机专业的学生普遍数学基础比较差,没有数学基础来学习这种数学演算式的算法推导过程。由于计算机软硬件技术的飞速发展,当前在软件开发领域也用不到教材中这样底层的经典图形算法,一般的图形软件开发都是基于某种图形软件标准,例如实际的业界标准OpenGL(Application Programming Interface),微软公司的DirectX。基于软件标准,学生可以学到开发图形学软件的一些实用技术,掌握绘制真实感图形的完整流程。因此,当前急需解决应用型本科院校计算机图形学的教材问题,以及由此带来的该课程在应用型本科院校的定位问题。
2 计算机图形学教学改革探索
应用型本科院校的学生普遍数学基础比较差,优点是动手能力比较强,其中不乏玩游戏的高手。绝大多数认真学习的学生都对程序开发比较感兴趣,并且学得快。但是由于数学基础和抽象思维能力比较差,对理论性强的教学内容不感兴趣,学起来吃力。针对计算机图形学教材的现状和应用型本科院校学生的特点,对计算机图形学课程的教学目标、教学内容和教学方法进行了一定的研究探索。将教学目标定位为使学生通过该课程的学习,对计算机图形学有一个概括性的全面了解,理解计算机基本图形的生成原理及其相应的经典算法的基本思路,掌握其中的重要技术;学习一种图形软件标准,加大实际动手能力的培养力度,使学生通过该课程的学习,能够设计简单的图形场景,掌握绘制真实感图形的基本流程。对于教学内容,采用一本教材为主,多本参考书为辅,在吃透这些教材的基础上重新整合教学内容,力求使学生能够学到实际有用的知识和技术,掌握必要的计算机图形学的理论基础和开发图形应用软件的初步能力。OpenGL是一种跨平台的应用程序接口,已经成为实际的业界标准,而微软公司的DirectX仅适用于Windows操作系统。另外,OpenGLES是OpenGL的子集,应用于多种嵌入式系统,如控制台、移动电话、手持设备、家电设备和汽车等。把JavaScript和OpenGL ES 2.0结合在一起构成了WebGL,为HTML5 Canvas提供硬件3D加速渲染,Web开发人员可以用WebGL构建具有丰富图形的网站页面和设计网页游戏等。所以教学中选用了OpenGL作为实验平台。
教学内容整合以教材为依据,对应每个教学模块增加相应的OpenGL内容,例如光栅图形学模块增加OpenGL的基本图元绘制、图形变换模块增加OpenGL实现图形变换的内容、曲线和曲面模块增加利用OpenGL绘制Beizer曲线曲面和B样条曲线曲面的方法、真实感图形生成模块增加OpenGL的光照(包括光源的位置、光的类型)和材质内容,等等。整合后的教学内容体现了理论与实践并重、理论与实践相结合的教育思想,每一次课的教学内容由两部分组成:一是理论部分,讲授计算机图形学基本原理和概念、经典算法的设计;二是实践部分,讲授与理论教学内容相关的OpenGL绘图程序设计。对于理论教学内容突出重点,精选有代表性的算法讲解透彻,使学生掌握算法思想的精髓、主要技术手段,对类似算法能够举一反三,自行学习。实践教学部分强化培养学生的创新思维和实际动手能力,针对教学内容演示基于OpenGL绘制的图形或者场景,引导学生分析设计过程以及实现各个功能的OpenGL函数,以便学生通过学习能够独立自主地设计出具有真实感的图形或者简单场景。由于教学内容由理论和实践两个主题构成,所以教学过程中要特别注意将这两个部分有机地融合在一起,具体做法是讲清楚OpenGL函数在计算机系统内的实现机制,下面以图形的几何变换为例说明。图形的几何变换以齐次坐标为基础,用矩阵表示变换,将变换矩阵乘以点的原始坐标,运算结果即为变换后的点的坐标;OpenGL的变换函数是以程序员给定的参数、按照函数功能先构造相应的变换矩阵,然后将变换矩阵与点坐标相乘得到变换后的点坐标。通过这种剖析将理论知识与实践技术有机地结合起来,使学生知其然,也知其所以然,极大地激发了学生学习理论基础知识的热情。
教学过程以建构主义教学理念为指导,以任务驱动教学法为主结合多种教学方法以提高课堂教学质量。建构主义教育思想认为学习的本质是知识的建构过程,教学的目的在于帮助学生实现知识建构,而不是单向的给学生传授知识,教师的作用是引导学生对原有知识进行改造和重组,实现新知识建构。任务驱动教学法的核心是以任务驱动教学过程,教师根据教学目标和教学内容设计合适的任务,通过分析这个任务引导学生建构知识。例如,讲授真实感图形生成时,首先演示一个编程绘制的具有真实感的图形,在光照的作用下图形逼真、美观,极大地激发了学生的学习兴趣。通过分析这个图形的生成原理和技术,引出光照模型和颜色理论的基础知识,通过设问、启发等多种教学方法引导学生建构相关的理论知识;通过分析OpenGL实现光照、材质的技术,完成利用计算机绘制真实感图形的教学任务。
最近几年,市场上出现了一些面向应用型本科院校的计算机图形学教材,其中计算机图形学基础理论的深度和难度都比传统教材降低了,阐述也比较通俗易懂,但是没有配套的上机实践教材。因此,编写了基于OpenGL的电子版实验指导书,实验内容由以下模块组成:熟悉编程环境、基本图元生成、二维图形变换、三维图形变换、光照和材质、曲线和曲面。实验类型分为验证型,设计型和综合型。每次上机实验课的内容分为两个部分:一是运行课堂教学中讲授的OpenGL程序、分析运行结果,然后修改这个程序生成新的图形,从而加深对所学知识的理解;二是利用所学知识设计一个物体或者简单的场景。课外作业是根据所学知识自由创造一个具有真实感的场景,从第一次上机实验开始,从简单到复杂构造一个场景,每次上机后增加本次实验所学知识的内容,上机实验课结束时上交,作为该课程的实验考试成绩。这样,学生不仅学习了利用计算机生成真实感图形的完整流程,而且亲自实践了这个完整流程。
4 结语
通过教学内容的整合,使学生能够学到利用计算机生成真实感图形的完整流程,有效地培养了学生的软件开发能力,如果不进行上述教学改革是不可能达到这个目的的。当前国内教材太注重经典算法的剖析,学生即使努力学习,也是只见树木不见森林,非常不适合应用型本科院校的学生使用。由于OpenGL的强大功能,教学中可以演示利用OpenGL编程绘制的逼真图形,学生通过学习也可以自行设计、编程绘制这样具有真实感的图形,极大地激发了学生的求知欲,使得学生想学计算机图形学课程,有效地提高了该课程的教学质量。
参考文献
[1] 王艳春,张金政,李绍静.计算机图形学课程教学思考[J].计算机教育,2011(14):63-66
[2] 孔令德,刘晋钢.应用型工科院校计算机图形学教学模式改革[J].计算机教育,2011(18):20-22
[3] Francis S Hill,Jr,Sstephen mkelly,著.计算机图形学(OpenGL版)[M].3版,胡事民,刘利刚,刘永进,等,译.北京:清华大学出版社,2009.
【关键词】计算机图形学 实践教学 应用型教育 数字媒体技术专业
【基金项目】基于CDIO的数字媒体技术专业卓越型人才培养模式的构建与实践(2012jyxm358)。
【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2013)08-0152-02
1.引言
计算机图形学是数字媒体技术专业一门重要的核心专业课,它在虚拟现实、计算机辅助设计与制造(CAD/CAE)、科学计算可视化、计算机动画、地理信息系统(GIS)、计算机游戏、、影视广告计算机仿真等领域均有广泛应用,该课程也是新一轮专业教学改革中计算机科学方向的16门主干核心课程之一。该课程一方面内容十分丰富,涵盖了计算机图形学表示、生成、显示和处理图形的基本原理与方法,另一方面理论性强、难度大,以计算机程序设计技术为基础,与数学、物理学等学科结合紧密,对数学、物理学的要求较高,如何教好、学好这门课程无论对教师还是学生都是一个挑战[1]。
数字媒体技术专业是一个以计算机程序设计技术为主,艺术设计为辅,技术与艺术相结合,涉及多种学科交叉的新兴专业。我校数字媒体技术专业依托文学院、美术学院,以游戏开发为主线,设置技术与艺术相结合的人才培养课程体系,探索培养复合型(面向应用的理论型)数字媒体技术人才的新模式。为了培养社会急需的高素质数字媒体技术人才,我国高等院校纷纷开设了数字媒体技术专业,竭力在人文艺术素质提高的同时,加强学生面向网络、新型数字媒体技术的研究与开发能力[2]。
在高校计算机教学改革的推动下,在我校大学生的培养模式下,数字媒体技术专业的课程是本着厚基础、重实践、求创新的总体原则设置的。计算机图形学作为一门专业基础课,是该专业课程体系中占有重要位置的一门课。因此,如何结合当前教学改革的要求,围绕该课程的教学目标,上好这门课是值得深入思考和研究的,本文围绕我校数字媒体技术专业计算机图形学的教学目标,探讨了几点计算机图形学的具体教学措施,应用于我校该专业的计算机图形学教学实践中,取得较好效果。
2.专业特点与课程教学目标
数字媒体技术专业是旨在培养具有良好科学素养和创新精神,具备信息传播理论、数字媒体和设计管理能力的复合型高级应用型专门人才。本专业的毕业生能从事数字媒体开发、音视频数字化、网页设计与网站维护、多媒体设计制作、数字媒体管理等工作。主干课程有:数字媒体技术概论、计算机科学与技术、艺术学、通信工程、C++语言程序设计、JAVA语言程序设计、计算机图形学、数据结构、数据库原理及应用、 数字图像处理、网页设计与制作、流媒体技术、OpenGL编程与应用、游戏开发等。该专业以基础教育为根本,创新应用为提高,主要通过开设全面的专业基础课和应用提高型选修课来实现这一专业特点。
计算机图形学设在数字媒体技术专业大二下学期讲授,将重点介绍计算机图形学的基本概念、方法与算法,主要由五部分组成:第一部分是计算机图形学的历史、应用、发展和前沿;第二部分是二维图形处理技术,包括基本图元的生成、填充、裁剪、观察与变换以及反走样;第三部分是三维图形处理技术,包括三维图形的投影、表示、消隐和真实感显示;第四部分是曲线曲面,掌握经典的Bezier曲线/曲面、B样条曲线/曲面、NURBS曲线/曲面的概念及生成算法;第五部分是与人机交互相结合,介绍常规交互的基础上,了解最新的自然人机交互知识。本课程的教学目标是使学生掌握计算机图形学的基本原理和基本方法,了解其发展方向及前沿成果,为今后从事计算机辅助设计和制造、计算机图形处理,如虚拟现实、动漫设计、游戏开发等方面的工作打下良好的基础。
3.具体教学措施
在计算机图形学的课程教学中,对枯燥难懂的理论,教师应力求讲解清楚,图文并茂,着重加强对学生上机实践的计划安排与现场指导,以达到良好的教学效果。主要采用以下教学措施,来激励和促进学生对计算机图形学的学习。
(1)“问题驱动式”教学
现代教育思想强调以培养学生发现、分析、解决问题的能力为主要目的,首先发现问题,这是认识和解决问题的起点,所以“问题驱动式”教学是许多现代教育家所提倡、推崇的教学方法,“问题驱动式”教学法的正确使用对于提高学生的素质,强化学生学习兴趣,调动学生主观能动性,培养学生创新能力有积极作用,在教学过程中,我们自始至终都围绕问题而展开教学活动,激励学生自觉思考、主动探索,引导学生不断发现问题、提出问题、分析问题并最终解决问题,培养了学生的创造性思维。在专业教学中遵循这一自然规律,通过不断的提出与教学内容相关的问题,引导学生的课程学习,再通过课程实际算法的讲授,解决每个教学内容之初提出的问题,不仅有利于同学对基础知识的掌握,而且培养了学生针对实际问题的计算思维。
例如,在三维图形处理技术部分内容的讲授之初,提出“真实感茶杯的绘制”问题,该问题以前面所学的二维图形处理技术为基础,涉及茶杯三维模型的建立、投影变换、消隐技术以及真实感显示等内容,围绕该简单易实现的实例来讲解该部分内容,将打消学生的畏难情绪,提起学习兴趣,学生实现后又能增强自信心。
图1 学生实现的茶杯效果图
(2)真实题目的实践教学
充分利用计算机与信息学院的实验资源,采用课间实验和集中实验相结合的方式进行实验安排,其中课间实验和相应课程同步进行,集中实验一般在相应课程结束后集中进行,以综合性、设计型为主,旨在锻炼综合运用知识,解决实际问题的能力。在学院的带领下,不断加强数字媒体技术实验室的建设,培养学生动手操作能力。提出切合学生知识水平的实际题目,结合课程知识进行实践教学。
另外,通过校内、校外实践环节相结合的方式培养和发展学生创新和实践动手能力。在实践教学中,加强工程实践、课程设计、毕业设计等环节中的工程训练,带领学生到相关企业、研究所和高校参观学习,使学生初步接触实际工程,从宏观上理解数字媒体技术专业的架构和发展方向。积极鼓励和指导学生参加校级、省级、国家级各类学科竞赛,如数学建模、电子设计、工业设计、挑战杯和信息技术技能等大赛,鼓励学有余力的学生根据学校合作企业的需求参加业余科研活动。
例如,结合校企合作项目,在课程实践上设置三维游戏场景、角色设计、游戏综合创作等围绕游戏开发的综合性实践。应用图形学的基本图元生成算法、扫描线填充算法、种子填充算法、坐标变换等创建模型,并利用程序设计语言设计小型动画作品,如蝴蝶花间飞舞、茶叶沉降动画等。
图2 学生设计作品抓图
(3)培养兴趣的前沿技术介绍
兴趣是学习的原动力,因此应充分利用该专业丰富多彩的多媒体作品激发学生的学习和创作兴趣,鼓励学生动手实践。运用启发式、讨论式等先进的教学方法提高学生独立思考和综合分析问题的能力,给学生方法论、发散思维、多维思想等启迪,给学生开设本学科前沿知识讲座,开阔学生的视野,培养学生的科学素养,培养学生的学习兴趣,并注重学生应用技能的培养和提高,在应用中反思基本的原理和知识。
例如,最新的数字电影和视频展示、新颖的平面广告设计、先进的工业品造型设计、环境艺术设计及建筑表现,Kinect在虚拟现实中的应用,交互感知技术发展,AR增强现实技术等。
4.结语
总之,计算机图形学作为一门基本的理论算法类课程,在教学中不能过多地强调理论问题,而应结合其在数字媒体技术中的应用来讲,明确计算机图形学的教学目的是与后面的游戏引擎相结合,在内容的取舍上侧重OpenGL的应用,结合实际问题,在实际应用中激发学生学习兴趣,以“问题驱动式”教学方法,促进学生的基础知识学习,面向项目的案例教学模式,开展综合性实践教学,为优秀学生提供发展平台。在教学过程中,不断收集整理学生作品,作为课程实例进行展示和讲解,提高学生的自我认同感和自信心;以学生作品或课程素材形式放在课程网站上,为打造有专业特色的计算机图形学课程服务,在原有教学基础上针对性地提高。
参考文献:
[1]杭后俊. 计算机专业计算机图形学教学实践探讨[J]. 计算机教育,2012(17):76―79.
[2]叶福军,潘瑞芳,张帆. 复合型数字媒体技术专业人才培养探讨[J]. 新闻界,2009(4):126―127转125.
关键词:计算机图形学;可视化教学系统
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)34-7750-03
计算机图形学主要研究用计算机进行图形生成、处理、输出与显示的基本原理和算法的学科;是计算机应用中的重要分支之一。此教学系统设计使学习者掌握了解计算机图形学中图形的基本算法及其实现,提高学习者算法设计能力和编程实践能力。
1 系统设计
由于图形学算法具有一定的抽象性、难于理解并且枯燥,学习者难于从通过执行的静态代码来想象图形数据结构的动态变化,从而丧失了学习该课程的主动性和积极性。为了让学习者对图形学算法原理有清晰的认识和直观的印象,提高学习兴趣,目前出现了一大批借助多媒体技术手段的图形学教学辅助软件,但这些软件普遍都存在以下这些问题:1)教学软件只是课本的电子版本,课本上的文字和图片被一层不变的搬到教学软件上,基本算法的讲解部分,也只是把算法原理和算法实现以字符的形式表现出来。2)算法采用FLASH动画演示,但只是按预先设定好的某种情况来描述算法,学习者不能输入不同条件来改变输出结果,也无法控制动画演示的速度,缺乏交互性和智能型,无法满足学习者个性化学习。3)采用可视化编辑工具C++或JAVA实现部分算法的动态演示,存在一定的交互性,满足自主探究学习,但这些软件没有涵盖所有基本算法的动态演示过程,缺乏在线协作学习等功能。
针对以上一些不足,本系统建立虚拟栅格和以可见点模拟人眼不可见的像素点,利用可视化技术以动画形式模拟该课程基本算法的实现过程、难理解的知识点和抽象概念,注重运用交互控制技术,学习者可以针对不同的算法进行参数修改和演示速度的调整,开发了题目实时更新的课后练习系统,还利用SOCKET技术开发了群聊工具,满足学习者自主学习、探究式学习、协作学习。该系统建立了授课、测试以及师生互动等体系,为教学建立一个完善的有好的教学平台。
1)技术路线
可视化编程工具C++ Buidler6.0将课程涉及到一些算法可视化实现,包括直线、曲线生成、圆、椭圆生成、直线段裁剪、多边形填充、分形模拟的动态演示。满足个性化学习,提高教学效率和教学效果。提高教学质量教学演示和模拟,对一些抽象概念、理论等实现模拟对计算机图形点、线、面的生成的原理介绍,多种直线、椭圆、圆、曲线、曲面的生成算法介绍以及生动的算法演示,以帮助学生在课后复习巩固课堂学习重点、理解图形在计算机中的生成原理、掌握计算机中的图形生成的算法。可视化教学软件可以展示出算法执行的过程,可以帮助学习者更好地理解算法内容,掌握其实质。模拟人眼看不见的屏幕像素,并且以动画的形式完成个性算法动画演示过程。
GDI图形处理技术,采用C++面向对象语言来完成课件的制作,达到优秀的运行效率。在系统中,制作了图象放大演示可以让学习者了解到在计算机中图形的真实一面;学生可以在二维图形的几何变换中自己画图,自由变换,使学生从最基本的图形变换了解计算机中的动画原理;在三维立方体的空间运动演示中和贝塞尔曲面的透视演示,学生可以感受到三维的震撼效果并且理解在计算机中3D建模的原理。
2)设计理论依据
计算机程序、数据结构向学习者传受时存在着说明表现、演示过程等方面的不足,设计此系统将程序执行过程以及数据演变过程形象地在计算机屏幕上以动态图形方式表现出来。比如,当运行一个可视化的算法程序时,数据结构和程序功能就可以将程序中不易理解的算法特征用图形方式动态地显示在屏幕上,因此加深了用户对程序行为的理解和认识,也准确地让学习者了解和分析程序执行过程所反映的逻辑含义和功能。
算法可视化教学能展现运动过程,能弥补课本中只能以插图和文字说明的局限性,同时培养学生的观察力、想象力和逻辑思维能力。算法过程可视化强调提供解决实际问题的原型,它必须满足两个要求:①提供真实性任务,这样能充分了解自己所要解决的问题,②目标具有复杂性,能引起学生进行深层次考虑,激发学生的内部动机。比如在实现图形学课程中圆的扫描转换算法时,在标记出生成哪些像素的同时,给出相应程序的执行过程中变量的实时变化,它让学生在短时间内充分认识并体会扫描转换过程的每一状态及变化。这类可视化目标的设计也强调交互式控制,用户可以悬着不同算法,对半径进行修改,调整演示速度等,这样教学者便可以依据讲解内容和学生的反应来随时调整教学过程。
该程序具有动态交互的优势,通过改变参数,学习者很容易能发现图形随参数的变化而改变的规律,从而从真正意义上实现交互性。除此之外,界面友好、显示清晰、逻辑性强、使用方便、科学性强都是它的优秀之处。
3)完善的辅助教学平台
利用SOCKET技术开发了群聊工具,建立起完成的授课、测试以及实验教学、信息、师生互动等体系,为计算机图形学教学实验建立以个完善的教学辅助平台。整合留言系统、电子白板等多种交互系统,为教师与学生提供了方便、适合的交流工具,达到教室、实验室在网络上的延伸,突破了空间的概念,并且把教师和学生紧密联结在一起。
本系统中包含一些使用计算机图形学知识完成的优秀作品。这些作品穿插在知识体系中使学生感受到学好这门课的重要性。同时提供丰富的课后习题供学生训练。如果觉得做的题目都是以前做过的,还可以通过SOCKET技术完成的在线讨论区以及留言板功能老师提出更新的题库的请求。若是碰到难题还可登录该讨论区,与同学、与老师一起讨论。在这里老师和学生无身份区别,完全可以自由讨论。而老师可以在合适的时候为原先的题库添加一些新的题目供学生训练。
计算机图形学是研究计算机生成、处理、显示和输出图形的学科。而图形学的教学关键是如何将图形的生成以更加生动和直观的方法展示给学习者,使学习者更能深入的理解计算机图形学的理论和算法原理。
2 结论与展望
计算机图形学是计算机学科的一个重要发展方向,学习计算机图形学课程之后,有利于读者向科学计算、计算机辅助设计、计算机仿真、信息数据的可视化、虚拟显示、动画与游戏、数字娱乐、数字设计等计算机应用行业方向发展。人们会对计算机图形学的研究对象、研究方法、编程实现、等问题认识不足而产生局限性,向学习计算机知识的者普及计算机图形学的教学,可以为解决计算机基础教育不能直接解决用户面临的实际应用问题的尴尬、弥补现教学中计算机仿真等环节的缺失、使计算机应用程序设计从“经验教学培养模式”到“科学理念式教学培养模式”转变,以及计算机类教学中起来一个良好的示范作用。
参考文献:
[1] Peter Shirley.计算机图形学[M].高春晓,译.北京:人民邮电出版社,2007.
[2] 魏俊鹏,于秋生.C++ Builder 6实用编程100例[M].北京:中国铁道出版社,2004.
[3] Erich Gamma.设计模式[M].李英军,等,译.北京:机械工业出版社,2007.
90年代初登陆上海的TI图形计算器结合相应的传感器,能帮助学生获得真实而相近的第一手资料,同时还能自动而迅速地分析数据以供学生参考,在研究型课程中有着广泛的用途。
我们知道,在中学开展化学研究型课程有相当难度。
首先是条件上。在上海中学化学实验室里,仪器设备虽谈不上陈旧简陋,但要利用现有仪器解决实际问题却有些难度。
其次是教师。在风起云涌的课改浪潮中, 有一些教师运用开公开课的机会进行主题式教学,言必谈“研究”,可实际上是老师在研究,学生跟着看而已。教师的理念仍需改进。
再有就是多媒体的误导。时下,教师精心制作多媒体课件,或由学生做课件,课堂上以汇报形式告诉另一些学生,已成为时尚的公开课模式。仍然缺乏交互性的多媒体教育手段不能让学生主动参与课堂上动态的认知过程。这种现代教育方式只能成为教师的演示工具,学生从黑板的仰望者变成屏幕的观看者,难以成为学生自主学习、进行探索和发现有认知工具。
而TI图形计算器则不同。机器虽小但内涵丰富,载入不同的程序,辅以不同的传感器,可以完成多种任务。人手一机的操作形式使学生拥有了更多的主动权。同样一个问题,不同的学生可以有不同的处理方式,但目标只是一个。而且,课题小组合作讨论的学习方式为每位小组成员创设了均等发表见解的机会,学生将不仅从教师处获得知识和方法,还可以从小组成员身上得到启示。
比如有这样一个问题:
等pH的HAc和HCl溶液,分别稀释m、n倍,若稀释后pH值依然相等,求m与n的关系。
在传统实验室找不到等pH值的HAc和HCl溶液,TI图形计算器能做到。TI图形计算器上连接两个pH传感器,并将传感器分别置于相近浓度的HAc和HCl溶液中,调节两溶液中加入水的量至显示pH相等。
后面的操作很简单,只要向刚刚获得的等pH的HAc和HCl溶液中分别加水至第二次pH值相等,比较加水量多少就可以了。
学生初始方案:各取50ml等pH值的HAc和HCl溶液于烧杯中,然后分别加水,观察pH变化。
结果:仪器没有多大动静。
疑问:是传感器不灵敏吗?
查阅仪器说明书:瞬时感应,误差0.01%。
教师提示:50ml pH=1的HCl稀释到多少ml才能使pH变为2?
学生顿悟:强酸pH变化1个单位,需要稀释10倍。刚刚稀释的程度太小了。
学生修改方案:各取5ml等pH值的HAc和HCl溶液于500ml烧杯中,然后分别加水,观察pH变化。
结果:500ml烧杯中的5ml溶液根本没法浸没传感器感应部位。
学生大失所望,一筹莫展。这时有个学生不经意中画了一张pH-V水图(图1),小组另一个成员得到了启示,画了另一张图:pH-V酸图(图2)。
经过认真讨论,学生一致认可以下方案:两个100ml烧杯中各加入50ml水,分别逐滴滴加pH相等的HAc和HCl,观察pH变化快慢程度。
结果:加HAc的溶液pH变化要慢一些。
结论:酸1为HCl,酸2为HAc。从图象上可看出,要使同等pH的两种酸稀释后pH依然相等,HAc所需的水更多一些。所以本题答案m>n。
三维动画作为一种新兴的动画形式,近几年发展非常迅速,逐渐成为了主流的动画形式。中国开展动画专业的高校现在也都基本开设了针对三维动画的课程。三维动画不同于传统的二维手绘动画,是和计算机技术结合非常紧密的一门交叉学科,基本所有的制作过程都要借助于计算机硬件和软件,这使得三维动画的教育方式和方法需要同传统的二维动画教育区分开来,不论从教学方法还是教学内容都需要进行很大调整。国内三维动画教育目前还处于起步和摸索阶段,相比较来说,欧美发达国家三维动画教育起步较早,发展也相对完善。如果可以吸收和借鉴其中成功的经验,并加以利用,一定能对中国的三维动画教育帮助良多,解决目前存在的一些问题,并能推进国内整个三维动画产业的发展。在所有的欧洲三维动画教育中,英国的教育模式是比较富有代表性的也是发展较为成功的。英国高校的三维动画教育一般采取三位一体的教学模式。其中包括计算机图形学技术的学习,艺术知识的学习和计算机应用软件的学习。这三方面互为补充,构成了一个比较完善的教学体系。
一、计算机图形学技术的学习
目前中国国内的三维动画产业发展较慢,也较为混乱,是和缺乏足够的计算机技术相关的。而计算机图形学技术的学习也是目前中国三维动画教育中比较欠缺,急需改进的重点。因为三维动画里面的各种效果都是产生于与之相对应的各种计算机技术。例如海浪,火焰,毛发,还有模拟各种真实的动作等。没有相应的计算机技术,也无从谈起三维动画。也正是各种各样日新月异的计算机技术推动了三维动画在世界领域的快速发展。所以,软件开发技术不论从任何方面都是三维动画领域里面的重中之重。英国三维动画教育很重视这方面技术的教学和实践,也针对这些技术也开设了一系列课程。例如面向现在比较热门的Mo-tionCapture(动作捕捉)技术,英国的Bristol大学的CharacterAn-imation(人物动画)专业就开设立了MotionCaptureRetargeting方向的研究工作,主要面向解决MotionCapture后人物动作变形的问题,并在这一领域取得了一定成功。而类似Bristol大学的例子还有很多。Bournemouth大学甚至开设了计算机动画(ComputerAnima-tion)的博士生项目,并和中国的高校建立了合作关系。由此我们可以看出,英国的三维动画教育很重视计算机图形学,特别是三维图形学的教育工作。而且强调三维图形学和三维动画有机的整合在一起,使学生能真正理解三维动画的原理,有能力去开发和拓展三维动画领域。相比较来说,中国的三维动画教育一直忽视计算机图形学技术的教学和科研,导致学生严重缺乏必要的计算机技术,这也大大桎梏了三维动画在中国的发展。
二、艺术知识的学习
众所周知,三维动画的的魅力是由动画艺术本身独特的特点所体现出来的,对于动画艺术知识的学习自然是学好三维动画学科的基础。除了和中国基本相同的美术设计知识学习之外,英国的动画专业教育很重视电影学知识的学习,也针对性的开设了一系列课程。例如Bristol大学的CharacterAnimation(人物动画)专业就跟戏剧专业(DramaDepartmen)t合作开设了FromBodytoAvatar,ProjectDesignandStoryboarding等课程。专门讲授塑造人物性格,编排剧情,制作故事板,剪辑电影,添加音效等方面的内容。这些课程对于设计,制作和最后完成三维动画都很有必要。目前中国高校的三维动画教育对于美术知识的教育还是比较重视的,可是针对电影学方面的课程安排较少。如果能够参照英国的教学模式,适当增加电影学的教学环节,对于学生对于动画知识的全面了解和制作动画都会带来很多益处。
三、计算机应用软件的学习
毫无疑问计算机应用软件的学习也是三维动画教育中必不可少的一环,只知道原理却不会操作各种应用软件将会寸步难行。这些软件包括Maya,Premiere,AE,Photoshop,Audition等等。大型软件的应用在未来的三维动画发展中也会越来越重要。在英国的三维动画教育中,不论是本科还是研究生教育都有很大一部分比例的学分专门为这些课程安排的。这其中Maya作为权威的三维动画制作工具,是最难,最花时间,也是最重要的。学生通过课堂上的学习只是了解其基本操作,真要做到熟悉操纵Maya还要通过长时间的上机和实践。在国外的三维动画教育中,老师一般只花很少时间教学生操作,更多是给学生布置一些作业,在完成作业的过程中进行实践。针对中国的三维动画教育,应当适当延长计算机软件课程的教授时间,因为只让学生自己摸索,对于Maya这样复杂的软件实在勉为其难。何况Maya是全英文软件,对于中国学生是很有必要详细解释各种操作的。
关键词:图形编程;计算机图形学;教学模式;OpenGL
中图分类号:TP434文献标识码:A文章编号:1672-7800(2013)006-0148-02
基金项目:武汉纺织大学教研项目(2010020)
作者简介:陈永强(1967-),男,博士,武汉纺织大学数学与计算机学院教授,研究方向为计算机图形图像处理。
1国内教学现状
为有助于学生学习和理解计算机图形学的基本概念、原理与算法,需要结合形象化的图形编程实例和实验来补充说明和练习。国内教材和教学中计算机图形学案例和实验图形编程选用的编程语言有C、C++和Java。Java主要面向嵌入式设备和网络使用,目前PC机上软件编程教学通常采用C和C++编程语言,选择的图形开发环境是在VC++里使用控制台应用程序、MFC可执行程序、OpenGL开放图形库、Direct3D图形库等几种方式。
在课时有限的前提下,由于没有结合使用图形库的图形编程案例,加上实验难度较大,导致学生学习兴趣降低而很难完成理论学习和实验项目。Direct3D是微软公司在Microsoft Windows操作系统上所开发的一套3D图形编程接口,是DirectX的一部分,仅能在Windows平台使用,平台移植性差。OpenGL是一个专业的图形编程接口和功能强大的开放图形库,提供了基本的函数库,涵盖了开发二、三维图形程序所需的各个方面。OpenGL独立于窗口系统和操作系统,开发的应用程序可以十分方便地在各种平台间移植,且与VC++接口紧密。因此,在VC++里结合OpenGL图形库开展计算机图形学课程的辅助教学是最佳选择。
2结合OpenGL的教学模式
开放图形库OpenGL是一个性能卓越的开放图形编程接口(API),适用于广泛的计算机环境,具有使用简便、高效率、稳定可靠、性能高、可扩展移植、适应性强等特点,是唯一真正开放、独立于供应商、跨平台的图形开发行业标准,是图形开发工作者必须掌握的开发工具。OpenGL具有模型绘制、模型观察、颜色模式、光照材质、图像效果增强、位图和图象处理、纹理映射、双缓存动画、交互等功能。OpenGL主要由OpenGL核心库(GL)、OpenGL实用程序库(GLU)、OpenGL编程辅助库(AUX)、OpenGL实用程序工具包(GLUT)、Windows专用库(WGL)等函数库组成。OpenGL图形函数定义为独立于任何程序设计语言的一组规范,在各种编程语言中,如C、C++、FORTRAN、Ada和Java等,都可以调用OpenGL的库函数。
计算机图形学课程的图形编程实例和实验教学中,采用VC++结合OpenGL图形库,可以选择控制台应用程序+OpenGL和MFC可执行程序+OpenGL两种模式之一。
2.1控制台应用程序+OpenGL模式
VC++里采用控制台应用程序+OpenGL的图形编程模式实际上是一种用C语言调用OpenGL函数的面向过程的编程框架,其程序的基本结构是定义窗口、清理窗口、绘制物体和结束运行。
(1)头文件包含。利用OpenGL实现图形绘制,先要引入OpenGL核心库GL及其它需要使用的GLU库的头文件,并要通过头文件引入窗口系统。若使用GLUT库函数进行窗口管理,可只需要用GLUT代替GL和GLU的头文件包含。
(2)使用GLUT库实现窗口管理。首先用glutInit函数对GLUT初始化,处理所有命令行参数,然后使用glutInitDisplayMode函数设定窗口显示模式,包括缓存和颜色模型等;再使用默认值设定显示窗口的大小和位置,或使用glutInitWindowSize指定显示窗口的大小和glutInitWindowPosition函数指定窗口左上角的屏幕位置;最后用glutCreateWindow函数创建一个带有OpenGL渲染环境的窗口,参数是一个保存了窗口标题名称的字符串。
(3)利用OpenGL绘制图形。绘制图形前,要进行窗口清屏,即先用glClearColor函数指定窗口的背景色,之后用glClear函数中指定的值设定颜色缓冲区值,即将窗口中每个像素的颜色设定为背景颜色。接着可使用glColor函数设置绘制图形的颜色。
在绘制图形时,先使用glMatrixMode和gluOrtho2D函数设定投影参数,即把要绘制的三维图形投影到显示窗口。
然后调用一些OpenGL函数实现图形的绘制,用glFlush函数通知图形系统执行绘制。此时,通常把重绘场景所需要的函数命令放入一个不带任何参数的显示回调函数里,通过glutDisplayFunc函数作为注册函数将显示回调函数注册指定为当前窗口的显示内容函数。类似地,可以用GLUT提供的其它注册函数注册相应事件的回调函数,处理用户输入或系统状态改变等事件。
最后用gluMainLoop函数启动主GLUT事件处理循环,运行程序显示绘制窗口。
2.2MFC可执行程序+OpenGL模式
微软基础类库MFC是用来编写Windows应用程序的C++类集,以层次结构组成,封装了大部分Windows API函数和控件。利用MFC和向导来编写Windows应用程序,是VC++的一种面向对象编程方法,其基本步骤先是使用应用程序向导生成Windows应用程序的基本框架,然后用类向导来进行应用程序的类的建立、消息处理、数据处理函数或定义控件的属性、事件和方法,最后把应用程序所要求的功能添加到类中。
在VC++里编写一个通用基础框架的空OpenGL应用程序,在此基础上通过添加其它代码就可完成案例程序和实验程序。
(1)创建VC程序。运用VC++应用程序向导,选择MFC可执行程序,建立一个新的单文档应用程序工程,工程包含Doc、View、App、MainFrame和ChildFrame 5个类。通用基础框架的空OpenGL应用程序主要涉及View类程序修改。
(2)设置OpenGL基础库。在View类头文件和Project Settings对话框里的General页面里包含OpenGL头文件和函数库文件。
(3)设置像素格式与创建渲染描述表。OpenGL不使用Windows设备描述表,是使用渲染描述表完成图形图像的映射,描述表的映射核心是像素格式的设置。在工程的View类文件里,通过初始化PIXELFORMATDESCRIPTOR结构、设置和测像素格式来完成对像素属性的设置,包括缓存设置、颜色模式、颜色位数、深度缓冲位数等。在响应工程View类的Windows消息WM_CREATE的消息响应函数OnCreate里创建并当前化一个渲染描述表,在响应Windows消息WM_DESTROY的消息响应函数OnDestroy里使渲染描述表非当前化并删除,消息响应函数里调用创建wglCreateContext、当前化wglMakeCurrent、删除wglDeleteContext等管理渲染描述表的OpenGL函数。
(4)设置OpenGL风格。只有OpenGL的客户区才能接受OpenGL的绘制,要在View类的PreCreateWindow函数里用WS_CLIPCHILDREN和WS_CLIPSIBLINGS设置OpenGL风格。
(5)设置OpenGL视点。在当前化渲染描述表之后,获取客户区的大小、清除深度缓存、启动深度测试和OpenGL模型变换,然后在响应Windows消息WM_SIZE的消息响应函数OnSize里建立视点,启动透视变换,建立透视体。
完成上述步骤后,即建立了一个通用基础框架的空OpenGL应用程序。在通用基础框架的空OpenGL应用程序基础上,在工程View类的消息响应函数OnDraw里可用OpenGL函数绘制图形。
2.3两种模式比较
相比较而言,控制台应用程序+OpenGL模式较简单。教师教学准备方便,学生在掌握基本C语言编程知识和OpenGL实用程序工具包GLUT的窗口管理方法基础上,可集中精力学习OpenGL的图形绘制技术。学生学习理解容易、上手快,数学效果明显。但这个模式与实际的主流图形软件开发方式有一定距离,实用性差,适用范围窄。
MFC可执行程序+OpenGL模式则要复杂一些。学生需学习《C++语言程序设计》和《可视化程序设计》前修课程,能较好地理解MFC可视化编程机制和框架,了解MFC文档视结构、Windows消息响应、Windows标准控件等知识。在了解OpenGL的Windows专用库函数设置像素格式与创建渲染描述表的方法后,再开始学习OpenGL的图形绘制技术。这个模式里的MFC编程框架与OpenGL图形绘制关系复杂,要求掌握的预备知识较多,学习时间较长,学生需有一定的编程能力。但它符合面向对象的软件开发方式,学生一旦掌握熟练,对今后从事软件开发工作大有益处。
参考文献:
[1]杜利峰,李竹林.基于OpenGL的计算机图形学教学改革探索[J].电子设计工程,2012(13) .
[2]陆枫,何云峰.计算机图形学基础[M].北京:电子工业出版社,2008.