Index: code/renderer/tr_model_iqm.c =================================================================== --- code/renderer/tr_model_iqm.c (revision 2147) +++ code/renderer/tr_model_iqm.c (working copy) @@ -104,17 +104,23 @@ float wy = 2.0f * rot[3] * rot[1]; float wz = 2.0f * rot[3] * rot[2]; - mat[ 0] = scale[0] * (1.0f - (yy + zz)); - mat[ 1] = scale[0] * (xy + wz); - mat[ 2] = scale[2] * (xz - wy); + vec3_t newScale; + + newScale[0] = 1.0f / scale[0]; + newScale[1] = 1.0f / scale[1]; + newScale[2] = 1.0f / scale[2]; + + mat[ 0] = newScale[0] * (1.0f - (yy + zz)); + mat[ 1] = newScale[1] * (xy + wz); + mat[ 2] = newScale[2] * (xz - wy); mat[ 3] = -DotProduct((mat + 0), trans); - mat[ 4] = scale[0] * (xy - wz); - mat[ 5] = scale[1] * (1.0f - (xx + zz)); - mat[ 6] = scale[2] * (yz + wx); + mat[ 4] = newScale[0] * (xy - wz); + mat[ 5] = newScale[1] * (1.0f - (xx + zz)); + mat[ 6] = newScale[2] * (yz + wx); mat[ 7] = -DotProduct((mat + 4), trans); - mat[ 8] = scale[0] * (xz + wy); - mat[ 9] = scale[1] * (yz - wx); - mat[10] = scale[2] * (1.0f - (xx + yy)); + mat[ 8] = newScale[0] * (xz + wy); + mat[ 9] = newScale[1] * (yz - wx); + mat[10] = newScale[2] * (1.0f - (xx + yy)); mat[11] = -DotProduct((mat + 8), trans); }