当前位置: 澳门新濠3559 > 编程 > 正文

遮挡剔除,基础数据被遮挡了部分

时间:2019-12-27 17:08来源:编程
什么是Occlusion Culling(遮挡剔除)? 遮挡剔除,当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。.遮挡剔除在3D图形计算中并不是自动进行的。因为在绝大多

图片 1

什么是Occlusion Culling(遮挡剔除)?
遮挡剔除, 当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。.遮挡剔除在3D图形计算中并不是自动进行的。因为在绝大多数情况下离 camera 最远的物体首先被渲染,靠近摄像机的物体后渲染并覆盖先前渲染的物体(这被称为重复渲染"overdraw"). 遮挡剔除不同于视锥体剔除. 视锥体剔除只是不渲染摄像机视角范围外的物体而对于被其他物体遮挡但依然在视角范围内的物体,则不会被剔除. 注意当你使用遮挡剔除时你依然受益于视锥体剔除(Frustum Culling)

图片 2

q在拍摄夜景时,经常遇到这样的情况:在准备拍摄的画面中,有的地方 灯光明亮,有的地方灯光昏暗,或者是灯光少而亮,场景大而暗。遇到上述 情况,要拍摄出反差适中、明暗部分都有较好层次的照片,可以采取措施, 运用局部遮挡控制曝光的方法,以减少明亮部分的曝光,增加昏暗部分的曝 光。

上面是遮挡的图片,基础数据被遮挡了部分,监控预警和设备管理基本被遮挡住了,这个系统等于废了一半。用z-index无效,不知有没有接触过这个插件或者类似的大神,指教我一下。

场景渲染无遮挡剔除

在厨灶和周围的柜子之间的部分墙壁,我们可以称为后挡板,在厨房的设计中,这儿常常是最重要的部分之一,不仅需要美观,更需要容易清洁。如今,我们有很多方式可以使这一部分变得创意而令人惊艳。比如使用各种各样的瓷砖、马赛克、灯光照明、墙纸等,使得厨房不再千篇一律的单调。如果你也希望拥有如以下这些图中的活力厨房,不妨也来试一试这些办法吧!

所谓遮挡拍摄法,就是在长时间的曝光过程中,用手或其他物体有目的 地遮住画面中的某一部分(一般是明亮部分),减少它的曝光量,并使其余 的昏暗部分得以较充分的曝光。就象放大照片时的局部遮挡一样,以求达到 理想的效果。遮挡时,一定要视光线情况,不断地晃动,切不可固定不动地 挡住某一部分,以免胶片出现感光过度或不够均匀的现象。

场景渲染带遮挡剔除

图片 3 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 4 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 5 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 6 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 7 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 8 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 9 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 10 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 11 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 12 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 13 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 14 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 15 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 16 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 17 小厨娘支招 35个创意厨灶防溅遮挡板设计支招 图片 18 小厨娘支招 35个创意厨灶防溅遮挡板设计支招

在进行局部遮挡拍摄时,还要根据不同类型的相机采用相应的拍摄方 法。双镜头反光式照相机,虽在磨沙玻璃的取景器中,可以直接看到遮挡部 位,但因为它是上下镜头,如果左右遮挡,可用较长的遮挡工具,上下成垂 直遮挡,那么在取景器中观察到遮挡的部分,也是镜头中被挡的部分。如是 上下遮挡,那只有根据自己的估计去进行遮挡了。单镜头反光式照相机,虽 然取景时在取景器中能观察到遮挡位置,但在按动快门后,从取景器里就观 察不到景物了,因此,在按动快门前就要把照相机固定下来,并预先定好遮 挡位置。其他类型照相机,只能根据准备遮挡部分进入镜头的角度和位置进 行遮挡,这些不容易掌握准确,拍摄前可多练习几次。

遮挡剔除是如何工作的?
遮挡剔除的运行将通过在场景中使用一个虚拟的摄像机来创建一个物体潜在可视性状态(set)的层级。 这些数据可以实时让每个摄像机来确定什么能看见什么看不见。通过这些数据,Unity 将确定只把可以看见的物体送去渲染。这将降低 绘制调用(draw calls) 的数量并增加 游戏的运行效率。

遮挡剔除的数据由单元格(cells)组成, 每个单元格是在整个场景的包围体积的一部分,单元格来自一个二叉树( binary tree),遮挡剔除使用两棵树, 一个给 View Cells (静态物体) ,另一个给 Target Cells (移动物体)。 View Cells 映射到一个定义静态可视物体的索引列表 (精确剔除后的静态物体)。

非常重要的一点是在创建你的物体时要随时注意,因为你需要在物体的大小和单元格的大小间取得一个好的平衡. 理想情况下,不应该有相比于物体,太小的单元格,但同样,物体不应该覆盖许多单元格.有时你可以通过将大的物体拆成几个部分来改进遮挡剔除效果. 然而,你仍然能够将小的物体合并在一起,来降低绘制调用次数(draw calls), 在它们都属于同一个小单元格的时候, 遮挡剔除将不起作用。单元格的集合和可视信息确定哪些单元格是可见的,被认为是 PVS (潜在可视集合Potentially Visible Set)。

如何设置设置遮挡剔除?
为了使用遮挡剔除 需要进行相关的手动设置。首先,你关卡中的几何体必须被分割成合理大小的块。这也有助于布置关卡中小块的,明确界定的区域 被其他大物体遮挡(例如墙,建筑物)。这意味着每个单独的网格根据遮挡数据确定是否渲染。所以如果你有一个物体包含了房间里的所有家具,那么所有的家具要么全渲染,要么全不渲染。 使每个家具都有自己的网格,这会有不一样的感觉,那么可以根据摄像机的视点,各个物体可以单独地被剔除。

在检视面板(Inspector) 你需要标识(tag) 所有需要应用遮挡剔除的场景物体。最快的方法是选择多个想要遮挡计算的物体,然后标记它们为Occlusion Static 和 Occludee Static。

为遮挡标记物体
我应该在什么时候使用Occludee Static?透明物体不能遮挡,以及小物件,都不可能阻挡其他的东西,应标记为Occludees,但不遮挡。这意味着它们将被视为能被其他物体遮挡,但不会被视为作为遮挡物自身,这将有助于减少计算量。

遮挡剔除窗口中如何设置?
首先打开遮挡剔除窗口(Window->Occlusion Culling)。在遮挡剔除窗口,可以使用遮挡物网格和遮挡区域。
—>Object选项卡
Screne Filter 可以选择编辑的对象类型,选中对象后可以调整其静态标识。

注意:
1.如果你没有创建遮挡区域,遮挡剔除将默认应用到整个场景。
2.每当相机在遮挡区域之外,遮挡剔除将不被应用。重要的是这种遮挡区域覆盖的地方要有相机,但如果遮挡区域太大,会导致更多烘焙开销。
3.Occlusion Areas应用于要实现遮挡的运动物体。(转另一篇)
—>Bake选项卡

这里可以设置物体遮挡的属性:
->Smallest Occluder: 最小遮挡物的尺寸(能遮挡其他物体的最小尺寸,任何小于这个尺寸的背后物体将被遮挡)
->Smallest Hole: 该值表示相机应该看到的几何图形之间的最小间隙。
**->Backface

Threshold**:Unity的遮挡使用数据大小优化,通过测试背面减少不必要的细节。默认值为100是强大的,不会从数据集中删除背面。值为5将根据具有可见背面的位置积极减少数据。这个想法通常,有效的摄像机位置通常不会看到许多背景

例如,地形下面的视图,或者您不应该能够到达的固体对象中的视图。在阈值低于100的情况下,Unity将完全从数据集中删除这些区域,从而减少遮挡的数据大小。

在烘烤标签的底部是清除和烘培按钮。点击烘培按钮开始生成遮挡剔除数据。生成数据后,您可以使用“可视化”选项卡来预览和测试遮挡剔除。如果您对结果不满意,请点击清除按钮删除先前计算的数据,调整设置,然后再烘培。
—>Visualization选项卡

可以通过选择查看所有物体或者只看摄像机看到的物体,来检查剔除效果。

遮挡剔除消除drawcall的效率是非常高的,在一些大场景中往往能降低未优化时drawcall数量的50%甚至更多。

编辑:编程 本文来源:遮挡剔除,基础数据被遮挡了部分

关键词: