Unity遮挡剔除使用

news/2024/11/15 23:04:39/文章来源:https://www.cnblogs.com/weigangblog/p/18201294
(1)设置对象为遮挡物or被遮挡物
选中某个对象后,在其Occlusion窗口可以设置其Occluder Static和Occludee Static属性:
  • 遮挡物
通过勾选一个对象的Occluder Static 可将其设置为静态遮挡物。理想的遮挡物应该是实心的,体积较大的物体。
原则1:可能阻挡到其它对象的对象才应该被设置为遮挡物。一些远景物体不要设置成遮挡物,否则很可能会导致剔除数据成倍增长以及运行时剔除查询效率降低。另外半透明的物体也不应设置为遮挡物。
 
原则2:对于某些带类似小孔的物体(例如网,树叶茂盛的树木),可以不将其设置为遮挡物,这样可以避免得到不正确的结果。(smallest
hole参数可以处理这种情况但是其值不宜设得太小)
  • 被遮挡物
通过勾选一个对象的Occludee Static(如上图)可将其设置为静态被遮挡物。
 
理想的被遮挡物应该是体积较小的,这样它被完全遮挡到的情况才会比较多,因此做遮挡剔除查询才比较有意义。但是如果将对象拆分得过小,也会导致遮挡剔除性能下降。
 
较大的物体不宜设成被遮挡物(例如在3dMax里合并了之后再倒入到Unity编辑器),但是请注意到被U3D做batch之后渲染的多个mesh在做遮挡剔除时还是会针对单个mesh分别进行,所以不受影响。
 
(2)烘培
在Occlusion窗口的Bake页面进行对场景的遮挡剔除数据的烘培。参见下图。
 
参数设置:
 
烘培参数的调整本质来说是剔除准确性和性能/效率的折中。在实践中,所示的三个参数值都应该从一个较大的值开始,不断调小,直到得到满意的结果。当你发现烘培时间过长或者烘培数据过大时,就应该尝试调大参数。

 

Smallest Hole
解释:如果场景中有带孔的物体需要能被视线穿透(例如墙上的洞, 房间的门),那么需要将Smallest Hole设置为小于孔的直径
原则:在不出现剔除错误(可见的物体被剔除了)的情况下,应该尽量将该值设大些。
建议值:0.05~0.50
 
Smallest Occluder
解释:顾名思义,就是场景内最小遮挡物的尺寸。设得过大会导致剔除成功率下降(但是应该不会产成剔除错误),过小会导致性能问题。
原则:设置为比Player高度略大的值。目前Player高度大概为1.8.
建议值:2~6
 
Backface threshold
解释:本参数的引入是为了减少剔除数据大小,另一方面,设置不当会导致剔除错误(可见的物体被剔除了)。因此,暂时请保持默认值100不变。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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

相关文章

Uni-app 之IOS生成Universal Link(通用链接)

一、文档 https://uniapp.dcloud.net.cn/api/plugins/universal-links.html#%E8%83%8C%E6%99%AF%E4%BB%8B%E7%BB%8D 二、配置 1、登录苹果开发者中心找到对应的APPID,配置Associated Domains,如下: 2、创建apple-app-site-association文件(没有后缀){"applinks"…

2024 年 7 个最佳免费项目管理软件

在本指南中,我们将带您了解当今市场上一些最好的免费项目管理软件选项。我们将讨论每个工具的区别;任何相关功能、优点和缺点;以及如果您将目光投向了免费项目管理软件,您通常应该寻找什么。zz-plan – 最佳的甘特图协作软件 Notion - 最佳整体一体化解决方案 ClickUp – 最…

第九章%第十章

第九章:遗忘路由算法(Oblivious) Oblivious Routing 指在选取 packet 的路由路径时,不考虑网络当前状态的路由方法,这种方法实现简单且易于分析。 Oblivious Routing 路由方法需要在 局部性(locality)、均衡负载(load balance) 方面做取舍。 1、Valiant’s Randomized…

基于 Spring Boot3、Vue3!这套小说系统开源了...

novel —— 一套基于 Spring Boot3 + Vue3 开发的前后端分离学习型小说项目。由小说门户系统、作家后台管理系统、平台后台管理系统等多个子系统构成。大家好,我是 Java陈序员。 今天,给大家介绍一个基于 SpringBoot3、Vue3 前后端分离的小说项目,集成了主流的技术栈,可供学…

process.poll() 检查子进程运行状态

在Python的subprocess模块中,poll()方法是Popen类的实例方法,用于检查一个子进程是否已经结束,如果已经结束,它将返回子进程的退出状态码;如果子进程尚未结束,它将返回None。 以下是poll()方法的一些关键点:检查子进程状态:poll()允许你检查一个子进程是否已经完成执行…

深入解析xLSTM:LSTM架构的演进及PyTorch代码实现详解

xLSTM的新闻大家可能前几天都已经看过了,原作者提出更强的xLSTM,可以将LSTM扩展到数十亿参数规模,我们今天就来将其与原始的lstm进行一个详细的对比,然后再使用Pytorch实现一个简单的xLSTM。 xLSTM xLSTM 是对传统 LSTM 的一种扩展,它通过引入新的门控机制和记忆结构来改进…

异构数据源同步之数据同步 → datax 改造,有点意思

开心一刻 去年在抖音里谈了个少妇,骗了我 9 万 后来我发现了,她怕我报警 她把她表妹介绍给我 然后她表妹又骗了我 7 万DataX DataX 是什么,有什么用,怎么用 不做介绍,大家自行去官网(DataX)看,Gitee 上也有(DataX)你们别不服,我这是为了逼迫你们去自学,是为了你们好…

sdf 测试-2-openssl

在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务,参考网内容 和AI要给出详细过程,否则不得分。 0. 根据gmt0018标准,如何调用接口实现基于SM3求你的学号姓名的SM3值?(5‘)使用OpenSSL实现SDF接口中的hash运算接口,至少支持SM3算法,把相关函数集成到src中的…

阅读习惯2

本学期阅读成果总结阅读书单选择与总结: 我选择了参考的书单链接(https://weread.qq.com/misc/booklist/3107758_7sb8Fs2Hv),并从中挑选了几本书开始阅读。阅读数据截图:总时长:250 小时 册数:15 本 笔记数:47 条本学期的收获:阅读时长增加:本学期我总共阅读了250小时…

lodash已死?radash库方法介绍及源码解析 —— 函数柯里化 + Number篇

点赞 + 收藏 = 学会! 本篇我们介绍radash中函数柯里化和Number 相关的方法使用和源码解析。深入学习radash中的方法思想和底层实现。写在前面 tips:点赞 + 收藏 = 学会!主页有更多其他篇章的方法,欢迎访问查看。 本篇我们继续介绍radash中函数柯里化和Number 相关的方法使用…

sdf 测试-1-龙脉智能钥匙

在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务,参考网内容 和AI要给出详细过程,否则不得分。 0. 根据gmt0018标准,推导sdf的接口调用模式,比如调用SDF_GenerateRandom,还应调用其他什么函数,调用顺序是什么,给出结论和推导过程。(10‘)使用龙脉智能钥匙…