根据Catalog面向的应用场景,一个完整的Catalog实例,会由各种Part组合而成,而对某一个具体的空间坐标位置,可能有多个Part能够适配,而组成理想实例所需要的位于该空间坐标位置的Part,只需要1个。
例子:组成1个人类模型的Catalog实例,只需要1个适配右腿位置的Part,而在Catalog的Part库中,可能会有各种风格的右腿Part。
因此,在对Part进行ID分配时,如果能够有意识地对各个Part进行分类,则会更易梳理。
针对上述说明,Lightm提出对Part ID的分配方式的推荐。
由于Part ID在IRMRKCatalog
中定义为uint64
,我们同样以64位为标准来分配ID范围及其对应的功能:
功能 | Part分类ID | Part在具体分类下的子ID | Part类型 | 保留 |
---|---|---|---|---|
范围(bit) | 0-15 | 16-47 | 48 | 49-63 |
描述 | 用于Part分类,最大允许2^16 种类型 |
用于在具体类下索引某个具体的Part,一个具体的类最大可以容纳2^32 个Part |
Part类型 | |
0 - Fixed | ||||
1 - Slot | 保留位 |
Lightm会基于该模式来划分Part和显示。
你可以在Catalog Metadata中指定
"LIGHTM_CATALOG": true
以指示Lightm以Lightm推荐方式解析该Catalog中包含的所有Part。
另外,为了提升可读性,你还可以在Catalog Metadata中指定
"LIGHTM_CATALOG_PART_CLASS_NAMES": {"<PART_CLASS_ID>": "<PART_CLASS_NAME>"}
// Example
"LIGHTM_CATALOG_PART_CLASS_NAMES": {
"1": "HAND WEAR",
"2": "SHOES",
"3": "PET"
}
来给每个Part类ID命名,以在Lightm中进行语义化显示。
因为你可能会在将来添加新的Part到Catalog,所以你还需要更新 LIGHTM_CATALOG_PART_CLASS_NAMES