• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: Unity3D  

资源简介

实时遮挡剔除 无需垬焙,内附使用说明,有三个脚本,可实现遮挡剔除的效果,降低渲染压力,提升运行速度

资源截图

代码片段和文件信息

using UnityEngine;
using System.Collections;

public class IOCcam : MonoBehaviour {
public layerMask layerMsk;
public string iocTag;
public int samples;
public float viewDistance;
public int hideDelay;
public bool realtimeShadows;
public float lod1Distance;
public float lod2Distance;
public float lodMargin;

private RaycastHit hit;
private Ray r;
private int layerMask;
private IOClod l;
private int haltonIndex;
private float[] hx;
private float[] hy;
private int pixels;
private Camera cam;

void Awake () {
cam = GetComponent();
hit = new RaycastHit();
if(viewDistance == 0) viewDistance = 100;
cam.farClipPlane = viewDistance;
haltonIndex = 0;
if(this.GetComponent() == null)
{
gameobject.AddComponent().GetComponent().isTrigger = true;
}
}

void Start () {
pixels = Mathf.FloorToInt(Screen.width * Screen.height / 2f);
hx = new float[pixels];
hy = new float[pixels];
for(int i=0; i < pixels; i++)
{
hx[i] = HaltonSequence(i 2);
hy[i] = HaltonSequence(i 3);
}
foreach(Gameobject go in Gameobject.FindobjectsOfType(typeof(Gameobject)))
{
if(go.tag == iocTag)
{
if(go.GetComponent() == null)
{
go.AddComponent().enabled=true;
                    

}
}
}
}

void Update () {
for(int k=0; k <= samples; k++)
{
r = cam.ViewportPointToRay(new Vector3(hx[haltonIndex] hy[haltonIndex] 0f));
haltonIndex++;
if(haltonIndex >= pixels) haltonIndex = 0;
if(Physics.Raycast(r out hit viewDistance layerMsk.value))
{
if(l = hit.transform.GetComponent())
{
l.UnHide(hit);
}
else if(l = hit.transform.parent.GetComponent())
{
l.UnHide(hit);
}
}
}
}

private float HaltonSequence(int index int b)
{
float res = 0f;
float f = 1f / b;
int i = index;
while(i > 0)
{
res = res + f * (i % b);
i = Mathf.FloorToInt(i/b);
f = f / b;
}
return res;
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2003  2017-05-25 14:04  实时遮挡剔除\IOCcam.cs

     文件       1982  2017-05-25 14:04  实时遮挡剔除\IocEditor.cs

     文件       8248  2017-05-25 14:04  实时遮挡剔除\IOClod.cs

     文件        302  2018-01-23 15:22  实时遮挡剔除\实时遮挡剔除说明.txt

     目录          0  2018-09-04 17:55  实时遮挡剔除

----------- ---------  ---------- -----  ----

                12535                    5


评论

共有 条评论