如何减少顶点数
顶点数优化大致分三个方向着手:
制作模型时优化,减少顶点数;LOD就是所谓的细节级别( Level of Detail);遮挡剔除
---------------------------------------------------------分割线-----------------------------------------------------------------
3D建模内容这里不做过多说明
---------------------------------------------------------分割线-----------------------------------------------------------------
LOD参考链接:
http://www.ceeger.com/Components/class-LODGroup.html
---------------------------------------------------------分割线-----------------------------------------------------------------
遮挡剔除参考链接:
http://www.ceeger.com/Manual/OcclusionCulling.html
什么是遮挡剔除?
遮挡剔除就是当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。
什么是重复渲染?
在绝大多数情况下离 camera 最远的物体首先被渲染,靠近摄像机的物体后渲染并覆盖先前渲染的物体
什么是视锥体剔除?
视锥体剔除只是不渲染摄像机视角范围外的物体而对于被其他物体遮挡但依然在视角范围内的物体,则不会被剔除. 注意当你使用遮挡剔除时你依然受益于视锥体剔除.
遮挡剔除说白了就是通过降低渲染,提高运行效率。
遮挡剔除的数据由单元格(cells)组成, 每个单元格是在整个场景的包围体积的一部分,非常重要的一点是在创建你的物体时要随时注意,因为你需要在物体的大小和单元格的大小间取得一个好的平衡. 理想情况下,不应该有相比于物体,太小的单元格,但同样,物体不应该覆盖许多单元格.有时你可以通过将大的物体拆成几个部分来改进遮挡剔除效果. 然而,你仍然能够将小的物体合并在一起,来降低绘制调用次数(draw calls), 在它们都属于同一个小单元格的时候, 遮挡剔除将不起作用。
怎么合并可以参考这个:https://blog.****.net/One_Piece_Fu/article/details/81454030
设置遮挡剔除
建好场景之后,勾选静态static复选框,右键Inspector中的Static
Occluder遮挡体
Occludee被遮挡体。
对于透明的、特别小的以及将来会控制其移动的游戏对象通常不会遮挡其他对象,此类对象只需要勾选Occludee Static项即可,这将有助于减少计算量。
遮挡剔除窗口
window ----> Occlusion Culling 打开 显示 Object 、 bake烘焙 、 可视化
Object::1.设置遮挡状态
2.有遮挡区域时出现一个打钩的复选框,勾上就可以使用定好的遮挡区域了,如果没有定义遮挡区域,默认为整个场景,但这样遮挡区域太大,会导致烘焙更多开销。
bake: 一般使用默认属性直接点bake就可以
遮挡物的最小大小。任何小于这个值的都不会被认定为遮挡物。
物体之间的间隙最小值,不许小过这个值了。
保留一些背面数据,当为100时,完全保留这些数据;为5时完全删除这些数据。
可视化:点camera 然后看看你弄得怎么样了
遮挡区域
菜单Component->Rendering->Occlusion Area , 遮挡剔除运动物体
遮挡入口
为了创造实时可开启和可关闭的遮挡,Unity使用遮挡入口(Occlusion Portals