OGRE Manual / Руководство OGRE: 2. The Core Objects

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Этот урок дает Вам быструю сводку объектов ядра, которые Вы будете использовать в Ogre и описание для чего они используются.

seaman 09.07.08 в 12:21

-1

Это пособие дает Вам краткий обзор объектов ядра OGRE и их назначение.

jfox 17.07.08 в 06:05

1
+1

Слово о Пространстве имен.

seaman 09.07.08 в 12:22

0

Немного о пространстве имен

jfox 17.07.08 в 06:06

2

Ogre использует особенность C++ , называемую "Пространство имен". Это позволяет Вам размещать структуры, перечисления (enums), вообще все в определенные рамки, что является легким путем предотвращения конфликта имен, т.е. ситуации, когда имеются две вещи, названные одним именем. Т.к. Ogre был разработан для использования внутри других приложений, я хотел быть уверен что конфликт имен не будет проблемой. Некоторые люди предваряют их классы/типы коротоким кодом, т.к. некоторые компиляторы не поддерживают пространство имен, но я выбрал использование его, т.к. это "правильный" путь. Сожалею, если Вы не имеете нужного компилятора, но C++ стандарт был определен много лет назад, так что авторы компиляторов не имеют оправданий. Если Ваш компилятор не поддерживает пространство имен, то он возможно де**мо - возьмите лучший :)

seaman 09.07.08 в 12:33

-1

OGRE использует характерную черту с++, называемую пространством имен. Оно позволяет разместить классы, перечисления, структуры, все что в принципе вписывается в область пространства имен. А это кратчайший путь к предотвращению конфликта имен, т.е. ситуации, когда два объекта называются одинаково. Учитавая, что OGRE был разработан для использования внутри других приложений, я хотел быть уверен, что проблемы конфликта имен не возникнет. Некоторые используют префиксы в именах своих классов потому, что есть компиляторы, не поддерживающие пространство имен, но я решил его применить, так как это правильнее. Сожалею, если у Вас такой непослушнай компилятор, но ребята... Стандарт языка был определен в течении многих лет, так что создателям компиляторов нечем оправдаться. Если Ваш компилятор не поддерживает пространство имен, то скорее всего он дерьмовый. Возьмите какой-нибудь по-лучше. :wink:

jfox 19.08.08 в 18:36

0

Каждый класс или тип должен содержать префикс Orge::, например, Orge::Camera, Orge::Vector3 и так далее, это значит, что если где-то в вашем приложении вам потребуется тип Vector3, конфликт имён не возникнет. Чтобы не печатать лишнего кода, можете добавить объявление use namespace Ogre::, тогда Вам будет не нужно набирать прификс, за исключением двусмысленных ситуаций, когда имеется другое описание с таким же именем.

jfox 09.07.08 в 19:56

0

Взгляд через 3000 метров

jfox 19.08.08 в 18:07

-1

Обзор с высоты 3000 метров

Alexei_987 16.08.09 в 15:01

0

Ниже показана диаграмма некоторых объектов ядра и их расположение на общей схеме. Это вовсе не все классы, просто несколько примеров наиболее значащих, чтобы дать Вам идею их взаимодействия.
(картинка)

seaman 10.07.08 в 04:52

0

На самом верху диаграммы объект Root. Это точка входа в систему Ogre, и где Вы должны стремиться создать объекты верхнего уровня нужные Вам, такие как менеджер сцены, система визуализации и окно визуализации, загрузка плагинов, все фундаментальные вещи. Если Вы не знаете где начать, Root подоцдет почти для всего, хотя чаще он просто предоставляет Вам другие объекты, которые на самом деле делают всю работу, т.к. Root сам является более организатором и посредником.

seaman 10.07.08 в 04:57

-1

На самом верху диаграммы расположен объект root (корень). Это Ваш вход в систему, и это здесь Вам следует стремиться создавать объекты верхнего уровня, которые Вам понадобятся, такие как менеджеры сцен, системы и окна визуализации, загрузка плагинов, все фундаментальное. Если не знаете, где начать, root подойдет почти для всего, хотя обычно это всего лишь даст Вам новый объект, который и будет выполнять указанную работу, а root в большей степени организатор и посредник.

jfox 22.08.08 в 14:18

0

Большинство из остальных классов Ogre делятся на три роли:

seaman 10.07.08 в 04:59

0

Менеджер сцены.
Создержимое Вашей сцены - как она структурироавна, как выглядит из камеры и т.д. Объекты в этой области ответственны за предоставление Вам естественного декларативного интерфейса к миру, который Вы строите, т.е. Вы не говорите Ogre "установите это состояние визуализатора и затем визуализируй три полигона", Вы говорите "я хочу визуализировать объект тут, тут и тут с этим материалом на нем, визуализировать с этой точки" и позволяете ему сделать это.

seaman 11.07.08 в 08:30

-1

Управление сценой
Описание содержимого Вашей сцены, её структуры, отображение через камеры и т.д. Объекты этой области призваны предоставить Вам естественный интерфейс объявлений для создаваемого Вами мира. Только Вы говорите OGRE не: "Выставь вот такие состояния визуализации и отобрази три полигона.", а говорите: "Хочу объект тут, там и вот здесь, с такими-то текстурами, отобразить вот с этого места." и даете команду на выполнение.

jfox 22.08.08 в 12:49

0

Менеджер ресурсов.
Все ресурсы необходимые для визуализации - геометрия, текстуры, шрифты, все остальное. Важно руководить загрузкой, повторным использованием и выгрузкой этих вещей осторожно, и это делает этот класс.

seaman 10.07.08 в 05:11

-1

Управление ресурсами
Любой визуализации нужны ресурсы, будь то геометрия, текстуры, шрифты или что-то иное. Важно управлять загрузкой, повторным использованием и выгрузкой всех этих объектов с должным вниманием, чем и занимаются классы в этой области.

jfox 22.08.08 в 12:57

1

Визуализация.
Окончательно получение изображения на экране - это касается низко-уровневого конца процесса визуализации, специфических API систем визуализации объектов таких как буферы, состояние визуализатора и подобных и ввода всего в процесс. Классы в подсистеме Менеджера сцены используют его ждя отображения их высоко-уровневой информации на экране.

seaman 11.07.08 в 09:10

-1

Визуализация
Ну и наконец, здесь мы получаем картинку на экране. Тут содержатся нижний уровень конвейера визуализации, характерные объекты API системы визуализации, такие как буферы, состояния визуализации и модуль, направляющий все это на конвейер. Классы подсистемы управлениями сценами используют функции этого модуля для доставки их высокоуровневой информации о сцене на экран.

jfox 22.08.08 в 13:09

0

Вы заметите, что тут разбросана уйма плагинов. OGRE разработан расширяемым, а плагины - обычный путь расширяемости. Многие классы OGRE могут быть дополнены подклассами и расширены, как то организация сцены с использованием специального менеджера сцен, добавление новой реализации системы визуализации (например, Direct3D или OpenGL), или предоставление возможности загрузки ресурсов из другого источника (скажем, из Интернета или базы данных)/ Опять же это лишь малая часть того, что могут дать плагины, но как Вы видите, они могут быть подключены почти к любому аспекту системы. Таким образом, OGRE не является решением какой-то одной четко поставленной задачи, его можно расширить и приспособить к любым Вашим нуждам.

jfox 22.08.08 в 13:41

0
Минутку...