Okay so now I'm a little stuck on understanding the texture coordinates. When the coordinates are between 0.0 and 1.0, my program does great, but when a coordinate is greater than 1.0, it fails. (According to Alhexx's document, when a coordinate is greater than 1.0, I should just subtract 1.0, but this doesn't seem to produce the correct result.)
Let's take a specific example: Cloud's "head" bone (aaba.p) contains one big non-textured polygon group (0) for his head+hair, then three textured polygon groups, which I will call left eye (1), right eye (2), and mouth (3).
left eye uses the first 5 coordinates (and uses texture aabb):
TextureCoordinate[0] = (1.0, 0.0625)
TextureCoordinate[1] = (1.03125, 0.9375)
TextureCoordinate[2] = (1.84375, 0.03125)
TextureCoordinate[3] = (1.84375, 0.90625)
TextureCoordinate[4] = (1.96875, 0.90625)
right eye uses the next 5 coordinates (and uses texture aabc):
TextureCoordinate[5] = (0.03125, 0.0625)
TextureCoordinate[6] = (0.8125, 0.03125)
TextureCoordinate[7] = (0.03125, 0.9375)
TextureCoordinate[8] = (0.8125, 0.90625)
TextureCoordinate[9] = (0.96875, 0.90625)
mouth uses the remaining 4 coordinates(and uses texture aabd):
TextureCoordinate[10] = (0.96875, 5.21875)
TextureCoordinate[11] = (0.46875, 5.9375)
TextureCoordinate[12] = (0.46875, 5.0)
TextureCoordinate[13] = (0.03125, 5.21875)
My program can correctly apply the texture for the right eye. Its texture coordinates are all between 0.0 and 1.0.
My program has trouble applying the textures for the left eye and the mouth. Their texture coordinates go as high as 1.96 and 5.21, respectively. I don't know how to interpret values greater than 1.0.
I don't mind digging into Borde's Kimera source code. But I'm hoping that Borde or someone else will know exactly what my problem is and can save me the trouble and explain how to interpret these coordinate values.
Thanks in advance for any insight you can give me!