- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
经典教程:Ambint occlution的原理与高级应用
经典教程:Ambintocclution的原理与高级应用来源:网络编辑:爆豆发布时间:2010-11-08??导言:Ambient occlusion也就是大家熟知的环境遮挡,简单点说,就是一个取样点上被其他几何体覆盖的程度,它是被通常用来模拟全局光照效果的简单方法。?下面教程开始?环境遮挡的原理基本的原理跟final gather类似,其取样点的生成是一样的。?首先从摄像机发出取样光线,取样光线和物体的交点,就是我们说的取样点,然后从取样点发出次光线(probe rays)。?接着Ambient occlusion和fg就不一样了。Ambient occlusion的次光线是每一条光线是否被周围的物体所遮挡,如果遮挡了直接返回值,不做任何的Shader计算,也就是取样点的周围被物体阻挡着不让看到背景的百分比;fg的次光线不太一样,他的次光线与周围的物体相交以后,它要求焦点处的颜色值,然后返回的是颜色值,而不是Ambient occlusion的真假值。?最后也是不一样的,作为Ambient occlusion,每一个取样点其实就是渲染时输出的色彩值,而fg只是为渲染时的fg point,它代表着要渲染点附近的光照,在渲染时用来产生照明。(图01)??图01?下面我就结合MentalRay for Maya,跟大家一起讨论一下Ambient occlusion的一些应用。MentalRay for Maya中有三个节点是我们在使用环境遮挡时需要用到的,mib_amb_occlusion,mib_fg_ occlusion,mib_bent_normal_env,如下图。(图02)??图02环境遮挡的使用在介绍实际的应用之前,我们用一个简单的场景作介绍,场景中只有一盏物理灯。默认渲染如图。(图03)??图03Ambient occlusion(AO)经典的环境遮挡效果,也被称为漫反射遮挡(Diffuse occlusion),可以用来缩放对材质环境光的贡献,它一般赋给材质的环境光参数(Ambient),更进一步说他最好赋给Lambertian材质。如下图。(图04)??图04?渲染的效果如下图。(图05)??图05? 现在暗部的细节出来了,可见AO很好的模拟了全局光。?Reflective occlusion发射沿着反射光线的方向发射次光线,而不像Ambient occlusion那样以物体表面的法线方向为中心发射次光线,下面的示意图说明了之间的不同。(图06)??图06??在MentalRay for Maya中实现起来很简单,只需要将mib_amb_occlusion节点参数中的Inflective打开就行了。(图07)??图07??同时我们可以调整小spread的值为0.1,使得反射遮挡的效果更加明显,渲染效果如图。(图08)??图08? 家可以很明显的看到物体的暗部是沿着反射方向产生的。?我们可以给mib_amb_occlusion的bright的参数连接一个环境节点,使得环境对我们的材质有了影响,但这不说明次光线对环境光进行了采样计算,它只是把遮挡的结果与环境光简单相乘罢了,连接和渲染结果如图。(图09、图10)??图09??图10?第二种连接方法就是将我们的摄像机连接到环境球查询节点上,然后设输出参数为1(取样环境),另外可以选择occlusion in alpha,如图。(图11、图12)??图11??图12? 从渲染结果来看,效果是一样的,但是他对环境球取样的阶段是不一样的。我们可以减小它的spread参数,也就是改变次光线取样范围,使得反射更集中,渲染如图。(图13)??图13?mib_fg_ occlusion的使用mib_fg_ occlusion其实就是一个选择器,也就是说如果在渲染的时候渲染全局中打开了final Gather,我们就用final gather来计算遮挡,反而反之,节点连接如图。(图14、图15)??图14??图15? mib_bent_normal_env的使用在讲mib_bent_normal_env之前,我们有必要了解一下mib_amb_occlusion其他的输出模式(output_mode)。?0是标准的遮挡模式,1是环境进行取样模式,2、3就是bent normal模式。所谓bent normal就是计算未遮挡的次光线,求平均值,所得到的就是bent normal的法线矢量,名字很形象。?矢量的三个分量的值分别对应纹理的RGB三个值,output Mode的模式2输出的是世界坐标系,模式3输出的是摄像机坐标系。(图16)??图16?模式2,世界坐标系。(图17)??图17?模式3,摄像机坐标系。(图18)??图18? mib_bent_normal_env其实是为了加速环境遮
文档评论(0)