Maya Importer Bug

As I understand it, Collada has the ability to use a common index in poly primitives for multiple inputs. This is indicated by the inputs concerned sharing a common id attribute.

Loading a Collada file which uses this feature appears to cause a crash in the current Maya importer.

Can you please post the COLLADA file you’re experiencing the crash on?

Thanks,
G

<?xml version=“1.0” encoding=“ISO-8859-1” ?>

  • <COLLADA xmlns=“COLLADA Schema” version=“1.0.0”>
  • <library type=“IMAGE”>
    <image name=“panel” source=“C:\Library\Textures\Miscellaneous\panel.bmp” />
    </library>
  • <library type=“TEXTURE”>
  • <texture name=“panel”>
    <param name=“DIFFUSE” type=“ColorRGB” flow=“OUT” />
  • <technique profile=“COMMON1.0”>
    <input semantic=“IMAGE” source=“#panel” />
    </technique>
    </texture>
    </library>
  • <library type=“MATERIAL”>
  • <material name=“Material0”>
  • <shader>
  • <technique profile=“COMMON1.0”>
  • <pass>
    <input semantic=“TEXTURE” source=“#panel” />
    <program name=“LAMBERT” />
    </pass>
    </technique>
    </shader>
    </material>
    </library>
    <library type=“LIGHT” />
  • <library type=“GEOMETRY”>
  • <geometry name=“LayeredCube”>
  • <mesh>
  • <source name=“LayeredCube-Position”>
    <array name=“LayeredCube-Position-array” type=“float” count=“24”>-47.500000 36.000000 49.500000 -47.500000 -33.000000 49.500000 -47.500000 36.000000 -25.500000 -47.500000 -33.000000 -25.500000 49.500000 36.000000 -25.500000 49.500000 -33.000000 -25.500000 49.500000 36.000000 49.500000 49.500000 -33.000000 49.500000</array>
  • <technique profile=“COMMON1.0”>
  • <accessor source=“#LayeredCube-Position-array” count=“8” stride=“3”>
    <param name=“X” type=“float” flow=“OUT” />
    <param name=“Y” type=“float” flow=“OUT” />
    <param name=“Z” type=“float” flow=“OUT” />
    </accessor>
    </technique>
    </source>
  • <source name=“LayeredCube-Color0”>
    <array name=“LayeredCube-Color0-array” type=“float” count=“32”>0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000 0.196078 0.196078 0.196078 1.000000</array>
  • <technique profile=“COMMON1.0”>
  • <accessor source=“#LayeredCube-Color0-array” count=“8” stride=“4”>
    <param name=“R” type=“float” flow=“OUT” />
    <param name=“G” type=“float” flow=“OUT” />
    <param name=“B” type=“float” flow=“OUT” />
    <param name=“A” type=“float” flow=“OUT” />
    </accessor>
    </technique>
    </source>
  • <source name=“LayeredCube-Mapchan1”>
    <array name=“LayeredCube-Mapchan1-array” type=“float” count=“16”>0.000000 -0.773196 0.000000 0.000000 1.000000 0.000000 1.000000 -0.773196 1.000000 -0.920000 0.000000 -0.920000 1.000000 -0.711340 0.000000 -0.711340</array>
  • <technique profile=“COMMON1.0”>
  • <accessor source=“#LayeredCube-Mapchan1-array” count=“8” stride=“2”>
    <param name=“S” type=“float” flow=“OUT” />
    <param name=“T” type=“float” flow=“OUT” />
    </accessor>
    </technique>
    </source>
  • <polygons count=“6” material=“#Material0”>
    <input semantic=“POSITION” source=“#LayeredCube-Position” id=“shared” />
    <input semantic=“COLOR” source=“#LayeredCube-Color0” id=“shared” />
    <input semantic=“TEXCOORD” source=“#LayeredCube-Mapchan1” />

6 3 4 2 2 1 0 0</p>

1 1 3 0 5 3 7 2</p>

0 2 2 1 3 5 1 4</p>

2 2 4 1 5 7 3 6</p>

4 2 6 1 7 5 5 4</p>

6 2 0 1 1 7 7 6</p>
</polygons>
</mesh>
</geometry>
</library>

  • <scene>
  • <node name=“LayeredCube”>
    <instance url=“#LayeredCube” />
    </node>
    </scene>
    </COLLADA>

<polygons count=“6” material=“#Material0”>
<input semantic=“POSITION” source=“#LayeredCube-Position” id=“shared” />
<input semantic=“COLOR” source=“#LayeredCube-Color0” id=“shared” />
<input semantic=“TEXCOORD” source=“#LayeredCube-Mapchan1” />

In COLLADA 1.1 please note that <input> indices will be a required attribute so as to simplify parsing and avoid any heuristics problems.