APP下载

计算机图形学课程教学改革

2017-01-01唐建国张红梅

计算机教育 2017年1期
关键词:图形计算机算法

唐建国,王 锋,张红梅

(河南工业大学 信息科学与工程学院,河南 郑州 450001)

计算机图形学课程教学改革

唐建国,王 锋,张红梅

(河南工业大学 信息科学与工程学院,河南 郑州 450001)

针对计算机图形学的学科发展和教学状况,分析计算机图形学在课程体系中的定位,提出教学内容和教学方法的改革思路,利用有限课时提高学生计算机图形学理论教学与实践教学的学习效果,适应当今社会对图形软件研发人才的需求。

计算机图形学;教学改革;实践教学

0 引 言

随着计算机图形实现技术的不断发展,游戏行业、计算机动画、数字媒体技术应用等行业对高校IT人才的图形软件研发能力提出更高的标准。计算机图形学作为计算机相关专业和计算机游戏动画领域理论性和实践性较强的人门课程,在信息类学科的课程体系中占有重要地位。社会对计算机图形学领域人才的需求,迫切需要高校对计算机图形学学科进行可持续建设,不断提高学生计算机图形学方向的理论和实践水平。

1 计算机图形学的教学现状

计算机图形学是计算机相关专业和计算机游戏动画领域非常重要且实践性较强的人门课程[1]。图形学的快速发展与传统教学及其学习成效存在较大差距。目前,大多数院校将计算机图形学作为信息学科的专业平台选修课。作为选修课,计算机图形学面临的普遍问题是课时少,学生不愿意购买教材;课程考核简单,一般以提交设计报告或图形程序的形式考查学生的学习效果。图形学理论性和实验性都非常强,一方面,该课程教学理论学时少,若过多强调理论性,逐一讲解图形的各种基本生成算法、图形变换、曲线曲面造型和光照明模型时,将涉及大量数学公式推导,令学生感觉枯燥难懂;另一方面,该课程的课内实践学时也不多,使得部分学生感觉独立研发图形程序非常困难。

2 计算机图形学的教学改革

对于本科学生而言,计算机图形学的教学目标应以课程体系中的面向对象程序设计、数据结构、高级语言等相关课程为基础,使学生不仅掌握图形学算法的理论,还能够综合运用面向对象程序设计、数据结构、C++、Java等知识,开发图形系统并解决图形软件系统涉及的理论及实现的复杂工程问题[2]。围绕这个目标,教师在有限的教学课时内,需要对教学内容进行精练和总结,强调理论教学的一致性和实践教学的系统性。

2.1 理论教学的一致性建设

课程内容的归类与总结注重统一讲述相关和相似算法思想的章节,重视理论教学的连贯性。教师可循序渐进,通过复习相关课程的基础知识,引导学生由浅人深地理解算法思想。教学内容由点到面,既要精选具有代表性的算法,将之讲透,又要略讲或不讲同一算法思想下的相关类似算法,并把这些算法内容作为作业布置给学生,让其课后完成;既要照顾到课程内容的完整性,又要关注算法思想的可扩展性,引导学生积极思考,通过对经典算法的仔细分析,强调其基本思想。只有掌握算法的基本思想,才能使学生清楚理解算法的实现并能对相关算法和理论举一反三、触类旁通。在学生理解经典算法后,教师可以介绍这些算法的最新研究成果,以培养学生的科研能力,激发其学习兴趣。比较有代表性的有以下几方面。

在直线和圆弧生成方面,以增量算法思想开始:通过DDA算法,引人增量算法的概念。后继中点画线算法、Brehensam画线和画圆算法、多边形扫描填充算法、Z-buffer算法中都涉及增量算法的思想,教师可引导学生将视野拓展到增量算法在协同设计、模型多分辨率表示、有限元分析、网络传输等方面的最新应用。

在区域填充方面,复习堆栈的概念,然后引导学生根据算法步骤,以课堂或课后作业形式完成一般种子填充算法以及扫描线种子填充算法的运行实例。

在几何变换方面,复习矩阵乘法的原理,带领学生推导二维几何变换的变换矩阵。推导过程中,复习转置的概念,基于矩阵乘法与矩阵转置的特点,指导学生推导坐标矩阵和变换矩阵调换顺序后的变换矩阵表示形式。三维几何变换作为扩展内容,其相关章节可以作业的形式布置给学生进行课后学习。

裁剪算法方面,复习二进制的运算规则,通过二维区域编码理解编码的二进制运算对方位判断的意义,引导学生对二维Cohen-Southerland裁剪算法进行区域编码,并通过作业的形式布置三维Cohen区域编码裁剪算法的编码规则和算法原理。

曲线曲面方面,包括Beizer和B样条曲线、曲面。教师应根据样条曲线的定义,仔细推导一次、二次Beizer曲线的定义。在推导过程中,教师通过分析伯恩斯坦函数对型值点的影响,引导学生思考真实感图形中插值函数对模型颜色的影响,并将相关知识进一步扩展到有限元的形函数以及微分方程数值求解中涉及的松弛变量法。

消隐算法方面,复习数量积和叉积的定义以及二者的物理意义,引导学生理解凸多面体的消隐算法推导过程和Z-buffer算法的面方程计算过程。

2.2 实践教学的系统性建设

计算机图形学的实践教学主要集中在算法实现方面。实验平台与实验内容的选取,既要满足课程自身内容需要,又要考虑应用能力培养的要求[3]。在实验内容的安排上,预先安排一些平面图形的绘制实验,包括鼠标、菜单的应用等,也可以结合OpenGL/DirectX 技术进行编程,如果使用Java3D图形库,可使编程实例直接用于因特网的应用开发中。实验阶段可选取具有通用意义和应用前景的OpenGL和Windows系统的GDI绘图平台。为了保持实验内容的系统性,实验各环节的内容需要为图形程序框架服务,最终目标是为搭建一个具有三维图形生成、三维几何变换、纹理映射等综合功能的图形软件框架服务,这个程序框架正是大作业任务书中的基础功能。为了保证大作业的完成质量,在实验各环节,教师要进行阶段性累加考核,也便于及时发现和纠正每一环节中存在的问题。

为了指导学生顺利完成大作业的各项要求,在实践教学环节需要补充大量知识,包括MFC基础、OpenGL基础以及基于MFC的OpenGL框架搭建。MFC基础包含菜单设计、工具栏设计、鼠标交互、基础绘图函数等;OpenGL包括OpenGL环境搭建、OpenGL函数介绍和简单OpenGL程序讲解;其他功能还有图形变换、三维建模、纹理映射等,均在实验课程内予以指导。

课程设计任务在实验课的基础上进行,可以是实验的综合、改进和完善。学生提交的大作业是基于MFC的OpenGL程序,包括菜单和工具栏设计,模型文件读取,基于菜单、工具栏和鼠标交互的三维几何变换,纹理映射等。大作业的大部分功能均是实验环节完成的子模块,因此实践教学的设计安排具有系统性。学生各个环节的试验质量能在实验课程上得到监督和评价,又保证每个学生大作业的工作量进一步被分解。

课程设计要求每个学生的作品之间各有不同,要做到这一点,首先应对输人部分提出特定要求:其读人模型文件需要自行设计,以保证造型出的模型不同,几何变换可以类似,但纹理映射不同,同时保证一个程序可以读人不同两个模型等,避免学生之间相互抄袭的可能,保证每个学生设计作品的独特性和唯一性。

(1)实验环节鼓励学生交流。丰富第二课堂建设:建立网络交流群,课前将讲义和实验材料上传至群共享;重视学生之间的交流;在群内解决任务布置和难题讨论;大部分是学生之间的积极讨论,偶尔是教师的针对性答疑。

(2)严控验收环节。老师会逐一对每个学生进行代码提问,核实学生的完成情况,提问细节细致到各个变量的设计意图、程序功能和代码的对应,并要求学生能够根据老师的要求,现场修改代码,完成调试。

(3)鼓励个性化和创新设计。课程设计鼓励学生作品多偏向计算机图形学的最新应用,涉及CG最新的研究前沿、几何造型的数据结构,特别是基于半边数据结构的三维几何造型、基于移动平台的图形软件框架设计等,因此个性化的考核更利于优秀学生的个性化发展。优秀作品可被选拔作为下一届学生的演示作品。个性化和创新设计一方面更能提高学生的学习兴趣和积极性,另一方面也是图形学不断发展对学生设计水平提升的要求。

2.3 课程考核的量化评价

重视教学的过程化管理与考核是保证教学质量的重要手段,课程考核注重算法理论和软件系统的可扩展性,要求每一届的内容必须在前一届的基础上进一步拓展并注重作品演示。

课程量化评价的指标主要包括报告撰写情况、系统完成情况和答辩情况3部分。报告撰写情况包括报告内容的完整性和报告格式的规范程度;系统完成情况包括基本功能、扩展功能和系统测试功能的完成情况;答辩情况分为自述和答辩两个环节。其中,系统的基本功能完成情况在实验环节有一定的给分依据,答辩时主要检测扩展功能的系统演示和测试,然后是代码级别的提问。报告撰写的给分一般在答辩后进行,不合格的可反馈给学生修改后重新提交。

基于图形学技术的发展使得计算机图形学的课程建设不断持续,才能保证学生的图形学理论和实践水平同步发展和不断提升,因此,与教学任务和目标对应,课程考核要求每年都需要提高,考核的量化标准也需要不断完善。例如,进一步扩展程序设计框架,允许用C++、Java、Objective-C等多种语言实现程序,基于PC或Android、iOS移动平台进行图形系统研发,每年逐渐完善程序框架功能,鼓励学生关注图形学发展前沿文章并实现最新的图形学算法等,不断提高学生的创新能力。

3 结 语

计算机图形学课程的教学改革方案自2012年起在河南工业大学推行。新的教学方案使得学生在有限课时内,既掌握图形学的基本理论,又积极开展课余拓展训练。学生根据学习进度,亲自动手不断完善程序各功能模块,找到了成就感;量化的考核标准促使学生不断创新设计,特别是学生的优秀作品展示,让其他学生意识到差距,也产生了学习的动力。学生利用课余时间拓展程序功能,使得图形系统的功能更完备,提高了自学能力,也获得了成就感。

让学生不断找到自我成就感,保持学习的积极性,这正是计算机图形学的改革目标。计算机图形学的理论教学一致性建设和实践教学系统性建设就是为这个目标服务的。理论教学的一致性建设,浓缩了教学内容和授课学时,又积极引导学生课后学习,扩展了知识的深度和广度;实践教学的一致性建设,将实验课的算法实现与最终成果相互关联,通过合理引导和有效监督,在培养学生综合运用面向对象程序设计、数据结构、OpenGL/DirectX等相关知识的同时,还保证实验环节和最终成果的设计质量,实现个性化设计;同时,量化的考核标准又为学生独立研发的成果评价提供支持,有效提高了学生设计被认同后的成就感。

[1] 黄静. 计算机图形学及其实践教程[M]. 北京: 机械工业出版社, 2015: 5-14.

[2] 刘晋钢, 孔令德, 王进忠.“计算机图形学”课程新教学模式的研究与实践[J]. 计算机教育, 2010(3): 63-65.

[3] 王艳春, 张金政, 李绍静. 计算机图形学课程教学思考[J]. 计算机教育, 2011(14): 63-66.

(编辑:宋文婷)

1672-5913(2017)01-0073-03

G642

河南工业大学高等教育研究项目 “‘卓越'工程技术人才培养视角下计算机科学专业实践教学模式研究”(2014GJYJ-A19)。

唐建国,男,讲师,研究方向为计算机图形学和计算机辅助设计,tangtangtoy@126.com。

猜你喜欢

图形计算机算法
哪种算法简便
计算机操作系统
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
Travellng thg World Full—time for Rree
进位加法的两种算法
根据问题 确定算法
信息系统审计中计算机审计的应用
分图形
找图形