- 最后登录
- 2014-10-28
- 注册时间
- 2013-5-8
- 阅读权限
- 70
- 积分
- 2871
- 纳金币
- 2618
- 精华
- 14
|
首先,必须定位三维场景中的摄像机,这和真实的摄影是一样的。一般来说,三维软件已经提供了四个默认的摄像机,那就是软件中四个主要的窗口,分为顶视图、正视图、侧视图和透视图。我们大多数时候渲染的是透视图而不是其它视图,透视图的摄像机基本遵循真实摄像机的原理,所以我们看到的结果才会和真实的三维世界一样,具备立体感。接下来,为了体现空间感,渲染程序要做一些“特殊”的工作,就是决定哪些物体在前面、哪些物体在后面和那些物体被遮挡等。空间感仅通过物体的遮挡关系是不能完美再现的,很多初学三维的人只注意立体感的塑造而忽略了空间感。要知道空间感和光源的衰减、环境雾、景深效果都是有着密切联系的。
渲染程序通过摄像机获取了需要渲染的范围之后,就要计算光源对物体的影响,这和真实世界的情况又是一样的。许多三维软件都有默认的光源,否则,我们是看不到透视图中的着色效果的,更不要说渲染了。因此,渲染程序就是要计算我们在场景中添加的每一个光源对物体的影响。和真实世界中光源不同的是,渲染程序往往要计算大量的辅助光源。在场景中,有的光源会照射所有的物体,而有的光源只照射某个物体,这样使得原本简单的事情又变得复杂起来。在这之后,还要是使用深度贴图阴影还是使用光线追踪阴影?这往往取决于在场景中是否使用了透明材质的物体计算光源投射出来的阴影。另外,使用了面积光源之后,渲染程序还要计算一种特殊的阴影--软阴影(只能使用光线追踪),场景中的光源如果使用了光源特效,渲染程序还将花费更多的系统资源来计算特效的结果,特别是体积光,也称为灯光雾,它会占用代量的系统资源,使用的时候一定要注意。
在这之后,渲染程序还要根据物体的材质来计算物体表面的颜色,材质的类型不同,属性不同,纹理不同都会产生各种不同的效果。而且,这个结果不是独立存在的,它必须和前面所说的光源结合起来。如果场景中有粒子系统,比如火焰、烟雾等,渲染程序都要加以“考虑”。
智能光
我一直认为,自然界的光是具有智慧的,它像一个魔法师,把世界变得缤纷绚丽,甚至离奇古怪,而渲染程序中的光就显得笨拙的得多了,程序虽然提供了足够多的光源类型来让我们模拟真实世界的光源,但就其本质来说,都只解决了光源的直接照射问题,而真实世界中的照明不是这样的,它还存在再次反射的现象,也就是通常所说的的光能传递,现在流行的叫法是Global Illumination,即全局照明。不要把它跟Lightscape的光能传递相混淆,他们虽然在原理和结果上非常相似,但是算方式却不一样。
光的“智慧”还体现在它的反射和折射质量上,这个质量并不是指渲染图像的质量或者光线追踪的正确与否,而是指是否能自动完成与光线的反射和折射有关的所有效果。Caustic特效的产生成为了高级渲染程序的一个重要标志。Cau-stic是一种光学特效,通常出现在有反射和折射属性的物体上,比如透明的圆球、凸透镜、镜子、水面等,它包含聚焦和散焦两个方面的效果。
就目前的情况来说,衡量一个渲染程序里的光源是否具有“智慧”,不是看它的光源类型有多么丰富,或者说,已经与直接照明没有什么关系了(所有的渲染程序都能很好的解决直接照明的问题),而是与光源的间接照明有密切的关系。无论是天空光还是全局照明,或者是Caustic特效,都不是光源直接照射到物体上产生的效果,它们是光线的Diffu-se、Radiosity、Reflection和Refraction产生的结果,产生这些结果的自动化程度越高,即不需借助任何辅助光源,我们就可以把该渲染程序的光源看成是有“智能”的。需要注意的是,并不是说不能自动产生间接照明效果的渲染程序就是低级的。我们依然可以使用辅助光源来模拟那些间接照明的效果,作为渲染的图像来说,我们关心的仍然是图像所显示的效果,而不是产生结果的方法,所谓条条大路通罗马,目的才是最重要的。我们不要迷失其中。
[说明:天空光是一种很特殊的光源。准确的说天空光不应该称为光源,它是由于大气漫反射太阳光形成的,所以,它也可以看成是太阳光的间接照明。]
|
|