Add support for IQM int blend indices and float blend weights

Integer blend indices are converted to bytes at load, ioq3 doesn't allow more than 128 joints.

Heavily based on code by @zippers.
This commit is contained in:
Zack Middleton committed 2013-10-29 22:09:06 -05:00
1 parent 1515841b38
commit 0bf1f3d0ba
4 files changed
+150 -46

No files matched your search

+9 -1
View File
@@ -1094,10 +1094,18 @@ typedef struct {
float *normals;
float *tangents;
byte *blendIndexes;
byte *blendWeights;
union {
float *f;
byte *b;
} blendWeights;
byte *colors;
int *triangles;
// depending upon the exporter, blend indices and weights might be int/float
// as opposed to the recommended byte/byte, for example Noesis exports
// int/float whereas the official IQM tool exports byte/byte
byte blendWeightsType; // IQM_BYTE or IQM_FLOAT
int *jointParents;
float *jointMats;
float *poseMats;