VMDL LOD群组

From Valve Developer Community
Jump to: navigation, search
English

LOD(细节等级)群组是一种网格形状(模型)的组合,并且根据显示在屏幕上的近远设置他们的显示。使用LOD群组的主要原因是用于提升性能,当摄像头离模型越来越远,高精度的模型 将会切换成 更低精度的模型。

显示

  • LOD群组在大纲中的LOD群组列表(LOD Group List)下。选择一个LOD项目会切换到那个处于视窗里的LOD。
  • LOD菜单也提供了切换到LOD's的入口。
    • 设置成 AutoLod 可以模拟引擎 根据摄像头的远近切换LOD。
Note:所有模型的显示拥有8个LOD等级,但那8个等级不一定都要下定义。如果少于8个等级被下定义,则将最后一个下定义的设置用于所有未定义的等级。

创建

编辑

  • LOD群组在大纲中的 LOD群组列表(LOD Group List) 下。
  • 在属性编辑器中,选择 LOD群组列表(LOD Group List) 中的绿色 + 按钮来添加新的群组。
  • 在属性编辑器中,选择一个LOD项目来编辑。

数据结构(Data Structures)

VMDL的LOD群组数据如下:

CVLODGroupListReference m_pLodGroupList = CVLODGroupListReference
{
	LODGroupList_t* m_pObject = &LODGroupList_t_0
	string m_sFileName = ""
}

m_pLodGroupList

VMDL中LODGroupList_t的参考:

Attribute Friendly Name Description Type Default Value
属性 易记名称 描述 类型 默认值
m_pObject LODGroupList_t的指针 LODGroupList_t*
m_sFileName 外部lod group list的有关路径 string

LODGroupList_t

在VMDL中LODGroup_t的元素列表如下:

LODGroupList_t LODGroupList_t_0
{
	LODGroup_t[] m_lodGroups = 
	[
		LODGroup_t
		{
			int m_flSwitchDistance = 0
			string[] m_meshList = 
			[
				
			]
		},
		LODGroup_t
		{
			int m_flSwitchDistance = 0
			string[] m_meshList = 
			[
				
			]
		}
	]
}

LODGroup_t

Attribute Friendly Name Description Type Default Value
属性 易记名称 描述 类型 默认值
m_flSwitchDistance Switch Distance 当LOD激活后转变的距离 int 0
m_meshList Mesh List 与此组相关联的网格名称列表 string[]
Tip:始终确保你的第一个LOD群组设置了 0 转变距离(switch distance),否则你的基础网格(模型)将永远不会出现。
Note:转变距离(switch distance)是基于屏幕空间的反向值。模型在屏幕上越小,转变距离(switch distance)就越大。