COLLADAでSIDを解決するためのルール、特にCOLLADAFXSIDはあまり明確ではありません。特にCOLLADAFXSIDに関して、特定のSIDの検索を開始する要素をどのように知ることができますか?たとえば、<texture>
要素の「テクスチャ」属性について考えてみます。
<effect id="Scene_Material_fx">
<profile_COMMON>
<newparam sid="acorn_png_surface">
<surface type="2D">
<init_from>acorn_png_img</init_from>
</surface>
</newparam>
<newparam sid="acorn_png_sampler">
<sampler2D>
<source>acorn_png_surface</source>
</sampler2D>
</newparam>
<technique sid="default">
<phong>
...
<diffuse>
<texture texture="acorn_png_sampler" texcoord="diffuse_TEXCOORD"></texture>
</diffuse>
...
</phong>
</technique>
</profile_COMMON>
</effect>
<texture>
で検索を開始すると、参照されるSIDを見つけることができます<profile_COMMON>
。これは、参照を含む要素の曽祖父母ですが、<texture>
から検索を開始すると、それも見つけることができます<effect>
。では、開始要素はどのように決定されますか?仕様のどこかで定義されていますか?
<texture>
仕様は、特定の要素によって参照されるsidがドキュメントルートにどれだけ近いかを制限しますか?上記の例では、親<profile_COMMON>
の内部など、外部に表示される可能性がありますか?<effect>
その要素からドリルダウンすることによって参照されるsidを見つけることが保証されている「最もルートの」要素はどれですか?
更新:私はこの質問をCOLLADAフォーラムにも投稿しましたが、これまでのところ回答はありません。当面は、<texture>
「texture」属性で参照されるSIDが常に。の下にあると想定することにしました<profile_COMMON>
。それが間違っている場合は、インポーターが有効な入力に失敗する可能性があることを意味しますが、COLLADAコミュニティ自体はこれに関するフィードバックを提供していないため、私にできることは何もありません。