[转] Unity3D LOD Group
As your scenes get larger, performance becomes a bigger consideration. One of the ways to manage this is to have meshes with different levels of detail depending on how far the camera is from the object. This is called Level of Detail (abbreviated asLOD)
由于场景变大,就要更加考虑性能的问题。有一种管理方法,取决于摄像机离对象的远近,网格有不同的细节级别,这就是所谓的细节级别( Level of Detail)(LOD的缩写)
Here's one of the ways to set up an object with different LODs.
下面是建立具有不同LODs对象的方法。
- Create an empty Game Object in the scene
在场景创建一个空的游戏物体。 - Create 2 versions of the mesh, a high-res mesh (for LOD:0, when camera is the closest), and a low-res mesh (forLOD:1, when camera is further away)
创建2个版本的网格,高清晰度网格(L0D:0,当摄像机最接近时),和一个低分辨率网格(L0D:1,当摄像机较远) - Add a LODGroup component to this object (Component->Rendering->LOD Group)
给这个对象添加LODGroup 组件(Component->Rendering->LOD Group) - Drag in the object with the high-res mesh onto the first Renderers box forLOD:0. Say yes to the "Reparent game objects?" dialog
把高分辨率网格的对象拖到的第一个渲染器框 L0D:0。对话框"Reparent game objects?" 按下yes按钮 - Drag in the object with the low-res mesh onto the first Renderers box forLOD:1. Say yes to the "Reparent game objects?" dialog
把低分辨率网格的对象拖到的第二个渲染器框 L0D:1。对话框"Reparent game objects?" 按下yes按钮 - Right Click on LOD:2 and remove it.
在LOD:2上右键单击并删除它。
At this point the empty object should contain both versions of the mesh, and "know" which mesh to show depending on how far away the camera is.
此时,空对象应包含两个版本的网格,"知道"网格取决于相机远离程度显示不同的版本。
You can preview the effect of this, by dragging the camera icon left and right in the window for theLODGroupcomponent.
您可以预览这个效果,通过拖拽摄像机图标到LODGroup组件窗口(的LOD:0,LOD:1的矩形框)。
camera at LOD 0(在LOD 0时的摄像机)
camera at LOD 1(在LOD 1时的摄像机)
In the Scene View, you should be able to see
在场景视图,你应该能够看到:
- Percentage of the view this object occupies
这个对象占用视图的百分比 - What LOD is currently being displayed
当前显示的是哪个LOD - The number of triangles
三角形的数量
LOD-based naming conventions in the asset import pipeline
在资产的导入管线基于LOD的命名约定
In order to simplify setup of LODs, Unity has a naming convention for models that are being imported.
为了简化LOD设置,Unity在模型导入时有一个命名约定。
Simply create your meshes in your modelling tool with names ending with _LOD0, _LOD1, _LOD2, etc., and the LOD group with appropriate settings will be created for you.
简单地创建你网格,名称后缀为_LOD0,_LOD1,_LOD2等,会为你创建LOD组,并作出相应的设置。
Note that the convention assumes that the LOD 0 is the highest resolution model.
请注意,该约定假定最高分辨率的网格的LOD后面的数字是最小的。
Setting up LODs for different platforms
对于不同的平台设置LOD
You can tweak your LOD settings for each platform in Quality Settings, in particular the properties of LOD bias and Maximum LOD Level.
在质量设置你可以为每个平台条件LOD设置,特别是LOD偏移和最大LOD层次。
Utilities 实用工具
Here are some options that help you work with LODs
下面是一些选项,可有助于你更好的使用LOD工作。
![]() Recalculate Bounds 重新计算边界 |
If there is new geometry added to the LODGroup, that is not reflected in the bounding volume, press this to update the bounds. One example where this is needed is when one of the geometries is part of aprefab, and new geometry is added to that prefab. Geometry added directly to the LODGroup will automatically updates the bounds 如果有新的几何体添加到LODGroup,未被映射到边界体内,按这个按钮来更新边界。一个例子,当几何体之一是prefab的一部分,以及新的几何体被添加到这个prefab。几何体直接添加到LODGroup将自动更新边界。 |
![]() Update Lightmaps 更新光照贴图 |
Updates the Scale in Lightmap property in the lightmaps based on the LOD level boundaries. 更新光照贴图基于LOD层次边界光照贴图属性比例。 |
![]() 上传给导入器 |
Uploads the LOD level boundaries to the importer 上传LOD层次边界给导入器 |