查看: 822|回复: 0
打印 上一主题 下一主题

[其他] 渲染的概念介绍

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-3-28 19:46:56 |只看该作者 |倒序浏览
前言

渲染,英文为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翻译成“热辐射”,其实这也蛮贴切的,因为物体在反射光色的时候,光色就是以辐射的形式发散出去的,所以,它周围的物体才会出现“染色”现象。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-15 17:06 , Processed in 0.273432 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部