2012-04-16 2 views
3

I는 두 개의 4 × 4 OPENGL 행렬이 -두 개의 4x4 행렬을 뺍니다 - 이것이 가능합니까?

  • 1 행렬은 프레임에서 객체의 회전 및 위치를 차지하고 0

  • 2 매트릭스 프레임 X에서 객체의 회전 및 위치를 차지하고;

    I 프레임 0와 X 사이에 개체의 오프셋 (offset) 운동을 검색 할

는 난 그냥 모두를 뺄 경우 (가능)이 충분하다?

CMatrix4x4 offsetMatrix = matrixAtFrameX - matrixAtFrame0; 

I이 매트릭스가 나는 두 매트릭스를 뺄 수있는 애니메이션 프레임 X.

  • 프레임 0 사이의 변환의 오프셋 프레임 뼈 변환 행렬에 따라 수출하고 누구인지?

  • 결과는 무엇입니까?

+0

할 수는 있지만 의미가 없습니다. 상대 정보를 검색하는 올바른 방법은 @AndreasBrinck의 대답을 참조하십시오. – ja72

답변

8

당신은 프레임 0

matrixOffset = inverse(matrixAtFrame0) * matrixAtFrameX 

이 당신에게 프레임 사이의 상대적인 변환 및 회전을 줄 것이다에서 행렬의 역행렬과 프레임 X에서 행렬을 곱해야합니다.

+0

죄송합니다, 나는 순서는 여기에 '일'이라고 생각 - 내가 함께 가야한다 : INVERSE (MatrixAtFrame0) * MatrixAtFrameX 또는 MatrixAtFrameX * INVERSE (MatrixAtFrame0) ? 감사합니다. – PeeS

+0

표준 OpenGL 행렬을 가정하고 행렬을 0에서 X까지 가져 오는 행렬을 원하면 대답과 함께 제시해야합니다. –

+0

완벽한, 고마워요! – PeeS

관련 문제