764だけどちょっと書いてみた。逆回転して逆移動してるだけだから、Viewマトリックス限定。
void getInverseVMatrix(float src[], float inv[])
{
for(int x=0;x<3;++x){
for(int y=0;y<3;++y){
inv[y*4+x] = src[x*4+y];
}
}
inv[3] = inv[7] = inv[11] = 0.0;
inv[12] = (-src[12]) * inv[0] + (-src[13]) * inv[4] + (-src[14]) * inv[8];
inv[13] = (-src[12]) * inv[1] + (-src[13]) * inv[5] + (-src[14]) * inv[9];
inv[14] = (-src[12]) * inv[2] + (-src[13]) * inv[6] + (-src[14]) * inv[10];
inv[15] = 1.0;
}