Unity3D场景性能优化/渲染/卡顿/搭建优化 遮挡剔除/层消距离技术/LOD(多层次细节)

本文详细介绍了Unity3D中的三种场景渲染优化技术:遮挡剔除、层消隐距离和LOD(多层次细节)。遮挡剔除通过设置物体为静态并进行烘焙,减少不可见物体的渲染;层消隐距离通过脚本控制不同距离的物体显示,降低远处物体的渲染;LOD技术则根据摄像机距离动态调整模型细节,平衡内存与GPU性能。通过这些技术,可以显著提高场景渲染效率,提升游戏体验。
摘要由CSDN通过智能技术生成

Unity3D场景渲染/卡顿/搭建优化 遮挡剔除/层消距离技术/LOD(多层次细节)

效果实现图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、遮挡剔除
简单理解:摄像机看不到的物体场景中不会渲染显示
实现方法:
在场景中选中需要遮挡剔除的物体,我这里是竹子
在这里插入图片描述
设置遮挡静态
在这里插入图片描述
接下来做场景的烘焙
在这里插入图片描述
在这里插入图片描述
DENGDAI
等待烘焙的完成
选择遮挡剔除窗口的Visualizatior,运行程序移动摄像机即可看到效果
在这里插入图片描述
在这里插入图片描述
经过调试,在远处时摄像机看到的物体较多,所有的物体都会被加载出来,帧率也比较低,在近处时,物体有很多看不见,不会被加载,帧率较高,我这里大概有近3000FPS的差值

二、层消隐距离技术
简单理解:因距离太远太小而看不见的物体将其隐藏。
在这里插入图片描述
选中要剔除的物体,新建一个层级并给它添加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编写脚本,随便挂在一个场景中的物体上

using UnityEngine;

public class LayerBlankingDistance : MonoBehaviour
{
    public float Distance = 10;  //定义显示距离
    public int Layer = 9; //定义被剔除的层级
    //定义大小为32的一维数组,用来储存所有层的剔除信息 
    float[] distance = new float[32];

    //经过测试 只能够在Start函数中使用
    void Start()
    {
        //Layer层显示的距离在Distance内 超过这个距离就不会显示
        distance[Layer] = Distance;
        //将数组赋给摄像机的LayerCullDistance
        Camera.main.layerCullDistances = distance;
    }


}

在这里插入图片描述
在这里插入图片描述
层级要相互对应
实现效果:
在这里插入图片描述
三、LOD技术(多细节层次)
简单理解:根据摄像机与模型的距离来决定显示哪一个模型,一般距离近的时候显示高精度多细节模型,距离远的时候显示低精度低细节模型,以内存做消耗来优化GPU

新建一个空物体,为其添加LOD组件,空物体下放高低中模
在这里插入图片描述
在这里插入图片描述
点击对应模块添加对应模型,同时可以滑动模块设置显示距离
在这里插入图片描述
效果:
在这里插入图片描述
LOD的Cross Fade模式:
在这里插入图片描述
让两个模型之间的过渡带有动画效果
在这里插入图片描述
Speed模式:仅用于在两个Mesh LOD级别间进行混合,即当前和下一个LOD级别都具有Mesh Renderer时,当转换到Billboard LOD
级别或完全淡出时,Unity会执行Cross Fade风格的混合
在这里插入图片描述

在Project setting面板下可以去设置更多的参数
在这里插入图片描述
Maximum LOD Level:最大LOD级别,表示游戏中使用的最高LOD级别。在该级别以上的模型不会被使用,并且在编译时忽略。(这将节省存储空间和内存空间)。

LOD Bias: LOD偏离,LOD级别基于物体在屏幕上的大小。当物体大小在两个LOD级别之间,可以选择使用低细节模型或高细节模型。数值取值范围为0-1,数值越接近0,越偏向于选择低细节模型。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值