王方+王艳淑
摘要:随着计算机硬件与软件技术的飞速发展,三维可视化技术也日臻成熟。它以现实性、直观性和逼真的视觉效果收到了人们的日益青睐,特别在区域地形地貌表示、军事指挥、水利农田重大工程规划、城市仿真等案例中得到了广泛的应用。在此技术应用的过程当中,渲染技术是不可缺少的一部分。
1 三维场景
1.1 三维的概念
三维是指在平面二维系中又加入了一个方向向量构成的空间系。
所谓三维,按大众理论来讲,只是人为规定的互相交错(垂直是一个很有特性的理解)的三个方向,用这个三维坐标,看起来可以把整个世界任意一点的位置确定下来。原来,三维是为了确定位置。
三维既是坐标轴的三个轴,即x轴、y轴、z轴,其中x表示左右空间,y表示上下空间,z表示前后空间,这样就形成了人的视觉立体感,三维动画就是由三维制作软件制作出来的立体动画,实现再发展的趋势。
所谓的三维空间是指我们所处的空间,可以理解为有前后--上下--左右 如果把时间当作一种物质存在的话再加上时间就是四维空间了。但是不难理解为,你可以在时间里任意往来 回到过去,只是应该理解为"刚才"和"现在"是不同的物质存在,可是你不可能回到"刚才"和"过去"。
三维是由二维组成的,二维即只存在两个方向的交错,将一个二维和一个一维叠合在一起就得到了三维。
三维具有立体性,但我们俗语常说的前后,左右,上下都只是相对于观察的视点来说。没有绝对的前后,左右,上下。
三维技术主要多运用于动漫产业,我国三维动画主要有《探索地球村》(据说是中国第一部三维动画),《魔比斯环》等。
1.2 三维地图
2004年11月,阿拉丁在全球创造性地提出三维仿真城市的概念,并推出全球首个三维仿真网络城市-E都市杭 州。公司从创办之日起,凭借全球领先的三维仿真技术和工艺、一流的创业团队和文化、巨额的风险资本注入,一直保持着高速发展。
通过三维实景模拟的表现方式,E都市网站无缝集成了城市电子地图、三维电子黄页、生活资讯、电子政务、同城电子商务、同城交友、虚拟社区等服务内容。该平台是以一种全新的人性化WEB界面表现,为城市百姓的生活、工作、旅游、出行参考、网上办事、网上创业等活动提供便捷的解决方案;为城市政府机关、事业单位、商家企业提供面向市民宣传互动的快速通道,从而更方便地实现电子政务、地图查询、黄页查询、电子商务、推广宣传等社会活动和经济活动。
E都市的建立和发展,开拓了全球WEBGIS行业应用的新方法和新思路,催生了一个新的技术领域,E都市模式已经成为事实的行业标准。作为中国目前最大的虚拟仿真电子地图,E都市为普通人提供最优秀的电子地图和本地搜索服务;为众多商家提供出了企业标注、地图广告、定位广告、商务地图、API地图租赁等多种产品服务;同时为3000多家合作网站提供了优质的三维位置地理信息服务。
2 渲染技术原理
渲染,英文为Render,也有的把它称为着色,但我更习惯把Shade称为着色,把Render称为渲染。因为Render和Shade值两个词在三维软件中是截然不同的两个概念,虽然它们的功能很相似,但却有不同。Shade是一种显示方案,一般出现在三维软件的主要窗口中,和三维模型的线框图一样起到辅助观察模型的作用。很明显,着色模式比线框模式更容易让我们理解模型的结构,但它只是简单的显示而已,数字图像中把它称为明暗着色法。在像Maya这样的高级三维软件中,还可以用Shade显示出简单的灯光效果、阴影效果和表面纹理效果,当然,高质量的着色效果是需要专业三维图形显示卡来支持的,它可以加速和优化三维图形的显示。但无论怎样优化,它都无法把显示出来的三维图形变成高质量的图像,这时因为Shade采用的是一种实时显示技术,硬件的速度限制它无法实时地反馈出场景中的反射、折射等光线追踪效果。而现实工作中我们往往要把模型或者场景输出成图像文件、视频信号或者电影胶片,这就必须经过Render程序。
2.1.1 渲染单元
渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。
渲染管线的数量是决定显示芯片性能和档次的最重要的参数之一,在相同的显卡核心频率下,更多的渲染管线也就意味着更大的像素填充率和纹理填充率,从显卡的渲染管线数量上可以大致判断出显卡的性能高低档次。但显卡性能并不仅仅只是取决于渲染管线的数量,同时还取决于显示核心架构、渲染管线的的执行效率、顶点着色单元的数量以及显卡的核心频率和显存频率等等方面。一般来说在相同的显示核心架构下,渲染管线越多也就意味着性能越高,例如16×1架构的GeForce 6800GT其性能要强于12×1架构的GeForce 6800,就象工厂里的采用相同技术的2条生产流水线的生产能力和效率要强于1条生产流水线那样;而在不同的显示核心架构下,渲染管线的数量多就并不意味着性能更好,例如4×2架构的GeForce2 GTS其性能就不如2×2架构的GeForce4 MX440,就象工厂里的采用了先进技术的1条流水线的生产能力和效率反而还要强于只采用了老技术的2条生产流水线那样。
2.1.2 像素渲染
像素渲染可在功能上取代传统的多纹理阶段,它位于光栅化阶段之后。它从光栅器、顶点渲染器、应用程序、纹理贴图几处获取数据。像素渲染器的计算结果可以写入一个渲染目标,然后将该渲染目标设置为后续渲染的输入纹理,这种技术称为渲染到目标。像素渲染器通常输出一个float4类型的值。如果像素渲染器同时对几个渲染目标进行渲染,则最多可以输出4个float4值,这种技术称为多渲染目标。
2.1.3 顶点渲染
顶点渲染可在功能上取代传统的变换与光照阶段,它位于镶嵌阶段之后,剔除与裁剪阶段之前。镶嵌阶段结束后,便将一个顶点数据传递给顶点渲染器,顶点可能包含位置、纹理坐标、顶点颜色、法线等数据。顶点渲染器不能创建或删除顶点,它处理结束后至少要输出顶点中的位置数据。
2.1.4 渲染纹理
色彩是光的一种特性,我们通常看到的色彩是光作用于眼睛的结果。但光线照射到物体上的时候,物体会吸收一些光色,同时也会漫反射一些光色,这些漫反射出来的光色到达我们的的眼睛之后,就决定物体看起来是什么颜色,这种颜色在绘画中称为“固有色”。这些被漫反射出来的光色除了会影响我们的视觉之外,还会影响它周围的物体,这就是光能传递。当然,影响的范围不会像我们的视觉范围那么大,它要遵循光能衰减的原理。另外,有很多资料把RADIOSITY翻译成“热辐射”,其实这也蛮贴切的,因为物体在反射光色的时候,光色就是以辐射的形式发散出去的,所以,它周围的物体才会出现“染色”现象。
在这之后,渲染程序还要根据物体的材质来计算物体表面的颜色,材质的类型不同,属性不同,纹理不同都会产生各种不同的效果。而且,这个结果不是独立存在的,它必须和前面所说的光源结合起来。如果场景中有粒子系统,比如火焰、烟雾等,渲染程序都要加以“考虑”。