计算机图形学介绍

时间:2021-02-02 16:27:23
计算机图形学各个领域的目标或许不同,但最终的形式都是渲染(即绘制)在二维的显示设备上的图像。下面是一个简单(可能并不完全)的分类:
计算机图形学-领域及分支:
1 绘制
1.1 真实感绘制(非实时)
1.1.1 光线追踪(Ray-tracing)
1.1.2 全局光照(Global Illumination)
......
1.2 实时绘制
1.2.1 Shading(BRDF, Programmable Shading等)
1.2.2 纹理(Texture Synthesis, 反走样, 采样等)
1.2.3 阴影和环境光照(Ambient Occlusion, Shadow Volume等)
1.2.4 基于图像的算法(HDR, Depth of Field, Motion Blur等)
1.2.5 光照算法(PRT, 球面谐波(Spherical Harmonic)等)
......
2 建模
2.1 曲面/曲线(Bézier曲线, B样条(B-Spline), 细分曲面(Subdivision Surface/Tessellation))
2.2 网格(Mesh)及形变(Morphing)
2.3 模型修复及重建(计算机视觉交叉方向)
......
3 物理模拟
3.1 刚体碰撞模拟
3.2 流体模拟(烟 火 水)
3.3 柔体模拟(布料 头发 皮肤 橡胶等)
......
4 动画
4.1 关键帧技术(keyframe)
4.2 基于物理的动画(Human motion capture, character animation等)
......
5 科学计算可视化
5.1 标量场可视化(Isosurface和体绘制 Raycasting等)
5.2 矢量场可视化(Flow visualization等)
5.3 信息可视化(如Social-Network Link Graph等)
......
6 延展和相关领域
6.1 图形硬件和GPU Computing(利用GPU进行普适的并行计算)
6.2 计算摄影学Computational Photography(图像处理和图形学的结合)
6.3 计算机视觉Computer Vision(是计算机图形学的逆向学科 如何从二维图像和视频中提取三维空间信息和内容理解)
6.4 大规模数据分析(大规模数据的可视化及物理模拟 如天气 洋流 社交网络信息等)
6.5 游戏引擎(是实时绘制+建模+物理模拟+动画的集合体)
6.6 电影动画及特效(是真实感绘制+建模+物理模拟+动画+计算机视觉等的集合体)
6.7 编译器及编程模型(GPU Shading Language语言设计及并行编程模型)
......
参考资料:
[1] Real-Time Rendering, Third Edition
[2] Physical-based Rendering, Second Edition
[2] The Visualization Hand Book
这个分类一定还不够完全,欢迎各位同仁指出不完备之处。不过提问者可以通过上面的表大概了解图形学的研究内容。至于未来的发展趋势,我个人从事的图形硬件和并行计算我认为是一个很有前景的方向。另外几乎在每个我所列出的领域内都有迷人而艰难的未解决的问题。在图灵奖历次获奖者中,和计算机图形学唯一相关的就是图形学之父Ivan Sutherland。所以说,计算机图形学是一个相当年轻的学科,会有很光明的发展前途。我会在下面列出一些曾经帮助过我的参考资料和一些领域的教授页面/软件资源以 1)供提问者进一步获取信息 2)展示图形学的迷人之处:

[1] 一篇极好的介绍球面谐波的教程: cs.columbia.edu/~cs4162
[2] Gatech教授Karen Liu 主要研究动画技术: cc.gatech.edu/~karenliu
[3] TAMU教授Jin-xiang Chai 动画技术: faculty.cs.tamu.edu/jch
[4] Cornell教授Doug L. James 物理模拟: cs.cornell.edu/~djames/
[5] Stanford教授Ron Fedkiw 物理模拟: physbam.stanford.edu/~f
[6] 物理模拟的一篇Siggraph课程: matthiasmueller.info/re
[7] 微软的Hugues Hoppe 模型+纹理: research.microsoft.com/
[8] Caltech应用几何实验室: geometry.caltech.edu/ge
[9] 浙江大学GAPS实验室: gaps-zju.org/
[10] 清华大学胡事民教授实验室:  cg.cs.tsinghua.edu.cn/
[11] 中科院深先所陈宝权教授:  web.siat.ac.cn/~baoquan
[12] UC Davis教授John Owens(我的导师:-),GPU Computing: ece.ucdavis.edu/~jowens
[13] GPU Gems 1/2/3:  developer.nvidia.com/co   developer.nvidia.com/no developer.nvidia.com/co
[14] Pixar的Renderman页面:  renderman.pixar.com/
[15] 国内最好的开源游戏引擎(作者是MSRA的龚敏敏):  klayge.org/
[16] 最适宜学习引擎结构的游戏引擎OGRE:  ogre3d.org/
[17] 个人认为最好的开源的基于物理的真实感绘制引擎LuxRender:  luxrender.net/en_GB/ind
[18] 图形学界最无私的奉献者Ke-sen Huang的主页,包含历次重要图形学会议所有可公开下载论文及资料链接 向他致敬:  kesen.realtimerendering.com  

另外,上面提到的三本教材也值得一读。希望提问者能享受图形学的学习,尽快找到研究方向并作出好的成果。个人认为在拥有数据挖掘背景的前提下,提问者可以尝试在大规模数据分析和可视化或计算机视觉领域寻找感兴趣的方向,我个人有如下推荐:
[1] 社交网络分析  en.wikipedia.org/wiki/S
[2] 基于海量网络照片的三维模型重建
cs.cornell.edu/~snavely  
phototour.cs.washington.edu  
photosynth是微软的一个项目,看看埃菲尔铁塔的例子: photosynth.net/view.asp  
[3] 胡事民老师的一个非常聪明的项目,Sketch2photo:

cg.cs.tsinghua.edu.cn/m 


图形学主要是研究如何用电脑来显示和模拟人所观察到的东西的学科。只要我们还需要用电脑来做显示,那么一定会有用得到图形学的地方。

在就业方面,国内主要是游戏公司对图形学有需求,还有跨国公司在国内的分支机构,比如Autodesk,AMD,NVidea,微软亚州研究院(个人以为国内图形学最牛的人都在微软)等。国外就多了,除了游戏业,电影工业就是图形学大户,此外,和设计相关的产业(即CAD)是需求图形学的经典行业。 另外,其实可以预见的是,国内的这些产业虽然现在对图形学的需求不大,但若要赶上国外,那大量招收图形学的人才是必须的。

在科研方面,总的来说,如果从科研论文的数量上来看,做图形学的人不是很多(和计算机视觉机器学习比,其它的我也不太了解)。但图形学与其它计算机学科相比,有一个巨大的优势就是,你做的东西的好坏都是可以直接用眼睛来判断的,不需要很多数据和图表什么的,所以不会很枯燥。

以下是我对图形学研究方向的分类:
1、真实感绘制。研究如何又快又好地绘制和真实世界一样的画面。在以前,现在和将来都是图形学的一个研究重点。
2、非真实感绘制。研究如何像人类艺术家那样绘制不真实的画面。比如水彩画、铅笔画、蜡笔画等等的绘制。
3、真实物理模拟。研究如何模拟物理现象,比如流水,火焰等等。
4、人体运动。研究如何捕捉、编辑和应用人体运动数据,如何模拟人体运动(比如当人被一个外物撞击时的动作反应,再比如一群人的群体运动模拟),如何绘制人体运动。
5、计算机照相术(Computational Photography)。我不是很了解,建议用这个词搜索一下。
6、人机交互。主要研究如何更方便地用计算机来进行三维建模。
7、计算机声音模拟。研究如何用计算机来生成真实的声音,比如两个金属碰撞的声音,复杂环境中经过反射的声音。还有一个相关领域和音乐有关,研究如何根据一段音乐自动生成舞蹈什么的。
8、计算几何。这是一个非常理论而且经典的研究方向,和数学中的几何学非常相关,研究的算法是其它图形学研究方向的基础,比如曲线曲面的表达、绘制和编辑等。按照我的理解(可能有点不准确),数学的几何学用所表达的几何概念都是连续的,而计算几何都是离散的,要把数学的几何学理论应用到图形学算法中,必须要将这些算法离散化,这一步很重要,而且也不简单。最近这个方向的研究的一个热点是几何图形的查询,比如研究如何google三维模型。
9、图形硬件。研究如何设计对图形学算法进行加速的硬件。

图形学所研究的一部分内容,采用了许多机器学习的方法,比如和人体运动,非真实感绘制相关的研究领域,这和数据挖掘还是有一定的相似性的,所以如果你选择图形学的话,还是能接触许多和数据挖掘类似的算法的。