图形绘制技术课程综合性实验设计

2020-05-25 02:30过洁胡炳扬郭延文
软件导刊 2020年2期
关键词:综合性实验计算机图形学实验教学

过洁 胡炳扬 郭延文

摘 要:针对图形绘制技术课程以往实验设计中存在的覆盖面窄、原理理解困难、程序实现难度大以及学生参与度低的问题,设计了“真实感图形绘制演示系统”综合性课程实验。该实验贯穿于理论教学全过程,能够加深学生对真实感图形绘制中关键理论的直观理解,促进学生对核心技术的掌握并提升学生图形系统开发能力,激发学生对图形绘制技术的学习热情。

关键词:图形绘制;综合性实验;实验教学;计算机图形学

DOI:10. 11907/rjdk. 192001 开放科学(资源服务)标识码(OSID):

中图分类号:G434文献标识码:A 文章编号:1672-7800(2020)002-0236-04

英标:Comprehensive Experiment Design of Rendering Technique

英作:GUO Jie,HU Bing-yang,GUO Yan-wen

英单:(Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China)

Abstract: To alleviate the problems of narrow coverage, trouble in understanding the principles, difficulty in implementation and low participating of students in the course of rendering technique, we design a comprehensive experiment named "Demonstration System of Realistic Rendering". This experiment goes through the whole teaching process and can deepen the understanding of complicated principles and key theories in rendering. It also helps students to master the important technologies and improves their capability in developing graphical systems. Moreover, we expect this experiment to inspire the enthusiasm of students for learning rendering techniques.

Key Words: rendering; comprehensive experiment; experiment teaching; computer graphics

0 引言

计算机图形学研究如何利用计算机表示、生成、处理以及显示图形,可以表示成“计算机图形学=几何+绘制”的简单模式[1]。近年来,随着计算机以及互联网技术的发展,计算機图形学已越来越深入人们的日常生活,在影视特效、电脑游戏、虚拟现实、数字仿真、工业建模、家装设计等领域发挥着重要作用,成为计算机科学中最活跃的分支之一[2-3]。目前,国内外有很多大学都将计算机图形学作为计算机相关专业的重要核心课程,该课程也是本科阶段比较难教的课程之一[4-7]。

图形绘制技术属于计算机图形学的进阶课程,专门面向计算机图形学中的绘制任务,具有较强的专业性和实践性。为了强调图形绘制基本原理,突出图形绘制的重要概念,认识图形绘制的本质特征,在图形绘制技术课程中重点阐述基于物理的真实感图形绘制技术[8]。真实感图形绘制的目标是根据给定的三维虚拟场景,综合运用数学、物理学以及心理学等知识,利用计算机程序,生成与现实场景高度相似的图片。

由于图形绘制技术课程对数学和物理学相关知识要求较高,原理晦涩难懂,算法复杂抽象,程序实现困难,因此每年在南京大学选修该课程的人数都不多,国内高校也很少开设该类型的课程。反观国外,开设图形绘制技术(英文称Image Synthesis)课程的知名高校众多,培养的很多学生都成为领域内的科研专家或相关公司(如迪士尼动画、皮克斯动画和维塔数码等)的技术骨干。表1例举了开设该类课程的国外高校及相关情况。

其中,斯坦福大学已经连续开设该课程(CS348b)[9]近20年,其首创的图形绘制竞赛(Rendering Competition)也成为业内“标杆”,被众多高校效仿。

作为高级图形学,图形绘制对学生要求较高,对实验的需求也更为旺盛。类似于其它专业性课程,实验教学设计的好坏直接影响学生对该门课知识的掌握情况。一个设计合理的实验,不仅有利于促进学生对专业知识的理解和能力培养[10],同时也会激发学生对更深层次知识的求知欲。因此,在开展图形绘制技术理论教学的同时,探究符合学生认知规律的实验课程教学模式,尤其是设计一个综合性、工程性和层次式的课程实验。

1 教学内容安排

在图形绘制技术课程教学中,主要面向计算机图形学中的图形绘制任务,讲授求解绘制方程过程中所涉及的场景几何结构、物体材质、相机模型、光源模型、光照算法、采样与重构理论、蒙特卡洛技术等知识,如图1所示。其中,分析、求解绘制方程是该课程的中心。几何结构、物体材质、相机模型和光源模型是组成三维虚拟场景的必备部件,也是求解绘制方程前的建模准备。采样与重构理论、蒙特卡洛技术和光照算法是求解绘制方程的核心技术。

在理论教学过程中也会适时穿插一些实验内容,以达到巩固知识、培养能力的目的。例如,在讲述物体材质时,尝试让学生生成基于Gabor噪声的过程式纹理,并将其绘制到虚拟物体上。图2是某学生设计案例的最后效果图。通过这种方式,学生不但掌握物体材质的概念和过程式纹理的基本内容,而且激发了进一步学习的兴趣。此外,尝试让学生实现高维空间蓝躁采样和频谱分析、Glint效果等。

2 实验教学困境

在教学中发现,以往课程实验设计存在以下几个突出问题:

(1)实验覆盖面窄,综合性较弱。以往实验内容通常只集中于实现图形绘制过程中的某个特定效果,如上述Gabor噪声实验只处理材质中的过程式纹理效果。这样容易造成学生知识掌握的片面性。学生只会处理纹理,而不知道如何实现其它材质,如双向反射分布函数(BRDF),甚至无法接触到图形绘制中更基础、更重要的光照算法,如光线跟踪等。

(2)实验内容深,实现难度较大。以往在选择实验内容时,考虑到教学时间安排,通常会选择比较少的实验内容,比如只实现一个特殊效果。但是,由于图形绘制技术课程本身需要一定的数学知识、物理知识和编程能力积累,因此即使是一个简单的特效,也需要花费较多时间理解原理、设计算法并选择合适的绘制框架。

(3)实验环节引入较晚,学生参与度低。在传统实验教学环节中,为了实现一个具体的视觉效果,往往需要在完成理論课程相关知识讲述后才能开始,而这通常是在大半个学期之后。实验教学环节引入时间较晚直接导致学生参与度低。接近期末时学生会有来自其它课程的繁重作业和考试压力,容易对该课程实验采取应付态度。

3 综合性实验设计

为有效解决上述实验教学困境,加深学生对真实感图形绘制中关键理论的直观理解,促进学生对核心技术的掌握并提升学生图形系统开发能力,本文在图形绘制技术课程中增加“真实感图形绘制演示系统”实验课程教学。该实验是面向图形绘制技术的一项比较完整的综合性工程实践,涵盖了图形绘制技术课程中的大部分概念术语、基本理论和方法原理。“真实感图形绘制演示系统”尝试用可视化或者动画形式将图形绘制过程中的重要知识点和核心算法直观呈现出来,一方面能够贯穿于理论教学全过程,达到边学边做的效果,另一方面由于其不依赖于具体的绘制框架,不涉及复杂的特效处理,因而能够降低学生实验压力,提升学生积极性。通过该实验,学生能够在理解计算机图形绘制领域核心知识、基础算法的同时,提升其使用相关编程语言和平台进行三维图形绘制系统开发的能力,初步掌握从事图形绘制研究及相关开发的基本方法和技巧。

3.1 实验内容

“真实感图形绘制演示系统”具体实验内容包括:

(1)对常见几何体,如球、立方体、圆柱等进行几何建模,实现几何体的平移、旋转、缩放等操作。学有余力的学生可以考虑用更为广泛的三角面片(Mesh)进行几何建模。

(2)对光源进行几何和辐射度建模,根据光源属性和能量分布对场景中的光线分布进行可视化,并确定每根光线的能量。

(3)实现小孔相机和薄透镜相机两种模型。根据不同相机类型,模拟不同的初始光线生成方式。

(4)实现漫反射、镜面反射、镜面折射、Phong高光反射等材质模型,根据不同的材质模型,确定并可视化次生光线的传播方向和分布。学有余力的学生可以考虑其它材质模型,如微面元模型(Microfacet Model),也可以考虑增加纹理系统。

(5)以动画形式模拟光线投射算法(Ray Casting)、光线跟踪算法(Ray Tracing)、分布式光线跟踪算法(Distributed Ray Tracing)以及路径跟踪算法(Path Tracing)的执行过程,分析不同光照算法生成光路径、辐射光能量的异同,了解阴影、间接光照、运动模糊、景深等效果的生成原理和技术。

3.2 实验原理及方案

本实验采用动画和可视化方法将真实感图形绘制技术中的重要知识点和核心算法直观展现出来。主要包括对三维虚拟场景中重要元素如三维物体、光源、相机、材质等的建模;对光线在场景中分布的动画演示;对场景中光线的能量测量。

(1)虚拟场景建模。为便于实现,本实验只考虑球、长方体、柱体等具有参数化表达方式的三维曲面,这些曲面都具有解析式,方便计算光线与曲面的交点。每个几何体的材质都属于4类材质(漫反射、镜面反射、镜面折射和Phong高光反射)中的一种,其材质参数可由用户输入。场景中的光源(除点光源和方向光源外)是一类特殊的几何体,除了几何结构外还具有一定的能量分布。场景中存在唯一一个相机,相机类型和参数也由用户输入。为了方便存储和扩展,场景在搭建完成之后用XML(或JSON)格式保持。

(2)光线分布动画演示。本系统主要支持4种光照算法(光线投射算法、光线跟踪算法、分布式光线跟踪算法以及路径跟踪算法)的动画演示。对于给定的虚拟场景,每种算法的光线分布情况不同。光线投射算法从相机发出初始光线后,只与场景中的物体作一次相交计算便结束,根据交点与光源的位置关系确定光线能量。光线跟踪算法是光线投射算法的扩展,当与初始光线相交的物体表面属于镜面反射或镜面折射时,根据物体表面的法向,确定镜面反射或镜面折射方向继续发出次生光线,当光线与漫反射表面或光源相交时停止追踪光线。分布式光线跟踪算法主要用于处理高光反射、软阴影、景深和运动模糊。它与传统光线跟踪算法最大的不同在于传统光线跟踪算法在每个交点处只产生一条次生光线,而分布式光线跟踪算法根据材质和光源的不同,在每个交点处产生多条次生光线。路径追踪的基本思想是从相机随机发出一条光线,光线与物体表面相交时根据表面的材质属性继续随机采样一个方向,发出另一条光线,如此迭代,直到光线打到光源上(或逃逸出场景),然后用蒙特卡洛积分方法,计算其贡献。算法核心采用OpenGL开发,界面采用Qt开发。

(3)光线能量测量。根据场景中几何、光源和材质的参数设定,以及所选择的光照算法,计算场景中每根采样光线的能量。光线能量采用Radiance度量。Radiance测量的是三维空间内单位面积和单位立体角内能量大小。根据物理学相关原理,在无参与介质的情况下,沿着某个光线,Radiance保持不变。

3.3 实验报告要求

实验报告主要由6部分组成:项目背景、系统分析与设计、系统实现、效果演示、总结与展望以及参考资料。

在项目背景方面,学生需要给出该系统开发的相关背景知识,包括阐述三维图形绘制的基本概念,介绍所涉及的几何模型、光源模型、相机模型、材质模型,对比分析4种常用光照算法,并讨论实验目的。

在系统分析与设计方面,学生根据实验要求,分析并设计各个模块,给出每个模块的功能和接口,画出模块分解图。对于4种需要展示的光照算法,给出算法流程图或者伪代码。

在系统实现方面,学生需要给出系统开发和运行环境,给出重要模块或算法实现细节。

在效果演示方面,学生需展示不同场景在4种光照算法下光线分布的动画演示图,并分析场景中光线的能量分布情况。通过调整几何、光源、相机以及材质等参数,记录场景中光线的分布变化情况,与理论分析相对应,总结规律。

在总结与展望方面,学生总结实验过程中遇到的问题及解决方法,对尚未解决的问题给出可能的解决方案。

在参考资料方面,学生列出实验过程中所阅读或参考的相关资料。

3.4 实验考核

为了提高学生对实验的参与度,分4个时间节点对实验进行考核,具体如表2所示。

该实验最后成绩采用多因素成绩评定法,其中完成设计报告10%,完成规定的功能模块占50%,完成最终实验报告占30%,演讲交流占10%。考核时要注意学生对整个设计的规划性,引导学生在实验过程中养成良好的开发习惯。

4 结语

图形绘制技术课程是一门专业性很强且应用范围较广的课程。为了加强学生对理论知识的掌握,提高其图形开发能力,本文设计了一个覆盖面广、内容丰富且易于上手的综合性课程实验。实践证明,该实验能够建立学生对图形绘制技术的感性认识,激发学生学习热情,有利于学生掌握图形绘制技术中的基本原理和重要算法。

参考文献:

[1] 何援军. 论计算机图形学的若干问题[J]. 上海交通大学学报,2008(4):513-517.

[2] 孙家广, 胡世民. 计算机图形学基础教程[M]. 第2版. 北京:清华大学出版社,2009.

[3] 何援军. 计算机图形学 [M]. 第3版. 北京:机械工业出版社,2016.

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

[5] 傅向华,周虹. 加强能力培养的“计算机图形学”实验教学改革[J]. 计算机教育,2012(12):94-97.

[6] 张朝阳,安毅生,李颖,等. 面向专业特色的计算机图形学教学改革与探讨[J]. 软件工程,2017(7):48-50.

[7] 高雪瑶,张春祥. 基于翻转课堂的计算机图形学教学模式研究[J]. 计算机教育,2017(1):113-116.

[8] PHARR M, JAKOB W, HUMPHREYS G. Physically based rendering: from theory to implementation [M].  Morgan Kaufmann, 2016.

[9] HANRAHAN P. Image synthesis techniques(CS348b)[EB/OL]. [2019-03-22].  http://graphics.stanford.edu/courses/cs348b/.

[10] 袁景凌,饶文碧,熊盛武,等. 面向能力培养的计算机类实验课程体系探究与实践[J]. 计算机教育, 2018(2):166-169.

(責任编辑:孙 娟)

猜你喜欢
综合性实验计算机图形学实验教学
电容器的实验教学
RNA提取、定量及RT—PCR综合性实验在分子生物学检验技术教学中的实施
“信号分析与处理”课程群综合性实验设计研究
用面向科学思维的教学方法改进计算机图形学课程教学
几何体在高中数学实验教学中的应用