韩志冰官方网站
#
#

        解读自然光

        作者:核实中..2010-05-19 10:32:00 来源:网络

          本教程的目的:
          深入探讨光的本质以及实际在CG创作中的运用:
          为何每一天不同时段的光线呈现出不同的色彩?
          这样的色彩的特征又是怎样的?
          如何运用这样的不同来表达自己的想法?

          概述
          “光”生性自由却又富有内涵,以至于每一位它的膜拜者——科学家亦或艺术家,都难以抵抗它强大的魅力。它的魅力来源于它的变化多端,而这样的变化多端更让它显得神秘莫测,难以捉摸。也许对于很多人来说,“光”就是一个“黑盒子”,我们欣赏、赞美它美丽的外表,但却对它的本质不甚了解,这样的困惑伴随了笔者很久,并将长期萦绕笔者心头。许多理论上的知识仿佛揭开了它神秘的面纱,但是实际观察中的迷惑仿佛告诉我:“嘿!小子,那才是冰山一角。”困惑永远存在,但这并不阻碍所有膜拜者前进的脚步,对未知和神秘的“光”的探索是很多人孜孜不倦的追求!






          也许看过我另一篇文章《风格化的灯光》的朋友对“灯光语法”的概念颇感兴趣。何为灯光语法?首先我们先要了解,我们的CG作品的视觉效果是由光、物体的性质和观察者(摄像机)所共同决定的,笔者把这三者组织起来的方法称为“视效语法”,而把如何组织光的方法称为“灯光语法”。今天,我们要讨论的是如何组织自然光,相对于笔者以前对于CG灯光的解释,此文将更深入探讨光的本质以及实际在CG创作中的运用:为何每一天不同时段的光线呈现出不同的色彩?这样的色彩的特征又是怎样的?如何运用这样的不同来表达自己的想法?

          CG灯光的技术不应该是少数人手中的法宝,但国内深入对其描述的著作又十分罕见,这就使得大部分灯光师对于光线的理解来源于自己的观察和项目积累。此文行文目的并非只为传道解惑,而希望更多的人加入光线的讨论和经验的分享的行列中。

          光与自然光

          首先,我们来了解一下什么是光。光其实是电磁波中的很小一部分,一般意义上就是我们肉眼能看到的电磁波的波段(也称可见光),科学上定义在390nm - 780nm,但是人眼能看到的范围在312nm - 1050nm甚至更广。在这个范围内,人们依次能看到紫、蓝、青、绿、黄、红等颜色。这些颜色的分布是不均匀的,红、绿、蓝所占有的波段范围比较大;相反,黄、青、紫所占有的波段范围就比较小,但是黄色的所占有的波段范围又比青、紫略大。
          不仅如此,人眼对各个颜色的敏感程度也不一样,其中以对绿色的光最为敏感,这也是绿色被做为信号灯标准色的原因,当人在千米之外已经看不到红灯和蓝灯时依然能辨别出绿灯。图general.image2比较直观地概括了这些现象。





          从波的理论来理解光,并非是想把它从艺术性中抽离出来,而是要靠以上的光波理论来解释许多现象,好比蓝天为什么是蓝色,而朝霞为什么是红色,这对于CG的运用与实践是相当有帮助的,稍后会有详细的说明。不仅如此,它还能帮助我们解决其他问题。在Maya默认渲染器中,有三个参数叫Contract Threshold R/Contract Threshold G/Contract Threshold B (declare.image2),这三个值的优化比例应该为2:1.5:4,因为人眼对红/绿/蓝的敏感程度大致为3:4:1.5(1/2: 1/1.5:1/4),所以我们渲染出的图象的蓝色通道质量不必像绿色通道质量那么高,人眼很难发觉其中的差别。由于此文着重探讨自然光,所以光波理论在渲染中的理论在此只是一笔带过。这里只是让读者有一个印象,光波理论能帮助我们解决CG灯光及其他方面的一系列问题。




          接下来,我们得聊聊主角——自然光。为读者理解本文内容方便,笔者把它定义为太阳光及其衍生光,太阳光的衍生光包括天空对太阳光的散射、漫反射,月亮光以及三者的在环境中的反射和折射,可能这样的定义有一点绕口,总而言之本文中所指的自然光都的最终来源都是太阳。




          破晓

          “日出江花红胜火”是白居易描写日出江面的一句词,这句词中的“江花”的解释一直都有争议。大部分人支持“江边的花”这一解释,但是我认为“江花”应该解释为“浪花”,且看下图。日出时,太阳“染红”了整个东方,太阳光斜射到海面,由于菲涅尔(Fresnel)效应造成强烈的反射,致使海面也呈现出热烈的红色。从某种意义上说,整个环境呈现出壮丽的红色比江边的小花泛红更能体现出日出的意境,所以我支持后一种观点。



          注:
          菲涅尔效应:根据菲涅尔公式,光的反射率可以用以下两个公式计算





          当一束自然光照射到两种介质的界面上时,可分解为光矢量在入射面内的偏振光(P光)和光矢量与入射面垂直的偏振光(S光)。Rp 、Rs分别表示两种偏振光的反射率;
          如图dawn.image2所示,n1表示外介质的折射率,n2表示内介质的折射率;
          i1表示入射角,i2表示折射角,i2折射角可以通过以下折射定律得到;
          (3)
          最终反射率是Rp 、Rs的平均值,通过以上公式的代换可知Rp 、Rs只和入射角i1有关。
          (如果读者朋友对偏振光感兴趣,可以查阅相关资料。)

          在maya中输入fresnelTest [index]就能得到入射角i1从1变化到90所产生的结果。([index]是n2与n1的比值,水/空气的[index]大约是1.33,玻璃/空气的[index]大约是1.55,eg. 输入fresnelTest 1.55)
          结果,随着i1的增加,Rp先变小再变大,i1 = arctg(n2/n1)时,Rp=0,达到最小值。
          i1 = arctg(n2/n1)这个角被称做布儒斯特角,它在物理上有重要的意义,当光以布儒斯特角入射时反射光为线偏振光,折射光为部分偏振光,这里不再赘述。
          另一方面,随着i1的增加,Rs单调增加,而Rp 、Rs的平均值也是单调增加的。
          所以我们得出了最后的结论,随着入射光的入射角的增加,入射光的反射率也增加!



          那么,为何日出时东方会呈现出红色呢?包括笔者在内的许多人都会脱口而出:“色温低!”但是从更理性一些的角度思考,色温并不能从根本上解释这个问题。 (色温概念并非本文重点,不做详细描述。)其实,光的散色能力因光的波长不同而不同,波长越短,散射能力越强,越容易被散开。通过上一节的介绍,我们已经知道,蓝光的波长比红光短,所以蓝光在特定环境下的散射能力比红光强。如图dawn.image3,日出的时候,阳光斜射地面,阳光需要穿过很厚的大气层,蓝光由于散射能力很强,所以在到达地面之前就已经被散射光了,我们只能看到蓝光在天顶和西方的散射。



          注:
          光在传播过程中,会不断遇到障碍物,当障碍物比可见光的波长大很多时并且不均匀时,光就被弹向四方,就像雨滴打在地面上一样,这个现象叫光的漫射;但当障碍物的大小和波长差不多的时候,障碍物会有选择性得透光光线,而使得另一些光的传播方向发生偏转,就好像三棱镜能让光散开一样,这个现象叫光的散射。

          CG中,破晓场景灯光,主光一般设置为红色,补光选择深蓝色,光比大约8:2,灯光与地面夹角5-25度。其实此时阳光与地夹角并没有这么大,但是CG画面中如果角色或物体投影过长会让画面很堵,所以此时灯光与地面夹角的宽容度比较大。图下图是笔者对这个时段光线的演示。




          由于,“日出”积极的寓意十分明显,我们一般在这个时候表现一些积极和有朝气的气氛,也可表现一些浩大的场面,但总体来说都是很轻快的。同时,日出前的昏暗也可以用来表现一些阴暗的东西,利用日出这一时刻来表现从阴暗到光面的过渡会有戏剧性的效果。

      Processed in 0.067(s)   13 queries