현재 opengl로 이것저것 하고 있는 학생입니다.
바로 질문을 드리자면
이게 현재 test용으로 만들고 있는 Cube 클래스입니다. (부끄부끄)
근데 문제는 제가 회전행렬을 쿼터니온을 이용해서 직접 만들어서 쓰고 있는데 (그렇게 하고 싶었습니다. ㅠ)
한 축에 대해서는 상관없는데 위 코드에서
#m = self.transform.RotateY( self.transform.rotation.y * PIover180 )
요 부분에서 주석제거하고 돌리면 큐브가 미쳐날뜁니다. 흡사 소닉입니다. (방향이 계속 바뀌는 소닉입니다.)
아 참고로 transform.rotation은 각 객체의 "로컬 축"입니다.
위 코드는 회전 코드입니다.
축과 각도로 부터 해당 회전 쿼터니온 생성 후
이름에서 알 수 있듯이 z축 회전이므로 x축벡터와 y축벡터를 회전시켜줍니다. (물론 local axis입니다.)
제 생각에 draw때마다 Rotate() 호출 후
해당 축들이 변화해서 그러는 것 같은데 잘 모르겠습니다. ㅠㅠ
혹시 제가 놓치거나 잘못하고 있는 부분들이 있다면 (당연히 있겠죠 ㅠ)
조언 부탁드립니다.