词条 | global illumination |
释义 | 全局照明的英文是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的属性值。对于那些光子分布很不均匀的场景,该属性可以减少光子图的大小,降低内存的使用量,同时,也可以在一定程度上加快光子图的查找与计算过程。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。