2013-04-08 3 views
7

쿼터니언을 방향 벡터로 바꾸는 것에 관해서는 많은 질문을 찾을 수 있지만 그 반대의 경우에는 내가 뭔가 잘못하고 있다고 생각하게 만듭니다. 그러나 나와 함께 견뎌야합니다.방향 벡터를 쿼터니온 회전으로 변환

내가하려는 것은 단순히 화살표 모델을 사용하여 방향성 조명의 방향을 표시하는 것입니다.

방향성 광원의 방향은 단위 벡터이지만 모델은 쿼터니언을 사용하여 회전됩니다.

그래서 .. 빛의 방향과 일치하도록이 모델을 어떻게 회전합니까?

나는 빛이 위치는 없지만 모델은 그렇다고해서 미친 짓을 할 수는 없다.

답변

10

방향 벡터가 정의 된 회전이 아니어도 가능한 솔루션 수가 무한합니다. 축을 중심으로 회전하는 방법에 대한 정보는 없습니다. 둘째, 벡터와 회전 (의미있는 중심을 가짐) 및 실제로 완전히 정의 된 행렬 인 벡터가 가능합니다.

회전이 무의미하기 때문에 참조 용으로 위쪽 벡터를 사용하십시오 (즉, 빛이 아래로 빛나지 않는 한 또는 다른 참조가 필요하지 않은 경우).

방향 벡터 D와 위쪽 벡터 U의 교차 곱을 측면 벡터 S로 가져온 다음 D와 S를 교차하여 새 U n을 얻습니다. 그런 다음 D, U n, S를 행 (또는 계산 규칙 설정 방법에 따라 열)을 행렬로 사용하십시오. 행렬과 쿼터니온은 잘 알려진 수학입니다.

+0

http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ – Kit10

+0

방향 및 위쪽 벡터를 매트릭스로 변환하는 데 대한 세부 정보 : https://stackoverflow.com/questions/18558910/direction-vector 회전 매트릭스 –