王朝百科
分享
 
 
 

global illumination

王朝百科·作者佚名  2012-02-23  
宽屏版  字体: |||超大  

全局照明的英文是Global Illmination,缩写形式为GI。 GI可以处理焦散以外的全部间接照明效果,即,所有经过Diffuse或/和Glossy方式传播(包括反射和折射)出来的光子,当它们再次与Diffuse表面发生碰撞时,碰撞点都会被记录到GI光子分布图中。

GI同样也会处理Specular方式传播的光子(即光子从光源发射出来后,直接与一个或多个Specular表面发生相互作用),但有一个前提,就是只经过Specular表面作用的光子必须至少再经过一次Glossy或Diffuse表面作用后才能记录到GI光子图中。GI对“Specular光子”的处理不影响焦散的计算,因为在焦散计算中, Specular光子 可 直接 被焦散Diffuse表面吸收;但在GI中, Specular光子 必须至少再经历一次Glossy或Diffuse表面作用后才能记录到GI光子图中,换句话说,全局照明Diffuse表面不能 直接 接收 Specular光子 ,所以,焦散(间接)照明效果不会与GI(间接)照明效果发生任何重叠,并且GI与焦散是完全独立互不相干的两个过程。

基本照明材质Shader中的Ambient和Ambience属性所定义的颜色不需要任何照明光源就能直接显示出来。在早期没有全局照明技术的情况下,人们用Ambient和Ambience 模仿 物体背光面所接收到间接照明。很明显,Ambient和Ambience 模仿 出来的间接照明根本不准确,因为在现实生活中,即使在背光面,在各种条件下(比如,凹凸不平的背光面)不同的表面点所接收到(间接)照明也是不同的,而Ambient和Ambience所定义的颜色会 均匀 覆盖到背光面的整个区域中,使它看起来过于平淡,缺乏层次感。尤其当背光面有明显凹凸起伏时,Ambient和Ambience 模仿 出来的间接照明就显得很不真实。

全局照明可以完全解决背光面的(间接)照明问题。全局照明计算出来的间接照明效果是用光子的反、折射计算产生的 真实 的间接照明效果。所以只要打开全局照明计算功能,就能把Ambient和Ambience设置为0。当然,全局照明计算出来的真实间接照明效果是以牺牲渲染时间为代价的 。全局照明计算的必备条件* Window - Rendering Editors - Render Settings窗口 - Indirect Linghting标签 - Global Illumination部分中的Global Illumination选项必须打开。

* 光源形节点属性编辑器 - mental ray - Caustic and Global Illmination部分中的Emit Photons选项必须打开,激活光子发射功能;并利用Photon Color 和Photon Intensity两个属性为光子设定恰当的能量值。注意,要实现物理学精确渲染,光源的直接照明必须与光子能量一样,按 距离平方的反比 的形式进行衰减。(建议使用符合物理学精度的直接照明灯光Shader ,比如physical_light,并让灯光Shader中的直接照明能量与光子能量值保持相等。)

* 必须为每个参与全局照明计算的物体制定Photon Shader(在材质组属性编辑器 - mental ray - Custom Shaders部分中)。光子的反射、投射、吸收和储存全部由Photon Shader控制。

* 参与全局照明计算的物体,其材质定义中不能含有Shadow Shader,避免直接照明光线 穿透 物体照射到它的后方,因为开启间接照明后,这部分照明功能已经被间接照明涵盖,如果继续使用Shadow Shader,极易造成渲染的照明过度。

* 参与全局照明的物体,如果其 表面 材质定义部分中的Shader 含有Ambient、Ambience之类的非照明颜色属性,则必须把它们设置为0。全局照明计算的质量控制属性* 发射光子的光源形节点属性编辑器 - Caustic and Global Illumination部分中的Global Illum Photons控制着GI光子图中储存的光子总数,它也是决定GI质量的最根本控制属性。默认值是10000。经常使用的范围是1万到100万。数值越小,储存的GI光子数就越少,计算得越快,但效果越模糊,容易出现成片成片的 污渍 或模糊现象;数值越大,储存的GI光子数就越多,质量越高,但速度也会越慢。如果开启Final Gather功能,就可以大幅减少该属性的数值,通常可减少到原来的十分之一左右。

* 默认情况下,场景中所有指定了Photon Shader的物体都可投射并接收全局照明。但实际应用中,往往并不需要所有的物体都参与到全局照明计算中来,此时可以进行以下设置:

window - Rendering Editors - Render Settings窗口 - Options标签 - mental ray Overrides - Global Illumination/Caustics部分中,设置 Global Illum Generating = none(默认值) , Global Illum Receiving = None(默认值).

关闭GI物体的 变换 节点属性编辑器 - mental ray - Flags部分中的Derive from Maya选项,然后为GI投射物体的Globillum属性指定Cast only(仅投射)或Cast+Receive(投射又接收)选项;而为GI接收物体的Globillum属性指定Receive only(仅接收)或Cast+Receive(投射又接收)选项;而把对GI没有任何影响的物体的Globillum功能关闭,即,设Globillum=Disabled。

* 如果渲染出来的全局照明效果很斑驳,或呈现出一片一片的 污渍 现象,又不想提高光子的存储数量,那么就可以进行以下设置:

Window - Rendering Editors - Render Settings窗口 - Indirect Linghting标签 - Global Illumination部分中的Accuracy及Radius两个数值进行质量调整。

全局照明的Accuracy默认值是500,适当提高该数值对GI中的 污渍 现象有一定的缓解作用。

另外Merge distance属性,它可以把场景世界坐标空间系统中,指定距离内的光子合并到一起,这个 指定距离 就是Merge distance的属性值。对于那些光子分布很不均匀的场景,该属性可以减少光子图的大小,降低内存的使用量,同时,也可以在一定程度上加快光子图的查找与计算过程。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
中国古代四大美女:背后隐藏惊人秘密
 女性   2025-06-20
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有