Unity3D-InstantOC遮挡剔除

InstantOC(插件)

  • 渲染管线
  1. 图形数据在GPU上经过运算处理,最后输出到屏幕的过程。
  2. 对于显示出来的图形,CPU与GPU的分工
    1. CPU判断需要显示的图形图像
    2. 调用图形API;

               绘制调用(Draw Call):每次引擎准备数据并通知GPU的过程,即每帧调用显卡渲染物体的次数。即下图中的Batches

            

           3.到显卡GPU这,主要做如下处理:

              顶点处理:从CPU接收模型(网格模型)顶点数据,然后做坐标转换。

              图元装配:组装面,即绘制三角面;

              光栅化:计算面上的像素,为着色提供合理的插值参数;

             像素处理:像素着色,写入缓存;

             帧缓存与深度缓存Z-buffer:存储像素的深度信息,像素离摄像机的距离,进的替代远的像素;            

 

  • Occlusion Culling(遮挡剔除)
  1. 即时遮挡剔除(InstantOC):摄像机视角内看不到的物体进行剔除,减少每帧的渲染数量,在送入渲染流水线;

        

       摄像机视野:

        

        

       对上述场景做遮挡剔除,步骤如下:

  1. 首先添加一个层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
  1. LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
  2. 通过InstantOC中的如下设置来实现

          

          主要的意思是:一个物体有三个不同精细程度的模型,在0-20距离内,使用精细高的模型,在20-40距离内使用中等精细模型,在40距离以外,使用低精细模型。主要影响下图中的面数和顶点数。

           

          1)添加一个物体作为父对象,有三种不同精细程度的模型作为子对象,并命名为Lod_0Lod_1Lod_2(命名必需为这个)。

           

           2)摄像机添加IOCCam,模型父对象添加盒状碰撞器

            3)改变摄像机的位置,可以看到Mesh Renderer前的勾会改变,有勾的会渲染。

附:
本文章学习至bilibili-没有文明的文明-史上最全Unity3D教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WCF系列(一)BasicHttpBinding 和 WsHttpBinding 的不同点

aaaaaaaaaaaaaaaaaa WCF系列(一)【翻译】BasicHttpBinding 和 WsHttpBinding 的不同点 2010-02-21 12:23 by Virus-BeautyCode, 20206 阅读, 7 评论, 收藏, 编辑 原文地址:Difference between BasicHttpBinding and WsHttpBinding 1、简介 WC…

Unity3D-光照系统

光照系统 1. Global Illumination(全局光照) GI,能够计算直接光,间接光,环境光以及反射光的光照系统。通过GI算法,渲染出光照效果更为真实的场景。 2. 直接光 从光源直接放出的光,通过Light组件实现。 …

Tomaso A.Poggio教授丨人工智能的下一个突破点在何处?

来源:图灵人工智能AI的成功故事在过去的25年中,尤其是在刚刚过去的十年中,AI,特别是机器学习,已经拥有了十足可观的进展。两个主要的成功故事第一个是AlphaGo。在虚拟的游戏世界中,AI绝对已经战胜了人类。A…

Unity3D-声音系统

声音 1.Unity3D支持的音频文件 mp3、ogg、wav、aif、mod、it、s3m、xm。 2.声音分为2D,3D两种 3D声音:有空间感,近大远小;2D声音:适合做背景音乐。 3.在场景中产生声音,主要有两个总要的组件: Audio …

当可解释人工智能遇上知识图谱

来源:知乎—机器学习小谈地址:https://zhuanlan.zhihu.com/p/386458680本文按照以下章节进行组织:1. 背景意义2. 基于路径的方法3. 基于嵌入的方法4. 总结与展望01背景意义1.1 什么是可解释性?首先,什么是可解释性。由…

Unity3D-C#脚本介绍

Unity3D脚本介绍 脚本就是附加在游戏物体上用于定义游戏对象行为的指令代码。Unity支持C#高级编程语言。 1.语法结构 using 命名空间; public class 类名:Monobehaviour {void 方法名(){Debug.Log("调试信息.");print("调用…

JConsole连接远程linux服务器配置

1.在远程机的tomcat的catalina.sh中加入配置 (catalina.sh路径在tomcat/bin下面 如/usr/local/tomcat/bin) 1 if [ "$1" "start" ];then 2 JAVA_OPTS"$JAVA_OPTS -Djava.rmi.server.hostname192.168.10.98 -Dcom.sun.management.jmxremote"…

缺缺缺!IoT行业的“芯”选择是什么?

来源:北京物联网智能技术应用协会“最初,没有人在意这场灾难,直到这场灾难和每个人息息相关。”这是电影《流浪地球》的开头,预示着一场即将来临的危机。如今,这句话正在现实中应验,不过,这次遭…

Unity3D-相关函数功能

函数功能 1.每隔固定时间执行一次,时间间隔固定(0.02s),时间间隔可以修改。 适用性:适合对物体作移动,旋转等物理操作。 函数执行不受渲染影响。 private void FixedUpdate() {Debug.Log(Time.time); }设置更新频率&…

JMeter4.0以上 分布式测试报错 server failed start Listen failed on port

使用JMeter4.0做分布式测试的是否,我的电脑作为肉鸡(执行机),双击jmeter-server.bat后显示失败 Found ApacheJMeter_core.jarUsing local port: 1888Server failed to start: java.rmi.server.ExportException: Listen failed on …

Unity-基本函数用法

1.常用组件 组件作用Transform存储个处理游戏对象的位置、旋转和缩放Mesh Filter显示网格Rigidbody刚体,使物体能在物理控制下运动Collider碰撞器,和刚体一起来是游戏对象发生碰撞Renderer渲染器,使物体在屏幕上显示出来Audio Source音频源&…

AI芯片的未来之战:“霸主”英伟达真就无人能挡了吗?

来源: AI前线作者:NICOLE KOBIE译者:王强英伟达,AI 芯片市场的统治者业内有一个传说,讲的是英伟达怎样从游戏和图形硬件转向了 AI 芯片市场的统治者 — 这个故事中有猫的身影。早在 2010 年,现任英伟达首席科学家 Bill Dally 有一天正与斯坦福…

计算机网络(一)-概述(补充)

一.概述 1.新型网络 1.1 基本特点: 网络用语计算机之间的数据传送;网络能够连接不同类型的计算机;所有的网络结点都重要,大大提高了网络的生存性;计算机在进行通信时,必须有冗余的路由;网络结…

费米悖论的三十种解释 | 观点

© David B. Mattingly来源:公众号利维坦(ID:liweitan2014)文:Ella Alderson译:Rachel校对:Yord原文:medium.com/predict/30-solutions-to-the-fermi-paradox-aaabfce56280我常常在思索,我们大多数人选择相信其他星球上存在生…

计算机网络(一)-概述

一.计算机网络 (一)计算机网络概述 1. 概述 1.1 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 1.2 互联互通,自治的计算机集…

json数组格式问题

---恢复内容开始--- 使用jsonserver来模拟后台数据接口时犯了一个很低级的错误 找了很久没有发现有什么不对劲的地方,后来仔细发现原来是一个很细微的语法问题:}] 中间不能有逗号!! ---恢复内容结束---转载于:https://www.cnblog…

图灵奖得主Judea Pearl谈机器学习:不能只靠数据

来源:选自Journal of Causal Inference作者:Judea Pearl编译:机器之心编辑:Panda在当前的人工智能研究社区,以数据为中心的方法占据了绝对的主导地位,并且这类方法也确实成就非凡,为语音识别、计…

计算机网络(二)-性能指标

一、计算机网络性能指标 1.时延 1.1 指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟 延。单位是s。 数据到达路由器是,需要等待,产生排队时延,在路由器里面需要处理数据,包括检错和查找输…

axios请求本地的json文件在打包部署到子目录域名下,路径找不到

前言: 因为要同时部署两个项目,有一个是部署到域名下面的子目录下,如:https://xxx.com/siot-admin vue 项目中使用axios请求了本地项目的static文件夹下的json文件,使用npm run build 打包后,json文件请求不…

中国集成电路设计产业创新发展的认识和思考

来源:半导体行业观察 7月15日—16日,2021中国集成电路设计创新大会暨IC应用博览会在苏州召开。在本次大会高峰论坛上,中国集成电路设计创新联盟专家组组长、东南大学首席教授、南京集成电路产业服务中心(ICisC)主任、…