本文基于GAMES 101课程进行记录和总结。
概念
计算机图形学(Computer Graphics,俗称CG),是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学(或使用计算机合成和操作视觉/图像图形的信息:The use of computers to synthesize and munipulate visual information.);主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
注意需要和计算机视觉相区别,两者并不完全等同。
一、 图形学应用
VideoGame(电子游戏)
图形渲染是电子游戏中重要的组成部分之一,目前很多先进的图形渲染技术如实时光照、光线追踪等都是基于计算机图形学这门学科衍生发展而来。
计算机图形学在游戏领域下需要解决的问题:
- 如何渲染出玩家想要的效果(如真实、卡通等)
- 如何提高渲染效率
- 如何将先进的渲染技术应用到游戏中
- 研究出更加逼真的渲染技术
Movie(电影)
电影中很多特效都需要图形学的支持,例如《黑客帝国》中的时间静止、《奇异博士》中的场景变化,都是通过计算机复杂的合成、计算等过程生成特性并完美的融合到电影里,让观众感觉到这真的是现实存在的东西,形成一种很强的代入感。
实际上,电影中的特效属于计算机图形学最简单的一部分,因为电影中的特效基本都是模拟出现实中不存在的东西,不存在的东西是天马行空、不具有逻辑性的,因此最好模拟;而越是真实的东西反而越难模拟,因为里面包括了很多自然科学中严谨的逻辑。
计算机图形学在电影领域下需要解决的问题:
- 如何更好模拟出电影中的类人型生物的行为(如何更真实将动态捕捉到的人类行为通过图形渲染到电影中)
- 如何提高特效在电影中的性能
Animations(动画)
动画主要要求的是细节上的东西,观众通过眼睛接受到动画中每一个场景的信息越多,就越接近真实世界给我们的反馈的信息量,比如《疯狂动物城》的动物主角,现实中的很多动物都是给人们一种毛发旺盛的感觉,因此在动画中如何表现出动物的毛发质感,数量,不同光线程度下的反射质量等,都需要深入的计算。
计算机图形学在动画领域下需要解决的问题:
- 如何渲染出更好的动画风格
- 如何模拟卡通效果中的粒子等物理运动规律
- 如何模拟光线打在动画场景里不同位置的展现效果
Design(设计)
工业设计在当前也越来越需要图形相关的技术,比较显著的是一个叫CAD的技术(Computer Aided Design),利用计算机及其图形设备帮助设计人员进行设计工作;通过图形技术将处于一些概念性的设计模拟到计算机中,并设置严格的数据去测试这些设计在真实场景下的能达到的效果,大大减少实际研发成本。
计算机图形学在设计领域下需要解决的问题:
- 如何呈现出概念设计在现实世界的真实的存在效果
- 如何降低概念设计和实际效果的差别度
Visualization(可视化)
可视化,就是将我们通过特定方式测量、获取到的数据信息,通过图像这种直接的方式将这些数据信息重建并通过视觉信息的形式表现出来,比如人体的器官骨骼的CT图、地形地貌的三维重现。
计算机图形学在可视化领域下需要解决的问题:
- 如何根据已有的数据信息更好地转换为视觉信息
- 如何变现出更真实的视觉信息
Virtual Reality(虚拟现实)
VR/AR/MR是目前比较热门的东西,应用了很多图形学的东西,是利用计算机模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以即时、没有限制地观察三维空间内的事物。人们戴上特制的传感设备就可以直接感知到一种三维的模拟现实。
计算机图形学在可视化领域下需要解决的问题:
- 如何更平滑且更快的模拟出一个三维场景
- 如何在没有设备的情况下感知到一个虚拟的东西(比如裸眼3D)
Digital Illustration(数字化成像)
数字化成像,是用数字传感器将某种物理形式的像进行数字化与可视化的过程。比如一些美术从业人员通过在数位板等设备上进行绘画,然后显示到电子设备中,并且随时对这些美术作品进行修改上色等操作,大大减低美术人员的时间成本。
计算机图形学在数字化成像领域下需要解决的问题:
- 如何更平滑模拟出输入设备中的操作到电子设备上
Simulation(模拟)
模拟,就是仿照现实存在的东西并在电子设备上重现出来;如上图中的火焰特效,在制作的过程中需要考虑火焰在实际中是怎样生成的,火焰中的粒子如何运动的,空气中的其他结构是怎样变化的等等,通过图像的形式将一段时间的某些东西的变化模拟出来。
计算机图形学在模拟领域下需要解决的问题:
- 如何让现实中的细小粒子的运动通过图像方式平滑的模拟出来
- 如何控制图像按照一定的规律去模拟出一些未知的变化(涉及到深度学习相关知识)
Graphical User Interfaces(GUI图像用户接口)
图像用户接口,这个概念非常广泛,是一种人与计算机通信的界面显示格式,包含很多东西像一些Windows桌面、Mac桌面、APP的图标按钮等等,甚至是一些UI类的设计,都属于GUI的范畴;与通过键盘输入文本或字符指令来完结例行使命的字符界面相比,图形用户界面有许多长处。图形用户界面由窗口、下拉菜单、对话框及其相应的操控机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以相同的方法来完结,在图形用户界面,用户看到和操作的都是图形目标,应用的是计算机图形学的技能。
二、图像学入门主要内容
Rasterization(光栅化)
其中(a)是透视投影,(b)正交投影
光栅化是一个将三维空间的几何形体显示到屏幕上,这个过程包含了两部分的工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用、分配一个颜色值和一个深度值到各个区域。
这是所有游戏、一些实时(指一秒能够渲染到30帧及以上的画面,否则称为离线)的计算机图像学的主要应用。
- Project geometry primitives(3D triangles/polygons) onto the screen
- Break projected primitives int fragments(pixels)
- Gold standardinVideologicalGames(Real-time Applications)
Curves and Meshes (曲线和网格)
- How to represent geometry in Computer Graphics
Ray Tracing(光线追踪)
- Shoot rays from the camera though each pixel
- Calculate intersection and shading
- Continue to bounce(反射) the rays till they hit light sources
- Gold standard in Animations/Movies(Offline Applications)
Animation/Simulation(动画 /模拟)
- Key frame Animation
- Mass-spring System
三、图像学入门的基础知识
Basic Mathematics(基础数学)
- Linear Algebra(线性代数,重要)
- Calculus(微积分,重要)
- Statistics(统计学)
Basic Physics(基础物理)
- Optics(光学,重要)
- Mechanics(力学)
Misc(其他)
- Signal Procesing(信号处理,重要)
- Numercial Analysics(数值分析)
- Aesthetics(美学)