Ogre3D Basic Tutorials / Базовые туториалы Ogre3D: Basic Tutorial 1: An introduction to the most basic Ogre constructs: SceneManager, SceneNode, and Entity objects.

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

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

Решение этой проблемы зависит от того, какую версию Visual C++ вы используете, поэтому четкого рецепта здесь нет, но основные шаги должны быть теми же самыми.

alexx_x 06.07.11 в 13:48

0

Правый клик по вашему проекту в "solution explorer", (не по самому пункту "solution") и выбираем "properties".

alexx_x 06.07.11 в 13:50

0

Где то в свойствах конфигурации должна быть опция "Debugging".

alexx_x 06.07.11 в 13:50

0

Там выбираем поле "Working directory"

alexx_x 06.07.11 в 13:51

0

Там указываем расположение исполняемых файлов вашего проекта.

alexx_x 06.07.11 в 13:52

0

Если вы не представляете себе что писать в этом поле, обратите внимание на поле "Command" которое также должно находится в "debugging options".

alexx_x 07.07.11 в 05:39

0

Если вы не представляете, что писать в эту директорию, попробуйте скопировать поле "Command", которое также должно быть в меню options дебагера.

wuffur 11.07.11 в 07:10

0
+2

Для примера, в Visual C++ 2003, поле "Command" должно содержать что то вроде "..\..\bin\$(ConfigurationName)\$(TargetFileName)".

alexx_x 07.07.11 в 05:40

0

Для поля "Working Directory" мы копируем поле "Command" удалив $(TargetFileName).

alexx_x 07.07.11 в 05:41

0

Таким образом в "Working Directory" будет "..\..\bin\$(ConfigurationName)".

alexx_x 07.07.11 в 05:42

0

Содержимое этого поля зависит от того какую версию Visual C++ вы используете, а также от того чем вы собираете ваше приложение, так что перед этим обязательно проверьте что содержится в поле "Command".

alexx_x 07.07.11 в 05:45

0

Проверьте что вы изменили "Working Directory" для обоих конфигураций, как Release, так и Debug.

alexx_x 07.07.11 в 05:45

0

В Visual C++ 2005 нужные поля вероятно будут располагаться немного по дргугому.

alexx_x 07.07.11 в 05:47

0

Для начала попробуйте указать в этом поле каталог "..\..\bin\$(ConfigurationName)", если приложение все еще не запускается - поэкспериментируйте или попробуйте спросить совета на форумах посвященных огру.

alexx_x 07.07.11 в 05:48

0

Если вы используете Code::Blocks, тогда вам необходимо сделать то же самое, правый клик по вашему проекту, выбираем "Properties...", переходим на вкладку "Build targets", и изменяем содержимое поля "Execution working dir:" указывая в нем тот же каталог в который помещаются исполняемые файлы (см. поле Output filename).

alexx_x 07.07.11 в 05:56

0

Причина по которой мы делаем это - Ogre ожидает что некоторые файлы будут находится в том же каталоге что и исполняемые, и без настройки рабочего каталога (working directory) на каталог в котором находятся эти файлы приложение не запустится.

alexx_x 07.07.11 в 06:12

0
+1

Итак вы запустили ваше приложение, теперь удалим весь код внутри функции createScene() оставив саму функцию.

alexx_x 07.07.11 в 06:15

0

Мы будем писать код внутри этой функции и давать объяснение каждой строке нашего кода.

alexx_x 07.07.11 в 06:18

0

КАК OGRE РАБОТАЕТ

proVIDec 28.06.11 в 14:06

0

Довольно объемный раздел. Мы начнем со SceneManager и пройдем до Entities и SceneNodes

alexx_x 07.07.11 в 06:22

0

Эти три класса основные строительные блоки Ogre.

alexx_x 07.07.11 в 06:23

0

ОСНОВЫ SCENEMANAGER

alexx_x 07.07.11 в 06:24

0

Все что вы видите в окне вашего приложения, управляется SceneManager (примерно так).

alexx_x 07.07.11 в 06:25

1

Когда вы добавляете объект к сцене, SceneManager берет на себя управление его позиционированием.

alexx_x 07.07.11 в 06:26

0

Когда вы создаете объект Camera чтобы видеть сцену (в следующих туториалах мы рассмотрим это), то за ними опять же следит SceneManager.

alexx_x 07.07.11 в 06:29

0

Когда вы создаете объекты Plane, Billboards, Lights и все остальное, то SceneManager также берет на себя управление их положением и позиционированием.

alexx_x 07.07.11 в 06:30

0

Есть несколько типов SceneManager.

alexx_x 07.07.11 в 06:34

0

Есть SceneManager предназначенный для отрисовки ландшафта (Terrain), есть для отрисовки BSP Maps и так далее.

alexx_x 07.07.11 в 06:35

0

Вы можете увидеть несколько типов SceneManager перечисленных здесь.

alexx_x 07.07.11 в 06:36

0

По мере прохождения туториала мы рассмотрим это более подробно.

alexx_x 07.07.11 в 06:37

0

ОСНОВЫ ENTITY

alexx_x 07.07.11 в 06:37

0

Entity (сущность) это один из типов объектов которые вы можете добавить к сцене.

alexx_x 07.07.11 в 06:37

0

Entity представляет собой 3D объекты.

alexx_x 07.07.11 в 06:39

0

Робот будет объектом класса Entity, рыба, ландшафт по которому перемещаются ваши персонажи - все это Entity (разве что ландшафт представляет собой очень большой Entity)

alexx_x 07.07.11 в 06:40

0

Источники света, источники частиц, камеры объектами Entity не являются.

alexx_x 07.07.11 в 06:41

0

Следует упомянуть одну вещь об Ogre, он разделяет сами объекты и их расположение и ориентацию.

alexx_x 07.07.11 в 06:42

0

Это означает то что к сцене объект Entity напрямую добавить невозможно.

alexx_x 07.07.11 в 06:43

0

Вместо этого, мы можем добавить Entity к объекту SceneNode, которая уже будет содержать информацию о его положении.

alexx_x 07.07.11 в 06:44

0

ОСНОВНЫЕ ПОНЯТИЯ SCENENODE

alexx_x 07.07.11 в 06:44

0

Как уже упоминалось выше, SceneNode содержит информацию о положении и ориентации объектов которые к ней присоединены.

alexx_x 07.07.11 в 06:46

0

Когда вы создаете объект Entity, он не будет отрендерен пока вы не прикрепите его к SceneNode.

alexx_x 07.07.11 в 06:47

0
+1

SceneNode сам по себе не отображается на экране.

alexx_x 07.07.11 в 06:48

0

Только в том случае если вы создадите SceneNode и прикрепите к нему Entity (или другой объект) вы имеете шанс реально что то увидеть.

alexx_x 08.07.11 в 09:42

0

К SceneNode можно присоединить любое количество объектов.

alexx_x 07.07.11 в 06:49

0

Давайте предположим что у вас есть персонаж который ходит по кругу, и вы хотите чтобы он освещал окружающее пространство.

alexx_x 07.07.11 в 06:50

0

Мы можем сделать это следующим образом: Создадим объект SceneNode, потом создадим Entity которое будет представлять собой нашего персонажа и прикрепим его к SceneNode.

alexx_x 07.07.11 в 06:51

0

Затем мы создадим источник света (Light) и прикрепим его к той же SceneNode что и персонажа.

alexx_x 07.07.11 в 06:51

0

SceneNode также может быть прикреплена к другим SceneNodes что позволяет создавать иерархию нод.

alexx_x 07.07.11 в 06:52

0

В следуюещей статье мы расскажем больше об использовании SceneNode.

alexx_x 07.07.11 в 06:53

0
+1

Один важный момент касающийся SceneNodes, это то что позиция SceneNode всегда относительна к ее предку, и каждый SceneManager содержит корневую ноду к которой прикрепляются дочерние SceneNode.

alexx_x 07.07.11 в 06:55

0

ВАШЕ ПЕРВОЕ ПРИЛОЖЕНИЕ НА OGRE

alexx_x 07.07.11 в 06:55

0
Минутку...

← Предыдущая страница

Следующая страница →