签到

05月27日
尚未签到

共有回帖数 0

    板栗

    等级:
    Master Zap(博客名,个人资料请参阅wiki)何许人也??? MentalRay的作者之一...牛逼哄哄!!! FXPHD曾经出过一套 MRY201 关于材质跟灯光渲染的教程,主讲就是此人,并邀请了好几位业内大神参与视频录制.附上作者Blog http://mentalraytips.blogspot.tw/最近我常常遇到有人问在mental ray裡面要怎样使用环境光(ambient light), 大部分的人对 mia_material (Arch & Design)缺乏ambient这个选项感到困惑.这里我试着解释一下导读: 环境光与Occlusion
    很久很久以前…
    传统的电脑绘图, 完全没有任何的间接照明, 预设的效果像这样: 打了一盏方向光

    整个阴影是全黑的, 一点也不写实, 你甚至看不到这张黄色桌子底下的四隻脚!因此, 开始有人引进一些小技巧, 其中一个很丑, 不写实的技巧是阴影密度(shadow density) 这个参数的意思是, 光线在阴影的地方, 只有x%的亮的光线会完全不见. 因此你也会找到像"Shadow Color" 与 "Shadow Density"的参数, 你也知道这个东西很荒谬, 一点也不合理!!一个不透明的物件不是完全遮蔽住光线, 要不然就是让光线透过去, 它不会随机地让光线穿透, 所以遮蔽47%的光线, 这种事情根本不可能, 除非是透明的物体要不然根本不会发生!规则一: 不管怎样都绝对不要用"shadow color" 或 "shadow density"这两个参数进入环境光(Ambient)的阶段
    但是, 这些早期CG界的人说, 在户外, 因為太阳光的关係阴影会带有一点点蓝色, 难道我不应该把shadow density调小, 把color调蓝, 得到偏蓝的阴影吗?不行!阴影之所以会是蓝色, 是因為有天空这个蓝色的补光的关係.
    而早期的CG开发人员了解这点, 所以除了发明了"shadow color",这种东西以外 还引进了也一样可怕的东西: Ambient Light问题是, Ambient Light会產生平均的照明, 这完全不写实效果也很难令人满意. 就像这样:

    这跟之前的版本一样可怕. 当然, 你在阴影裡面会看到一些效果, 但那样的效果是很均匀地分布. 现在桌脚可以见到, 但整个顏色完全没有细节!你看得出桌脚是圆的, 平的或是椭圆的, 桌脚有无碰到地面, 或是悬空的? 紫色的茶壶看起来好像飞起来了, 因為后面的绿色茶壶的阴影没有亮度变化.这边的问题是灯光打到每个点的时候是均匀的照明, 不管物体的位置或是角度. 但如果我们想要模拟带点蓝色的天空光, 在光源前面的物体会接受到较多的光线, 而在后面(被挡住)的物体光线就会被遮蔽掉.进入遮蔽(Occlusion)的阶段:
    幸运的是, 2002年在ILM有群聪明人, 当他们在做电影珍珠港的项目的时候, 发明了(他们是用mental ray, 必须强调一下), 叫做Ambient Occlusion (AO)的东西. 基本上, 他们写了个shader,  能找到特定的点被遮蔽的程度, 也就是在那个点上面, 有多少程度遮蔽住光线, 这个遮蔽效果, 看起来像这样:

    结合了环境(Ambient) 与 遮蔽(Occusion)如果你把这个遮蔽(Occusion)效果跟环境(Ambient)结合在一起, 就会得到以下美丽的图片:

    你看细节如何美妙地表现出来, 桌脚现在能正确的显示出与地板的接触感, 桌脚的形状也能看出来. 两个茶壶之间也能正确的显示阴暗面 ,茶壶也有很棒的接触阴影. 这就是AO正确的使用效果!错误地使用 AO!
    然而, 很不幸地, 很多人读了却也误解了ILM原始对AO的文件. 他们把AO直接套用到整个场景上面, 这是错的!!!例如, 有些人会算图, 產生occlusion pass, 然后把两张用叠加的方式合成在一起:

    请注意看, 结果会有种脏脏的感觉, 因為occlusion pass是套用在整张图上面, 影响了环境光(ambient)也同时影响了方向光.这完全没有道理! 方向光的遮蔽(occlusion)本来就已经有计算了, 这也是為什麼方向光会產生阴影. 环境光的遮蔽(Ambient occlusion)之所以会这麼称呼不是没有原因的! 这个功能本来就是要把环境光遮蔽掉, 而不是把方向光遮蔽掉.但是你在上图看到的是前景的物体把地板弄黑了, 让它看起来脏脏的, 还有, 壶嘴的地方也有脏脏的阴影…等等问题.所以, 整体的套用遮蔽(occlusion)在beauty pass (包含了 reflections, direct light, 等) 是大错特错的!不要这样做.好, 我们之前是用环境光与遮蔽的方法, 模拟出写实环境光效果, 以及光线反弹的感觉. 现在我们真的去计算光线的反弹 (採用Final Gathering) 看看效果:上图是利用3ds Max "Skylight" 与FG算出来的效果. 跟我们前面用环境光+遮蔽產生的效果效果类似, 但是后者是真正的反弹光线.这也引发了疑问, 既然这麼容易就產生真正的反弹光, 為什麼还要用造假的方式(AO) 合成呢?
    以下做回答:
    FG是一种内插的技术, 这表示间接照明是经过採样计算出来的, 这些数值会被内差计算. 但是, 如果你算的是动画, 每个frame之间的效果会有不同. 理论上不会只是一个像素的差异, 而是几个区域的像素差异 (这些受到FG 採样点内插所影响的像素)结果是, 最终的动画会產生闪烁的问题. 你会察觉到, 因為这个闪烁是超过一颗像素大小的, 闪烁会让视觉画面不讨喜.实际在操作的时候, 我们要结合使用真实的反弹(FG)与造假的(AO合成)的方式来制作

    上图说明了, 叁个pass ( Ambient, Direct, Occlusion)用不同的顺序来合成, 產生不同的效果.第一种方式是错误的做法: 把Ambient + Direct 再叠上Occlusion, 看起会有脏脏的感觉第二种方式是正确的: 把Ambient + Occlusion (这也就是AO名称的由来) 最后才叠上Direct的pass, 就可以得到很漂亮的效果.

    楼主 2015-06-18 16:44 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知