1.3.3 扩展应用技术
1.计算机图形技术
计算机可以方便地生成各种各样的图形,比如要生成一条直线,只需要根据式(1-1)所示的直线方程,在给定的区间内依次取x的所有整数值并计算出所有对应的y值并取整,就可以得到一个关于(x,y)的整数坐标点集。以设定的颜色显示这些点,就会在屏幕上显示出对应的直线;给定不同的a、b值,直线的显示效果也不同。
y=ax+b (1-1)
式中,a是直线的斜率;b是直线在y轴上的截距。
因此不难想象,如果将式(1-1)换为圆、椭圆或任意多项式方程,求出相应的(x,y)整数坐标点集,就可以显示出圆、椭圆或任意对应的曲线;将多段直线或曲线首尾相连,就可以显示封闭的图形;而如果用指定的颜色或图案来填充圆、椭圆或封闭图形的内部(也即改变区域内像素的属性),就可以显示出比线条图更为直观的实心图形。
然而在实际应用中,计算机图形与动画技术远非上述描述的那样简单。因为,如果直接根据式(1-1)生成直线段,计算机程序就必须进行乘除法的运算,并且每生成一个点都要重复这个过程;再有,所有的运算都涉及非整数值,还需用到浮点小数,因此直接根据式(1-1)来生成直线的算法效率极低。另外,对于式(1-1)来说,如果斜率a小于1,那么根据多个变量x求出的y取整后的值可能都一样(相当于重复计算);而如果斜率a大于1,那么对于以单位间隔连续增加(坐标值+1)的x来说,y的增加间隔将变得很大,直线在显示时就会不连续、不平滑,都是断点,这时就需要以y为自变量来反求x并取整。因此,实际的直线生成算法并不是直接根据式(1-1)进行编程,而是巧妙地运用基于整形变量的增量方法,并且使斜率的计算仅在程序循环体外一次性完成,因而可极大地提高程序运算效率,提高图形生成的速度。
以上例子仅仅是计算机图形学的最最基本问题,在实际应用中还有很多复杂的技术难题需要深入研究。
(1)图形输入技术
这里所说的图形不是根据式(1-1)之类的方程通过求点以“无中生有”方式得到的图形,而是根据实际输入的图像进行特征抽取而得到的图形,比如根据输入的真实人脸图像进行边缘轮廓特征提取、形态学处理、笔画风格化处理等,得到由线条勾画的该特定人脸的头像漫画(可以设定不同的漫画风格)。该技术显然是图像与图形技术的融合。
(2)图形建模技术
图形建模是构建三维实体图形的基础,图形生成算法的优劣直接影响图形建模的质量与效率。以桌子的建模为例,就需要有一定厚度的桌面和桌腿等三维图形元素,这些三维图形元素又需要由基本的二维图形元素通过厚度拉伸(Extrude)等方法来实现,而二维图形元素则包括节点(Vertex)、线段(Segment)和样条曲线(Spline)等基本图形元素。
简单地说,对于长方形的桌面,可由4条线段首尾相连构成平面,再在平面的法线方向进行拉伸后即可形成有一定厚度的长方体桌面。然而这样的桌面是见棱见角的,只有对棱角进行倒角(Bevel)处理,才能使桌面的棱角变得平滑,使其看上去更符合实际,而倒角可通过基于控制点拟合的样条曲线技术,如贝塞尔曲线、β-样条曲线等。对于桌腿,是与桌面结构一样的长方体,仅长宽高的尺寸及倒角方式不同罢了。将所有的图形元素按需求进行组合,即可形成基本实体模型库,可在此基础上进一步构建复杂的三维实体模型。
(3)真实感光照模型技术
基本的三维图形都是在理想环境下生成的,也即所绘制的三维物体在其外部和内部各个方向上感受到的光强度都完全相同。然而在真实的环境下,理想光照的情况几乎是不可能实现的,因而要想使计算机生成的三维图形具有真实的光感与质感,必须研究光源照射在物体表面时的基本特性,通过建立光照明模型(IlluminationModel)来完成对物体表面某点处的光强度的计算,进而根据计算结果由计算机生成具有真实光照明效果的逼真的物体光照明模型。
要使计算机生成具有连续色调的真实感图形,必须完成4项基本任务:①用数学方法建立所需三维场景的几何描述;②将三维几何描述转换为二维透视图;③确定场景中的所有可见面,并通过隐藏面消除算法将视场之外的或被其他物体遮挡的不可见面消去;④计算场景中可见面的颜色或明暗效果。这一步骤实际上是根据基于光学物理的光照明模型计算投射到观察者眼中的光亮度大小和色彩分量,并将它转换成适合图形显示设备的颜色值,从而确定投影面上每一像素的颜色,最终生成图形。可想而知,要做出金属的光泽、玻璃的透澈、水滴的晶莹剔透等真实感效果具有相当的难度。
2.计算机动画技术
动画是一种创造出运动幻觉的技术,它是把一系列关联的画面进行连续播放(比如每秒25~30帧)而使人在观看时产生运动的幻觉。
计算机图形是计算机动画的基础,使计算机按照一定的规律连续地生成(渲染、显示)设计好的图形序列,就形成了计算机动画。
为了使计算机生成的三维图形(实体)在运动(动画)时的运动规律自然流畅,需要精确设定并调整其运动轨迹,但是最真实的运动轨迹显然需要根据真实目标的运动过程来采集。这种运动数据采集技术即是运动捕捉(Motion Capture)传感技术,简称Mocap。它是将传感单元固定到运动目标的关键部位(通常是运动关节处),当目标运动时,这些传感单元即会相应产生位移,传感系统(红外、磁或机械传感)即会分析并记录下传感单元的运动轨迹。当将该轨迹数据赋予设计好的计算机三维图形(实体)时,即形成了计算机三维动画。比如,将对芭蕾舞演员采集的运动轨迹数据赋予计算机建模生成的大灰熊,人们就可看到蠢笨的大灰熊其实可以跳起优美的芭蕾舞。图1-6给出了用于运动数据采集的“替身演员”穿戴传感器进行表演的剧照,其中左上图为红外式面部表情传感系统,右上图为机械式肢体动作传感系统,下图为红外式肢体动作传感系统。
图1-6 “替身演员”穿戴传感器进行表演的剧照
3.虚拟现实技术
虚拟现实(Virtual Reality)也称虚拟环境(Virtual Environment),是用计算机技术来生成一个逼真的三维视觉、听觉、触觉或嗅觉等感觉世界,让用户可以从自己的视点出发,利用自然的技能和某些设备对这一生成的虚拟世界客体进行浏览和交互考察,产生身临其境的感觉。
虚拟现实技术主要有以下3个突出特征:
(1)沉浸感
沉浸感是指参与者借助交互设备和自身的感知体验,可以全身心地沉浸于计算机所生成的三维虚拟环境,并产生身临其境的感觉。参与者可以通过视觉、听觉、嗅觉、触觉等人类感知系统,多维地感受虚拟世界发生的但感觉上和真的一样的任何事物。这就要求虚拟现实系统能够实时地生成高质量的、逼真的虚拟场景。而在虚拟场景的创建过程中,生成场景画面的质量和速度是衡量这个虚拟场景优劣的两项关键性指标:低速度将使虚拟场景出现不连续和跳动;低质量则使虚拟场景产生景象失真,降低这两项指标中的任何一项,都会严重地影响虚拟场景的真实性效果,使参与者无法产生“沉浸感”。
(2)交互性
交互性是指参与者借助交互设备及人类各种感官功能、自然技能,与虚拟环境进行交互考察与操作。比如“眼球追踪”交互就是VR系统通过对人眼视频图像的分析,获取人眼的真实注视点,从而得到虚拟物体视点位置的景深,当眼球转动时,使场景图像发生相应变化;“手势跟踪”交互就是利用具有震动、压力传感的“数据手套”或直接通过对手势图像的识别获取人手的控制(操作)参数,使场景图像及设备产生随动;“运动捕捉”交互就是通过前述Mocap装置采集参与者的肢体运动;而“触觉反馈”交互就是通过VR手柄实现6个自由度空间数据输入,常用于高沉浸式交互游戏系统,等等。
以模拟汽车驾驶系统为例,参与者坐在模拟驾驶室内,就可看到由虚拟视觉系统(VR头盔或环绕式拼接屏幕)显示的近乎真实的道路场景,当参与者操作方向盘、制动器等部件时,视觉系统则会显示出相应的车辆转向或制动的视觉效果,而机械随动系统甚至还可使人产生人体受力的感觉。
(3)构想性
构想性是指参与者借助VR系统给出的逼真视听及触觉信号而产生的对虚拟空间的想象,反映了使抽象概念具体化的程度,可有效拓宽人类的认知范围。比如要建造一座现代化的大厦,首先要对其结构做细致的构思,常规的做法只是产生大量的设计图纸,然而这些图纸只有极少数内行人才能看懂,并在其脑海中形成图纸所描述的建筑结构及外观(有些可形成结构及外观示意图)。而采用虚拟现实技术,则可以用别样方式直观地反映出设计者的构思,使人们以VR的方式全方位看到大厦的近乎真实的“实景”及其任意内部结构。因此某些国外学者甚至称虚拟现实为放大人们心灵的工具。
虚拟现实技术实际上是多种技术的综合,比如动态虚拟环境建模技术、实时三维图形生成技术、立体显示与真实感立体声合成技术、传感器及交互式接口技术、自然人机交互技术以及系统集成技术等。