Hm... guter Einwand. Ich weiß es ehrlich gesagt nicht genau. Der Collada-Loader hat mit seinen ganzen Mappings von WertX auf WertY über WertZ, aber nur wenn WertV gesetzt ist, und manche Exporter schreiben es stattdessen in WertU rein... jedenfalls schon lange die Grenze der Beherrschbarkeit hinter sich gelassen. Deine konkrete Datei hatte ja drei Sets Texturkoordinaten:
Code: Alles auswählen
<input semantic="VERTEX" source="#Box01-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Box01-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Box01-mesh-map-channel1" offset="2" set="0"/>
<input semantic="TEXCOORD" source="#Box01-mesh-map-channel3" offset="3" set="3"/>
<input semantic="TEXCOORD" source="#Box01-mesh-map-channel4" offset="4" set="4"/>
In den Nodes, wo die Meshes instanziiert werden, wird pro Texturkoord-Set eine Semantik festgelegt, also eigentlich nur eine ID.
Code: Alles auswählen
<instance_material symbol="_2_-_Default" target="#_2_-_Default">
<bind_vertex_input semantic="CHANNEL3" input_semantic="TEXCOORD" input_set="3"/>
</instance_material>
<instance_material symbol="_1_-_Default" target="#_1_-_Default">
<bind_vertex_input semantic="CHANNEL4" input_semantic="TEXCOORD" input_set="4"/>
</instance_material>
jetzt wissen wir, dass nur das zweite und dritte Set Texkoords überhaupt benutzt wird, namentlich also die "3" und "4". Die beiden werden auf die Begriffe "CHANNEL3" und "CHANNEL4" gemappt. Und diese Begriffe tauchen dann in der Material -> Effect -> Blinn -> Diffuse -Parameterdefinition wieder auf, die gleichzeitig auf einen Sampler verweist, der als Parameter in der Effektsammlung liegt, der auf ein Image in der ImageLibrary verweist, dass dann den Dateinamen der Textur enthält.
Soweit alles klar? Wundert sich noch jemand, warum ich Collada hasse? Nunja, nach dieser Logik müsstest Du, wenn alles korrekt läuft, zwei aiMeshes mit jeweils Position, Normale und 3x Texkoords bekommen. Und wenn Du zu Material 1 AI_MATKEY_UVWSRC( aiTextureType_DIFFUSE, 0) abfragst, müsstest Du eine 1 bekommen, für Material 2 müsstest Du eine 2 bekommen. Ich befürchte aber nach meiner aktuellen Darlegung eher, dass Du für Mat1 eine 3 und für Mat2 eine 4 bekommst, weil die Material Properties das Zusammenrücken der Kanäle nicht mitmachen.
Nimmst Du's mir übel, wenn ich den Bug einfach liegen lasse?