三维计算机图形
三维计算机图形(英语:3D computer graphics)是电子计算机和特殊三维软件帮助下创造的作品。一般来讲,该术语可指代创造这些图形的过程,或者三维计算机图形技术的研究领域,及其相关技术。该术语也用于指代这些模型本身。采用该技术的计算机科学的分支称为三维计算机图形学[来源请求]。
三维计算机图形和二维计算机图形的不同之处在于计算机内存储存了几何数据的三维表示,用于计算和绘制最终的二维图像。
一般来讲,为三维计算机图形准备几何数据的三维建模的艺术和雕塑及照相类似,而二维计算机图形的艺术和绘画相似。但是,三维计算机图形依赖于很多二维计算机图形的相同算法。
计算机图形软件中,该区别有时很模糊:有些二维应用程序使用三维技术来达到特定效果,譬如灯光,而有些主要用于3D的应用程序采用二维的视觉技术。二维图形可以看作三维图形的子集。
相对于二维计算机图形而言,三维计算机图形更显真实,而且对空间操作的随意性也较强。
技术
OpenGL和Direct3D是两个用于产生实时图象的流行的API。(实时表示图象的产生在“真实的时间”中,或者说“随时”)。很多现代显卡提供基于这些API的一定程度的硬件加速,经常使得复杂的三维图象实时产生。但是,真正产生三维景象并不一定要使用其中的任何一个。
三维计算机图形的创建
创建三维计算机图形的过程可以顺序分为三个基本阶段:
建模
建模阶段可以描述为“确定后面场景所要使用的对象的形状”的过程。有很多建模技术,他们包括(但不仅仅是):
建模过程可能也包括编辑物体表面或材料性质(例如,颜色,荧光度,漫射和镜面反射分量—经常被叫做粗糙度和光洁度,反射特性,透明度或不透明度,或者折射指数),增加纹理,凹凸映射和其它特征。
建模可能也包括各种和准备动画的三维模型相关的各种活动,有时在复杂的任务建模中,这将自己成为一个阶段,称为索具(rigging)。对象可能用一个''骨架''撑起来,一个物体的中央框架,它可以影响一个对象的形状或运动。这个对动画构造过程很有帮助,骨架可以自动决定模型相关部分。参看正运动动画和逆运动动画。在索具阶段,模型也可以给定特定的控制,使得运动的控制更为简便和直观,例如用于声音嘴唇同步的面部表情控制和嘴形(音素)。建模可以用以此为目的设计的程序(例如Lightwave建模软件,Rhinoceros 3D,Moray),应用的模块(Shaper,3D Studio Max的Lofter)或者某些场景描述语言(例如POV-Ray)。在有些情况,这些阶段之间没有严格的区别,在这些情况下,建模只是场景创建过程的一部分(例如Caligari trueSpace就属于这种情况)。
三角剖分和网格
把物体的表示(例如球面的中点坐标和它的表面上的一个点所表示的球面),转换到一个(球面的)多边形表示的过程,称为剖分(tesselation)。该步骤用于基于多边形的绘制,其中对象从象球面,圆锥面等等这样的抽象的表示(“体素”),分解成为所谓“网格”,它是互相连接的三角形的网络。
三角网格(而不是正方形等形状)比较流行,因为它们易于采用扫描线绘制进行绘制。
多边形表示不是所有绘制技术都必须的,而在这些情况下,从抽象表示到绘制出的场景的转换不包括剖分步骤。
场景布局设置
在渲染成图象之前,模型必须放置在一个场景中。这定义了模型的位置和大小。
场景设置涉及安排一个场景内的虚拟物体,灯光,摄像机和其他实体,它将被用于制作一幅静态画面或一段动画。
照明是场景布置中一个重要的方面。就象在实际场景布置的时候一样,光照是最终作品的审美和视觉质量的关键因素之一。因而,它是一项很难掌握的艺术。光照因素可以对一个场景的氛围和情绪反映作出重大贡献,这是为摄影师和舞台照明师所熟悉的事实。
设置动画
动画是指对模型随时间的变化描述。常见的方法有设置关键帧,动作捕捉、骨骼动画和逆运动学(ik)等 这些技术经常结合使用。
渲染
反射和明暗模型
现代三维计算机图形严重的依赖于一个简化的反射模型称为Phong反射模型,它和Phong明暗图是完全不同的主题,不能混淆二者。
在光的折射中,有一个重要的概念称为折射率。在多数三维编程实现中,该值“index of refraction”(折射率)通常简写为“IOR”。
三维计算机图形中流行的反射绘制技术包括:
3D图形应用程序接口(API)
3D图形已经非常流行,特别是在电子游戏中,这使得专门化的应用程序接口(API)被创建出来用于简化计算机图形产生的各个阶段的处理。这些API对于计算机图形硬件厂商也是极为重要的,因为他们提供给程序员一种使用硬件的抽象方式,而依然能够利用那个显卡的特定硬件的长处。
这些3D计算机图形的API颇为流行:
- OpenGL和OpenGL着色语言
- OpenGL ES嵌入式设备的三维API
- Direct3D(DirectX的子集)
- RenderMan
- RenderWare
也有一些高层的三维场景图API,他们提供在底层绘制API之上的附加功能。处于活跃的发展中的这类程序库包括:
设备生成
3D图形除了使用软体以人工方式建模外,照相测量法、3D扫描等方式也是近年来逐渐成熟的技术,可透过相机或3D扫描器将已存在之实体资料转化为数位化3D资料,生成资料可能以面(Surface)或点云(Point cloud)的方式呈现[1]。
参考文献
- ^ 李家宇,《3D都市尺度雷射扫瞄在建筑数位典藏之应用-以新竹县北埔乡、竹东镇及大台北地区为例》,台北:台湾科技大学建筑研究所博士论文,2012。