Ogre3D Basic Tutorials / Базовые туториалы Ogre3D: Basic Tutorial 3: Terrain, Sky, and Fog

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

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

Вместо этого, этот параметр установлен в переменной d плоскости:

wuffur 12.07.11 в 20:08

1

Вместо этого параметры установлены в d переменной плоскости:

ghostintheshell 12.07.11 в 20:08

0

Теперь, поскольку у нас есть определенная плоскость, мы можем создать объект SkyPlane.

wuffur 12.07.11 в 20:09

0

сейчас, когда мы определили плоскость, мы можем создать SkyPlane.

ghostintheshell 12.07.11 в 20:10

0

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

Mingun 23.10.11 в 14:34

0

Отметьте, что четвертый параметр - это размер SkyPlane (в этом случае 1500x1500 единиц) и пятый параметр - это сколько раз нужно подвергать текстуру тайлингу:

wuffur 12.07.11 в 20:10

0

Обратите внимание, что четвертый параметр – размер SkyPlane (в данном случае 1500x1500 единиц), а пятый параметр указывает количество повторов текстуры:

Mingun 23.10.11 в 14:36

0
+2

Скомпилируйте и запустите программу. Существует две проблему, которые здесь делает параметр SkyPlane.

wuffur 12.07.11 в 20:11

-1

Скомпилируйте и запустите программу. Есть две проблемы, которые создает использование SkyPlane в данном примере.

Mingun 23.10.11 в 14:39

0

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

wuffur 12.07.11 в 20:12

0

Во-первых, используемая текстура низкого разрешения, поэтому она размножается (тайлится) неважно.

Mingun 23.10.11 в 14:40

0

Это можно исправить просто создав хорошую, с большим разрешение текстуру неба, которая будет тайлиться хорошо.

wuffur 12.07.11 в 20:13

0

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

Mingun 23.10.11 в 14:42

0

Однако, первичная проблема с этой методикой состоит в том, что если вы смотрите по направлению к горизонту, вы можете увидеть, где заканчивается объект SkyPlane.

wuffur 12.07.11 в 20:14

0

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

Mingun 23.10.11 в 14:44

0

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

wuffur 12.07.11 в 20:16

1

Этот основной метод использования объекта SkyPlane действительно полезен только, когда у вас большие стены (или горы) вокруг точки обзора.

wuffur 12.07.11 в 20:17

-1

В основном использование SkyPlane оправдано, только когда у вас есть высокие стены (или горы) вокруг точки обзора.

Mingun 23.10.11 в 14:46

0

Использование параметра SkyPlane в этой ситуации будет значительно меньше загружать графические ресурсы, чем создание полных объектов SkyBox/SkyDome.

wuffur 12.07.11 в 20:19

-1

Использование SkyPlane в такой ситуации значительно менее графически накладно, чем создание полного SkyBox/SkyDome.

Mingun 23.10.11 в 14:49

0

К счастью, это не единственное, что мы можем сделать с нашим SkyPlane.

wuffur 12.07.11 в 20:20

1

Шестым параметром относящимся к SkyPlane является знакомый нам уже параметр "renderFirst", который мы уже обсудили в секциях SkyBox и SkyDome.

wuffur 12.07.11 в 20:22

0

Шестой параметр skyplane - знакомый "renderFirst" параметр, который мы уже покрыли в секциях SkyBox и SkyDome.

ghostintheshell 12.07.11 в 20:22

0

Шестой параметр setSkyPlane – уже знакомый нам параметр "рисовать первым", который мы уже обсудили в разделах, посвященным SkyBox и SkyDome.

Mingun 23.10.11 в 14:52

0

Седьмой параметр позволяет определить кривизну SkyBox, чтобы мы больше не использовали плоскость, а вместо нее кривую поверхность.

wuffur 12.07.11 в 20:24

0

Седьмой параметр позволяет Вам определять искривление SkyPlane, так, чтобы мы больше не будем использовать плоскость, а применим искривлённую поверхность вместо этого.

ghostintheshell 12.07.11 в 20:26

0

Седьмой параметр позволяет определить кривизну SkyPlane, т.е. вместо плоскости мы будем использовать кривую поверхность.

Mingun 23.10.11 в 14:55

0

Мы также должны теперь установить число x и y сегментов, для того, чтобы создать объект SkyPlane (первоначально SkyPlane была одним большим квадратом, но если мы хотим кривизны, то нам нужно составлять плоскость из более мелких квадратов).

wuffur 12.07.11 в 20:26

0

Мы также должны теперь определить номер x, и y сегментов использованных для создания SkyPlane (первоначально, SkyPlane был одним большим квадратом, но если мы хотим искривление, нам нужно было составить плоскость из меньших квадратов).

ghostintheshell 12.07.11 в 20:28

0

Мы также должны теперь определить количество сегментов по осям x и y, используемых для создания SkyPlane (первоначально это один большой квадрат, но искривляя его, мы вынуждены разбить плоскость на маленькие квадратики).

Mingun 23.10.11 в 14:58

0

Восьмой и девятый параметр этой функции это число x и y сегментов, соответственно:

wuffur 12.07.11 в 20:27

0

Восьмой и девятый параметр этой функции – число сегментов по x и y соответственно:

Mingun 23.10.11 в 15:00

0

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

wuffur 12.07.11 в 20:29

0

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

Mingun 23.10.11 в 15:02

0

Вы также вместо этого можете использовать это с материалом облаков:

wuffur 12.07.11 в 20:30

0

Но кроме этого вы можете использовать ее с материалом облаков:

Mingun 23.10.11 в 15:03

0
+1

Скомпилируйте и запустите это приложение. Движение облаков и то, как они подверглись тайлингу, похоже немного ухудхили их вид, чем у объекта SkyDome, в особенности когда вы приближаете к краю ландшафта(поверхности земли) и заглядываете за горизонт.

wuffur 12.07.11 в 20:32

0

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

Mingun 23.10.11 в 15:12

0

Еще одно замечание, вы можете отчистить SkyPlane вызвав 'mSceneMgr->setSkyPlane(false, Ogre::Plane(), "");'

wuffur 12.07.11 в 20:33

1

И еще одно замечание: вы можете убрать SkyPlane, вызвав 'mSceneMgr->setSkyPlane(false, Ogre::Plane(), "");'.

Mingun 19.02.12 в 17:44

0

КАКОЙ ОБЪЕКТ СОСТОЯЩИЙ ИЗ ТЕКСТУР ИСПОЛЬЗОВАТЬ ДЛЯ НЕБА?

wuffur 12.07.11 в 20:34

-1

КАКОЙ ИСПОЛЬЗОВАТЬ?

wuffur 12.07.11 в 20:38

0

ЧТО ИСПОЛЬЗОВАТЬ?

Mingun 23.10.11 в 15:08

0

Какое небо использовать полностью зависит от вашего приложения.

wuffur 12.07.11 в 20:36

0

Какое небо использовать, целиком зависит от вашего приложения.

Mingun 23.10.11 в 15:13

0

Если вам нужно видеть все вокруг себя, даже в отрицательном направлении оси y, тогда у вас остается только один реальный выбор - это использование объекта SkyBox.

wuffur 12.07.11 в 20:37

0

Если вам нужно видеть все вокруг себя, даже в отрицательном направлении оси y (<i>напомним, вверх направлена ось y, а не z – прим. пер.</i>), тогда у вас остается только один реальный выбор – использование SkyBox.

Mingun 23.10.11 в 15:15

0

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

wuffur 12.07.11 в 20:49

0

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

wuffur 12.07.11 в 20:49

0

Если у вас есть ландшафт или какой-то вид пола, блокирующий обзор в отрицательном направлении оси y, то использование SkyDome, кажется, дает наиболее реалистичные результаты.

Mingun 23.10.11 в 15:18

0

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

wuffur 12.07.11 в 20:52

0

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

Mingun 23.10.11 в 15:22

0

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

wuffur 12.07.11 в 20:53

0

Основная причина использования SkyPlane, как мы увидим в следующем разделе &ndash; ее использование отлично сочетается с эффектами тумана.

Mingun 23.10.11 в 15:24

0

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

wuffur 12.07.11 в 20:54

1

ТУМАН

wuffur 12.07.11 в 20:54

0

ВВЕДЕНИЕ В ТУМАН

wuffur 12.07.11 в 20:54

0
+2

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

wuffur 13.07.11 в 04:58

-1

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

Mingun 23.10.11 в 15:30

0

Напротив, это просто фильтр применяемый на все объекты, на которые вы сейчас смотрите.

wuffur 13.07.11 в 04:59

1

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

wuffur 13.07.11 в 05:02

0

Из этого следует то, что когда вы смотрите в никуда, фактически тумана вы не видите (туман присутствует только на объектах).

alexx_x 13.07.11 в 05:03

0

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

Mingun 23.10.11 в 15:32

0
+1

На самом деле, вы можете увидеть только какой цвет фона объекта viewport.

wuffur 13.07.11 в 05:03

0

На самом деле вы увидите всего лишь цвет фона области просмотра.

Mingun 23.10.11 в 15:34

0

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

wuffur 13.07.11 в 05:05

0

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

Mingun 23.10.11 в 15:37

0

Существуют два типа тумана: линейный и экспоненциальный.

wuffur 13.07.11 в 05:07

0

Существуют два основных типа тумана: линейный и экспоненциальный.

Mingun 23.10.11 в 15:38

0

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

wuffur 13.07.11 в 05:09

0

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

Mingun 23.10.11 в 15:40

0

Легче увидеть разницу, чем ее объяснить, поэтому перейдем к примерам.

wuffur 13.07.11 в 05:10

0

Легче увидеть разницу, чем объяснить ее, поэтому перейдем к примерам.

Mingun 23.10.11 в 15:41

0

ТИПЫ ТУМАНОВ

wuffur 13.07.11 в 05:10

1

ВИДЫ ТУМАНА

wuffur 13.07.11 в 05:11

0

ТИПЫ ТУМАНА

Mingun 23.10.11 в 15:41

0

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

wuffur 13.07.11 в 05:12

0

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

Mingun 23.10.11 в 15:43

0

Первой вещью, которую мы собираемся сделать после вызова функции setWorldGeometry будет установление цвета фона объекта viewport.

wuffur 13.07.11 в 05:14

0

Первой вещью, которую мы сделаем после вызова setWorldGeometry – установим фоновый цвет области просмотра.

Mingun 23.10.11 в 15:44

0

Мы можем сделать это, переопределив функцию createViewport(как мы уже делали в последнем разделе руководства), но иногда нам нужно будет установить ее без того, чтобы заново создавать viewport каждый раз.

wuffur 13.07.11 в 05:16

0

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

Mingun 23.10.11 в 15:47

0

Так мы делаем это:

wuffur 13.07.11 в 05:16

0

Поэтому мы сделаем вот так:

Mingun 23.10.11 в 15:49

0

Вы можете использовать функцию-член getNumViewports, чтобы получить количество объектов viewport и пройтись по ним в итерационном цикле если у вас более чем один viewport, но поскольку они редки в этом случает (и поскольку мы знаем, что у нас есть только один viewport), мы можем просто напрямую взять viewport.

wuffur 13.07.11 в 05:19

0

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

Mingun 23.10.11 в 15:54

0

Когда мы установим цвет фона, мы можем создать этот туман.

wuffur 13.07.11 в 05:19

0

Как только мы установим цвет фона, мы можем создать туман:

Mingun 23.10.11 в 15:55

0

Первый параметр функции setFog - это установление вида тумана(в нашем случае, линейный)

wuffur 13.07.11 в 05:20

0

Первый параметр setFog &ndash; тип тумана (в данном случае линейный).

Mingun 23.10.11 в 15:56

0

Вторым параметром относящимся к функции setFog является цвет тумана, который мы используем(в этом случае очень очень светлый серый цвет или "WhiteSmoke" для C#)

wuffur 13.07.11 в 05:24

0

Второй параметр setFog – цвет тумана, который мы используем (в данном случае очень очень светлый серый или "WhiteSmoke" для C#).

Mingun 23.10.11 в 15:58

0

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

wuffur 13.07.11 в 05:25

0

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

Mingun 23.10.11 в 15:59

0

В этом случае нам нужно установить стартовую точку на 50 и точку остановки на 500.

wuffur 13.07.11 в 05:27

-1

В данном случае мы установили начальную позицию тумана в 50 единиц, а конечную &ndash; в 500 единиц.

Mingun 23.10.11 в 16:00

0

Это означает, что в диапазоне от 0 до 50 перед камерой нет тумана. От 50 до 500 единиц от камеры, становиться более плотным по линейному закону.

wuffur 13.07.11 в 05:29

0

Это означает, что в диапазоне от 0 до 50 перед камерой нет тумана. От 50 до 500 единиц туман сгущается по линейному закону.

Mingun 23.10.11 в 16:01

0

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

wuffur 13.07.11 в 05:30

0

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

Mingun 23.10.11 в 16:02

0

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

wuffur 13.07.11 в 06:40

0

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

Mingun 23.10.11 в 16:04

0
Минутку...

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

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