渲染的概念
渲染,英文为Render,也有的把它称为着色,但我更习惯把Shade称为着色,把Render称为渲染。因为Render和Shade值两个词在三维软件中是截然不同的两个概念,虽然它们的功能很相似,但却有不同。Shade是一种显示方案,一般出现在三维软件的主要窗口中,和三维模型的线框图一样起到辅助观察模型的作用。很明显,着色模式比线框模式更容易让我们理解模型的结构,但它只是简单的显示而已,数字图像中把它称为明暗着色法。在像Maya这样的高级三维软件中,还可以用Shade显示出简单的灯光效果、阴影效果和表面纹理效果,当然,高质量的着色效果是需要专业三维图形显示卡来支持的,它可以加速和优化三维图形的显示。但无论怎样优化,它都无法把显示出来的三维图形变成高质量的图像,这时因为Shade采用的是一种实时显示技术,硬件的速度限制它无法实时地反馈出场景中的反射、折射等光线追踪效果。而现实工作中我们往往要把模型或者场景输出成图像文件、视频信号或者电影胶片,这就必须经过Render程序。
Shade视窗,提供了非常直观、实时的表面基本着色效果,根据硬件的能力,还能显示出纹理贴图、光源影响甚至阴影效果,但这一切都是粗糙的,特别是在没有硬件支持的情况下,它的显示甚至会是无理无序的。
Render效果就不同了,它是基于一套完整的程序计算出来的,硬件对它的影响只是一个速度问题,而不会改变渲染的结果,影响结果的是看它是基于什么程序渲染的,比如是光影追踪还是光能传递。
渲染的基本过程
首先,必须定位三维场景中的摄像机,这和真实的摄影是一样的。一般来说,三维软件已经提供了四个默认的摄像机,那就是软件中四个主要的窗口,分为顶视图、正视图、侧视图和透视图。我们大多数时候渲染的是透视图而不是其他视图,透视图的摄像机基本遵循真实摄像机的原理,所以我们看到的结果才会和真实的三维世界一样,具备立体感。接下来,为了体现空间感,渲染程序要做一些“特殊”的工作,就是决定哪些物体在前面、哪些物体在后面和那些物体被遮挡等。空间感仅通过物体的遮挡关系是不能完美再现的,很多初学三维的人只注意立体感的塑造而忽略了空间感。要知道空间感和光源的衰减、环境雾、景深效果都是有着密切联系的。
渲染程序通过摄像机获取了需要渲染的范围之后,就要计算光源对物体的影响,这和真实世界的情况又是一样的。许多三维软件都有默认的光源,否则,我们是看不到透视图中的着色效果的,更不要说渲染了。因此,渲染程序就是要计算我们在场景中添加的每一个光源对物体的影响。和真实世界中光源不同的是,渲染程序往往要计算大量的辅助光源。在场景中,有的光源会照射所有的物体,而有的光源只照射某个物体,这样使得原本简单的事情又变得复杂起来。在这之后,还要是使用深度贴图阴影还是使用光线追踪阴影?这往往取决于在场景中是否使用了透明材质的物体计算光源投射出来的阴影。另外,使用了面积光源之后,渲染程序还要计算一种特殊的阴影--软阴影(只能使用光线追踪),场景中的光源如果使用了光源特效,渲染程序还将花费更多的系统资源来计算特效的结果,特别是体积光,也称为灯光雾,它会占用代量的系统资源,使用的时候一定要注意。
在这之后,渲染程序还要根据物体的材质来计算物体表面的颜色,材质的类型不同,属性不同,纹理不同都会产生各种不同的效果。而且,这个结果不是独立存在的,它必须和前面所说的光源结合起来。如果场景中有粒子系统,比如火焰、烟雾等,渲染程序都要加以“考虑”。
智能光
我一直认为,自然界的光是具有智慧的,它像一个魔法师,把世界变得缤纷绚丽,甚至离奇古怪,而渲染程序中的光就显得笨拙的得多了,程序虽然提供了足够多的光源类型来让我们模拟真实世界的光源,但就其本质来说,都只解决了光源的直接照射问题,而真实世界中的照明不是这样的,它还存在再次反射的现象,也就是通常所说的的光能传递,现在流行的叫法是Global Illumination,即全局照明。不要把它跟Lightscape的光能传递相混淆,他们虽然在原理和结果上非常相似,但是算方式却不一样。
光的“智能”还体现在它的反射和折射质量上,这个质量并不是指渲染图像的质量或者光线追踪的正确与否,而是指是否能自动完成与光线的反射和折射有关的所有效果。Caustic特效的产生成为了高级渲染程序的一个重要标志。Cau-stic是一种光学特效,通常出现在有反射和折射属性的物体上,比如透明的圆球、凸透镜、镜子、水面等,它包含聚焦和散焦两个方面的效果。
就目前的情况来说,衡量一个渲染程序里的光源是否具有“智能”,不是看它的光源类型有多么丰富,或者说,已经与直接照明没有什么关系了(所有的渲染程序都能很好的解决直接照明的问题),而是与光源的间接照明有密切的关系。无论是天空光还是全局照明,或者是Caustic特效,都不是光源直接照射到物体上产生的效果,它们是光线的Diffu-se、Radiosity、Reflection和Refraction产生的结果,产生这些结果的自动化程度越高,即不需借助任何辅助光源,我们就可以把该渲染程序的光源看成是有“智能”的。需要注意的是,并不是说不能自动产生间接照明效果的渲染程序就是低级的。我们依然可以使用辅助光源来模拟那些间接照明的效果,作为渲染的图像来说,我们关心的仍然是图像所显示的效果,而不是产生结果的方法,所谓条条大路通罗马,目的才是最重要的。我们不要迷失其中。(说明:天空光是一种很特殊的光源。准确的说天空光不应该称为光源,它是由于大气漫反射太阳光形成的,所以,它也可以看成是太阳光的间接照明。)
材质的真相
材质是什么?简单的说就是物体看起来是什么质地。材质可以看成是材料和质感的结合。在渲染程序中,它是表面各可视属性的结合,这些可视属性是指表面的色彩、纹理、光滑度、透明度、反射率、折射率、发光度等。正是有了这些属性,才能让我们识别三维中的模型是什么做成的,也正是有了这些属性,我们计算机三维的虚拟世界才会和真实世界一样缤纷多彩。
这就是材质的真相吗?答案是否定的。不要奇怪,我们必须仔细分析产生不同材质的原因,才能让我们更好的把握质感。那么,材质的真相到底是什么呢?仍然是光,离开光材质是无法体现的。举例来说,借助夜晚微弱的天空光,我们往往很难分辨物体的材质,而在正常的照明条件下,则很容易分辨。另外,在彩色光源的照射下,我们也很难分辨物体表面的颜色,在白色光源的照射下则很容易。这种情况表明了物体的材质与光的微妙关系。下面,我们将具体分析两者间的相互作用。
色彩(包括纹理)
色彩是光的一种特性,我们通常看到的色彩是光作用于眼睛的结果。但光线照射到物体上的时候,物体会吸收一些光色,同时也会漫反射一些光色,这些漫反射出来的光色到达我们的的眼睛之后,就决定物体看起来是什么颜色,这种颜色在绘画中称为“固有色”。这些被漫反射出来的光色除了会影响我们的视觉之外,还会影响它周围的物体,这就是光能传递。当然,影响的范围不会像我们的视觉范围那么大,它要遵循光能衰减的原理。另外,有很多资料把Radiosity翻译成“热辐射”,其实这也蛮贴切的,因为物体在反射光色的时候,光色就是以辐射的形式发散出去的,所以,它周围的物体才会出现“染色”现象。
光滑与反射
一个物体是否有光滑的表面,往往不需要用手去触摸,视觉就会告诉我们结果。因为光滑的物体,总会出现明显的高光,比如玻璃、瓷器、金属………而没有明显高光的物体,通常都是比较粗糙的,比如砖头、瓦片、泥土………这种差异在自然界无处不在,但它是怎么产生的呢?依然是光线的反射作用,但和上面“固有色”的漫反射方式不同,光滑的物体有一种类似“镜子”的效果,在物体的表面还没有光滑到可以镜像反射出周围的物体的时候,它对光源的位置和颜色是非常敏感的。所以,光滑的物体表面只“镜射”出光源,这就是物体表面的高光区,它的颜色是由照射它的光源颜色决定的(金属除外),随着物体表面光滑度的提高,对光源的反射会越来越清晰,这就是在三维材质编辑中,越是光滑的物体高光范围越小,强度越高。当高光的清晰程度已经接近光源本身后,物体表面通常就要呈现出另一种面貌了,这就是Reflection材质产生的原因,也是古人磨铜为镜的原理。但必须注意的是,不是任何材质都可以在不断的“磨练”中提高自己的光滑程度。比如我们很清楚瓦片是不可能磨成镜的,为什么呢?原因是瓦片是很粗糙的,这个粗糙不单指它的外观,也指它内部的微观结构。瓦片质地粗糙里面充满了气孔,无论怎样磨它,也只能使它的表面看起来整齐,而不能填补这些气孔,所以无法成镜。我们在编辑材质的时候,一定不能忽视材质光滑度的上限,有很多初学者作品中的物体看起来都像是塑料做的就是这个原因。
透明与折射
自然界的大多数物体通常会遮挡光线,当光线可以自由的穿过物体时,这个物体肯定就是透明的。这里所指的“穿过”,不单指光源的光线穿过透明物体,还指透明物体背后的物体反射出来的光线也要再次穿过透明物体,这样使我们可以看见透明物体背后的东西。由于透明物体的密度不同,光线射入后会发生偏转现象,这就是折射。比如插进水里的筷子,看起来就是弯的。不同的透明物质其折射率也不一样,即使同一种透明的物质,温度的不同也会影响其折射率,比如当我们穿过火焰上方的热空气观察对面的景象,会发现有明显的扭曲现象。这就是因为温度改变了空气的密度,不同的密度产生了不同的折射率。正确的使用折射率是真实再现透明物体的重要手段。
在自然界中还存在另一种形式的透明,在三维软件的材质编辑中把这种属性称之为“半透明”,比如纸张、塑料、植物的叶子、还有蜡烛等等。它们原本不是透明的物体,但在强光的照射下背光部分会出现“透光”现象。
通过上面简单的描述,相信大家已经进一步了解了光和材质的关系,如果在编辑材质时忽略了光的作用,是很难调出有真实感的材质的。因此,在材质编辑器中调节各种属性时,必须考虑到场景中的光源,并参考基础光学现象,最终以达到良好的视觉效果为目的,而不是孤立的调节它们。当然,也不能一味的照搬物理现象,毕竟艺术和科学之间还是存在差距的,真实与唯美也不是同一个概念。
关于摄像机
一幅渲染出来的图像其实就是一幅画面。在模型定位之后,光源和材质决定了画面的色调,而摄像机就决定了画面的构图。在确定摄像机的位置时,总是考虑到大众的视觉习惯,在大多数情况下视点不应高于正常人的身高,也会根据室内的空间结构,选择是采用人蹲着的视点高度、坐着的视点高度或是站立时的视点高度,这样渲染出来的图像就会符合人的视觉习惯,看起来也会很舒服。在使用站立时的视点高度时,目标点一般都会在视点的同一高度,也就是平视。这样墙体和柱子的垂直*廓线才不会产生透视变形,给人稳定的感觉,这种稳定感和舒适感就是靠摄像机营造出来的。
当然,这种放置摄像机的方法不见得也适合表现室外的建筑,我想说的是,摄像机的位置必须考虑观察者所处的位置和习惯,否则画面会看起来很别扭。在影视作品中,摄影机的自由度会大得多,为了表现特殊的情感效果。有时会故意使用一些夸张、甚至极端的镜头,要注意区别对待。那么,在三维软件中的摄像机除了影响构图之外,还有什么其他的作用呢?当然有,这就是景深效果和运动模糊。应该说这两种特效都是和摄像机密不可分的,因为摄像机(或照相机)都有光圈和快门,而光圈和快门就是产生景深效果和运动模糊的直接原因,所以,运用好这两种特效是再现真实摄像效果的必要手段。
三维软件里的摄像机,除了上面提到的内容外,还有更复杂的部分,那就是摄像机的运动。如果你的工作不会涉及到动画制作,可以忽略与摄像机运动有关的内容,但不论怎样,花点时间看看摄像方面的书籍是很有帮助的。要知道影视作品和我们平时照相不同,照相注重构图和用光,影视作品更讲究镜头的运动和镜头的切换。所以,如果你要运用好你的“虚拟摄像机”,就必须参考专业类的书籍,千万不要再凭自己的想象,否则,费了好大的劲儿制作好了模型,设置好了光源,把最难调的材质也调好了,还设置了动画关键帧,本来应该有个好的渲染结果了,却因为使用了“蹩脚”的摄像机镜头和运动方法而导致剪辑师无从下手,结果前功尽弃。当然,这种结果在三维动画制作中并不多见,原因是三维动画制作通常都是先有了分镜头脚本(也叫故事板)才开始制作的。每个分镜头脚本中都注明了该用什么样的镜头以及如何运用镜头,但这并不表示我们可以不用去学习镜头语言,假如你对镜头一无所知,那该怎样才能看懂分镜头脚本呢?也就更谈不上制作了吧。