1.遮挡剔除
1.在场景空间中创建一个区域,该遮挡区域有单元格组成,每个单元格构成整个场景的一部分,这些单元格会把整个场景拆分成多个部分,当摄像机能够看到该单元格时,表示该单元格中的物体会被渲染出来。
2.给除了主角、摄像机、直线光和地面的其他物体对象标记为“遮挡静态(Occluder Static/Occludee Static)”
2.层消隐距离技术
1.如果场景中存在大量小“物件”,则可以使用“层消隐距离”来优化场景;”层消隐距离“就是在比较远的距离将小物体剔除,以减少绘图调用的数量(比如:可以一个大型场景中,高大型的物体任然可见,但是一些小装饰内容(小狗、车子之类的则可以隐藏))
2.?新建一个小物体剔除层,取名为“separatesmall”
3.新建一个空物体取名为“SmallObj”,然后将需要剔除的小物体放在该SmallObj物体下面,并且指定SmallObj物体的层为“separatesmall”
4.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class separateScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()//层消隐
{
float[] distance = new float[32];
distance[9] = 10;//摄像机到该层物体的距离,9表示第九层
Camera.main.layerCullDistances = distance;
}
// Update is called once per frame
void Update()
{
}
}
5.将控制小物体隐藏的脚本“LayerBlankingDistance.cs”添加给SmallObj物体?
?6.效果展示
?当距离较远时会什么都看不到
随着摄像机不断拉近,物体逐渐显现
|