资源简介
实时遮挡剔除 无需垬焙,内附使用说明,有三个脚本,可实现遮挡剔除的效果,降低渲染压力,提升运行速度
代码片段和文件信息
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
- 上一篇:AD5422芯片的C程序应用
- 下一篇:MPI并行遗传算法
相关资源
- Unity3D中使用串口收发数据,仅供参考
- unity动作
- Unity3D Basketball 篮球游戏 完整源码工程
- unity-横向比较unity3d与其他的游戏引擎
- AVProVideo-1.10.0
- Unity串口通信,外部设置COM口,16进制
- 基于Unity3D的寻宝跑酷游戏.rar
- Mac版本的jdk
- OpenCV for Unity 2.3.3 支持OpenCV 4.0.0
- 泰课Unity3D基础班视频教程
- Unity glTF 2.0 ExporterUnity导出glTF插件
- 常用6500汉字txt) 可用于Unity3d制作T
- UniPatcher_v2017.6.exe和谐Unity2017.2
- MGS-MechineryUnity 机械机构关节脚本
- Rain AI 插件
- unity3d插件-脚本-图像识别OpenCVforUnit
- Unity3D魔女莉莉丝模型.txt
- ILRuntime Unity3D程序
- Unity3D 餐厅烹饪游戏源码
- unity3d5.1物体椭圆旋转选择界面实现
- 最新版U3D TreeView.unitypackage
- unity3d天空盒子
- Unity3D三维立体相机
- Unity3D男孩FBX模型
- Unity3D 5.5.x及其以下的补丁
- EasyTouch5.012 官方API手册 for Unity3d5.0X
- 3D游戏与计算机图形学中的数学方法
- unity AssetBundle 框架
- Unity3D Flick Basketball 篮球游戏 完整源码
- Easy Save - The Complete Save Load Asset 3.1.1
评论
共有 条评论