MetaFusion/docs/dna_api.md
2025-01-06 23:33:41 +08:00

27 KiB

DNA API 概述

以下是用于读取和写入 DNA 文件的主要方法概述。 以下文档适用于 C++。目前尚无 Python 文档。

此处所述,有一些类用于从流中读取 DNA 或将其写入流。这些类包括:

创建读取器后,可以用它来查询 DNA 中包含的不同信息。 创建写入器后,可以用它来在 DNA 中设置新值。

这是通过本页列出的方法完成的。这些方法根据 DNA 文件中的层级进行分组。

注意: 本页并未列出所有可用方法。有关此处列出的方法的更多详细信息以及所有可用方法的列表,请参阅相应的读取器和/或写入器文档

BinaryStreamReader

包含用于创建和销毁 BinaryStreamReader 的方法。 创建 BinaryStreamReader 时,用户可以通过指定要加载的 LOD 来过滤 DNA 文件中的数据。如此处所述,还可以通过指定要加载的数据层来进行过滤。

  • create(stream, layer = DataLayer::All, maxLOD = 0u, memRes = nullptr)
    BinaryStreamReader 的工厂方法。 参数:
    stream - 将从中读取数据的源流。 layer - 指定需要加载的数据层。 maxLOD - 要加载的最大细节级别。值为零表示加载所有 LOD。 memRes - 用于分配的内存资源。如果未提供内存资源,将使用默认分配机制。用户负责通过调用 destroy 释放返回的指针。

  • create(stream, layer, maxLOD, minLOD, memRes = nullptr)
    BinaryStreamReader 的工厂方法。 参数:
    stream - 将从中读取数据的源流。 layer - 指定需要加载的数据层。 maxLOD - 要加载的最大细节级别。 minLOD - 要加载的最小细节级别。maxLOD / minLOD 的范围为 [0, LOD 总数 - 1] 表示加载所有 LOD。 memRes - 用于分配的内存资源。如果未提供内存资源,将使用默认分配机制。用户负责通过调用 destroy 释放返回的指针。

  • create(stream, layer, lods, lodCount, memRes = nullptr)
    BinaryStreamReader 的工厂方法。 参数:
    stream - 将从中读取数据的源流。 layer - 指定需要加载的数据层。 lods - 指定要加载的具体 LOD 的数组。 lodCount - lods 数组中的元素数量。 memRes - 用于分配的内存资源。如果未提供内存资源,将使用默认分配机制。用户负责通过调用 destroy 释放返回的指针。

  • destroy(instance)
    用于释放 BinaryStreamReader 实例的方法。 参数:
    instance - 要释放的 BinaryStreamReader 实例。

BinaryStreamWriter

  • create(stream, memRes = nullptr)
    BinaryStreamWriter 的工厂方法。 参数:
    stream - 将向其写入数据的流。 memRes - 用于分配的内存资源。如果未提供内存资源,将使用默认分配机制。用户负责通过调用 destroy 释放返回的指针。

  • destroy(BinaryStreamWriter* instance)
    用于释放 BinaryStreamWriter 实例的方法。 参数:
    instance - 要释放的 BinaryStreamWriter 实例。

JSONStreamReader

  • create(stream, memRes = nullptr)
    JSONStreamReader 的工厂方法。 参数:
    stream - 将从中读取数据的源流。 memRes - 用于分配的内存资源。如果未提供内存资源,将使用默认分配机制。用户负责通过调用 destroy 释放返回的指针。

  • destroy(instance)
    用于释放 JSONStreamReader 实例的方法。 参数:
    instance - 要释放的 JSONStreamReader 实例。

JSONStreamWriter

  • create(stream, indentWidth = 4u, memRes = nullptr)
    JSONStreamWriter 的工厂方法。 参数:
    stream - 将向其写入数据的流。 indentWidth - 用于缩进的空格数。 memRes - 用于分配的内存资源。如果未提供内存资源,将使用默认分配机制。用户负责通过调用 destroy 释放返回的指针。

  • destroy(instance)
    用于释放 JSONStreamWriter 实例的方法。 参数:
    instance - 要释放的 JSONStreamWriter 实例。

setFrom() 方法

除了创建写入器的方法外,BinaryStreamReader 和 JSONStreamReader 都有一个从 Writer 继承的 setFrom() 方法,用于使用读取器中的数据初始化写入器。 使用此方法时,用于初始化写入器的数据可以按数据层进行过滤。

  • setFrom(source, layer = DataLayer::All, memRes = nullptr)
    从给定的读取器初始化写入器。 此函数通过调用读取器的每个 getter 函数并将返回值传递给写入器中的匹配 setter 函数,将所有数据从给定的读取器复制到写入器实例中。 参数:
    source - 需要从中复制数据的源 DNA 读取器。 layer - 限制应从给定源读取器接管哪些层。 memRes - 用于复制期间临时分配的可选内存资源。

读取器方法

DescriptorReader

包含用于访问角色和骨骼各种元数据的只读访问器。

  • getName() 角色名称。
  • getArchetype() 角色原型。
  • getGender() 角色性别。
  • getAge() 角色年龄。
  • getTranslationUnit() 使用的平移单位(厘米或米)。
  • getRotationUnit() 使用的旋转单位(度或弧度)。
  • getCoordinateSystem() 使用的坐标系统(x、y 和 z 轴的方向)。
  • getLODCount() 可用的细节级别(例如 6 表示以下级别可用:[0,1,2,3,4,5],其中 0 是细节最高的 LOD,5 是细节最低的 LOD)。
  • getDBMaxLOD() 此角色的 DNA 数据中存储的最大细节级别。该值相对于数据库中的 LOD-0。
  • getDBComplexity() 用于驱动此角色骨骼的输入控制接口的名称。此参数表示角色的输入控制复杂度。
  • getDBName() 角色源自的数据库的名称。来自同一数据库的所有角色必须具有相同的定义,但可能具有不同的复杂度或 LOD。

DefinitionReader

包含用于表示骨骼静态数据的 DNA 属性的只读访问器。

  • getGUIControlCount() GUI 控制器的数量。
  • getGUIControlName(index) 请求的 GUI 控制器的名称。
  • getRawControlCount() 原始控制器的数量。
  • getRawControlName(index) 请求的原始控制器的名称。
  • getJointCount() 关节的数量。
  • getJointName(index) 请求的关节的名称。
  • getJointIndicesForLOD(lod) 指定 LOD 的关节索引列表。
  • getJointParentIndex(index) 请求的关节父级的索引。 可以使用此函数遍历和重建关节层级。示例: 关节名称: [A, B, C, D, E, F, G, H, I] 层级结构: [0, 0, 0, 1, 1, 4, 2, 6, 2] 描述了以下层级结构:
    A
    ├── B
    │   ├── D
    │   └── E
    │       └── F
    └── C
         ├── G
         │   └── H
         └── I
    
    请求关节 5(关节名称:F)的父级索引将返回 4(关节名称:E)。 请求根关节的父级索引:0(关节名称:A)将返回相同的索引 0。
  • getBlendShapeChannelCount() 变形通道的数量。
  • getBlendShapeChannelName(index) 请求的变形通道的名称。
  • getBlendShapeChannelIndicesForLOD(lod) 指定 LOD 的变形通道索引列表。
  • getAnimatedMapCount() 动画贴图的数量。
  • getAnimatedMapName(index) 请求的动画贴图的名称。
  • getAnimatedMapIndicesForLOD(lod) 指定 LOD 的动画贴图索引列表。
  • getMeshCount() 网格的数量。
  • getMeshName(index) 请求的网格的名称。
  • getMeshIndicesForLOD(lod) 指定 LOD 的网格索引列表。
  • getMeshBlendShapeChannelMappingCount() 网格-变形通道映射项的数量。
  • getMeshBlendShapeChannelMapping(index) 保存指定映射索引的网格索引和相关变形通道索引的结构。
  • getMeshBlendShapeChannelMappingIndicesForLOD(lod) 指定 LOD 的网格-变形通道映射索引列表。
  • getNeutralJointTranslation(index) 绑定姿态下关节的平移值(x, y, z)。
  • getNeutralJointTranslationXs() 绑定姿态下所有关节的 X 轴平移值列表。
  • getNeutralJointTranslationYs() 绑定姿态下所有关节的 Y 轴平移值列表。
  • getNeutralJointTranslationZs() 绑定姿态下所有关节的 Z 轴平移值列表。
  • getNeutralJointRotation(index) 绑定姿态下关节的旋转值(x, y, z)。
  • getNeutralJointRotationXs() 绑定姿态下所有关节的 X 轴旋转值列表。
  • getNeutralJointRotationYs() 绑定姿态下所有关节的 Y 轴旋转值列表。
  • getNeutralJointRotationZs() 绑定姿态下所有关节的 Z 轴旋转值列表。

BehaviorReader

包含用于定义骨骼评估的 DNA 属性的只读访问器。

  • getGUIToRawInputIndices() 用于将 GUI 映射到原始控制器的输入索引。
  • getGUIToRawOutputIndices() 用于将 GUI 映射到原始控制器的输出索引。
  • getGUIToRawFromValues() 在 GUI 到原始控制器映射期间用于决定是否应评估特定条目的过滤值(下限)。
  • getGUIToRawToValues() 在 GUI 到原始控制器映射期间用于决定是否应评估特定条目的过滤值(上限)。
  • getGUIToRawSlopeValues() 在 GUI 到原始控制器映射期间用于计算输出值的计算值(斜率/梯度)。
  • getGUIToRawCutValues() 在 GUI 到原始控制器映射期间用于计算输出值的计算值(垂直截距)。
  • getPSDCount() 不同 PSD 表情的数量。
  • getPSDRowIndices() PSD(输入)索引。
  • getPSDColumnIndices() 控制器(输入)索引。
  • getPSDValues() 与每个 PSD 行和列对相关联的权重。
  • getJointRowCount() 完整未压缩关节矩阵中的行数。
  • getJointColumnCount() 完整未压缩关节矩阵中的列数。
  • getJointVariableAttributeIndices(lod) 请求的 LOD 的关节属性索引(输出索引)。
  • getJointGroupCount() 整个关节矩阵中存在的关节组数量。
  • getJointGroupLODs(jointGroupIndex) 请求的关节组中每个细节级别的行数。 每个元素的位置代表级别本身,而值表示属于该级别的关节组内的行数。例如:
    [12, 9, 3]
     │   │  └── LOD-2 包含前 3 行
     │   └── LOD-1 包含前 9 行
     └── LOD-0 包含前 12 行
    
  • getJointGroupInputIndices(jointGroupIndex) 请求的关节组包含的列索引。这些列索引指向完整的未压缩关节矩阵。
  • getJointGroupOutputIndices(jointGroupIndex) 请求的关节组包含的行索引。这些行索引指向完整的未压缩关节矩阵。
  • getJointGroupValues(jointGroupIndex) 请求的关节组包含的值。
  • getJointGroupJointIndices(jointGroupIndex) 请求的关节组包含的关节索引。
  • getBlendShapeChannelLODs() 变形通道每个细节级别的输入索引数量。 每个元素的位置代表级别本身(例如 [0,1,2,3,4,5] 值 0 是最高细节的 LOD,值 5 是最低细节的 LOD),而值表示属于该级别的输入索引数量。
  • getBlendShapeChannelInputIndices() 用于索引输入向量的输入索引。
  • getBlendShapeChannelOutputIndices() 指定变形通道输出值位置的输出索引。
  • getAnimatedMapLODs() 动画贴图每个细节级别的行数。 每个元素的位置代表级别本身(例如 [0,1,2,3,4,5] 值 0 是最高细节的 LOD,值 5 是最低细节的 LOD),而值表示属于该级别的行数(在条件表中)。
  • getAnimatedMapInputIndices() 用于索引输入值数组的输入索引。
  • getAnimatedMapOutputIndices() 指定计算输出值位置的输出索引。
  • getAnimatedMapFromValues() 用于决定是否应评估特定条目的过滤值(下限)。
  • getAnimatedMapToValues() 用于决定是否应评估特定条目的过滤值(上限)。
  • getAnimatedMapSlopeValues() 用于计算输出值的计算值(斜率/梯度)。
  • getAnimatedMapCutValues() 用于计算输出值的计算值(垂直截距)。

GeometryReader

包含与骨骼相关的几何数据的只读访问器。

  • getVertexPositionCount(meshIndex) 整个网格中顶点位置的数量。
  • getVertexPosition(meshIndex, vertexIndex) 指定网格中指定顶点的位置。顶点按顶点 ID 排序。
  • getVertexPositionXs(meshIndex) 引用网格的所有顶点位置 X 值列表。
  • getVertexPositionYs(meshIndex) 引用网格的所有顶点位置 Y 值列表。
  • getVertexPositionZs(meshIndex) 引用网格的所有顶点位置 Z 值列表。
  • getVertexTextureCoordinateCount(meshIndex) 整个网格中纹理坐标的数量。
  • getVertexTextureCoordinate(meshIndex, textureCoordinateIndex) 指定网格中指定索引的纹理坐标。
  • getVertexTextureCoordinateUs(meshIndex) 引用网格的所有纹理坐标 U 值列表。
  • getVertexTextureCoordinateVs(meshIndex) 引用网格的所有纹理坐标 V 值列表。
  • getVertexNormalCount(meshIndex) 整个网格中顶点法线的数量。
  • getVertexNormal(meshIndex, normalIndex) 指定网格中指定索引的顶点法线。
  • getVertexNormalXs(meshIndex) 引用网格的所有法线 X 值列表。
  • getVertexNormalYs(meshIndex) 引用网格的所有法线 Y 值列表。
  • getVertexNormalZs(meshIndex) 引用网格的所有法线 Z 值列表。
  • getVertexLayoutCount(meshIndex) 整个网格中顶点布局的数量。顶点布局是顶点属性的集合。
  • getVertexLayout(meshIndex, layoutIndex) 顶点布局仅包含可用于查询与顶点关联的实际属性(如位置、纹理坐标和法线)的属性索引。布局中的索引可与上述定义的 API 一起使用。
  • getVertexLayoutPositionIndices(meshIndex) 引用网格中每个顶点的位置索引。
  • getVertexLayoutTextureCoordinateIndices(meshIndex) 引用网格中每个顶点的纹理坐标索引。
  • getVertexLayoutNormalIndices(meshIndex) 引用网格中每个顶点的法线索引。
  • getFaceCount(meshIndex) 指定网格所包含的面的数量。
  • getFaceVertexLayoutIndices(meshIndex, faceIndex) 属于指定网格上某个面的顶点布局索引列表。
  • getMaximumInfluencePerVertex(meshIndex) 可能影响任何单个顶点的最大关节数量。
  • getSkinWeightsCount(meshIndex) 与指定网格关联的蒙皮权重数量。
  • getSkinWeightsValues(meshIndex, vertexIndex) 影响请求顶点的蒙皮权重列表。
  • getSkinWeightsJointIndices(meshIndex, vertexIndex) 与指定顶点的每个蒙皮权重关联的关节索引列表。关节索引的存储顺序与其关联的权重相同。
  • getBlendShapeTargetCount(meshIndex) 属于指定网格的变形目标数量。
  • getBlendShapeChannelIndex(meshIndex, blendShapeTargetIndex) 请求的变形目标对应的变形通道索引。
  • getBlendShapeTargetDeltaCount(meshIndex, blendShapeTargetIndex) 属于指定变形目标的增量数量。
  • getBlendShapeTargetDelta(meshIndex, blendShapeTargetIndex, deltaIndex) 每个受影响顶点的增量列表。
  • getBlendShapeTargetDeltaXs(meshIndex, blendShapeTargetIndex) 引用变形目标的所有增量 X 值列表。
  • getBlendShapeTargetDeltaYs(meshIndex, blendShapeTargetIndex) 引用变形目标的所有增量 Y 值列表。
  • getBlendShapeTargetDeltaZs(meshIndex, blendShapeTargetIndex) 引用变形目标的所有增量 Z 值列表。
  • getBlendShapeTargetVertexIndices(meshIndex, blendShapeTargetIndex) 受引用变形目标影响的顶点位置索引。顶点位置索引的存储顺序与其关联的增量相同。这些索引可以通过 getVertexPosition 用于查询关联的顶点本身。

Writer methods

DescriptorWriter

包含用于访问角色和骨骼各种元数据的只写访问器。

  • setName(name) Sets character name.
  • setArchetype(archetype) Sets character archetype.
  • setGender(gender) Sets character gender.
  • setAge(age) Sets character age.
  • setTranslationUnit(unit) Sets translation unit (cm or m).
  • setRotationUnit(unit) Sets rotation unit (degrees or radians).
  • setCoordinateSystem(system) Sets coordinate system (directions of the axes).
  • setLODCount(lodCount) Sets available levels of detail (e.g. 6 which means the following levels are available: [0,1,2,3,4,5], where 0 is the LOD with the highest details, and 5 is the LOD with lowest details).
  • setDBMaxLOD(lod) Sets the maximum level of detail stored in the DNA data for this character.
  • setDBComplexity(name) Sets name of the input control interface used to drive this character rig.
  • setDBName(name) Sets name of the database from which the character originates.

DefinitionWriter

包含用于表示骨骼静态数据的 DNA 属性的只写访问器。

  • clearGUIControlNames() 删除所有存储的 GUI 控制器名称。
  • setGUIControlName(index, name) 设置指定 GUI 控制器的名称。
  • clearRawControlNames() 删除所有存储的原始控制器名称。
  • setRawControlName(index, name) 设置指定原始控制器的名称。
  • clearJointNames() 删除所有存储的关节名称。
  • setJointName(index, name) 设置指定关节的名称。
  • clearJointIndices() 删除所有存储的关节索引。
  • setJointIndices(index, jointIndices, count) 将关节索引列表存储到指定索引。该索引表示整个关节索引列表的位置,而不是其单个元素的位置,即关节索引 2D 矩阵中的行索引。
  • clearLODJointMappings() 删除所有存储的 LOD 到关节列表索引的映射条目。
  • setLODJointMapping(lod, index) 设置哪些关节属于哪个细节级别。
  • clearBlendShapeChannelNames() 删除所有存储的变形通道名称。
  • setBlendShapeChannelName(index, name) 设置指定变形通道的名称。
  • clearBlendShapeChannelIndices() 删除所有存储的变形通道索引。
  • setBlendShapeChannelIndices(index, blendShapeChannelIndices, count) 将变形通道名称索引列表存储到指定索引。该索引表示整个变形通道索引列表的位置,而不是其单个元素的位置,即变形通道索引 2D 矩阵中的行索引。
  • clearLODBlendShapeChannelMappings() 删除所有存储的 LOD 到变形通道列表索引的映射条目。
  • setLODBlendShapeChannelMapping(lod, index) 设置哪些变形通道属于哪个细节级别。
  • clearAnimatedMapNames() 删除所有存储的动画贴图名称。
  • setAnimatedMapName(index, name) 设置指定动画贴图的名称。
  • clearAnimatedMapIndices() 删除所有存储的动画贴图索引。
  • setAnimatedMapIndices(index, animatedMapIndices, count) 将动画贴图名称索引列表存储到指定索引。该索引表示整个动画贴图索引列表的位置,而不是其单个元素的位置,即动画贴图索引 2D 矩阵中的行索引。
  • clearLODAnimatedMapMappings() 删除所有存储的 LOD 到动画贴图列表索引的映射条目。
  • setLODAnimatedMapMapping(lod, index) 设置哪些动画贴图属于哪个细节级别。
  • clearMeshNames() 删除所有存储的网格名称。
  • setMeshName(index, name) 设置指定网格的名称。
  • clearMeshIndices() 删除所有存储的网格索引。
  • setMeshIndices(index, meshIndices, count) 将网格名称索引列表存储到指定索引。该索引表示整个网格索引列表的位置,而不是其单个元素的位置,即网格索引 2D 矩阵中的行索引。
  • clearLODMeshMappings() 删除所有存储的 LOD 到网格列表索引的映射条目。
  • setLODMeshMapping(lod, index) 设置哪些网格属于哪个细节级别。
  • clearMeshBlendShapeChannelMappings() 删除所有存储的网格到变形通道的映射条目。
  • setMeshBlendShapeChannelMapping(index, meshIndex, blendShapeChannelIndex) 将变形通道与其网格关联。
  • setJointHierarchy(jointIndices, count) 设置描述关节之间父子关系的简单数组。 示例: 关节名称: [A, B, C, D, E, F, G, H] 层级结构: [0, 0, 0, 1, 1, 4, 2, 2] 描述了以下层级结构:
    A
    ├── B
    │   ├── D
    │   └── E
    │       └── F
    └── C
         ├── G
         └── H
    
  • setNeutralJointTranslations(translations, count) 设置绑定姿态下关节的平移值。
  • setNeutralJointRotations(rotations, count) 设置绑定姿态下关节的旋转值。

BehaviorWriter

包含用于定义骨骼评估的 DNA 属性的只写访问器。

  • setGUIToRawInputIndices(inputIndices, count) 设置用于将 GUI 映射到原始控制器的输入索引。
  • setGUIToRawOutputIndices(outputIndices, count) 设置用于将 GUI 映射到原始控制器的输出索引。
  • setGUIToRawFromValues(fromValues, count) 设置在 GUI 到原始控制器映射期间用于决定是否应评估特定条目的过滤值(下限)。
  • setGUIToRawToValues(toValues, count) 设置在 GUI 到原始控制器映射期间用于决定是否应评估特定条目的过滤值(上限)。
  • setGUIToRawSlopeValues(slopeValues, count) 设置在 GUI 到原始控制器映射期间用于计算输出值的计算值(斜率/梯度)。
  • setGUIToRawCutValues(cutValues, count) 设置在 GUI 到原始控制器映射期间用于计算输出值的计算值(垂直截距)。
  • setPSDCount(count) 设置不同 PSD 表情的数量。
  • setPSDRowIndices(rowIndices, count) 设置将成为 PSD 矩阵行的 PSD(输入)索引。
  • setPSDColumnIndices(columnIndices, count) 设置将成为 PSD 矩阵列的控制器(输入)索引。
  • setPSDValues(weights, count) 设置与每个 PSD 行和列对相关联的权重。
  • setJointRowCount(rowCount) 设置完整未压缩关节矩阵中的行数。
  • setJointColumnCount(columnCount) 设置完整未压缩关节矩阵中的列数。
  • clearJointGroups() 删除所有关节组。
  • deleteJointGroup(jointGroupIndex) 删除指定的关节组。
  • setJointGroupLODs(jointGroupIndex, lods, count) 设置指定关节组中每个细节级别的行数。 每个元素的位置代表级别本身,而值表示属于该级别的关节组内的行数。例如:
    [12, 9, 3]
     │   │  └── LOD-2 包含前 3 行
     │   └── LOD-1 包含前 9 行
     └── LOD-0 包含前 12 行
    
  • setJointGroupInputIndices(jointGroupIndex, inputIndices, count) 设置指定关节组包含的列索引。这些列索引指向完整的未压缩关节矩阵。
  • setJointGroupOutputIndices(jointGroupIndex, outputIndices, count) 设置指定关节组包含的行索引。这些行索引指向完整的未压缩关节矩阵。
  • setJointGroupValues(jointGroupIndex, values, count) 设置指定关节组包含的值。
  • setJointGroupJointIndices(jointGroupIndex, jointIndices, count) 设置指定关节组包含的关节索引。
  • setBlendShapeChannelLODs(lods, count) 设置变形通道每个细节级别的输入索引数量。 每个元素的位置代表级别本身(例如 [0,1,2,3,4,5] 值 0 是最高细节的 LOD,值 5 是最低细节的 LOD),而值表示属于该级别的输入索引数量。
  • setBlendShapeChannelInputIndices(inputIndices, count) 设置用于索引输入向量的输入索引。
  • setBlendShapeChannelOutputIndices(outputIndices, count) 设置指定变形通道输出值位置的输出索引。
  • setAnimatedMapLODs(lods, count) 设置动画贴图每个细节级别的行数。 每个元素的位置代表级别本身(例如 [0,1,2,3,4,5] 值 0 是最高细节的 LOD,值 5 是最低细节的 LOD),而值表示属于该级别的行数(在条件表中)。
  • setAnimatedMapInputIndices(inputIndices, count) 设置用于索引输入值数组的输入索引。
  • setAnimatedMapOutputIndices(outputIndices, count) 设置指定计算输出值位置的输出索引。
  • setAnimatedMapFromValues(fromValues, count) 设置用于决定是否应评估特定条目的过滤值(下限)。
  • setAnimatedMapToValues(toValues, count) 设置用于决定是否应评估特定条目的过滤值(上限)。
  • setAnimatedMapSlopeValues(slopeValues, count) 设置用于计算输出值的计算值(斜率/梯度)。
  • setAnimatedMapCutValues(cutValues, count) 设置用于计算输出值的计算值(垂直截距)。

GeometryWriter

包含与骨骼相关的几何数据的只写访问器。

  • clearMeshes() 删除所有网格。
  • deleteMesh(meshIndex) 删除指定的网格。
  • setVertexPositions(meshIndex, positions, count) 设置顶点位置。
  • setVertexTextureCoordinates(meshIndex, textureCoordinates, count) 设置顶点纹理坐标。
  • setVertexNormals(meshIndex, normals, count) 设置顶点法线。
  • setVertexLayouts(meshIndex, layouts, count) 设置属于指定网格的顶点布局。
  • clearFaceVertexLayoutIndices(meshIndex) 删除指定网格的所有顶点布局索引列表。
  • setFaceVertexLayoutIndices(meshIndex, faceIndex, layoutIndices, count) 设置属于指定面的顶点布局索引。布局索引指向通过 setVertexLayouts() 设置的数组。
  • setMaximumInfluencePerVertex(meshIndex, maxInfluenceCount) 设置可能影响任何单个顶点的最大关节数量。
  • clearSkinWeights(meshIndex) 删除指定网格的所有蒙皮权重。
  • setSkinWeightsValues(meshIndex, vertexIndex, weights, count) 设置影响引用顶点的蒙皮权重。权重总和必须等于 1。
  • setSkinWeightsJointIndices(meshIndex, vertexIndex, jointIndices, count) 设置与指定顶点的每个蒙皮权重关联的关节索引。关节索引必须按与其关联的权重相同的顺序存储。
  • clearBlendShapeTargets(meshIndex) 删除指定网格的所有变形目标。
  • setBlendShapeChannelIndex(meshIndex, blendShapeTargetIndex, blendShapeChannelIndex) 设置指定变形目标对应的变形通道索引。将网格本地变形目标索引与定义层中的绝对变形通道索引关联。
  • setBlendShapeTargetDeltas(meshIndex, blendShapeTargetIndex, deltas, count) 设置每个受影响顶点的增量。
  • setBlendShapeTargetVertexIndices(meshIndex, blendShapeTargetIndex, vertexIndices, count) 设置受指定变形目标影响的顶点位置索引。顶点位置索引必须按与其关联的增量相同的顺序存储。