Unity中Shader的全局照明简介

Unity中Shader的全局照明简介Unity 中全局照明简介全局照明 直接光照 DirectLight 间接光照 IndirectLigh 使用全局照明前效果 使用全局照明后效果 更加符合现实中的效果 unity 全局光照

大家好,欢迎来到IT知识分享网。


前言

Unity中全局照明简介


一、什么是全局照明GI

1、全局照明(Global Illumination),简称GI

2、指既考虑场景中直接光源的光照(Direct Light)又考虑经过场景中其他物体反射后的光照(Indirect Light)的一种渲染技术,使用全局照明能够有效地增强场景地真实感

3、全局照明 = 直接光照(Direct Light)+ 间接光照(Indirect Light)


二、Unity中的GI方案

1、预计算实时GI

预计算实时GI是在实时显示前把需要的数据进行烘培好,然后在运行时再进行读取以便和实时的光源进行互动

2、烘培GI

烘培GI是把光源对场景中静态物体的光照效果提前烘培到一张张的光照纹理中,然后再把光照纹理采样到物体表面以产生全局光照效果的方式


三、Unity中的GI烘培系统

1、Enlighten

旧版中的烘培技术,2020LTS是最后一个支持此技术的版本,在2021.1中完全移除

2、Progressive CPU Lightmapper(推荐用这个,效果稳定)

渐进式烘培,基于路径追踪的烘培系统。Unity后续版本中大力推广的烘培系统。

3、Progressive GPU Lightmapper(个人感觉烘培起来超级快)

类似于Progressive CPU,只不过是在GPU上进行烘培计算,不过由于具体采样算法的不同,在效果上会有细微的差别。

在Unity中,可以在 Lighting 窗口中修改

在这里插入图片描述


四、Unity中的GI技术

1、Baked Indirect

只把间接光照烘培,直接光照还是实时的效果

2、Shadowmask / Distance Shadowmask

都是属于ShadowMask,可选使用按距离渲染的ShadowMask

3、Subtractive

把 直接光照 和 间接光照都烘培

在Unity中,可以在 Lighting 窗口中修改

在这里插入图片描述

注意:

这个 GI 方案需要在场景设计前确认,在确认之后这个场景的Shader都按这个标准来写


五、Unity中使用上面方案的效果

没有使用烘培方案时的效果

请添加图片描述

1、使用预计算实时GI后的效果

在这里插入图片描述

请添加图片描述

2、使用 Baked Indirect 的效果

只把间接光照烘培,直接光照还是实时的效果

在这里插入图片描述
请添加图片描述

3、使用 Subtractive 的效果

把 直接光照 和 间接光照都烘培

在这里插入图片描述

这个情况下,需要把光的模式修改为 Mixed

在这里插入图片描述

4、使用 Shadowmask / Distance Shadowmask

都是属于ShadowMask,可选使用按距离渲染的ShadowMask

  • 1.使用 Shadowmask 的效果(影子被烘培了,但是会随着光线角度变亮变淡)
    在这里插入图片描述
    请添加图片描述

  • 2.使用 Distance Shadowmask 的效果(在指定距离内使用实时阴影,在范围外使用和烘培阴影)

在这里插入图片描述
在设置的距离范围内时(实时的阴影):
请添加图片描述

在设置的距离范围外时(正常烘培的Shadowmask阴影):

请添加图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129856.html

(0)
上一篇 2025-08-21 14:33
下一篇 2025-08-21 14:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信