gtSceneSystem
abstract class : gtRefObject

Класс для управления сценой.
Можно обойтись без него, тогда придётся делать свои frustum cull и т.д.

Методы
gtSceneSystem::addCamera
virtual gtCamera* addCamera( const v4f& position = v4f(), const v4f& target = v4f(), s32 id = -1, bool setActive = true ) = 0;
Добавить виртуальную камеру.
По умолчанию имеет тип Look. Чтобы изменить тип смотрите соответствующий метод.

gtSceneSystem::addCamera2D
virtual gtCamera* addCamera2D( const v4f& viewport, s32 id = -1, bool setActive = true ) = 0;
Добавить 2D камеру.
Это Free камера с ортогональной проекцией.

gtSceneSystem::addDummy
virtual gtDummy* addDummy( const v4f& position = v4f(), const gtStringA& name = gtStringA(), s32 id = -1 ) = 0;
Добавить объект-пустышку.
Этот объект не отображается. Он имеет матрицу трансформации, и его можно использовать для построения иерархий.

gtSceneSystem::addSprite
virtual gtSprite* addSprite( gtTexture * texture, const v2f& size, const v4f& position = v4f(0.f,0.f,5.f, 0.f), bool asBillboard = false ) = 0;
Добавить 2D плоскость с текстурой.
Камера с типом Camera_2D настроена на показ спрайтов. Но спрайт можно использовать и в 3D измерении.

gtSceneSystem::addStaticObject
virtual gtStaticObject* addStaticObject( gtRenderModel* model, const v4f& position = v4f(), const gtStringA& name = gtStringA(), s32 id = -1 ) = 0;
Добавить не анимированную модель.

gtSceneSystem::clearScene
virtual void clearScene() = 0;
Удаляет все объекты со сцены, которые были добавлены вызовом метода с префиксом `add`.

gtSceneSystem::disableShadows
virtual void disableShadows() = 0;
Выключить тени

gtSceneSystem::enableShadows
virtual void enableShadows() = 0;
Включить тени

gtSceneSystem::getActiveCamera
virtual gtCamera* getActiveCamera() = 0;
Получить активную камеру.

gtSceneSystem::getDepthMap
virtual gtTexture* getDepthMap( u32 index ) = 0;
Получить depth map от стандартной тени.
Аргумент - значение от 0 до 2.

gtSceneSystem::getRootObject
virtual gtGameObjectCommon* getRootObject() = 0;
Получить корневой объект иерархии сцены.

gtSceneSystem::getSceneState
virtual gtSceneState getSceneState() = 0;
Получить состояние сцены.

gtSceneSystem::getShadowMap
virtual gtTexture* getShadowMap( /*u32 index*/ ) = 0;
Получить shadow map стандартной тени.

gtSceneSystem::getLightProjection
virtual const gtMatrix4& getLightProjection( s32 ) = 0;
Получить проекционную матрицу камеры от стандартной тени.
-1 - light камера.
0 и до количества сплитов/каскадов - проекционные матрицы этих сплитов/каскадов.

gtSceneSystem::getLightView
virtual const gtMatrix4& getLightView() = 0;
Получить видовую матрицу light камеры от стандартной тени.

gtSceneSystem::removeObject
virtual void removeObject( gtGameObject* object ) = 0;
Удалить объект со сцены.

gtSceneSystem::renderScene
virtual void renderScene() = 0;
Нарисовать сцену.

gtSceneSystem::setActiveCamera
virtual void setActiveCamera( gtCamera* camera ) = 0;
Установить активную камеру.

gtSceneSystem::setCurrentRenderDriver
virtual void setCurrentRenderDriver( gtGraphicsSystem * driver ) = 0;
Установить активный render плагин.
Экспериментальная вещь.