Готовый перевод OGRE Manual / Руководство OGRE: 1.2 Multi-everything

Я хотел большего, чем просто создать трехмерный движок, работающий на одном 3D API и одной платформе с однотипными сценами (внутренние уровни наиболее популярны). Мне хотелось, чтобы OGRE позволял реализовать любую сцену (но и позволял реализовать скрытую оптимизацию, специфичную для каждой сцены) и работал под любой платформой и трехмерным API.

Следовательно, все "видимые" части OGRE никак не зависят от платформы, трехмерного API и типа сцены. Нет никаких зависимостей ни от версии Windows, ни типа сцены, которую Вы создаете, и принципы трехмерных аспектов основаны на едином математическом ядре, а не на специфическом выполнении API.

Где-то, конечно, OGRE опустился до будничных особенностей платформ, API и сцен, но эти подклассы разработаны для решения определенных задач, при этом демонстрируют однотипный интерфейс и абстракцию.

Вот например, класс Win32Window, объединяющий все детали отображения окон на платформе Win32. Однако, же разработчик приложения может манипулирувать окнами только через интерфейс базового класса RenderWindow, который будет единым во всех платформах.

Подобным образом класс SceneManager заботится о согласовании объектов сцены и последовательности их реализации. Приложению следует использовать только этот интерфейс, но существует класс BspSceneManager, который оптимизирует управление сценой внутренних уровней, это значит, Вы получаете два производительных и простых интерфейса. Все преложения должны использовать эту особенность в зависимости от типа сцены и позволять OGRE более предпочтительную реализацию. Эту темы мы развернем в последующих главах.

Объектно-ориентированная основа OGRE делает все это возможным. На данный момент OGRE работает под Windows, Linux и Mac OS X (с плагинами, позволяющими использовать API визуализации, Direct3D или OpenGL). Приложения используют OGRE на абстрактном уровне, таким образом гарантируя, что они автоматически работают на всех платформах и подсистемах, которые поддерживают OGRE, без использования какого-либо специфичного кода для конкретной API или платформы.

Переведено на Нотабеноиде
http://notabenoid.org/book/137/1510

Переводчики: jfox

Настройки

Готово:

100.00% КП = 1.0