Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光
部分内容摘抄自:https://www.cnblogs.com/murongxiaopifu/p/8553367.html
直接光和间接光
大家都知道在Unity中,我们可以在场景中布置方向光、点光、聚光等类型的光源。但如果只有这些光,则场景内只会受到直接光的影响,而所谓的直接光简单理解就是从光源发出的直接影响物体的光。如果只考虑直接光的影响,则会缺乏很多光影细节,导致视觉效果很“平”。而间接光则描述了光子在物体表面之间的反弹,能够用来增加细节以及真实感。
例如上图中,位于天花板灯直射光线之外的区域缺乏光照效果。表现为四壁上没有明暗细节,相反此时直接光范围之外都是均匀的黑色,而整个空间同样也显得十分平。
而增加了间接光之后进行渲染,可以看到光被物体表面反弹,彩色光从一个表面转移到另一个表面。表现为红色墙壁和绿色墙壁(在右侧和红墙相对,没在画面内)的颜色反映到了场景中的其他表面上,四壁也不再是均匀的黑色,而有了层次感。
混合光照
使用混合光照和直接使用烘焙的lightmap有什么区别呢?简单来说,选择“混合”烘焙模式,会将标记为静态的GameObject受到的来自混合光源的光照信息保存为Lightmap。 然而,与标记为“烘焙”的灯光不同,混合光源也会为场景中的非静态(动态)GameObject提供实时的直接光照。
Unity HDRP中的测试
首先打开window - rendering - lighting setting ,可以看到Mixed Lighting 选项卡。
一 无Baked Global illumination
如果我们对Baked Global illumination不勾选,则会提示,场景中的Baked光源和Mixed的光源会被默认改成Realtime的实时光。
场景中Baked模式的光源,提示已被改为Realtime模式。
1.光照
黄色的光源为Baked模式,左侧球体为static,右侧球体为动态物体,此时可以发现由于Baked的光源被改成了Realtime模式,导致右侧的动态小球也可以接收到光照。
2.阴影
此状态下如果加入一个静态物体(红色面板)进行阴影的测试,也会发现本来是Baked模式的黄色光源对动态物体也会产生阴影
3.Emission
此模式下,由于没有烘焙,绿色和红色的emision物体也无法产生间接光,场景中的物体都没有受到红色和绿色物体的影响。
二 ShadowMask
当在Lighting Setting中设置为ShadowMask模式后,可以发现场景中类型为Mixed的Light中的ShadowMask Mode有两种模式,一种是ShadowMask,一种是Distance ShadowMask,两者的区别在于阴影的渲染。
1.光照
Mixed类型的光无论是设置为ShadowMask还是Distance ShadowMask,对光照的着色渲染都是相同的。对于静态物体使用lightmap,对于动态物体使用实时光。Baked类型的光则是只能对静态物体产生影响,动态物体需要使用LightProbe才能受到影响。
2.阴影
对于Baked类型的光源,静态物体对静态物体投射阴影是通过ShadowMask,静态物体对动态物体投射阴影也需要通过LightProbe。动态物体则不能投射阴影。无论是ShadowMask还是LightProbe,都是预先计算的,因此也没有实时阴影ShadowMap中的Shadow Distance的限制,也就是说无论物体距离多远都会有阴影。
ShadowMask模式
如果MixedLight中的Shadowmask Mode设置为ShadowMask(不要和Lighting Setting中的ShadowMask搞混)对于MixedLight类型的光源静态物体投射阴影时和Baked类型光源投射状况相同。动态物体投射阴影时则会采用ShadowMap的实时阴影。
如下图,MixedLight类型的光源,红色面板为静态物体,左侧球体为静态,可以通过ShadowMask正常接收静态阴影,右侧小球因为是动态,则不能直接接收静态物体投射的阴影,如果需要接收,则要使用LightProbe。
如果把红色面板改为动态的,则两个小球都会通过ShadowMap方式接收阴影。
ShadowDistance Mask模式
如果MixedLight中的Shadowmask Mode设置为Distance ShadowMask,在distance范围内,无论是静态还是动态物体投射阴影,都将使用ShadowMap的实时阴影。
而如果超出Distance,则对于静态物体投射时,回归到和ShadowMask一致,对于动态物体投射时则没有阴影。
在distance范围内,通过实时阴影都可以正常接收阴影。
3.Emission
由于有lightmap的支撑,emission对间接光的贡献也可展示出来,可以看到静态的球体(左下和右上)会受到右侧红色面板的影响。
三 Baked Indirect
此模式下,事实上这个混合模式的名字就已经十分直白了——它只烘焙间接光,其他的全部是实时的。Shadowmask贴图?不存在的。
因此我们有了实时光、实时阴影等等。所以,在Shadow Distance的范围之内和实时光下效果一样,阴影是实时的shadow map,并且在shadow distance之外不会有阴影产生——哪怕是分辨率比较低的模糊阴影也没有。
1.光照
对于mixed类型的光(紫色),左侧球体(静态)和右侧球体(动态)都会受到该光源的影响,左侧静态球体是通过lightmap获取,而右侧则是实时的。
对于baked类型的光(黄色),左侧球体(静态)受到该光源的影响,右侧球体(动态)则不会受到该光源的影响。动态物体需要使用LightProb才能接受到baked类型光的影响。
2.阴影
在Baked Indirect模式下,无论是Mised Light还是Baked Light,在距离小于shadow distance时都将会投射shadowMap实时阴影,而大于shadow distance后将没有阴影。
3.Emission
由于有lightmap的支撑,emission对间接光的贡献也可展示出来,可以看到静态的球体(左下和右上)会受到右侧红色面板的影响。
总结
1.总结下对于MixedLight类型的光,在各模式下其光照和阴影的情况(感谢此图原作者大佬)
2.Emission的间接光:只有静态物体可以产生,动态物体如果想接收需要LightProbe
3.动态物体想接收Baked的间接光或者阴影都得需要LightProbe
4.HDRP也有实时间接光,但是Spot和Point Lights并不支持。
5.别被ShadowMask搞蒙圈,对于Baked类型的光,只有ShadowMask和Baked Indirect的差别。
Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光相关推荐
- Unity HDRP中解决抗锯齿问题
使用Camera相机组件属性(Anti-aliasing)为界面添加抗锯齿效果. 在默认状态下,将Anti-aliasing设置为 No Anti-aliasing,这里有三个选项: (按性能消耗的大 ...
- Unity移动平台下的烘焙使用及优化
这是侑虎科技第436篇文章,感谢作者文雅供稿.欢迎转发分享,未经作者授权请勿转载.如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨.(QQ群465082844) 作者也是U Sparkle活动参 ...
- 自定义光照烘焙和采样
一: 光照烘焙: 1.静态光照烘焙: 静态物体 烘焙 lightMap 所以需要对lightMap 采样 // 采样烘焙LightMap光照 float3 SampleLightMap(float2 ...
- Unity5中的光照简介
unity 5中的光照可以用整本书来说明,此文是过去几个月使用 unity5 的简单汇总.下面主要分6个部分来讲解. Forward(前向)与Deferred(延迟)渲染 Realtime(实时)与B ...
- (转)Unity 5.6 光照烘焙系统介绍
Unity 5.6 光照烘焙系统介绍 一. 基本概念 1. 直接光照.间接光照 直接光照:光源直接照射到物体上,并反射到眼中的光照. 间接光照:光源先照射到其它物体上,并经过一次或多次弹射,最终抵达到 ...
- Unity 5 中的全局光照技术详解
简介 全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常有挑战性,付出的代价也高,正因为如此,现代游戏会先一定程度的预先处理这些计算,而非游戏执行时实时运算. ...
- Unity HDRP烘焙技术原理及应用
您要找的是不是UWA学堂的<Unity HDRP烘焙技术原理及应用>? 文章简介 Unity的HDRP是高清渲染管线(High Definition Render Pipeline)的简称 ...
- Unity引擎光照烘焙
光照烘焙 一.先将系统中的光源去掉,会发现场景还是亮的.将天空环境光去掉(Windows-> Rendering->Lighting) 将Environment Lighting, Env ...
- [Render] 适用于高级Unity创作者的通用渲染管线[4] - URP中的光照
RuntimeMapMaker3D-Pro 英文原文:https://resources.unity.com/games/introduction-universal-render-pipeline- ...
最新文章
- 混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR、TPR、FDR、ACC、PPV、NPV分别是什么?对应的概念及公式是什么?
- 当你打开的程序在任务栏出现两个一样的怎么办?
- LeetCode两数相加
- python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集
- Java @Deprecated注解
- PHP导出excel
- 人在低谷是最应该看的六句话!(深度好文)
- Error: Cannot retrieve metalink for repository: epel.
- C# 数据类型 数据转换 自己的见解和方式
- 到 Google 面试去!开发者必读的避坑指南
- 程序显示文本框_vb程序语言题库
- 偷懒才能编程序——计算机达人成长之路(18)
- 如何通过5S管理改变工作环境?
- 自动化爬虫selenium之键盘操作
- python_计算一张纸对折多少次超过珠峰
- PDF文档无损去签名去口令
- 超声波模块HC-SR04简介以及编程
- WPF:MouseDown、MouseUP事件,鼠标按下不起作用
- Maven 创建 Spring、SpringMVC、Mybatis(SSM)项目
- STATA 森林图 Logistic可视化
热门文章
- java获取0点的时间戳_Java获取凌晨时间戳的方法分析
- python怎么清理垃圾_Python 中的“垃圾”是怎么回收的?
- Remove One Element(贪心)
- D - 邂逅明下 HDU - 2897(有点水平的巴什博奕)
- html怎么给边框改样式,html里面怎么设置边框?html边框样式设置方法
- 从sqlserver中数据写入mysql_从SQL server数据库导入Mysql数据库的体验
- 『数据库』朴实无华的数据库绪论
- Spatial Transformer Networks(STN)详解
- 【OpenPose-Windows】error1 OpenPose项目加载失败
- PADS 中的 PIN TYPE 说明