Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光

 部分内容摘抄自:https://www.cnblogs.com/murongxiaopifu/p/8553367.html

直接光和间接光

大家都知道在Unity中,我们可以在场景中布置方向光、点光、聚光等类型的光源。但如果只有这些光,则场景内只会受到直接光的影响,而所谓的直接光简单理解就是从光源发出的直接影响物体的光。如果只考虑直接光的影响,则会缺乏很多光影细节,导致视觉效果很“平”。而间接光则描述了光子在物体表面之间的反弹,能够用来增加细节以及真实感。

Local_illumination.JPG


例如上图中,位于天花板灯直射光线之外的区域缺乏光照效果。表现为四壁上没有明暗细节,相反此时直接光范围之外都是均匀的黑色,而整个空间同样也显得十分平。

Global_illumination.JPG


而增加了间接光之后进行渲染,可以看到光被物体表面反弹,彩色光从一个表面转移到另一个表面。表现为红色墙壁和绿色墙壁(在右侧和红墙相对,没在画面内)的颜色反映到了场景中的其他表面上,四壁也不再是均匀的黑色,而有了层次感。

混合光照

使用混合光照和直接使用烘焙的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的差别。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊Unity项目管理的那些事:Git-flow和Unity

感谢原作者https://www.cnblogs.com/murongxiaopifu/p/6086849.html 0x00 前言 目前所在的团队实行敏捷开发已经有了一段时间了。敏捷开发中重要的一个话题便是如何对项目进行恰当的版本管理。项目从最初使用svn到之后的Git One Track策略再到现在的GitFlow策略,中…

聊聊网络游戏同步那点事

写的非常好的一篇博文,转载自https://www.cnblogs.com/murongxiaopifu/p/6376234.html 0x00 前言 16年年底的时候我从当时的公司离职,来到了目前任职的一家更专注于游戏开发的公司。接手的是一个platform游戏项目,基本情况是之前的团队完成…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics(1)

The Rendering Pipeline 渲染表现差有可能取决于CPU端(CPU Bound)也有可能取决于GPU(GPU Bound).调查CPU-bound的问题相对简单,因为CPU端的工作就是从硬盘或者内存中加载数据并且调用图形APU指令。想找到GPU-bound的原因会困难很多&#xff…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics(2)

Lighting and Shadowing 现代的游戏中,基本没有物体能在一步就完成渲染,这是因为有光照和阴影的关系。光照和阴影的渲染在Fragment Shader中需要额外的pass。 首先要设置场景中的Shadow Casters和Shadow Receivers,Shadow Casters投射阴影&…

Unity 2017 Game Optimization 读书笔记 The Benefits of Batching

batching(合批) 和大量的描述一个3D物体的数据有关系,比如meshes,verices,edges,UV coordinates 以及其他不同类型的数据。在Unity中谈论batching,指的是用于合批mesh数据的两个东西&#xff1a…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (3)

Rendering performance enhancements Enable/Disable GPU Skinning 开启GPU Skinning可以减轻CPU或GPU中Front End部分中某一个的负担,但是会加重另一个的负担。Skinning是mesh中的顶点根据动画中骨骼的当前位置进行计算,从而让角色摆出正确的姿势。 …

Unity手游开发札记——布料系统原理浅析和在Unity手游中的应用

原文:https://zhuanlan.zhihu.com/p/28644618 0. 前言 项目技术测试结束之后,各种美术效果提升的需求逐渐成为后续开发的重点,角色效果部分的提升目标之一便是在角色选择/展示界面为玩家提供更高的品质感,于是可以提供动态效果的…

行为树(Behavior Tree)实践(1)– 基本概念

原文:http://www.aisharing.com/archives/90 行为树(Behavior Tree)实践(1)– 基本概念 自从开博以来,每天都会关心一下博客的访问情况,看到一些朋友的订阅或者访问,不胜欣喜&…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (5) Shader优化

Shader optimization Fill Rate和 Memory Bandwidth开销最大的地方就是Fragment Shader。开销多大取决于Fragment Shader的复杂程度:多少纹理需要采样,多少数学计算函数需要使用等等。GPU的并行特性意味着在线程中如果任何地方存在瓶颈,都会…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (6)

1. Use less texture data 这条优化技巧非常直接,减少texture的数据量,减少分辨率或者降低位数,虽然可能会降低渲染质量。但是通常使用16-bit textures并不会明显的感觉到渲染效果下降。 MipMap技术可以有效减少VRAM和Texture Cache之间来回…

LeetCode 面试题57 - II(剑指offer) 和为s的连续正数序列

今天毕业五年了,一直忙于工作和享受,自从当年找完工作后就一直没有再刷过题,作为搬砖的码农,觉得还是应该养成长期刷题的习惯坚持下去。之前坚持了每天被一会单词,如今雅思一本也快看完了,从今天开始准备在…

反走样技术相关文章

https://zhuanlan.zhihu.com/p/28800047 https://zhuanlan.zhihu.com/p/57503957 https://zhuanlan.zhihu.com/p/33444125 https://zhuanlan.zhihu.com/p/33444429 走样的原因及其分类 说到走样,首先要说的就是采样。这也算是很多图形学专著中提到反走样相关技…

求n的阶乘的算法框图_单片机常用的14个C语言算法

问:怎么每天看到这种文章?答:只需搜索公众号"51单片机学习网"免费关注算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述&#xff…

LeetCode 286. 墙与门 多源BFS和DFS

思路1&#xff1a; DFS&#xff0c;对于每个门进行一次DFS搜索&#xff0c;记录每个位置对每个门的距离&#xff0c;当有更小距离的门时更新这个数值 public void WallsAndGates(int[][] rooms) {for (int i 0; i < rooms.GetLength(0); i){for (int j 0; j < rooms[i]…

贝塞尔曲线

文章参考于&#xff1a;https://www.jianshu.com/p/0c9b4b681724 https://gameinstitute.qq.com/community/detail/129188 贝赛尔曲线的前世今生&#xff1a; 贝塞尔曲线&#xff0c;这个命名规则一眼看上去大概是一个叫贝塞尔的数学家发明的。但&#xff0c;贝塞尔曲线依据…

如何控制局域网网速_单臂路由|N1盒子(OpenWRT)单线多拨实现网速叠加

受于某些现实条件&#xff0c;有些同学苦于家里的网络带宽太小无法尽情冲浪。如何在不额外花钱升级宽带的情况下提升家里网络呢&#xff1f;且看一个盒子加路由器即可实现网络单线多拨&#xff0c;成倍提升网速完成网速叠加。题图是我家里的路由器加N1盒子。前置条件光猫有超级…

linux离线安装redmine_Linux 下一款非常好用的翻译软件

前面有一个半月的时间&#xff0c;我非常详细且非常基础的介绍了 Ubuntu 18.04 desktop 桌面系统的安装和基本使用&#xff0c;在知乎上也开了一个专栏《Linux 漫游之旅》&#xff0c;上面记录了所有的文章&#xff0c;这个专栏的目的呢是手把手教新接触 Linux 操作系统的朋友如…

vivo应用商店电脑版_VIVO应用商店代理商江湖的那些关系

VIVO应用商店代理商江湖的那些关系需要源文件清晰版本加微信wps007其他干货文章如何不花钱或者少花钱把ASO的活给干了&#xff1f;2020最新主流安卓应用市场ASO技巧以及注意事项App推广的高阶玩法&#xff0c;一箭双星&#xff01;今日头条定向优化技巧今日头条广告创意优化指南…

华为阅读下载的文件在哪里找_华为手机还要天天清理内存?1键关闭这2个设置,手机用到2035年...

阅读本文前&#xff0c;请您先点击上面的蓝色字体“科技荟 ”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅&#xff0c;请放心关注。 华为手机还要天天清理内存&#xff1f;1键关闭这2个设置&#xff0c;手机用到…

pyautogui 打包 运行 窗口_试试动态窗口管理器 dwm 吧

以不到 2000 标准行的代码写就的 dwm&#xff0c;是一个速度极快而功能强大&#xff0c;且可高度定制的窗口管理器。-- Adam Šamalk(作者)如果你崇尚效率和极简主义&#xff0c;并且正在为你的 Linux 桌面寻找新的窗口管理器&#xff0c;那么你应该尝试一下 动态窗口管理器(dy…