Unity3D-InstantOC遮挡剔除
InstantOC(插件)
- 渲染管线
- 图形数据在GPU上经过运算处理,最后输出到屏幕的过程。
- 对于显示出来的图形,CPU与GPU的分工
- CPU判断需要显示的图形图像
- 调用图形API;
绘制调用(Draw Call):每次引擎准备数据并通知GPU的过程,即每帧调用显卡渲染物体的次数。即下图中的Batches。
3.到显卡GPU这,主要做如下处理:
顶点处理:从CPU接收模型(网格模型)顶点数据,然后做坐标转换。
图元装配:组装面,即绘制三角面;
光栅化:计算面上的像素,为着色提供合理的插值参数;
像素处理:像素着色,写入缓存;
帧缓存与深度缓存Z-buffer:存储像素的深度信息,像素离摄像机的距离,进的替代远的像素;
- Occlusion Culling(遮挡剔除)
- 即时遮挡剔除(InstantOC):摄像机视角内看不到的物体进行剔除,减少每帧的渲染数量,在送入渲染流水线;
摄像机视野:
对上述场景做遮挡剔除,步骤如下:
- 首先添加一个层IOC_Layer和一个标签IOC_Tag,将要做动态遮挡剔除的物体加入到该层中和选择该标签中,如下。
2. 将InstantOC中的如下图中的文件拖拽到摄像机上
在属性面板中出现该文件的设置属性,如下
3.设置Layer mask和TAGs分别为IOC_Layer和IOC_Tag
1)Layer mask:参与遮挡剔除的对象层;
2)TAGs:为指定的标签对象自动添加IOClod脚本对象;
3)Sample(采样):
原理:在摄像机视野范围内,随机放出射线,若打到物体上,则该物体需要渲染,若打不到,则取消该物体的Mesh Renderer前的勾(不渲染);
采样:发出的射线的数量,通常设置在150-500之间;
4) Rays Fov:射线视野,应大于摄像机视野Field of View。
5)View Distance:视图距离,射线长度,参照影响摄像机Clipping Planes-Far数值。
6)Hide Delay:延迟隐藏,当物体被剔除时延迟的帧数,建议50-100之间。即发射射线的次数,若每次某物体都不可见,则剔除。
7)PreCull Check:检查采集信息,建议勾选,提高剔除效率;
8)Realtime Shadows:实时阴影,如果场景需要实时阴影,确保剔除物体显示正常的阴影(该功能不稳定)。
4. 为将需要做遮挡剔除的物体添加盒状碰撞器,而不是使用物体的实际的面来做射线碰撞。而是使用盒状的6个面。
遮挡剔除使用情况:在场景中,物体比较密集,遮挡的物体较多时,可以使用遮挡剔除,否则会真加CPU的负担。
5.运行效果(中间被遮挡的不渲染,不可见):
移动一下前面的物体,后面的又出现了,如下:
前后Draw Call对比:可知Batches减少了(30à24),降低了显卡的负担。
- LOD(多细节层次Levels of Detail)
- LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
- 通过InstantOC中的如下设置来实现
主要的意思是:一个物体有三个不同精细程度的模型,在0-20距离内,使用精细高的模型,在20-40距离内使用中等精细模型,在40距离以外,使用低精细模型。主要影响下图中的面数和顶点数。
1)添加一个物体作为父对象,有三种不同精细程度的模型作为子对象,并命名为Lod_0,Lod_1,Lod_2(命名必需为这个)。
2)摄像机添加IOCCam,模型父对象添加盒状碰撞器
3)改变摄像机的位置,可以看到Mesh Renderer前的勾会改变,有勾的会渲染。
附:
本文章学习至bilibili-没有文明的文明-史上最全Unity3D教程
Unity3D-InstantOC遮挡剔除相关推荐
- unity3d如何获知场景中需要加载的数据_游戏中遮挡剔除方案总结
这是侑虎科技第507篇文章,感谢作者FrankZhou供稿.欢迎转发分享,未经作者授权请勿转载.如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨.(QQ群:793972859) 作者主页:htt ...
- Unity3d遮挡剔除(Occlusion Culling)优化【2019】
遮挡剔除的概念 很多童鞋的Unity作品完成后,发现场景卡的要死,尽管在模型阶段采用了很多优化建模方法,但还是卡顿.电脑端都这么卡,发布到移动端就更不用说了.遇到这种情况,很多童鞋急得团团转,不知 ...
- Unity Occlusion Culling 遮挡剔除研究
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52684127 作者:c ...
- Occlusion Culling 遮挡剔除 相机系列5
Occlusion Culling 遮挡剔除 本文档主要是对Unity官方手册的个人理解与总结(其实以翻译记录为主:>) 仅作为个人学习使用,不得作为商业用途,欢迎转载,并请注明出处. 文章中涉 ...
- 遮挡剔除 2021-07-04
遮挡剔除 遮挡剔除的运行将通过在场景中使用一个虚拟的摄像机来创建一个物体潜在可视性状态(set)的层级. 这些数据可以让每个运行时间内的摄像机来确定什么能看见什么看不见.通过这些数据, Unity 将 ...
- Unity - 搬砖日志 - Occlusion Culling 关闭动态遮挡剔除 Renderer.allowOcclusionWhenDynamic = false
文章目录 CullDynamicObjectsWithUmbra 消耗 如何禁止 动态对象的遮挡剔除的消耗 写工具来遍历 Renderer.allowOcclusionWhenDynamic = fa ...
- Unity - 遮挡剔除(Occlusion Culling)优化
遮挡剔除对概念 很多童鞋的Unity作品完成后,发现场景卡的要死,尽管在模型阶段采用了很多优化建模方法,但还是卡顿.电脑端都这么卡,发布到移动端就更不用说了.遇到这种情况,很多童鞋急得团团转,不知 ...
- Occlusion(遮挡剔除)
Occlusion 1.视锥体剔除(Frustum Culling) 根据摄像机的视见体的范围对场景模型进行剔除操作,在视见体以外的物体不被渲染,但是在视见体中的物体会以离摄像机最远的物体开始渲染,逐 ...
- 大地图开发管理:《巫师3》Umbra遮挡剔除技术
本演讲介绍巫师3使用Umbra实现的遮挡剔除技术. 笔记略过了一些过于平凡的实现细节,包括流的加载,如何向Umbra提交数据:也略过了一半以上关于"游戏应当如何选择中间件"的讨论. ...
最新文章
- 自动驾驶软件工程之全局规划
- 网站推广——网站制作二维码只是为了更好的实现网站推广
- hdu4038贪心(最快上升倍率,好题)
- sparkstreaming监听hdfs目录如何终止_Spark笔试题:Spark Streaming 反压机制
- ServerBootstrap
- kill 进程_如果有个进程kill 9杀不掉,怎么办?
- 'net’ 不是内部命令或外部命令,也不是可运行的程序或批处理文件 解决方法...
- android 海康云眸SDK简单使用
- win11硬盘分区如何合并 windows11硬盘分区合并的解决方法
- 淘宝直播的定义,淘宝直播小技巧介绍,以及淘宝有哪些推广渠道和展示位?
- 程序员自我欺骗的9个谎言
- 【工具】MobaXterm常用设置
- 决策树(Decision Trees)
- AT4352 [ARC101C] Ribbons on Tree
- 方正证券手机网上开户流程
- oracle sqlplus 的四种连接方式
- MTPuTTY不能使用问题
- 样机模板素材哪家强?Top4都在这!
- C# 批量重命名文件
- Echarts河北地图缺少雄安新区(合并、调整地图边缘)的解决办法
热门文章
- LeetCode 217. 存在重复元素(哈希)
- matlab打开笔记本摄像头_基于MATLAB调用电脑摄像头获取视频和图像
- python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...
- java之NIO(Channel,Buffer,Selector)
- Spark Executor解析
- 图片网站用什么服务器好,网站图片与框架放在不同服务器有哪些优缺点
- 这个自然语言处理“工具”,玩得停不下来
- 肖仰华 | 大规模、高质量的金融知识图谱,如何自动化构建?
- 论文浅尝 | 5 篇顶会论文带你了解知识图谱最新研究进展
- 基于 CNN 的中文对话情感分析