查看英文版本:Recommended allocation way for Part ID of Catalog

根据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