三维计算机图形

3D电脑图形(英语:3D computer graphics)是电子计算机和特殊3D软体帮助下创造的作品。一般来讲,该术语可指代创造这些图形的过程,或者3D电脑图形技术的研究领域,及其相关技术。该术语也用于指代这些模型本身。采用该技术的电脑科学的分支称为3D电脑图形学。
3D电脑图形和二维电脑图形的不同之处在于电脑记忆体储存了几何资料的3D表示,用于计算和绘制最终的二维图像。
一般来讲,为3D电脑图形准备几何资料的3D建模的艺术和雕塑及照相类似,而二维电脑图形的艺术和绘画相似。但是,3D电脑图形依赖于很多二维电脑图形的相同演算法。
电脑图形软体中,该区别有时很模糊:有些二维应用程式使用3D技术来达到特定效果,譬如灯光,而有些主要用于3D的应用程式采用二维的视觉技术。二维图形可以看作3D图形的子集。
相对于二维电脑图形而言,3D电脑图形更显真实,而且对空间操作的随意性也较强。
技术
OpenGL和Direct3D是两个用于产生即时图象的流行的API。(即时表示图象的产生在「真实的时间」中,或者说「随时」)。很多现代显示卡提供基于这些API的一定程度的硬体加速,经常使得复杂的3D图象即时产生。但是,真正产生3D景象并不一定要使用其中的任何一个。
3D电脑图形的建立
建立3D电脑图形的过程可以顺序分为三个基本阶段:
- 建模
- 场景布局和动画
- 绘制
建模
建模阶段可以描述为「确定后面场景所要使用的物件的形状」的过程。有很多建模技术,他们包括(但不仅仅是):
建模过程可能也包括编辑物体表面或材料性质(例如,颜色,萤光度,漫射和镜面反射分量—经常被叫做粗糙度和光洁度,反射特性,透明度或不透明度,或者折射指数),增加纹理,凹凸对映和其它特征。
建模可能也包括各种和准备动画的3D模型相关的各种活动,有时在复杂的任务建模中,这将自己成为一个阶段,称为索具(rigging)。物件可能用一个''骨架''撑起来,一个物体的中央框架,它可以影响一个物件的形状或运动。这个对动画构造过程很有帮助,骨架可以自动决定模型相关部分。参看正运动动画和逆运动动画。在索具阶段,模型也可以给定特定的控制,使得运动的控制更为简便和直观,例如用于声音嘴唇同步的面部表情控制和嘴形(音素)。建模可以用以此为目的设计的程式(例如Lightwave建模软体,Rhinoceros 3D,Moray),应用的模组(Shaper,3D Studio Max的Lofter)或者某些场景描述语言(例如POV-Ray)。在有些情况,这些阶段之间没有严格的区别,在这些情况下,建模只是场景建立过程的一部分(例如Caligari trueSpace就属于这种情况)。
三角剖分和网格
把物体的表示(例如球面的中点坐标和它的表面上的一个点所表示的球面),转换到一个(球面的)多边形表示的过程,称为剖分(tesselation)。该步骤用于基于多边形的绘制,其中物件从象球面,圆锥面等等这样的抽象的表示(「体素」),分解成为所谓「网格」,它是互相连接的三角形的网路。
三角网格(而不是正方形等形状)比较流行,因为它们易于采用扫描线绘制进行绘制。
多边形表示不是所有绘制技术都必须的,而在这些情况下,从抽象表示到绘制出的场景的转换不包括剖分步骤。
场景布局设定
在彩现成图象之前,模型必须放置在一个场景中。这定义了模型的位置和大小。
场景设定涉及安排一个场景内的虚拟物体,灯光,摄录影机和其他实体,它将被用于制作一幅静态画面或一段动画。
照明是场景布置中一个重要的方面。就象在实际场景布置的时候一样,光照是最终作品的审美和视觉品质的关键因素之一。因而,它是一项很难掌握的艺术。光照因素可以对一个场景的氛围和情绪反映作出重大贡献,这是为摄影师和舞台照明师所熟悉的事实。
设定动画
主条目:电脑动画
动画是指对模型随时间的变化描述。常见的方法有设定关键影格,动作捕捉、骨骼动画和逆运动学(ik)等 这些技术经常结合使用。
彩现
反射和明暗模型
现代3D电脑图形严重的依赖于一个简化的反射模型称为Phong反射模型,它和Phong明暗图是完全不同的主题,不能混淆二者。
在光的折射中,有一个重要的概念称为折射率。在多数3D编程实现中,该值「index of refraction」(折射率)通常简写为「IOR」。

3D电脑图形中流行的反射绘制技术包括:
- 平直着色法(Flat shading):使用多边形的法向量和位置以及光源的位置和强度对于物体的每一个多边形给出一个明暗值的技术。
- Gouraud着色法:H。Gouraud于1971年发明,一个快速的基于顶点和光源的关系的着色技术,用于类比光滑着色的曲面。
- 纹理对映:通过把图像(纹理)对映到多边形上来类比曲面的大量细节的技术。
- Phong着色法:由Bui Tuong Phong发明,用于类比光滑着色曲面的镜面反射高光效果。
- 凸凹纹理对映:由Jim Blinn发明,用法向扰动技术类比带褶皱的曲面。
- Cel着色:用于类比手绘动画的观感的一种技术。
3D图形应用程式介面(API)
3D图形已经非常流行,特别是在电子游戏中,这使得专门化的应用程式介面(API)被建立出来用于简化电脑图形产生的各个阶段的处理。这些API对于电脑图形硬体厂商也是极为重要的,因为他们提供给程式设计师一种使用硬体的抽象方式,而依然能够利用那个显示卡的特定硬体的长处。
这些3D电脑图形的API颇为流行:
- OpenGL和OpenGL着色语言
- OpenGL ES嵌入式装置的3DAPI
- Direct3D(DirectX的子集)
- RenderMan
- RenderWare
也有一些高层的3D场景图API,他们提供在底层绘制API之上的附加功能。处于活跃的发展中的这类程式库包括:
- QSDK
- Quesa
- Java 3D
- JSR 184(M3G)
- NVidia Scene Graph
- OpenSceneGraph
- OpenSG
- OGRE
- Irrlicht
装置生成
3D图形除了使用软体以人工方式建模外,照相测量法、3D扫描等方式也是近年来逐渐成熟的技术,可透过相机或3D扫描器将已存在之实体资料转化为数位化3D资料,生成资料可能以面(Surface)或点云(Point cloud)的方式呈现[1]。
参考文献
- ^ 李家宇,《3D都市尺度雷射扫瞄在建筑数位典藏之应用-以新竹县北埔乡、竹东镇及大台北地区为例》,台北:台湾科技大学建筑研究所博士论文,2012。