当前位置:   article > 正文

unity关于场景烘焙及材质问题_unity2022烘焙设置

unity2022烘焙设置

在Player Settings面板中将颜色空间设置为线性

导入房间模型,注意房间外部墙体为单面,只保留内壳,外壳不要

将所有静态物体导入场景中,选中Assets中的模型在inspector面板中设置模型材质如下:

第一步进行无光照初步渲染,将场景中的所有静态物体设置为Static模式,

删除所有光源

移入一个普通天气的天空盒

打开light面板,window->Rendering->lighting Setting,相关参数设置如下:

第二步 无光照二次渲染 勾选Ambient Occlusion

给场景添加探头组件Reflection Probe

点击如图所示,设置范围大小为房间大小,最后再点击Bake

第三步 贴图修改

如图所示,_albedo对应Albedo;_ao对应Occlusion;_height对应Height Map;_normal对应Normal Map;_roughness复杂一些需要在PS中将其添加在_metallic贴图中

将_roughness贴图在PS中打开,选择图像->调整->反相

之后再打开 _metallic贴图,如果没有_metallic贴图可以用和roughness图片同等大小的纯黑图片代替。单击下图这个标志为metallic的这个图层添加蒙版。之后按住alt+单击蒙版进入这个蒙版。

回到PS_roughness那里,ctrl+a全选,再ctrl+c即可复制,之后回到蒙版这里ctrl+v把之前得到的反相图片复制到这个蒙版上。(点击图片外区域即可退出蒙版)之后把这个metallic图片保存为png格式,便是融合了roughness的metallic贴图了。

注意材质球中metallic如下图所示:

第四步 场景中光源的设置:

窗户光线:紧贴窗户给窗户添加一个面光源Area Light,注意面光源不是实时显示的,需要烘焙后才能显示。

发光材质:如图所示小型氛围灯光可以用发光材质球来设置

新建材质球,勾选Emission,照明方式设置为烘焙

HDR参数设置,强度最好设置为1,太亮了渲染的不好看

最后再次在Lighting面板中点击烘焙,效果如下:

没勾选

勾选

Post Processing效果插件的使用

(25条消息) 【Unity后期渲染】Post Processing 后处理插件最全使用说明_unity后期处理插件_里约热内驴的博客-CSDN博客

注意:

1.烘焙过程中如果出现报错:'Bake Indirect' job failed with error code: 10 ('Failed writing indirect light bake output file.').

是因为烘焙内存文件太多已经超过了最大内存烘焙值了需要清除一下,严重的话会导致C盘爆满

在Edit->preference->GI Cache中点击Clean Cache清除

2.烘焙好后的模型如果出现大面积的黑斑

是因为模型没有光照贴图坐标,清除所有烘焙数据(如上文注意1所示),在Assets面板中选中模型,在inspector面板中勾选如下所示:

点击Apply,加载过程会比较长,加载好后再重新烘焙即可

3.在light面板中烘焙后如果出现如下图所示明显光线的分界线:

说明range参数值太小了,因为每次烘焙都需要一定时间,所以需要注意Range值设置的需要比width和hight大。光线强度Intensity值设置为1.5左右就够了。

4.烘焙中因为打光报错Mesh doesn’t have albedo UVs

是因为场景中有模型没有展UV,场景中的所有模型都必须展UV,如下所示脚本,在编辑模式下点击脚本Reset可查找所有未展UV的模型

  1. using UnityEngine;
  2. using System.Collections;
  3. public class UVfinder : MonoBehaviour
  4. {
  5. // Use this for initialization
  6. public void Reset()
  7. {
  8. FindNoUvObj();
  9. }
  10. [ContextMenu("FindNoUvObj")]
  11. public void FindNoUvObj()
  12. {
  13. MeshFilter[] meshs = FindObjectsOfType<MeshFilter>();
  14. foreach (MeshFilter m in meshs)
  15. {
  16. if (m.mesh.uv.Length == 0)
  17. {
  18. Debug.Log(m.gameObject.name);
  19. ///永久删除所有未展UV贴图的模型,谨慎执行
  20. // DestroyImmediate(m.gameObject);
  21. }
  22. }
  23. }
  24. }

5.模型烘焙后产生如图所示锯齿,烘焙硬边

是因为这个模型的UV在光照图中所占的比例太小

在场景中选中有锯齿的模型,在Mesh Renderer->Lightmapping中将Scale in lightmap参数设置的大一些再进行烘焙

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/531792
推荐阅读
相关标签
  

闽ICP备14008679号