技术篇|广义的计算机图形学的研究内容包含哪些方面?
AMiner已发布《计算机图形学研究报告》
微信公众号菜单栏可直接下载研究报告
为了方便大家学习,我们特地上线了精简版及详解版。
在学科开创之初,计算机图形学要解决的是如何在计算机中表示三维几何图形,以及如何利用计算机进行图形的生成、处理和显示的相关原理与算法,产生令人赏心悦目的真实感图像。这是狭义的计算机图形学的范畴。
计算机图形学技术起源
我们以“computer graphics”为关键词,通过AMiner对1971年 – 2017年间图形学领域论文的挖掘,我们总结出40多年来,图形学的领域起源关键词主要集中在
three dimensional(三维)、programming language(编程语言)、computational vision(计算机视觉)、graphics systems(图形系统)等领域。
注:图中,每个彩色分支表示一个关键词领域,其宽度表示该关键词的研究热度。
各关键词在每一年份(纵轴)的位置是按照这一时间点上的热度高低进行排序的。
随着近40年的发展,计算机图形学的内容已经远远不止这些了。广义的计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
接下来我们将会从总体框架、研究内容和相关技术算法这三个方面为大家阐述AMiner《计算机图形学研究报告》的技术篇。
数学基础:主要包括一些基本的算法,例如向量与几何的变换,如几何建模时的三维空间变换、绘制时的三维到二维的投影变换和二维空间的窗口和视图变换等。
建模:三维和二维空间的各种几何模型,有解析式表达的简单形体,也有隐函数表达的复杂曲线等。建模的主要工作是几何计算。
渲染:或者叫做绘制,指的是模型的视觉实现过程,计算机图形学的光照、纹理等理论和算法都需要对模型进行处理,其中也要用到大量的几何计算。
交互技术:如今的交互式图形学已经可以提供图形通讯手段,成为图形交互的主要工具。几何计算贯穿于以上各个过程之中,是计算机图形学的基础。在图形学中那些看上去是“绘制”的内容,本质上仍是几何计算的问题。下表对几何计算在图形学中的作用做一总结。
计算机图形学的主要内容 |
几何计算 |
其他理论和技术 |
基本几何的相交、相切计算 |
几何求交 |
几何 |
二、三维模型 |
几何求交、线面方程 |
拓扑、数据结构 |
图形变换 |
仿射几何 |
代数、投影 |
曲线、曲面 |
计算几何理论 |
微分几何等 |
光栅化 |
几何插值 |
显示 |
图形裁剪 |
几何求交 |
编码技术 |
隐藏线消除 |
几何求交、线面方程 |
变换、显示 |
光照模型 |
几何求交、几何插值 |
颜色、光学等 |
透明效果 |
几何求交、几何插值 |
颜色、光学等 |
阴影显示 |
几何求交 |
颜色、显示等 |
纹理映射 |
几何求交、几何插值 |
颜色、显示等 |
交互设计 |
几何求交、参数方程 |
人机界面、交互技术 |
动画 |
运动轨迹、几何插值 |
变换、物理(运动轨迹) |
几何计算在计算机图形学中的作用
随着图形学技术的不断发展,计算机图形学被广泛应用于工程技术、艺术、动画电影等领域,反过来,这些产业的发展又大大促进了图形学的发展,目前计算机图形学的研究内容不断扩大,参考中国科技大学刘利刚老师的分类,可以将计算机图形学主要研究内容分为:建模(Modeling)、动画(Animation)、渲染(Rendering)和图形交互(Interactive graphics)四部分。
建模(Modeling)
没有模型,图形就无从谈起,建模是计算机图形学各项工作的基础和前提,建模技术的核心是根据研究对象的三维空间信息构造其立体模型,尤其是几何模型,并利用相关建模软件或编程语言生成该模型的图形显示,然后对其进行处理。
目前,物体的三维几何模型就其复杂程度来说可以分为三类:线模型、面模型和体模型。对三维建模技术的研究基本上都是针对三维面元模型和体元模型来展开的。
现在,建模已经用于各种不同的领域。
动画(Animation)
计算机动画(ComputerAnimation),是借助计算机来制作动画的技术。计算机的普及和强大的功能革新了动画的制作和表现方式。由于计算机动画可以完成一些简单的中间帧,使得动画的制作得到了简化,这种只需要制作关键帧(key frame)的制作方式被称为“Pose to pose”。
渲染(Rendering)
当需要把模型或者场景输出成图像文件、视频信号或者电影胶片时就需要用到渲染(Render)。渲染是指软件由模型生成图像的过程。模型是用语言或者数据结构进行严格定义的三维物体或虚拟场景,它包括几何、视点、纹理、照明等信息。图像是数字图像或者位图图像。
除去后期制作,渲染是计算机图形处理的最后一道工序,通过它得到模型与动画的最终显示效果。实现渲染依靠多种软件,如各种CG软件自带渲染引擎、RenderMan等。
研究人员已经研究出了许多渲染算法,用于生成最终图像。在应用中,对场景中的每束光线进行跟踪的耗时较高;如果没有对采样进行很好的约束,即使是只进行一部分光线的跟踪也需要非常大量的时间。
基本的渲染技术大致可以分为四类(如下图所示)。大多数高级的方法都是使用多种技术的组合,以在合理的开销范围内,实现足够好的结果。
图形交互(Interactive graphics)
图形交互是使用计算机技术创建,操纵和查看对象表示的艺术和科学。这需要设计和构造以最先支持创建和查看对象的方式来表示对象的模型,而不是设计和技术的设计,通过这些设备和技术,人可以与模型或视图交互,以及创建用于渲染的技术和保留模型。
图形交互技术目前分为二维图形交互技术和三维图形交互技术。
计算机图形学相关技术算法目前包括了OpenGL、二维图形变换和三维图形变换。
OpenGL
OpenGl定义了一个跨编程语言、平台的编程接口的规范,一般用于三维图形,但也可用于二维图像。OpenGL是一个功能强大,调用方便的底层图形库,它与硬件无关可以在不同的平台如windows、mac、linux等之间进行移植,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的支持。
OpenGL不提供几何实体格式,不能直接用于描述场景。但是,通过一些转换程序,可以很方便的将AutoCAD、3ds MAX等3D设计软件制作的DXF和3DS模型文件转换成OpenGL的顶点数组。
二维图形变换
图形的几何变换一般是指图形的几何信息经过变换后产生新的图形,图形几何变换既可以看作是坐标系不动而图形变动,即变动后的图形在坐标系中的坐标值发生变化;又可以看作是图形不动而坐标系变动,即变动后的图形在新坐标系下具有新的坐标值。
计算机图形学中基本的二维图形的几何变换算法:
三维图形变换
三维图形的基本变换有:三维比例变换、三维对称变换、三维错切变换、三维旋转变换。和二维图形一样,用适当的变换矩阵也可以对三维图形进行各种几何变换。对三维空间的点如(x,y,z),可用齐次坐标表示为(x,y,z,1)或(x,y,z,h),三维空间里的点的变换可写为:
其中[M]是4*4阶变换矩阵,即: