중급 튜토리얼 3-3 (마지막)

Ogre3D 삽질란/Intermediate Tutorial 3 2008. 12. 11. 17:56

연습문제

 

쉬운 문제

1.    TerrainSceneManager 기본마스크로 ~0(모든 선택) 사용하여 타일을 생성합니다. 문제를 movable객체의 이름이 "tile[0][0,2]" 같은 형식인지 테스트하는것으로 해결했습니다. 아직 구현되지는 않았지만 TerrainSceneManager multiple page 제공합니다. 그리고 "tile[0][0,2]" 같은 이름이 있다면 에러가 발생될 것입니다. 루프를 돌면서 이름을 테스트하는것 대신에 TerrainSceneManager 적절하게 중복되지않는 마스크를 이용하여 모든 타일을 만들 있도록하여 문제를 해결하세요. (힌트 : TerrainSceneManager 모든 타일을 포함하는 "Terrain"이라는 이름의 SceneNode 생성합니다. 타일들을 순환하고 attach 객체들의 마스크를 적당한 값으로 바꿔주세요.)

 

보통 문제

1.    프로그램은 크게 로봇과 닌자, 2가지 객체들로만 동작됩니다. 만약 Scene Editor 구현한다면 다양한 종류의 객체들을 여러개 배치시킬 있어야 합니다. 코드를 일반화 시켜서 미리정의된 리스트로부터 제한없는 종류의 객체를 배치시킬 있도록 만들어 보세요. 에디터에서 사용 가능한 객체(닌자나 로봇, 매듭, , 기타등등) 리스트를 담는 오버레이를 생성하고 선택된 타입만 선택할 있도록 SceneQuery가 수행되게끔 구현하세요.

2.    다양한 타입의 객체를 사용하게 지금, Factory Pattern 사용해서 적절한 SceneNode 엔티티를 생성해 보세요.

 

어려운 문제

1.    이전 연습문제들을 종합하여 오우거의 모든 메쉬들(예를 들면 Media 디렉토리에 있는 모든것들) 읽어들인다음에 배치시킬 있도록 만들어 보세요. 오우거가 배치시킬 있는 객체들의 수에는 한계가 없습니다. 쿼리마스크에는 32가지의 한계가 존재하므로 화면상의 객체들의 쿼리 flag값들을 재빠르게 바꿔줄 있는 방법을 구상해 내야 입니다..

2.    이미 발견하셨을지 모르겠지만 객체를 클릭했을때 바운딩박스 하단으로부터 들어올려지는현상이 발생합니다. 확인하기 위해서 높게 위치한 아무런 캐릭터를 하나 클릭해서 옮겨보세요. 일시적으로 위치에 제약없이 이동할 있는 상태가 됩니다. 프로그램을 수정하여 문제를 고쳐보세요.

 

심화학습 문제

1.    Ctrl키를 누르고 여러객체들을 클릭하면 다수의 객체들이 하이라이트화되는것 같이 다수의 객체를 선택할 있는 기능을 구현하세요. 객체들을 이동시키면 그룹으로 이동되게끔 만드세요.

2.    많은 장면에디터 프로그램들은 객체들을 그룹으로 묶어서 같이 이동시킬 있게끔 하는 기능들을 제공합니다. 프로그램에서 이러한 기능을 구현시키세요.

: