Спасибо, но код у меня примерно такой же (т.к. у меня формат SMD, то я использую 5 весов), мне интересно как вы получаете: 
 Код
 
 uniform mat4 bind_shape_matrix; 
 uniform mat4 joints_matrices[100]; 
 uniform mat4 joints_inv_matrices[100]; 
 
Добавлено (09 сентября 2015, 23:02)
---------------------------------------------
никто не поможет? 
 я ж почти разобрался, мне бы знать как умножать кость на позицию, поясню 
 если умножаю таким образом: 
 
Код
 
 for (int i = 0; i < Кол-во_Костей; i++) 
     Финальная_Матрица[i] = Кости[i].Просчитанный_Поворот *  
     (Кости[i].Parent == -1 ?  
       Matrix::Identity() : Кости[Кости[i].Parent].Просчитанный_Поворот); 
 //Поворот кости по глобальным координатам * Родительскую ротацию, если возможно 
 
  
 Псевдо-код выше показывает такую-же картинку, как и Blender(Если не у одной кости нет позиции(в файле позиции по нулям поставил)), но если сделать следующее, то всё печально, 
 какая-то ересь получается... 
 Код
 
 for (int i = 0; i < Кол-во_Костей; i++) 
     Финальная_Матрица[i] = Кости[i].Просчитанный_Поворот_Умноженный_На_Позицию *  
     (Кости[i].Parent == -1 ?  
      Matrix::Identity() : Кости[Кости[i].Parent].Просчитанный_Поворот_Умноженный_На_Позицию); 
 //(Поворот кости по глобальным координатам * Позицию этой кости по локальным коордам) * (Поворот родительской кости по глобальным координатам * Позицию родительской кости по локальным коордам), если возможно