2012-03-23 1 views
1

Ogre3D에서 사용자 지정 중심점을 중심으로 노드를 회전하려고하는데이 방법을 찾지 못하는 것 같습니다. 쿼터니언과 행렬을 살펴 봤지만 내가하려고하는 것을하지 않는 것 같습니다.하지만 솔직히 말해서 완전히 이해할 수는 없습니다.Ogre3D : 사용자 지정 중심점을 기준으로 한 회전

아래 그림은 내가 원하는 것을 보여줍니다 (상단에서 보았 듯이 벽에 '문'이 있음). 'o'는 중심점 (힌지)을 나타내고 'x'는 문 '' '벽을 나타냅니다.

- Original position 
- What I get:   What I want: 

    == x x o x x ==  == x o x x x == 

- After a 90 degree clockwise rotation: 
- What I get:   What I want: 

     x 
     x     x 
    ==  o  ==  == o  == 
     x     x 
     x     x 
          x 
+0

전환 및 회전을 결합하지 않는 이유는 무엇입니까? –

답변

2

항상 같은 지점을 중심으로 (예 : 문처럼) 회전하려는 객체의 경우 가장 쉬운 방법은 실제로 객체의 피벗 점을 변경하는 것입니다.

Maya/Max/Blender의 아티스트가 쉽게 수행 할 수 있습니다.

또는 원하는 장면에서 추가 장면 노드에 문을 부착 할 수 있습니다. 그런 다음 추가 장면 노드를 회전시킵니다. 이것은 오우거에서 모든 것을 할 수 있다는 이점이 있습니다.

+0

유망한 소리. 우리는 그것을 시도 할 것입니다. –

0

matrix calculus의 관점에서 기본적인 기술이다 :

  • 이동 모델 점에

  • 는 당신이 시도 할 수 있습니다 모델

첫째을 회전 Translate(...)을 실행하고 Rotate(...) 다음에 1 티 나도 이것에 suceedeed, 번역 및 회전 데이터와 함께 하나의 단일 매트릭스를 사용하여 최적화 할 수 있으므로 단일 Transform(...) 전화로

희망과 함께 실행됩니다 희망이 도움이됩니다.