Collada 中的节点额外技术是啥?
Posted
技术标签:
【中文标题】Collada 中的节点额外技术是啥?【英文标题】:What is a node extra technique in Collada?Collada 中的节点额外技术是什么? 【发布时间】:2018-05-02 19:04:53 【问题描述】:我正在解析 1.4.1 Collada(从 Blender 导出),我注意到在 library_visual_scenes 部分下,一些节点有 extra technique 部分。
在网上看,并不清楚这些是做什么用的,或者我如何使用它们。我想它们是用来改变骨头的……但我不确定。为什么甚至需要这个!?为什么它没有被烤入骨基质本身?
例子:
<node id="Armature_femaleLThigh" name="femaleLThigh" sid="femaleLThigh" type="JOINT">
<matrix sid="transform">-0.9970781 0.002205959 -0.07635591 0.1638527 0.003207254 0.9999106 -0.01299338 0.3053502 0.07632041 -0.01320031 -0.9969959 0.8346263 0 0 0 1</matrix>
<node id="Armature_femaleLCalf" name="femaleLCalf" sid="femaleLCalf" type="JOINT">
<matrix sid="transform">0.9932371 0.1157223 -0.009409941 5.092525 -0.1157309 0.9932806 -3.67943e-4 -1.14292e-5 0.009304143 0.001454476 0.9999557 3.33786e-6 0 0 0 1</matrix>
<node id="Armature_femaleLFoot" name="femaleLFoot" sid="femaleLFoot" type="JOINT">
<matrix sid="transform">0.1140624 -0.991138 -0.06808402 4.458811 0.9934708 0.1139541 0.005483917 9.53674e-7 0.002323155 -0.0682651 0.9976645 2.38419e-7 0 0 0 1</matrix>
<extra>
<technique profile="blender">
<layer sid="layer" type="string">0</layer>
<roll sid="roll" type="float">-1.571044</roll>
<tip_x sid="tip_x" type="float">5.96046e-7</tip_x>
<tip_y sid="tip_y" type="float">4.347153</tip_y>
<tip_z sid="tip_z" type="float">0.9915916</tip_z>
</technique>
</extra>
</node>
<extra>
<technique profile="blender">
<layer sid="layer" type="string">0</layer>
<roll sid="roll" type="float">-1.509084</roll>
<tip_x sid="tip_x" type="float">-0.02554714</tip_x>
<tip_y sid="tip_y" type="float">-0.4897394</tip_y>
<tip_z sid="tip_z" type="float">4.431761</tip_z>
</technique>
</extra>
</node>
<extra>
<technique profile="blender">
<layer sid="layer" type="string">0</layer>
<roll sid="roll" type="float">-1.50752</roll>
<tip_x sid="tip_x" type="float">-0.06722211</tip_x>
<tip_y sid="tip_y" type="float">0.02900314</tip_y>
<tip_z sid="tip_z" type="float">5.091998</tip_z>
</technique>
</extra>
</node>
谢谢!
【问题讨论】:
【参考方案1】:额外元素是程序/库/应用程序特定的。在您的情况下,Blender 导出了 Blender 特定选项(技术或其他)。
例如,如果 Blender 重新导入文件,那么 Blender 将读取所有这些参数并配置场景。可能没有profile="blender"
Blender 无法理解额外的技术是否属于Blender。
所以基本上,它包含特定于应用程序的配置或扩展配置(扩展)。你可以把你的自定义数据放在那里,可能大多数加载器都会忽略它们。
【讨论】:
我正在实现一些骨架动画,所有带有额外元素的节点都是无法正常工作的节点。无论如何我可以找到如何使用这些信息吗? layer、roll、tip_x、tip_y 和 tip_z 并不完全自解释。 @Mike5050 COLLADA 是交换格式,额外的配置文件不是主要模式的一部分,因此动画应该在没有额外元素的情况下工作。 Blender 的 COLLADA 导出器中可能存在错误。尝试重新导入 Blender 并检查它是否正常工作。如果发现这个:khronos.org/collada/wiki/Node_Blender_extension 但它没有很好的记录。如果您想实现 Blender 特定配置文件,那么您可以阅读 Blender 源或只是将电子邮件发送到邮件列表 (lists.blender.org/mailman/listinfo/bf-committers),我想您会得到 Blender 特定配置文件的答案 嗯。我将它导入搅拌机并且 T-Position 是正确的,但是动画它只是爆炸成意大利面条,所以这对于知道问题是我的问题还是 Blender Exporter 没有帮助。啊!我想我应该放弃 Collada 并使用 FBX...以上是关于Collada 中的节点额外技术是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 COLLADA DOM 将 COLLADA 文档输出为字符串
在 Three.JS 中通过鼠标单击选择 Collada 对象