unity3D学习之遮挡剔除.doc

unity3D学习之遮挡剔除.doc

ID:57895918

大小:153.50 KB

页数:7页

时间:2020-09-02

unity3D学习之遮挡剔除.doc_第1页
unity3D学习之遮挡剔除.doc_第2页
unity3D学习之遮挡剔除.doc_第3页
unity3D学习之遮挡剔除.doc_第4页
unity3D学习之遮挡剔除.doc_第5页
资源描述:

《unity3D学习之遮挡剔除.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、遮挡剔除(OcclusionCulling)功能可在对象因被其他物体遮挡,当前在相机中无法看到时,禁用对象渲染。该功能不会在三维计算机图形中自动开启,因为在大部分情况下,离相机最远的对象最先渲染,离相机近的对象覆盖先前的物体(该步骤称之为“重复渲染(overdraw)”)。遮挡剔除(OcclusionCulling)与视锥体剔除(FrustumCulling)不同。视锥体剔除(FrustumCulling)只禁用相机视野外的对象渲染,不禁用视野中被遮挡的任何物体的渲染。注意,使用遮挡剔除(Occ

2、lusionCulling)功能时,仍将受益于视锥体剔除(FrustumCulling)。文章来自【狗刨学习网】未开启遮挡剔除(OcclusionCulling)时渲染的场景 开启遮挡剔除(OcclusionCulling)时渲染的相同场景 遮挡剔除过程将使用虚拟相机构建潜在可见对象集的层级视图,应用于整个场景。运行时各相机使用这些数据来确定可见和不可见物体。有了该信息,Unity将确保仅发送可见对象进行渲染,从而减少绘制调用的次数,提高游戏性能。遮挡剔除的数据由单元格组成。每个单元格是场景中整

3、个包围区域的细分部分。更具体来说,单元格组成一个二叉树。遮挡剔除(OcclusionCulling)使用两棵树,一个用于视图单元格(ViewCells)(静态对象(StaticObjects)),另一个用于目标单元格(TargetCells)(移动对象(MovingObjects))。视图单元格(ViewCells)映射到定义可见静态对象的索引列表,使静态对象的剔除结果更精确。创建对象时要切记这一点,因为对象大小需要与单元格大小达到良好平衡。理论上说,单元格不应比对象小太多,同时对象也不应占用太

4、多单元格。有时可以将大对象分成几个小块,改善剔除效果。也可以合并一些小对象,减少绘制调用。只要都在同一个单元格内,遮挡剔除就不会受影响。单元格集合和确定哪些单元格可以在任何其他单元格中可见的可见性信息被称为PVS(潜在可见集合(PotentiallyVisibleSet))。设置遮挡剔除(OcclusionCulling)如需使用遮挡剔除(OcclusionCulling)功能,须手动设置一些项。首先,关卡中的几何体必须分成几个大小适中的部分。这也有助于布置关卡中被墙壁、建筑物等大对象相互遮挡的

5、明确定义的小区域。所用原理为单个网格根据遮挡数据开启或关闭。如果有一个对象包含室内所有家具,那么整套家具要么全被剔除,要么全不被剔除。这与为每件家具制作网格一样没有多大意义,以便每件家具都能根据相机视点被单个剔除。须在检视器(Inspector)中将想要成为遮挡的一部分的所有场景对象标记成静态遮挡物(OccluderStatic)。最快的操作方法为选择多个想要加入遮挡计算的对象,将其标记为静态遮挡物(OccluderStatic)和静态被遮挡物(OccludeeStatic)。标记对象的遮挡(O

6、cclusion)情况应在什么时候使用静态被遮挡物(OccludeeStatic)?不会遮挡其他对象的透明物体及也不太可能遮挡的小对象应标为被遮挡物(Occludees),而不是遮挡物(Occluders)。也就是说考虑这些对象被其他对象遮挡,其本身不视为遮挡物,帮助减少计算任务量。遮挡剔除窗口(OcclusionCullingWindow)对于处理遮挡剔除(OcclusionCulling)的大部分操作来说,建议使用遮挡剔除窗口(OcclusionCullingWindow)(窗口(Windo

7、w)->遮挡剔除(OcclusionCulling))。在遮挡剔除窗口(OcclusionCullingWindow)中,可处理遮挡物网格及遮挡区域(OcclusionAreas)。如果处在遮挡剔除窗口(OcclusionCullingWindow)的对象(Object)选项卡并在场景中选择了某网格渲染器(MeshRenderer),可修改相关静态(Static)标志: 网格渲染器(MeshRenderer)的遮挡剔除窗口(OcclusionCullingWindow)如果处在遮挡剔除窗口(Oc

8、clusionCullingWindow)的对象(Object)选项卡并选定遮挡区域(OcclusionArea),可处理相关的遮挡区域(OcclusionArea)属性。遮挡区域(OcclusionArea)的遮挡剔除窗口(OcclusionCullingWindow)注意:如果默认不创建任何遮挡区域,遮挡剔除将应用到整个场景。注意:只要相机位于遮挡区域外,遮挡剔除就不会应用。设置遮挡区域(OcclusionArea)覆盖相机可能出现的位置非常重要,但会把区域放的太大,烘培时耗费性能。遮挡剔除

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。