Difference between revisions of "3D Skybox:ru"

From Valve Developer Community
Jump to: navigation, search
m (Преимущества)
m (Замена {{envart}} на {{envart:ru}})
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Добавление 3D-скайбокса может существенно улучшить вид карты. 3D-скайбокс - это дополнительная зона, создаваемая дизайнером уровней за пределами основной зоны, отвечающей за геймплей карты. Как карта только загрузится, движок увеличивает объекты, находящиеся в зоне 3D-скайбокса и помещает их за пределы уровня, между скайбоксом и игроком. Это используется для визуального расширения мира вокруг вашего уровня, без лишних затрат на ресурсы, т.к. по умолчанию используется масштаб 1:16. 3D-скайбоксы - это неинтерактивные части уровня - игрок и другие энтити не могут попасть в 3D-скайбокс. Геометрия 3D-скайбокса ничем не отличается от обычной геометрии уровня. Возможен бесшовный переход от обычной геометрии к объектам 3D-скайбокса (см. официальные карты на [[Counter-Strike: Source]]).
+
{{otherlang2
 +
|title=3D Skybox. Трехмерная коробка неба
 +
|en=3D_Skybox
 +
|it=3D_Skybox:it
 +
|de=3D_Skybox:de
 +
}}
 +
Включение 3D-скайбокса в карту станет мощным дополнением к визуальной составляющей уровня. Это отдельная область, которую разработчик карты располагает за границами игрового мира. Сразу после загрузки карты, движок увеличивает объекты, находящиеся в области 3D-скайбокса и помещает их за пределы уровня, между скайбоксом и игроком. Это визуально расширяет мир вашего уровня и экономит ресурсы, т.к. по умолчанию используется масштаб 1:16. 3D-скайбоксы - неинтерактивные части уровня - игрок и другие энтити не могут попасть в него. Геометрия 3D-скайбокса ничем не отличается от обычной геометрии уровня. Возможен бесшовный переход от обычной геометрии к объектам 3D-скайбокса (см. официальные карты на [[Counter-Strike: Source]]).
  
 
{{note:ru|3D-скайбокс не заменяет [[Skybox (2D):ru|2D скайбокс]]. 2D-скайбокс всегда находится на фоне 3D-скайбокса. Чтобы изменить 2D-скайбокс, см. [[Skybox (2D):ru|2D скайбокс]]}}
 
{{note:ru|3D-скайбокс не заменяет [[Skybox (2D):ru|2D скайбокс]]. 2D-скайбокс всегда находится на фоне 3D-скайбокса. Чтобы изменить 2D-скайбокс, см. [[Skybox (2D):ru|2D скайбокс]]}}
Line 5: Line 11:
 
==Преимущества==
 
==Преимущества==
  
Обычные скайбоксы - это простые двухмерные изображения, наложенные на грани куба, который окружает уровень. 3D скайбоксы - это полностью трёхмерная геометрия, точно синхронизированная с перемещением игрока. Т.к. они обрабатываются в реальном времени, они масштабируются с текущим разрешением видеокарты и поддерживают шейдеры в реальном времени, недоступные для 2D-скайбоксов.
+
Стандартные скайбоксы - это простые двухмерные изображения, наложенные на куб, окружающий уровень. 3D скайбоксы - это полностью трёхмерная геометрия, точно синхронизированная с перемещением игрока. Т.к. они обрабатываются в реальном времени, они масштабируются с текущим разрешением видеокарты и поддерживают шейдеры в реальном времени, недоступные для 2D-скайбоксов.
  
Основным преимуществом 3D-скайбокса является возможность визуально увеличить карту. Максимальный размер карты без 3D-скайбокса - 32768 юнитов на каждой стороне. Используя 3D-скайбокс, карта увеличивается в 16 раз.
+
Основным преимуществом 3D-скайбокса является возможность визуально расширить карту. Максимальный размер карты без 3D-скайбокса - 32768 юнитов на каждой стороне. Используя 3D-скайбокс, карта увеличивается в 16 раз.
  
 
Карты такого размера возможны, т.к. 3D-скайбоксы создаются в редакторе в масштабе 1/16. При компиляции карты, движок игры масштабирует их. Это не только сохраняет место в редакторе, но и ускоряет компиляцию и рендеринг.
 
Карты такого размера возможны, т.к. 3D-скайбоксы создаются в редакторе в масштабе 1/16. При компиляции карты, движок игры масштабирует их. Это не только сохраняет место в редакторе, но и ускоряет компиляцию и рендеринг.
Line 13: Line 19:
 
В связи с масштабированием 3D-скайбоксов, их карты освещённости имеют меньший размер. Поэтому объекты 3D-скайбокса не так ресурсоёмки, как обычные.
 
В связи с масштабированием 3D-скайбоксов, их карты освещённости имеют меньший размер. Поэтому объекты 3D-скайбокса не так ресурсоёмки, как обычные.
  
3D-скайбоксы могут быть использованы для преодоления лимита расстояний между локациями, если они будут созданы как основная карта в малом разрешении. Команда разработчиков мода должна учитывать это для облегчения перехода от одной карты к другой.
+
3D-скайбоксы могут быть использованы для преодоления ограничения расстояний между локациями, если они будут созданы как основная карта в малом разрешении. Команда разработчиков мода должна учитывать это для облегчения перехода от одной карты к другой.
  
 
===Основные характеристики===
 
===Основные характеристики===
Line 19: Line 25:
 
3D-скайбоксы имеют следующие характеристики:
 
3D-скайбоксы имеют следующие характеристики:
  
* По умолчанию создаются в масштабе 1/16 в редакторе и отображаются в 16 раз больше во время игры для увеличения геометрии локации.
+
* По-умолчанию, создаются в редакторе в масштабе 1/16, и во время игры увеличиваются в 16 раз, чтобы соответствовать геометрии карты.
 
* Поддерживаются материалы с шейдерами, такими как карты нормалей, вода, карты окружения, прокси, и.т.п.
 
* Поддерживаются материалы с шейдерами, такими как карты нормалей, вода, карты окружения, прокси, и.т.п.
 
* 3D-скайбоксы - не интерактивные зоны – игроки и другие энтити уровня не могут перемещаться внутри 3D скайбокса.  
 
* 3D-скайбоксы - не интерактивные зоны – игроки и другие энтити уровня не могут перемещаться внутри 3D скайбокса.  
Line 34: Line 40:
 
==Создание 3D-скайбоксов==
 
==Создание 3D-скайбоксов==
 
* Примечание для карт Portal: ''3D-скайбоксы не видны сквозь порталы.''
 
* Примечание для карт Portal: ''3D-скайбоксы не видны сквозь порталы.''
* Примечание насчет  [[sky_camera]]: точечные ентити не изменяют масштаб.
+
* Примечание насчет  [[sky_camera]]: точечные энтити не изменяют масштаб.
  
Самый эффективный способ создания скайбокса, точно вписывающегося в границы вашей карты - использование нескольких брашей карты, которые будут ориентирами при построении скайбокса. Далее подробное пошаговое объяснение:
+
Самый эффективный способ создания скайбокса, точно вписывающегося в границы вашей карты - использование нескольких брашей карты, которые будут ориентирами при построении скайбокса. Далее - подробное пошаговое объяснение:
  
# Добавьте в центр карты энтитю [[sky_camera]] (в координаты 0, 0, 0). [[sky_camera]] это ориентировочная точка отсчета, используемая движком для определения местоположения скайбокса относительно карты. Другими словами, [[sky_camera]] играет роль центра основной карты. Скайбокс будет перемещен (и отмасштабирован) в центр карты относительно этой энтити.
+
# Добавьте в центр карты энтитю [[sky_camera]] (в координаты 0, 0, 0). [[sky_camera]] - это ориентировочная точка отсчета, используемая движком для определения местоположения скайбокса относительно карты. Другими словами, [[sky_camera]] играет роль центра основной карты. Скайбокс будет перемещен (и отмасштабирован) в центр карты относительно этой энтити.
# Выберите несколько заметных деталей уровня, которые помогут вам создавать скайбокс. Для этого отлично подойдут стены, строения, дисплейсменты и другие браши, которые образуют границы карты. Проверьте, чтобы [[sky_camera]] была так же выделена. {{note:ru|Это важно, '''НЕ''' выделяйте для использования модели, потому что они не могут быть масштабируемы в редакторе.}}
+
# Выберите несколько заметных деталей уровня, которые помогут вам создавать скайбокс. Для этого отлично подойдут стены, строения, дисплейсменты и другие браши, которые образуют границы карты. Проверьте, чтобы энтити [[sky_camera]] тоже была выделена.
 +
{{note:ru|Это важно, '''НЕ''' выделяйте для использования модели, потому что они не могут быть масштабируемы в редакторе.}}
 
# Выберите пункт '''Copy''' из меню '''Edit''', или нажмите CTRL+C.
 
# Выберите пункт '''Copy''' из меню '''Edit''', или нажмите CTRL+C.
 
# Выберите пункт '''Paste Special''' из того же меню. Задайте '''Number of copies to paste''' как '''1''', и все другие параметры выставите в '''0'''. Нажмите '''OK'''. На карте появится дубликат того, что вы выделяли.
 
# Выберите пункт '''Paste Special''' из того же меню. Задайте '''Number of copies to paste''' как '''1''', и все другие параметры выставите в '''0'''. Нажмите '''OK'''. На карте появится дубликат того, что вы выделяли.
Line 45: Line 52:
 
# Не снимая выделения, выберите пункт '''Transform''' из меню '''Tools'''. Установите флажок напротив '''Scale'''. Выставите значение'''.0625 для X, Y, Z.''' Это уменьшит выделение в 16 раз, как раз под масштаб скайбокса. Нажмите '''OK'''. {{note:ru|Если вы хотите, чтобы текстуры растянулись на брашах, убедитесь в том, что включен режим '''"Texture Lock"'''}}
 
# Не снимая выделения, выберите пункт '''Transform''' из меню '''Tools'''. Установите флажок напротив '''Scale'''. Выставите значение'''.0625 для X, Y, Z.''' Это уменьшит выделение в 16 раз, как раз под масштаб скайбокса. Нажмите '''OK'''. {{note:ru|Если вы хотите, чтобы текстуры растянулись на брашах, убедитесь в том, что включен режим '''"Texture Lock"'''}}
 
# Теперь у вас есть версия вашей опорной геометрии в масштабе 1/16. Теперь переместите это туда, где вы хотите делать скайбокс. Не имеет значения где он расположен, главное чтобы он не касался остальной части карты.
 
# Теперь у вас есть версия вашей опорной геометрии в масштабе 1/16. Теперь переместите это туда, где вы хотите делать скайбокс. Не имеет значения где он расположен, главное чтобы он не касался остальной части карты.
# Удалите первую [[sky_camera]] с центра нормальной карты. ''важно'': На карте должна остаться только одна [[sky_camera]] - непосредственно в скайбоксе.
+
# Удалите первую [[sky_camera]] с центра нормальной карты. {{note:ru|На карте должна остаться только одна [[sky_camera]] - непосредственно в скайбоксе.}}
 
# Постройте геометрию скайбокса вокруг ваших ориентировочных брашей. Таким образом можно сделать совершенно незаметными швы между скайбоксом и границами карты. Можно использовать браши и дисплейсменты. Заметьте, что модели, помещаемые в скайбокс, тоже должны соответствовать масштабу 1/16. <code>hl2\models\props_skybox\coast01.mdl</code> - типичный пример модели такого масштаба. Попробуйте поместить камеру на уровне зрения игрока, это даст вам хорошее представление о том как будет выглядеть скайбокс в игре.
 
# Постройте геометрию скайбокса вокруг ваших ориентировочных брашей. Таким образом можно сделать совершенно незаметными швы между скайбоксом и границами карты. Можно использовать браши и дисплейсменты. Заметьте, что модели, помещаемые в скайбокс, тоже должны соответствовать масштабу 1/16. <code>hl2\models\props_skybox\coast01.mdl</code> - типичный пример модели такого масштаба. Попробуйте поместить камеру на уровне зрения игрока, это даст вам хорошее представление о том как будет выглядеть скайбокс в игре.
 
# Создайте вокруг вашего скайбокса полый куб, закрашенный текстурой <code>tools\toolsskybox</code>. Куб должен плотно облегать браши и модели скайбокса, без дырок во "внешнее пространство".
 
# Создайте вокруг вашего скайбокса полый куб, закрашенный текстурой <code>tools\toolsskybox</code>. Куб должен плотно облегать браши и модели скайбокса, без дырок во "внешнее пространство".
Line 61: Line 68:
 
* [http://www.type3studios.com/downloads/tutorials/SdkNutsTutorials/wiseEscape.zip HL2 sample VMF for 3D Skybox water/world]
 
* [http://www.type3studios.com/downloads/tutorials/SdkNutsTutorials/wiseEscape.zip HL2 sample VMF for 3D Skybox water/world]
  
{{envart}}
 
  
{{otherlang:ru}}
+
==Уроки по 3D скайбоксам==
{{otherlang:ru:en|3D_Skybox}}
+
Группа автора уроков в ВК [https://vk.com/project_source Project-S]
 +
 
 +
*[https://www.youtube.com/watch?v=XjH3PqMIu8c About 3D Skybox (Rus)]
 +
*[https://www.youtube.com/watch?v=oK64g7bm98k Ocean Skybpx (Rus)]
 +
*[https://www.youtube.com/watch?v=EfV477qMKOY 3D Models (Rus)]
 +
*[https://www.youtube.com/watch?v=tosebp1MSeg Easy Displacement (Rus)]
 +
*[https://www.youtube.com/watch?v=q8htPBT-0ng Brush World and disp (Rus)]
 +
*[https://www.youtube.com/watch?v=qgb0fNCaYaE Source SDK - Custom Skybox (How to create Skybox - 360 Panorama) (на Русском)]
 +
 
 +
{{envart:ru}}
  
 
[[Category:Level Design:ru]]
 
[[Category:Level Design:ru]]

Latest revision as of 08:47, 14 September 2020

English Deutsch Italiano

Включение 3D-скайбокса в карту станет мощным дополнением к визуальной составляющей уровня. Это отдельная область, которую разработчик карты располагает за границами игрового мира. Сразу после загрузки карты, движок увеличивает объекты, находящиеся в области 3D-скайбокса и помещает их за пределы уровня, между скайбоксом и игроком. Это визуально расширяет мир вашего уровня и экономит ресурсы, т.к. по умолчанию используется масштаб 1:16. 3D-скайбоксы - неинтерактивные части уровня - игрок и другие энтити не могут попасть в него. Геометрия 3D-скайбокса ничем не отличается от обычной геометрии уровня. Возможен бесшовный переход от обычной геометрии к объектам 3D-скайбокса (см. официальные карты на Counter-Strike: Source).

Note.png Примечание: 3D-скайбокс не заменяет 2D скайбокс. 2D-скайбокс всегда находится на фоне 3D-скайбокса. Чтобы изменить 2D-скайбокс, см. 2D скайбокс

Преимущества

Стандартные скайбоксы - это простые двухмерные изображения, наложенные на куб, окружающий уровень. 3D скайбоксы - это полностью трёхмерная геометрия, точно синхронизированная с перемещением игрока. Т.к. они обрабатываются в реальном времени, они масштабируются с текущим разрешением видеокарты и поддерживают шейдеры в реальном времени, недоступные для 2D-скайбоксов.

Основным преимуществом 3D-скайбокса является возможность визуально расширить карту. Максимальный размер карты без 3D-скайбокса - 32768 юнитов на каждой стороне. Используя 3D-скайбокс, карта увеличивается в 16 раз.

Карты такого размера возможны, т.к. 3D-скайбоксы создаются в редакторе в масштабе 1/16. При компиляции карты, движок игры масштабирует их. Это не только сохраняет место в редакторе, но и ускоряет компиляцию и рендеринг.

В связи с масштабированием 3D-скайбоксов, их карты освещённости имеют меньший размер. Поэтому объекты 3D-скайбокса не так ресурсоёмки, как обычные.

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

Основные характеристики

3D-скайбоксы имеют следующие характеристики:

  • По-умолчанию, создаются в редакторе в масштабе 1/16, и во время игры увеличиваются в 16 раз, чтобы соответствовать геометрии карты.
  • Поддерживаются материалы с шейдерами, такими как карты нормалей, вода, карты окружения, прокси, и.т.п.
  • 3D-скайбоксы - не интерактивные зоны – игроки и другие энтити уровня не могут перемещаться внутри 3D скайбокса.
  • Создаются из брашей, деформированных ландшафтов, статичных и динамичных моделей, источников освещения, брашевых и точечных энтитей (таких как env_sprite).
  • Любые модели в 3D-скайбоксе должны соответствовать масштабу 1/16. Стандартные модели (props) не масштабированы для 3D-скайбокса. Необходимо использовать масштаб 1/16. Для Half-Life 2, все такие модели находятся в папке models/props_skybox или имеют суффикс _skybox.
  • Не должны содержать info_player_start, NPC или монстров.
  • Имеют меньшие по размеру карты освещенности и разрешение текстур из-за масштаба, в котором они созданы.
  • Должны иметь собственные источники освещения, хотя light_environment, находящийся на локации, будет применяться.
  • Используйте ентити sky_camera для контроля совпадения с не-скайбоксовской геометрией.
  • У 3D-скайбоксов собственные параметры тумана, настраиваемые в энтити sky_camera.
  • Геометрия в 3D-скайбоксах никак не обрезается. Добавление множества моделей может существенно снизить производительность.
  • На карте должен быть размещен light_environment, иначе модели в 3d-скайбоксе будут освещены неправильно. light_environment в основной части карты избавит от проблем.

Создание 3D-скайбоксов

  • Примечание для карт Portal: 3D-скайбоксы не видны сквозь порталы.
  • Примечание насчет sky_camera: точечные энтити не изменяют масштаб.

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

  1. Добавьте в центр карты энтитю sky_camera (в координаты 0, 0, 0). sky_camera - это ориентировочная точка отсчета, используемая движком для определения местоположения скайбокса относительно карты. Другими словами, sky_camera играет роль центра основной карты. Скайбокс будет перемещен (и отмасштабирован) в центр карты относительно этой энтити.
  2. Выберите несколько заметных деталей уровня, которые помогут вам создавать скайбокс. Для этого отлично подойдут стены, строения, дисплейсменты и другие браши, которые образуют границы карты. Проверьте, чтобы энтити sky_camera тоже была выделена.
Note.png Примечание: Это важно, НЕ выделяйте для использования модели, потому что они не могут быть масштабируемы в редакторе.
  1. Выберите пункт Copy из меню Edit, или нажмите CTRL+C.
  2. Выберите пункт Paste Special из того же меню. Задайте Number of copies to paste как 1, и все другие параметры выставите в 0. Нажмите OK. На карте появится дубликат того, что вы выделяли.
  3. Включите на панели инструментов кнопку Scaling Texture Lock, если она отключена. Это иконка с надписью <tl>. Это заставит текстуру масштабироваться вместе с геометрией.
  4. Не снимая выделения, выберите пункт Transform из меню Tools. Установите флажок напротив Scale. Выставите значение.0625 для X, Y, Z. Это уменьшит выделение в 16 раз, как раз под масштаб скайбокса. Нажмите OK.
    Note.png Примечание: Если вы хотите, чтобы текстуры растянулись на брашах, убедитесь в том, что включен режим "Texture Lock"
  5. Теперь у вас есть версия вашей опорной геометрии в масштабе 1/16. Теперь переместите это туда, где вы хотите делать скайбокс. Не имеет значения где он расположен, главное чтобы он не касался остальной части карты.
  6. Удалите первую sky_camera с центра нормальной карты.
    Note.png Примечание: На карте должна остаться только одна sky_camera - непосредственно в скайбоксе.
  7. Постройте геометрию скайбокса вокруг ваших ориентировочных брашей. Таким образом можно сделать совершенно незаметными швы между скайбоксом и границами карты. Можно использовать браши и дисплейсменты. Заметьте, что модели, помещаемые в скайбокс, тоже должны соответствовать масштабу 1/16. hl2\models\props_skybox\coast01.mdl - типичный пример модели такого масштаба. Попробуйте поместить камеру на уровне зрения игрока, это даст вам хорошее представление о том как будет выглядеть скайбокс в игре.
  8. Создайте вокруг вашего скайбокса полый куб, закрашенный текстурой tools\toolsskybox. Куб должен плотно облегать браши и модели скайбокса, без дырок во "внешнее пространство".
  9. Когда вы закончите, удалите или спрячьте геометрию ориентиров, исключая энтитю sky_camera. Для облегчения работы можно спрятать геометрию как отдельную vis группу, и потом показывать её при необходимости. Главное - убедитесь перед компилированием в том, что она скрыта.
  10. На оригинальной части карты следует создать браши с текстурой tools\toolsskybox, везде, где планировалось показывать игроку небо (а значит, и наш скайбокс).

Проверка

Если вы закончили 3D-скайбокс, можете компилировать свою карту и смотреть, что получилось в игре.

Примеры


Уроки по 3D скайбоксам

Группа автора уроков в ВК Project-S

Статьи по созданию окружающей среды:
Скайбоксы и карты с окружением Скайбокс (2D)Скайбокс (3D)HDR-скайбоксы(EN) Создание скайбокса в Terragen(EN) Создание скайбокса в Terragen - дополнительноСписок скайбоксов
Рельеф и деформация поверхности ДеформацииСоздание проёмов и отверстий в деформированных поверхностях(EN) Цифровые модели местности