gpt4 book ai didi

c++ - gltf 没有在皮肤中指定骨架值是什么意思?

转载 作者:行者123 更新时间:2023-12-03 07:22:28 27 4
gpt4 key购买 nike

阅读 tinygltf 的源代码,我看到了这个:

struct Skin {
std::string name;
int inverseBindMatrices; // required here but not in the spec
int skeleton; // The index of the node used as a skeleton root
std::vector<int> joints; // Indices of skeleton nodes

Value extras;
ExtensionMap extensions;

// Filled when SetStoreOriginalJSONForExtrasAndExtensions is enabled.
std::string extras_json_string;
std::string extensions_json_string;

Skin() {
inverseBindMatrices = -1;
skeleton = -1;
}
DEFAULT_METHODS(Skin)
bool operator==(const Skin &) const;
};
这会让你假设骨架值是强制性的。但是,在 gltf 简单皮肤示例 json 中,我看到以下内容:
  "skins" : [ {
"inverseBindMatrices" : 4,
"joints" : [ 1, 2 ]
} ],

这就是 skins 的全部内容。大批。因此,皮肤完全有可能不指定哪个是其骨架的根节点。在这种情况下,我应该在父节点处处理关节数组中的哪个节点?我可以安全地假设它是 joints 的第一个元素吗?列表?

最佳答案

From the glTF specification , skin.skeleton是“关节层次结构中最近的公共(public)根或最近公共(public)根的直接或间接父节点”。
并非所有引擎或创作工具在关节层次结构中都有“根”的概念,因此它不是必需的,但如果您的加载器需要一个,您可以简单地选择作为其他关节的共同祖先的任何节点,使用场景根本身,或在加载时插入新根。

关于c++ - gltf 没有在皮肤中指定骨架值是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64734695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com