-small Bugfix in Ogre Animation Loading, still not fully functional, but a bit better now
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@628 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
ce71d7c775
commit
61fb6cf3f1
|
@ -248,7 +248,8 @@ void OgreImporter::ReadSubMesh(SubMesh &theSubMesh, XmlReader *Reader)
|
||||||
|
|
||||||
}//end of boneassignments
|
}//end of boneassignments
|
||||||
}
|
}
|
||||||
DefaultLogger::get()->debug(str(format("Positionen: %1% Normale: %2% TexCoords: %3%") % theSubMesh.Positions.size() % theSubMesh.Normals.size() % theSubMesh.Uvs.size()));
|
DefaultLogger::get()->debug(str(format("Positionen: %1% Normale: %2% TexCoords: %3%")
|
||||||
|
% theSubMesh.Positions.size() % theSubMesh.Normals.size() % theSubMesh.Uvs.size()));
|
||||||
DefaultLogger::get()->warn(Reader->getNodeName());
|
DefaultLogger::get()->warn(Reader->getNodeName());
|
||||||
|
|
||||||
|
|
||||||
|
@ -661,12 +662,12 @@ void OgreImporter::CreateAssimpSkeleton(const std::vector<Bone> &Bones, const st
|
||||||
{
|
{
|
||||||
aiMatrix4x4 t0, t1, t2, t3, t4;
|
aiMatrix4x4 t0, t1, t2, t3, t4;
|
||||||
//Create a matrix to transfrom a vector from the bones default pose to the bone bones in this animation key
|
//Create a matrix to transfrom a vector from the bones default pose to the bone bones in this animation key
|
||||||
aiMatrix4x4 PoseToKey=aiMatrix4x4::Translation(Animations[i].Tracks[j].Keyframes[k].Position, t0)
|
aiMatrix4x4 PoseToKey=aiMatrix4x4::Scaling(Animations[i].Tracks[j].Keyframes[k].Scaling, t1) //scale
|
||||||
* aiMatrix4x4(Animations[i].Tracks[j].Keyframes[k].Rotation.GetMatrix())
|
* aiMatrix4x4(Animations[i].Tracks[j].Keyframes[k].Rotation.GetMatrix()) //rot
|
||||||
* aiMatrix4x4::Scaling(Animations[i].Tracks[j].Keyframes[k].Scaling, t1);
|
* aiMatrix4x4::Translation(Animations[i].Tracks[j].Keyframes[k].Position, t0); //pos
|
||||||
|
|
||||||
aiMatrix4x4 DefBonePose=aiMatrix4x4::Translation(CurBone->Position, t2)
|
aiMatrix4x4 DefBonePose=aiMatrix4x4::Rotation(CurBone->RotationAngle, CurBone->RotationAxis, t3)
|
||||||
* aiMatrix4x4::Rotation(CurBone->RotationAngle, CurBone->RotationAxis, t3);
|
* aiMatrix4x4::Translation(CurBone->Position, t2);
|
||||||
//The defautl bone pose doesnt have a scaling value
|
//The defautl bone pose doesnt have a scaling value
|
||||||
|
|
||||||
//calculate the complete transformation from world space to bone space
|
//calculate the complete transformation from world space to bone space
|
||||||
|
@ -687,18 +688,6 @@ void OgreImporter::CreateAssimpSkeleton(const std::vector<Bone> &Bones, const st
|
||||||
|
|
||||||
NewNodeAnim->mScalingKeys[k].mTime=Animations[i].Tracks[j].Keyframes[k].Time;
|
NewNodeAnim->mScalingKeys[k].mTime=Animations[i].Tracks[j].Keyframes[k].Time;
|
||||||
NewNodeAnim->mScalingKeys[k].mValue=Scale;
|
NewNodeAnim->mScalingKeys[k].mValue=Scale;
|
||||||
|
|
||||||
/*NewNodeAnim->mPositionKeys[k].mTime=Animations[i].Tracks[j].Keyframes[k].Time;
|
|
||||||
NewNodeAnim->mPositionKeys[k].mValue=CurBone->Position
|
|
||||||
+ Animations[i].Tracks[j].Keyframes[k].Position;
|
|
||||||
|
|
||||||
NewNodeAnim->mRotationKeys[k].mTime=Animations[i].Tracks[j].Keyframes[k].Time;
|
|
||||||
NewNodeAnim->mRotationKeys[k].mValue=aiQuaternion(CurBone->RotationAxis, CurBone->RotationAngle)
|
|
||||||
* Animations[i].Tracks[j].Keyframes[k].Rotation;
|
|
||||||
|
|
||||||
NewNodeAnim->mScalingKeys[k].mTime=Animations[i].Tracks[j].Keyframes[k].Time;
|
|
||||||
NewNodeAnim->mScalingKeys[k].mValue=1.0f //TODO currently bones don't save scaling! we need to change this, if we want to support them!
|
|
||||||
* Animations[i].Tracks[j].Keyframes[k].Scaling;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NewAnimation->mChannels[j]=NewNodeAnim;
|
NewAnimation->mChannels[j]=NewNodeAnim;
|
||||||
|
@ -755,7 +744,7 @@ void Bone::CalculateBoneToWorldSpaceMatrix(vector<Bone> &Bones)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BoneToWorldSpace=Bones[ParentId].BoneToWorldSpace * Transf;
|
BoneToWorldSpace=Transf*Bones[ParentId].BoneToWorldSpace;
|
||||||
}
|
}
|
||||||
|
|
||||||
//and recursivly for all children:
|
//and recursivly for all children:
|
||||||
|
|
Loading…
Reference in New Issue