1 Root 객체 #
- Root 객체는 ogre 시스템의 진입점이며, 어플리케이션 전반에 걸쳐서 1개만 생성되어야만 한다.
- 여러가지 설정변경을 쉽게 해주는 기능 제공.
- SceneManager, RenderSystem와 같은 여러 자원 시스템 객체에 대한 포인터를 반환하는 메소드를 제공한다.
- 연속적인 랜더링을 위한 루프 시동함수인 startRendering메소드를 제공한다.
2 RenderSystem 객체 #
- 내장된 3D API 인터페이스를 정의하기위한 추상 클래스.
- 상속된 모든 랜더링 시스템은 각각의 플렛폼 전용 시스템을 의미 (예 : D3DRenderSystem-> direct3d)
- 현재 랜더시스템 객체는 Root::initialise 메소드를 사용하여 시스템이 초기화 된 이후에 Root::getRenderSystem() 메소드로 얻을 수 있다.
- 일반적으로 SceneManager와 같은 객체에서 참조가 가능하므로 굳이 처음에 참조할 필요는 없다.
- 여러개의 랜더링 뷰를 가질경우와 같은 경우에는 고려해야함.
8 오버레이 #
- 일반 scene 컨텐츠보다도 카메라시점에서 가장 앞에 배치되도록 해주는 시스템.
- SceneManager::createOverlay로 생성가능.
- 생성시점에서는 기본적으로 숨겨져있으며, show()메소드로 보이도록 설정해야한다.
- 여러개의 오버레이 객체들을 표시할수 있으며, z 순서는 Overlay::setZOrder()로 조정할 수 있다.
8.1 2D 개체 생성하기 #
- OverlayElement 클래스 : 오버레이에 추가되는 2D 개체 추상 클래스. 오버레이에 추가되는 모든 객체는 이 클래스로부터 상속받는다. 자기만의 사용자 컨트롤을 만들려면 이 클래스를 상속받아 만들면 된다. 기본속성은 위치, 크기, 재질명을 들수 있다.
- OverlayContainer : 다른 OverlayElement 클래스를 담을 수 있는 OverlayElement 객체. 컨테이너안에서는 지역 좌표계를 사용하여 관리하기 때문에 컨테이너를 옮기면 포함된 모든 객체가 옮겨진다.
- GuiManager : 모든 오버레이 객체를 만들려면 GuiManager::createOverlayElement을 호출해야만 한다.
8.2 오버레이에 객체 추가하기 #
- 단지 OverlayContainers만이 오버레이에 직접 추가할 수 있다. 그이유는 컨테이너내부에 각각의 레벨은 담겨져있는 객체들의 z순서를 만들기 때문.
- Overlay::add2D : 오버레이에 컨테이너를 추가한다.
- OverlayContainer::addChild : 컨테이너에 객체를 추가한다.









![[http]](/wiki/imgs/http.png)
