중급 튜토리얼 2-3 (마지막)
Ogre3D 삽질란/Intermediate Tutorial 2 2008. 12. 10. 18:30
심화학습용 문제들
쉬운 문제
1. 지형을 바라보기위해 카메라를 지형으로부터 적어도 10 unit만큼 떨어지게끔 했습니다. 10 unit이란 거리는 그냥 적당히 정한 수치입니다. 지형을 꿰뚫지 않고 더 가까이 갈 수 있는 수치로 설정할 수 있을까요? 만약 가능하다면 그 수치로 static class 멤버변수값으로 설정해 보세요.
2. SceneEditor의 경우 가끔씩은 지형을 통과하고 싶을때가 있습니다. 키보드로 flag값을 토글하여 충돌검사를 on/off 할 수 있도록 만들어 보세요. 충돌검사가 off인 경우 frameStarted에서 SceneQuery를 만들지 마세요.
보통 문제
1. 카메라위치가 변경되지 않아도 항상 SceneQuery는 수행됩니다. 카메라가 움직인 경우에만 SceneQuery가 수행되도록 이 문제점을 고쳐보세요. (힌트 : ExampleFrameListener의 translation vector를 찾아서 Vector3::ZERO와 비교해 보세요.)
어려운 문제
1. 장면에서 쿼리를 호출하는 과정에서 중복되는 코드가 너무 많습니다. SceneQuery와 관련된 기능을 하나의 protected 함수로 묶으세요. 지형은 항상 선택되지 않는다는 것을 고려해야 합니다.
고급 문제
1. 이 튜토리얼에서는 객체를 지형에 위치시키는데 RaySceneQuery를 사용했습니다. 이 기능은 다양한 목적으로 사용될 수 있습니다. 우선 튜토리얼1의 코드를 가지고 어려운문제 1번을 해결하세요. 그리고 코드를 잘 조합하여 로봇이 텅빈 공간이 아닌 지형위를 걷게끔 만들어 보세요.
2. 지형에서 클릭을 할때마다 로봇이 그 위치로 이동하게끔 만들어 보세요.