- April 24, 2013 at 3:13 am #31245
This may have come up before in a few different discussions under different guises. Here’s the problem – with ALPHA uppercase to emphasise that it causes the problem and is separate from vertex color channel:
Exporting objects/meshes with both vertex ALPHA and UV0 channel uses the vertex color RGBA for UV0 channel. With no vertex ALPHA assigned to a mesh this doesn’t happen and you get the correct UV0 coordinates exported. ie. You can have vertex colous assigned but no alpha and everything still works as expected.
I believe (if I remember correctly from my 3dsMax SDK days) the reason for this is the way 3dsMax stores its vertex ALPHA internally. If you have any vertex alpha assigned then they are stored internally as UV0 due to some legacy SDK stuff. In order to account for this an exporter should check for the presence of vertex ALPHA and adjust the UV mapping indices. by one.
I have double checked this is occurring by checking the vertex colors exported against the UV0 channel in PVRShaman and UVW matches RGB for vertex color as RGBA, and UV1 matches my UV0 mapping (there is no UV1 mapping in 3dsMax). You can check the presence of vertex alpha by using the Channel Info tool in 3dsMax – you will see that vertex color channel and vertex alpha channels are separate.
Hard to believe nobody else has picked up on this, surely UV mapped, vertex color & alpha meshes aren’t that uncommon?!
Any chance you can correct this behaviour and account for the presence of vertex alpha and release a new 3dsMax POD exporter? I’m having to work around it for now by exporting the scene with 2 UV channels, checking if vertex colors exist and using uv channel 1 instead of 0, but this is wasteful to both export size and to the size of interleaved vertex data being pushed to the device as there is a redundant UV0 channel.April 24, 2013 at 9:14 am #37161