LOD全称是Level of Detail,也就是细节层级。
LOD的全篇内容共分3篇,
第一篇是对细节层级进行动态设置
为什么会产生这个技术?根据官方教程的解释是因为在一个很大的场景中,需要进一步考虑性能问题。LOD就是一个很好的解决性能问题的方案,它根据物体与摄像机的距离来展示这个物体不同的mesh,从而使得物体较远是使用面数比较少的mesh,而距离近的时候使用面数多的mesh。
例如:LOD Levels(LOD细节模型)是一个mesh,它定义unity渲染游戏物体的几何结构的精细程度。当游戏物体使用了LOD,unity会根据该游戏物体距离摄像机的远近,然后会使用合理的LOD细节模型取代该游戏物体进行显示。
每个LOD细节模型都是独立存在的,并且每个LOD细节模型都有一个用于显示它们自己的Mesh Render组件。对于想要渲染精细度较低的LOD而言,你可以使用Billboard Asset,Billboard Asset是unity用来替代3D mesh显示的等价物。unity可以按要求显示和隐藏这些游戏物体,另外,LOD细节模型必须作为与之相关联的游戏物体的子物体
应用:
1 .允许带有对细节级别的集成支持
2 .允许根据与查看者的距离或屏幕覆盖范围指定不同的网格
3 .每个级别都是独立的,可以有自己的材料。通过将细节级别定义为null,可以禁用当前网格的渲染,当他被查看出超出指定的相机距离时。
文档地址:
https://doc.babylonjs.com/div...
根据屏幕距离
a .屏幕距离是指距离远近,越近细节展示越好,越远细节展示越粗糙;distance值越小,细节展示越好;distance值越大,细节展示越粗糙;
b .knot00.addLODLevel(100, knot01);
c.计算物体到相机的屏幕距离 mesh.getDistanceToCamera()
根据屏幕范围
a .通过屏幕覆盖率来限制来添加 LOD 级别。屏幕覆盖率计算为网格渲染的屏幕表面积与总屏幕表面积的 0 和 1 之间的比率
b .这种方法与距离比较相比具有显着的优势,即与比例无关,因为从远距离渲染的大对象在屏幕上仍然可以很大
c .knot00.useLODScreenCoverage = true;
d .值必须介于 0 和 1 之间; distance值越大,细节展示越好;distance值越小,细节展示越粗糙;
e .knot00.addLODLevel(0.1, knot01);
LOD的第二篇是减面
LOD的第三篇是爆炸网格
此篇内容涉及较少
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。