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

本文详细介绍了如何在Unity中设置PlayerSettings的颜色空间为线性,包括模型导入、无光照渲染设置、AmbientOcclusion、ReflectionProbe使用、贴图修改、光源设置以及PostProcessing插件的使用,同时解决了一些常见问题,如内存烘焙限制和UV展平等。
摘要由CSDN通过智能技术生成

在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的模型

using UnityEngine;
using System.Collections;
public class UVfinder : MonoBehaviour
{
    // Use this for initialization
    public void Reset()
    {
        FindNoUvObj();
    }

    [ContextMenu("FindNoUvObj")]
    public void FindNoUvObj()
    {
        MeshFilter[] meshs = FindObjectsOfType<MeshFilter>();
        foreach (MeshFilter m in meshs)
        {
            if (m.mesh.uv.Length == 0)
            {
                Debug.Log(m.gameObject.name);
                ///永久删除所有未展UV贴图的模型,谨慎执行
               // DestroyImmediate(m.gameObject);
            }
        }
    }
}

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

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

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

  • 28
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity中打光是一个非常重要的环节,它能够为室内场景增添真实感。下面是一些基本步骤来进行室内场景的打光: 1. 使用合适的光源:Unity中有几种光源可供选择,如点光源、聚光灯和区域光源等。根据场景需求选择适合的光源类型。 2. 调整光源参数:根据场景需求调整光源的亮度、颜色和范围等参数。例如,你可以调整点光源的强度和颜色,使其适应所需的氛围。 3. 使用全局光照:全局光照可以在整个场景中均匀分布光照。Unity中有两种全局光照解决方案:实时全局光照(Real-time Global Illumination)和烘焙全局光照(Baked Global Illumination)。 - 实时全局光照:实时计算光照,适用于动态场景。使用物理材质和光探头来模拟间接光照效果。 - 烘焙全局光照:预计算光照,适用于静态场景。使用Lightmapping技术将光照信息烘焙到纹理中,然后在运行时应用。 4. 使用间接光照:间接光照是从一个物体反射到其他物体的光照。在Unity中,可以使用全局光照解决方案或者使用Light Probes来实现间接光照。 5. 调整材质属性:室内场景材质属性对光照效果也有影响。根据需要调整材质的反射率、透明度和光滑度等属性。 6. 调整阴影设置:阴影可以增加场景的真实感。在Unity中,可以通过设置光源的阴影类型和质量来调整阴影效果。 请注意,打光是一个细致而复杂的过程,需要根据具体场景进行调整和优化。你还可以使用Unity中的调试工具来查看光照效果,并进行适当的调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值