Ogre3D Basic Tutorials / Базовые туториалы Ogre3D: Basic Tutorial 2: Cameras, Lights, and Shadows

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

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

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

wuffur 09.07.11 в 13:35

-1

Теперь нам надо зарегистрировать плоскость, чтобы мы могли использовать ее в своем приложении.

Mingun 15.10.11 в 11:46

0

Класс MeshManager содержит следы всех сеток, которые мы загрузили в приложение(например, это содержит след robot.mesh и ninja.mesh, которые мы использовали)

wuffur 09.07.11 в 13:48

0

Класс MeshManager отслеживает все загруженные нашим приложением меши (например следит за robot.mesh и ninja.mesh которые мы использовали).

alexx_x 15.07.11 в 06:46

1

Класс MeshManager отслеживает все загруженные нашим приложением сетки (например, следит за использованными нами сетками robot.mesh и ninja.mesh).

Mingun 20.07.11 в 14:18

1
+5

Функция-член createPlane принимает значение и делает сетку из параметров.

wuffur 09.07.11 в 13:50

0

Функция-член createPlane() принимает определение плоскости и создает сетку на основе своих параметров.

Mingun 15.10.11 в 11:49

0

Это регистрирует нашу плоскость для использования:

ghostintheshell 10.07.11 в 21:31

0

Она регистрирует нашу плоскость для использования.

Mingun 15.10.11 в 11:50

0

И снова, мы не будем глубоко вникать в специфические особенности того, как использовать MeshManager (обратитесь к соответствующему разделу API если вам нужно увидеть, что в точности делает каждый параметр)

wuffur 10.07.11 в 20:52

0

И снова, мы не будем глубоко вникать в специфические особенности того, как использовать MeshManager (обратитесь к соответствующему разделу API, если вам нужно увидеть, что в точности означает каждый параметр).

Mingun 20.07.11 в 14:22

0

В основном мы зарегистрировали плоскость, чтобы она была 1500 к 1500 в размере, и новый mesh назвали "землей"

ghostintheshell 10.07.11 в 21:32

-1

Мы просто создали плоскость размером 1500x1500 и называли этот меш "ground".

alexx_x 13.07.11 в 08:29

0

Мы просто создали плоскость размером 1500 на 1500 условных единиц и назвали получившуюся сетку "ground".

Mingun 20.07.11 в 14:24

0

Теперь, мы можем создать сущность из этого mesh и поместить ее в сцену:

ghostintheshell 10.07.11 в 21:33

0

Теперь мы можем создать объект Entity из этой сетки и поместить его в сцену:

Mingun 20.07.11 в 14:25

1

замечательно ха? Есть еще две вещи, которые мы должны сделать с нашей землей прежде, чем мы закончим с ней.

ghostintheshell 10.07.11 в 21:35

0

Замечательно, да? Однако, прежде чем мы закончим, мы должны сделать ещё две вещи с нашей землёй.

Mingun 20.07.11 в 14:28

1

во первых нужно сказать SceneManager, что мы не хотим, чтобы он бросил тени, так как это - то, что используется для теней, чтобы спроецировать.

ghostintheshell 10.07.11 в 21:36

-1

Во первых нужно сказать SceneManager, что мы не хотим чтобы наш объект ground отбрасывал тень, так как он предназначен для того чтобы тени отбрасывались на него.

alexx_x 13.07.11 в 08:30

1

Во-первых, нужно сообщить менеджеру сцены, что мы не хотим, чтобы земля отбрасывала тень, поскольку она должна её принимать.

Mingun 20.07.11 в 14:31

1
+1

Вторая вещь, это то что мы должны поместить текстуру в нее.

ghostintheshell 10.07.11 в 21:36

-1

Во вторых, мы должны наложить текстуру на нашу плоскость.

alexx_x 13.07.11 в 08:31

0

Во-вторых, мы должны наложить на неё текстуру.

Mingun 20.07.11 в 14:32

0
+1

mesh ниндзя уже имеет материальный сценарий определённый для него.

ghostintheshell 10.07.11 в 21:37

-1

Скрипт материала уже определен как для меша робота так и для ниндзи.

alexx_x 13.07.11 в 08:33

1

Сетки робота и ниндзя уже имеют определенные для них материалы.

Mingun 20.07.11 в 14:34

1
+2

Когда мы вручную создали mesh земли, мы не определяли какую текстуру использовать на ней.

ghostintheshell 10.07.11 в 21:38

0

Когда мы создавали mesh нашей земли, мы не указали какую текстуру он будет использовать.

alexx_x 13.07.11 в 08:34

1

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

Mingun 20.07.11 в 14:35

1

. Мы будем использовать сценарий материала "Examples/Rockwall", который Людоед включает с его образцами:

ghostintheshell 10.07.11 в 21:38

0

Мы будем использовать материал "Examples/Rockwall" который идет с примерами Ogre.

alexx_x 13.07.11 в 08:35

2
+1

Это - то, как функция createScene до сих пор выглядит:

ghostintheshell 10.07.11 в 21:38

0

Вот так должна выглядеть наша функция createScene в данный момент:

Mingun 20.07.11 в 14:37

1

Теперь, когда у нас есть Ниндзя и земля на сцене, давайте компиилировать и запускать программу.

ghostintheshell 10.07.11 в 21:39

0

Теперь, когда в сцене есть Ниндзя и земля, давайте скомпилируем и запустим программу.

Mingun 20.07.11 в 14:40

1

И мы видим... ничего!

proVIDec 03.07.11 в 03:29

1

И мы увидим... ничего!

Mingun 22.07.11 в 13:57

0

И ничего мы не увидим :-D

alexx_x 27.07.11 в 13:36

0

Что такое? В предыдущей обучающей программе мы добавили сущности, и они были на экране.

ghostintheshell 10.07.11 в 21:40

0

Что же произошло? В предыдущем уроке мы добавляли Роботов и они нормально отображались.

Mingun 22.07.11 в 14:00

1

Причина, по котокой Ниндзя нет, состоит в том, что рассеянный свет сцены задан полной темнотой.

ghostintheshell 10.07.11 в 21:40

0

Причина, по которой Ниндзя не показывается, состоит в том, что окружающее освещение сцены установлено в полную темноту.

Mingun 20.07.11 в 14:44

1

Так что давайте добавим свет, чтобы видеть то, что продолжается.

ghostintheshell 10.07.11 в 21:41

0

Так что давайте добавим свет, чтобы видеть содержимое нашей сцены.

alexx_x 13.07.11 в 08:36

1

Так что давайте добавим источник света, чтобы видеть, что происходит.

Mingun 20.07.11 в 14:45

2

Типы Огней

ghostintheshell 10.07.11 в 21:41

-1

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

alexx_x 13.07.11 в 08:37

0

ТИПЫ ИСТОЧНИКОВ СВЕТА

Mingun 20.07.11 в 14:45

2

Есть три типа освещения которые Людоед, обеспечивает.

ghostintheshell 10.07.11 в 21:42

-1

Есть три типа освещения которые может использовать Ogre.

alexx_x 13.07.11 в 08:37

1

Ogre предоставляет три типа источников света.

Mingun 20.07.11 в 14:47

1

точечные (Ogre::Light::LT_POINT) – точечные огни излучают свет в каждом направлении одинаково.

ghostintheshell 10.07.11 в 21:42

0

Точечный (Ogre::Light::LT_POINT) - точечные источники света излучают свет во всех направлениях.

Mingun 20.07.11 в 14:47

1

прожектор (тип источника света в трёхмерной компьютерной графике Spotlight ) (Ogre::Light::LT_SPOTLIGHT) - прожектор работает точно как реальный прожектор. У Вас есть положение, где свет начинается, и затем свет достигает пика в направлении.

ghostintheshell 10.07.11 в 21:43

0

Spotlight (тип источника света в трёхмерной компьютерной графике) (Ogre::Light::LT_SPOTLIGHT) - работает точно также как прожектор. Вы задаете позицию и направление излучаемого света.

alexx_x 13.07.11 в 08:38

0

Прожектор (Ogre::Light::LT_SPOTLIGHT) - работает точно также, как прожектор. Вы задаёте позицию источника света и направление, в котором свет будет излучаться.

Mingun 20.07.11 в 14:49

2
+2

Вы также можете сообщить свету, насколько большой угол(рассеивания света?) использовать во внешнем круге света и внутреннем круге света(Ну, вы знаете, что (flashlight) импульсный источник света ярче в середине, а потом становится ярче после определенной точки)

wuffur 11.07.11 в 04:53

0

Вы также можете задать углы, которые определяют размеры внутреннего и внешнего круга света (вы ведь знаете, что свет от прожектора наиболее ярок в центре, а начиная с некоторого момента начинает затухать?).

Mingun 20.07.11 в 14:53

1
+1

Направленный (Ogre::Light::LT_DIRECTIONAL) - направленный свет моделирует далекий свет, который попадает на все в сцене по направлению. Скажем, у Вас есть ночная сцена времени, и Вы хотите моделировать лунный свет.

ghostintheshell 10.07.11 в 21:47

0

Directional (Ogre::Light::LT_DIRECTIONAL) - Направленный свет эмулирует далекий источник света такой как солнце или луна, так что он освещает все содержимое сцены под одним углом.

alexx_x 13.07.11 в 08:40

1

Направленный (Ogre::Light::LT_DIRECTIONAL) - направленный источник света моделирует свет от очень далекого объекта, который приходит в сцену с одного направления. Скажем, для ночной сцены это может быть лунный свет.

Mingun 20.07.11 в 14:56

0

Вы могли сделать это, устанавливая рассеянный свет для сцены, но это не вполне реалистично, так как луна не освещает все одинаково (чего не делает солнце).

ghostintheshell 10.07.11 в 21:48

0

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

Mingun 20.07.11 в 15:00

0

Один способ сделать это - установить направленный свет и место в направлении, где луна будет сиять.

ghostintheshell 10.07.11 в 21:48

0

Один из способов добиться требуемого состоит в том, чтобы использовать направленное освещение и установить ему то направление, откуда приходит свет луны.

Mingun 20.07.11 в 15:03

0

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

ghostintheshell 10.07.11 в 21:49

0

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

wuffur 16.07.11 в 08:49

0

Источники света обладают обширным набором свойств, которые определяют, как выглядит данный источник. Два из них являются наиболее важными – это цвета рассеянного (diffuse) и бликового (specular) освещения. Каждый скрипт материала определяет, сколько рассеянного и бликового освещения отражает материал; управление данными свойствами мы изучим в одном из следующих уроков.

Mingun 20.07.11 в 15:13

0
+2

Создание Огней

ghostintheshell 10.07.11 в 21:49

0

СОЗДАНИЯ ОСВЕЩЕНИЯ

wuffur 16.07.11 в 08:51

0

СОЗДАНИЕ ИСТОЧНИКОВ СВЕТА

Mingun 20.07.11 в 15:14

0

Чтобы создать Свет в Людоеде, мы вызываем createLight SceneManager членская функция и добавляем имя света, очень похоже на то, как мы создаем сущность или Камеру.

ghostintheshell 10.07.11 в 21:50

0

Чтобы создать освещение в Ogre мы вызываем функцию-член createLight класса SceneManager и называем свет, это очень похоже на то, как создается объект Entity или Camera.

wuffur 16.07.11 в 08:58

0

Для создания источника света в Ogre мы вызываем метод createLight объекта SceneManager и передаём ему имя источника света – все очень похоже на то, как создаются объекты Entity или Camera.

Mingun 20.07.11 в 15:16

0
+1

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

ghostintheshell 10.07.11 в 21:50

0

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

wuffur 16.07.11 в 09:01

0

После создания источника света мы можем вручную установить ему позицию, либо присоединить к узлу сцены, чтобы потом его можно было перемещать.

Mingun 20.07.11 в 15:18

0

В отличие от объекта Камеры, у света только есть setPosition и setDirection (а не полный набор функций движения как translate, pitch, yaw, roll, и т.д.).

ghostintheshell 10.07.11 в 21:54

0

В отличии от объекта Camera, источник света имеет только методы setPosition и setDirection (а не полный набор функций для перемещения, вроде translate, pitch, yaw, roll и т.д.).

Mingun 20.07.11 в 15:20

0

Так, если Вы должны создать постоянный свет, Вы должны вызвать setPosition членскую функцию.

ghostintheshell 10.07.11 в 21:55

0

Таким образом если вам необходимо создать стационарный источник света, воспользуйтесь функцей setPosition.

alexx_x 13.07.11 в 08:51

2
+3

Если Вы нуждаетесь в свете, чтобы двигаться (такой как создание света, который следует за персонажем), то Вы должны приложить это к SceneNode вместо этого.

ghostintheshell 10.07.11 в 21:55

0

Если вам нужно перемещать ваш источник света (к примеру создать источник света который перемещается вслед за персонажем), необходимо прикрепить его к SceneNode.

alexx_x 13.07.11 в 09:15

1

Если же вам нужно перемещать источник света (к примеру, создать источник света, следующий за персонажем), вы должны присоединить его к объекту SceneNode.

Mingun 20.07.11 в 15:24

1

Так, давайте начнем со Света основной точки.

ghostintheshell 10.07.11 в 21:56

0

Тогда давайте начнем с основного точечного света.

wuffur 18.07.11 в 16:06

0

Итак, давайте начнем с самого основного источника света – точечного.

Mingun 20.07.11 в 15:24

0

сделаем, создадим свет, установим его тип, и установим его положение:

ghostintheshell 10.07.11 в 21:56

0

Первое, что мы сделаем - это создадим свет, установим его тип, и установим его положение.

wuffur 18.07.11 в 16:07

0

Первое, что мы сделаем – создадим источник света, установим его тип и позицию:

Mingun 20.07.11 в 15:25

0

Теперь, когда мы создали свет, мы можем выбрать его разбросанный и зеркальный цвет. Давайте сделаем его красным:

ghostintheshell 10.07.11 в 21:56

0

Теперь, когда мы создали свет, мы можем выбрать его рассеяние и зеркальный цвет. Давайте сделаем его красным:

wuffur 18.07.11 в 16:08

0

Теперь, когда мы создали источник света, мы можем установить его рассеянный и бликовый цвета освещения. Давайте сделаем его красным:

Mingun 20.07.11 в 15:27

0

Теперь соберите и запустите приложение. Успех!

ghostintheshell 10.07.11 в 21:56

0

Теперь скомпилируйте и запустите приложение. О да!

Mingun 20.07.11 в 15:28

0

! Мы можем теперь видеть Ниндзя, и он бросает тень.

ghostintheshell 10.07.11 в 21:57

0

Теперь мы можем видеть Ниндзя и он отбрасывает тень.

Mingun 20.07.11 в 15:28

0
+2

Убедитесь, что также смотрели на него с фронта, полного силуэта.

ghostintheshell 10.07.11 в 21:57

-1

Убедитесь, что вы также смотрите на него спереди, и видите его полное изображение.

wuffur 18.07.11 в 16:10

1

Убедитесь в этом, взглянув на него спереди, вы увидите сзади его силует.

Mingun 15.10.11 в 12:51

0

заметьте одну вещь которая состоит в том, что Вы не "видите" источника света.

ghostintheshell 10.07.11 в 21:57

0

Заметьте также то, что вы не "видите" источник света.

Mingun 20.07.11 в 15:30

0

Вы видите свет, который это производит, но не фактический световой объект непосредственно.

ghostintheshell 10.07.11 в 21:58

-1

Вы видите свет, который производит источник, но не сам действующий объект, который испускает свет.

wuffur 18.07.11 в 16:12

0

Вы видите свет, который он испускает, но не сам объект-источник.

Mingun 20.07.11 в 15:34

1

Многие из обучающих программ Людоеда добавляют простую сущность, чтобы показать, откуда свет излучается.

ghostintheshell 10.07.11 в 21:58

0

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

wuffur 18.07.11 в 16:13

0

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

Mingun 20.07.11 в 15:36

0

Если Вы испытываете затруднения из-за света в Вашем приложении, Вы должны рассмотреть создание чего-то подобного тому, что они делают, Вы сможете видеть точно, где Ваш свет.

ghostintheshell 10.07.11 в 21:58

0

Если у вас трудности со светом в вашем приложении, вы рассмотреть вопрос о создании чего-то схожего тому, что они уже делали так, чтобы увидеть точно, где ваш свет находится.

wuffur 18.07.11 в 16:18

0

Если вы испытываете трудности с освещением в вашем приложении, вам стоит рассмотреть вопрос создания чего-то подобного, чтобы точно видеть, где на самом деле находятся ваши источники света.

Mingun 20.07.11 в 15:39

0
+1

Затем, давайте испытывать направленный свет. Заметьте, как фронт ниндзя является черным как смола.

ghostintheshell 10.07.11 в 22:00

-1

Теперь давайте попробуем направленный источник света. Заметили, что спереди ниндзя стал черным, как смола?

Mingun 20.07.11 в 15:45

0

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

ghostintheshell 10.07.11 в 22:00

0

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

Mingun 20.07.11 в 15:59

0

создаем свет и выбираем цвет точно так же, как мы делаем для света точки:

ghostintheshell 10.07.11 в 22:01

0

Мы создаем источник света и устанавливаем его цвет точно также, как мы это делали для точечного источника света:

Mingun 20.07.11 в 16:00

0

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

ghostintheshell 10.07.11 в 22:01

0

Поскольку предполагается, что направленное освещение идет из бесконечности, мы не должны устанавливать его позицию, только направление.

Mingun 20.07.11 в 16:02

0

. Мы заставим направление света быть в положительном z, и отрицательном y направлении (как это выходит из 45 градусов впереди и выше ниндзя):

ghostintheshell 10.07.11 в 22:01

0

Мы установим направление излучаемого света положительным по оси z и отрицательным по оси y (чтобы он шел под углом 45 градусов спереди и повыше ниндзя):

Mingun 20.07.11 в 16:06

0

компилируйте и запустите приложение.

ghostintheshell 10.07.11 в 22:02

0

Компилируйте и запускайте приложение.

Mingun 20.07.11 в 16:06

0
Минутку...

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

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