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 |
|
|
Правый клик по вашему проекту в "solution explorer", (не по самому пункту "solution") и выбираем "properties". alexx_x 06.07.11 в 13:50 |
||
|
Где то в свойствах конфигурации должна быть опция "Debugging". alexx_x 06.07.11 в 13:50 |
||
|
Там выбираем поле "Working directory" alexx_x 06.07.11 в 13:51 |
||
|
Там указываем расположение исполняемых файлов вашего проекта. alexx_x 06.07.11 в 13:52 |
||
|
Если вы не представляете себе что писать в этом поле, обратите внимание на поле "Command" которое также должно находится в "debugging options". alexx_x 07.07.11 в 05:39 Если вы не представляете, что писать в эту директорию, попробуйте скопировать поле "Command", которое также должно быть в меню options дебагера. wuffur 11.07.11 в 07:10 |
+2 | |
|
Для примера, в Visual C++ 2003, поле "Command" должно содержать что то вроде "..\..\bin\$(ConfigurationName)\$(TargetFileName)". alexx_x 07.07.11 в 05:40 |
||
|
Для поля "Working Directory" мы копируем поле "Command" удалив $(TargetFileName). alexx_x 07.07.11 в 05:41 |
||
|
Таким образом в "Working Directory" будет "..\..\bin\$(ConfigurationName)". alexx_x 07.07.11 в 05:42 |
||
|
Содержимое этого поля зависит от того какую версию Visual C++ вы используете, а также от того чем вы собираете ваше приложение, так что перед этим обязательно проверьте что содержится в поле "Command". alexx_x 07.07.11 в 05:45 |
||
|
Проверьте что вы изменили "Working Directory" для обоих конфигураций, как Release, так и Debug. alexx_x 07.07.11 в 05:45 |
||
|
В Visual C++ 2005 нужные поля вероятно будут располагаться немного по дргугому. alexx_x 07.07.11 в 05:47 |
||
|
Для начала попробуйте указать в этом поле каталог "..\..\bin\$(ConfigurationName)", если приложение все еще не запускается - поэкспериментируйте или попробуйте спросить совета на форумах посвященных огру. alexx_x 07.07.11 в 05:48 |
||
|
Если вы используете Code::Blocks, тогда вам необходимо сделать то же самое, правый клик по вашему проекту, выбираем "Properties...", переходим на вкладку "Build targets", и изменяем содержимое поля "Execution working dir:" указывая в нем тот же каталог в который помещаются исполняемые файлы (см. поле Output filename). alexx_x 07.07.11 в 05:56 |
||
|
Причина по которой мы делаем это - Ogre ожидает что некоторые файлы будут находится в том же каталоге что и исполняемые, и без настройки рабочего каталога (working directory) на каталог в котором находятся эти файлы приложение не запустится. alexx_x 07.07.11 в 06:12 |
+1 | |
|
Итак вы запустили ваше приложение, теперь удалим весь код внутри функции createScene() оставив саму функцию. alexx_x 07.07.11 в 06:15 |
||
|
Мы будем писать код внутри этой функции и давать объяснение каждой строке нашего кода. alexx_x 07.07.11 в 06:18 |
||
|
КАК OGRE РАБОТАЕТ proVIDec 28.06.11 в 14:06 |
||
|
Довольно объемный раздел. Мы начнем со SceneManager и пройдем до Entities и SceneNodes alexx_x 07.07.11 в 06:22 |
||
|
Эти три класса основные строительные блоки Ogre. alexx_x 07.07.11 в 06:23 |
||
|
ОСНОВЫ SCENEMANAGER alexx_x 07.07.11 в 06:24 |
||
|
Все что вы видите в окне вашего приложения, управляется SceneManager (примерно так). alexx_x 07.07.11 в 06:25 |
||
|
Когда вы добавляете объект к сцене, SceneManager берет на себя управление его позиционированием. alexx_x 07.07.11 в 06:26 |
||
|
Когда вы создаете объект Camera чтобы видеть сцену (в следующих туториалах мы рассмотрим это), то за ними опять же следит SceneManager. alexx_x 07.07.11 в 06:29 |
||
|
Когда вы создаете объекты Plane, Billboards, Lights и все остальное, то SceneManager также берет на себя управление их положением и позиционированием. alexx_x 07.07.11 в 06:30 |
||
|
Есть несколько типов SceneManager. alexx_x 07.07.11 в 06:34 |
||
|
Есть SceneManager предназначенный для отрисовки ландшафта (Terrain), есть для отрисовки BSP Maps и так далее. alexx_x 07.07.11 в 06:35 |
||
|
Вы можете увидеть несколько типов SceneManager перечисленных здесь. alexx_x 07.07.11 в 06:36 |
||
|
По мере прохождения туториала мы рассмотрим это более подробно. alexx_x 07.07.11 в 06:37 |
||
|
ОСНОВЫ ENTITY alexx_x 07.07.11 в 06:37 |
||
|
Entity (сущность) это один из типов объектов которые вы можете добавить к сцене. alexx_x 07.07.11 в 06:37 |
||
|
Entity представляет собой 3D объекты. alexx_x 07.07.11 в 06:39 |
||
|
Робот будет объектом класса Entity, рыба, ландшафт по которому перемещаются ваши персонажи - все это Entity (разве что ландшафт представляет собой очень большой Entity) alexx_x 07.07.11 в 06:40 |
||
|
Источники света, источники частиц, камеры объектами Entity не являются. alexx_x 07.07.11 в 06:41 |
||
|
Следует упомянуть одну вещь об Ogre, он разделяет сами объекты и их расположение и ориентацию. alexx_x 07.07.11 в 06:42 |
||
|
Это означает то что к сцене объект Entity напрямую добавить невозможно. alexx_x 07.07.11 в 06:43 |
||
|
Вместо этого, мы можем добавить Entity к объекту SceneNode, которая уже будет содержать информацию о его положении. alexx_x 07.07.11 в 06:44 |
||
|
ОСНОВНЫЕ ПОНЯТИЯ SCENENODE alexx_x 07.07.11 в 06:44 |
||
|
Как уже упоминалось выше, SceneNode содержит информацию о положении и ориентации объектов которые к ней присоединены. alexx_x 07.07.11 в 06:46 |
||
|
Когда вы создаете объект Entity, он не будет отрендерен пока вы не прикрепите его к SceneNode. alexx_x 07.07.11 в 06:47 |
+1 | |
|
SceneNode сам по себе не отображается на экране. alexx_x 07.07.11 в 06:48 |
||
|
Только в том случае если вы создадите SceneNode и прикрепите к нему Entity (или другой объект) вы имеете шанс реально что то увидеть. alexx_x 08.07.11 в 09:42 |
||
|
К SceneNode можно присоединить любое количество объектов. alexx_x 07.07.11 в 06:49 |
||
|
Давайте предположим что у вас есть персонаж который ходит по кругу, и вы хотите чтобы он освещал окружающее пространство. alexx_x 07.07.11 в 06:50 |
||
|
Мы можем сделать это следующим образом: Создадим объект SceneNode, потом создадим Entity которое будет представлять собой нашего персонажа и прикрепим его к SceneNode. alexx_x 07.07.11 в 06:51 |
||
|
Затем мы создадим источник света (Light) и прикрепим его к той же SceneNode что и персонажа. alexx_x 07.07.11 в 06:51 |
||
|
SceneNode также может быть прикреплена к другим SceneNodes что позволяет создавать иерархию нод. alexx_x 07.07.11 в 06:52 |
||
|
В следуюещей статье мы расскажем больше об использовании SceneNode. alexx_x 07.07.11 в 06:53 |
+1 | |
|
Один важный момент касающийся SceneNodes, это то что позиция SceneNode всегда относительна к ее предку, и каждый SceneManager содержит корневую ноду к которой прикрепляются дочерние SceneNode. alexx_x 07.07.11 в 06:55 |
||
|
ВАШЕ ПЕРВОЕ ПРИЛОЖЕНИЕ НА OGRE alexx_x 07.07.11 в 06:55 |
