基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

这篇具有很好参考价值的文章主要介绍了基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

背景

光源信息

方向光
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
点光源
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
面光源
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

自发光物体
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
即设置gi flag为BakeEmissive的物体。
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

其中,方向光只用于产生 shadowmask,其余光源用于生成 lightmap。

其余光源中又根据tag来进行区分:

  1. tag == untagged,只在夜晚亮
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
  2. tag == static light,白天夜晚都亮。
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

压缩格式和贴图大小

在实际项目中使用时,每个场景生成4套光照图,每套包括 1张 Lightmap,1张 Shadowmask。

原图尺寸 Max Size 压缩格式
Lightmap 2048 1024 ASTC HDR 8x8
Shadowmask 2048 2048 ASTC 8x8

通道信息

Lightmap通道:

RGB:除方向光以外的其他光源的光照信息

Shadowmask通道:

R: Shadowmask

G: Static Light Area

B: Ambient Occlusion

A: Skylight Occlusion

烘焙过程

使用 Unity内置烘焙系统,不是Bakery,即在这个页面设置参数。
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
调用的方法:
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

烘焙结束后的回调方法:
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

通用设置

1. 关闭低模物体(不管是否勾选Contribute GI选项)

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

2. 勾选 Stitch Seams

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

3. 开启双面GI

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

4. 设置Bounces = 2

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

Bounces = 2 相比 Bounces = 1 烘焙质量得到明显提升,同时Bounces = 2的烘焙耗时更长,可以设置更高数值的Bounces来取得更好的烘焙效果,但是Bounces = 2 是性价比较高的选择。
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

5. 树叶物体的LightmapScale设置为0,节省Lightmap像素。且只在烘焙Shadowmask时打开,其余烘焙阶段关闭,避免影响烘焙结果。	

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

开始烘焙

总体思路

1. 设置参数
2. 烘焙场景
3. 把烘焙结果保存到特定路径,以备后用
4. 重复1至3步骤多次,使用不同的设置和参数,烘焙不同的信息(Shadowmask,AO等)
5. 合并所有烘焙的结果

Ambient Occlusion

  • 关闭所有光源
  • 设置环境光为三色模式,且三色都是白色
  • 关闭树叶
  • 设置所有物体的CastShadow=Off
  • 开启烘焙AO选项

烘焙结束后把Lightmap copy一份存放到单独路径下。
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

Static Light Area

  • 关闭所有光,只打开Static Light
  • 设置环境光为三色模式,且三色都为黑色
  • 设置所有物体的CastShadow=Off
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

Shadowmask

  • 关闭所有光,只打开方向光
  • 设置环境光为三色模式,且三色都为黑色
  • 打开树叶物体
  • 设置所有物体的CastShadow=On
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

Skylight Occlusion

  • 关闭所有光
  • 设置环境光为三色模式,且三色都为白色
  • 设置所有物体的CastShadow=On
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

Lightmap

  • 打开所有光源,关闭方向光
  • 设置环境光为三色模式,且设置三色都为黑色
  • 设置所有物体的CastShadow=On
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

此为止,所有GI分量都烘焙完成,存放目录下目前了这些图:
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

最终处理

  • 把后缀为 _shadowmask,_staticlightarea,_ao,_so 的四张图合并到一张图中,合并后保存为png格式图片,作为新的shadowmask图。
  • 把 _light 后缀的图作为新的lightmap图。
  • 更新场景关联的LightmapData
  • 更新LightingData.asset

注意事项

Lightmap Quality 设置为 High Quality

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

修改Lightmap压缩格式

  • Android: ASTC HDR NxN基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

  • iOS:RGB9e5
    内存会变大,1024大小的图用ASTC HDR 8x8 方式压缩大小是 341kb, 用 RGB9e5方式是5.3mb
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

色阶

烘焙结果从 exr 格式图(Lightmap) blit 到 png格式图,颜色的表达范围和精度都下降导致。基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

对比

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

点光强度较大时,使用 ASTC 压缩格式会有偏色现象,ASTC HDR 不会偏色。
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

常见问题

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

  1. UV1 有重叠
    基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

原始UV1有重叠,黄框部分为重叠区域
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

修改后的UV1,没有重叠区域。基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

2. 没开doubleSidedGI

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

最终效果

基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据
基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据

昼夜变化文章来源地址https://www.toymoban.com/news/detail-425113.html

到了这里,关于基于Unity默认烘焙系统产出Ambient Occlusion, Sky Occlusion等数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity navigation烘焙不显示

    1.场景设置为navigation static。 2.有mesh render。 点击bake后无反应,不显示蓝色可行走区域(nav mesh)。 将layout设置为默认布局。 [Window]→[Layouts]→[Reset All Layouts]

    2024年02月15日
    浏览(60)
  • Unity教程||Unity 渐进式光照贴图烘焙详解

    随着各大计算平台的算力稳步增长,特别是GPU技术的不断进化,原先可望而不可及的技术比如实时光线追踪技术开始逐步走入玩家的视野。一些先锋厂商甚至已经超出Demo的范畴,开始正式推出支持实时光追的游戏。 不过目前的实时光追技术还只能在配备了最新Nvidia RTX 20系列

    2024年02月08日
    浏览(53)
  • Unity导航拓展—动态烘焙NavMash

    早在很久之前的2018年,Unity官方就拓展了导航NavMash,使其从只有静态烘焙场景路径更改为动态烘焙,并增添了包括动态烘焙和三维导航烘焙等方法,不过这方面先提动态烘焙。 在勾选了NavigationStatic后,地面就烘焙好了一片静态区域 在允许的导航网格内可以正常移动,然而游

    2024年04月14日
    浏览(37)
  • Unity - BakingSystem - 烘焙 - 阴影黑块

    unity : 2020.3.37f1 pipeline : BRP unity 烘焙的时候,会对物件模型的表面法线的各个角度发射射线做采样 如果某个模型是只有一个单薄的片面,那么默认发射的射线碰撞检测到背面,就相当于碰撞到一个完全吸收光线的材质,不会有再次反弹,所以没有 全局光照的间接光照来补光,

    2024年02月12日
    浏览(34)
  • unity关于场景烘焙及材质问题

    在Player Settings面板中将颜色空间设置为线性 导入房间模型,注意房间外部墙体为单面,只保留内壳,外壳不要 将所有静态物体导入场景中,选中Assets中的模型在inspector面板中设置模型材质如下: 第一步进行无光照初步渲染, 将场景中的所有静态物体设置为Static模式, 删除所

    2024年02月01日
    浏览(34)
  • Unity Lighting -- 为场景烘焙lightmap

            Unity中有两种不同的光照方式:实时光照和烘焙光照。         Unity会在运行时实时计算光照。实时光源每一帧都会进行计算,这意味着它们对于场景中移动的角色和物体的响应性非常好,但它的开销也很大。         Unity会在运行前预先计算出烘焙光照。在运行时

    2024年02月06日
    浏览(29)
  • 游戏开发之Unity2021智能导航地图烘焙

    单独调整移动某一颗树或者其它东西的时候可以按住 Ctrl+shift ,可以帮助我们自动吸附到某一个表面上  调出智能导航的面板,选择窗口,选择AI,选择导航 将地面设置为静态的,否则就不能进行烘焙,在导航中选择对象,选择可移动的 在导航中选择烘焙,选择bake  bake完之

    2024年02月10日
    浏览(50)
  • 【Unity 渲染】烘焙渲染出现白色光斑的问题

    Unity场景烘焙后有时会遇到某些物体泛白光,产生白色光斑的问题,例如笔者最近在开发一个三维场景,白光如下:  可以看到在门的背后有白色光斑泛起,内部是这样的: 那么,这个的原因是什么呢? 笔者按以下步骤考虑了这些方面: 一、Lightmap UV是否正确? Lightmap UV如果

    2024年02月02日
    浏览(41)
  • Unity3D C# 中foreach的GC产出(2023年带数据)

    注意:笔者有点被杠怕了…确实也不严谨,也怕看不到,所以开头这里加一句:foreach本身不会产生GC,产生GC的原因是foreach使用了迭代器Enumerator,而取决于容器的不同,有些迭代器的初始化会产生GCAlloc… 很多读者在听一些群内大佬谈话过程中可能会听说 foreach遍历集合会产生

    2024年02月16日
    浏览(51)
  • unity 场景烘焙问题之模型UV有重叠

    问题现象:模型烘焙出来后,呈现黑色或布满脏斑,有可能是没有展UV,也有可能是UV重叠了 并且也会出现警告提示,如下图: 如果我们勾选了如下图,还在提示我们勾选,那可能就是 UV重叠了 UV 重叠没有唯一的解决方案,因为有很多问题可能导致这种情况。以下是最常见的

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包