Свет небосвода

From Valve Developer Community
Jump to: navigation, search
English (en)Español (es)Русский (ru)中文 (zh)
Небосвод (Skybox) - это короб неба(en), не имеющий пространственной глубины и состоящий только из текстуры неба (не использует точечный объект мира sky_camera(en) для отображения миниатюрных трёхмерных моделей).
Skybox Template.jpg

Добавление небосвода на карту

Простой элемент мира(en) (не Объёмный объект мира(en)) со служебной текстурой tools/toolsskybox(en).

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

Элементы мира со служебной текстурой toolsskybox не обязательно должны создавать замкнутые короба.

Note.pngПримечание:Стандартное небо в HL2(en) имеет видимые швы. Это не ваша вина. См. следующий раздел, объясняющий, как сменить текстуру неба на другую.
Note.pngПримечание:Нельзя создавать небосвод, в виде большого полого короба с текстурой toolsskybox вокруг вашей карты.

Смена отображаемого неба

Sky change.png

Если Вам не нравится стандартная текстура неба "sky_day01_01", Вы можете поменять её имя в диалоговом окне Map Properties. Открыв карту в редакторе Hammer, выполните следующие действия:

  1. Перейдите в меню Map(en)
  2. Из выпавшего списка выберите Map Properties...
  3. В окне Object Properties выберите поле Skybox Texture Name.
  4. Впишите имя неба из списка текстур неба.
Note.pngПримечание:Список доступных текстур неба можно найти на странице Список текстур неба(en).

Освещённость

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

Такие настройки освещения, как направление, цвет, яркость и прочие зависят от конкретного изображения, используемого в 2-х мерном небе. В статье Список текстур неба(en) предлагаются некоторые настройки для небосводов от Valve. Отметим также, что настройки env_fog_controller(en) должны соответствовать настройкам небосвода.

Свет небосвода

English (en)Español (es)Русский (ru)中文 (zh)
Toolsskybox.gif

Свет небосвода (Skybox lighting) поступает на карту от каждого toolsskybox(en)-текстурированного элемента карты(en) и представляет собой прямой солнечный/лунный свет и рассеянное освещение. Его основные свойства контролируются тремя объектами карты, используемыми в комбинации (в некоторых играх - четырьмя):

  • light_environment определяет направление, цвет и интенсивность прямого солнечного света, а также цвет и интенсивность рассеянного зенитного света.
  • shadow_control определяет цвет, направление и расстояние затухания динамических теней(en), которые создаются light_environment. Без этого объекта карты динамические тени будут глючными и неконфигурируемыми.
  • env_sun помещает светящийся спрайт в небосвод для отображения видимого положения Солнца на небе.
  • env_cascade_light отбрасывает на карту резкие тени в реальном времени, обычно копируя настройки из объекта карты light_environment. (только в Counter-Strike: Global OffensiveInsurgencyBlack Mesa)

Чтобы разобраться во всем этом, просто убедитесь, что на вашей карте есть только один из этих объектов, и что углы тангажа и рысканья установлены одинаково для всех трёх объёктов. (Pitch - это угол возвышения Солнца над землей, а Yaw - его компасный пеленг).

Эти параметры освещения - направление, цвет, яркость и т.д. - довольно специфичны для фактического изображения, используемого для небосвода. В статье Список текстур неба(en) предлагаются некоторые настройки для официальных игровых скайбоксов. Объект карты worldspawn определяет, какой Небосвод(en) использовать. Также обратите внимание, что туман будет выглядеть неправильно, если настройки env_fog_controller не соответствуют используемому небосводу.

Note.pngПримечание:Pitch можно переопределить для light_environment и env_sun, но не для shadow_control. Переопределение Pitch также не может быть отключено, и его значение отсчитывается против часовой стрелки от горизонтали (поэтому прямо вниз -90°), тогда как вращение <angles> Pitch's по часовой стрелке (поэтому прямо вниз +90°). Обходной путь для этого - убедиться, что ваше переопределение Pitch просто повторяет значение <angles>; например, если ваши shadow_control, light_environment и env_sun <углы> равны "45 -60 0", установите переопределение Pitch на "-45".

==See also==

Warning.pngПредупреждение:К сожалению, Valve ввела параметр Pitch override в точечных объектах мира light_environment(en) и env_sun(en), но не в shadow_control(en). К ещё большему сожалению, Pitch override не может быть выключен и его значение отсчитывается против часовой стрелки относительно горизонтали (прямо вниз -90°), тогда как <угол> тангажа (Pitch) отсчитывается по часовой (прямо вниз +90°). Но к этому можно приспособиться; например, если ваши shadow_control(en), light_environment(en) и env_sun(en) имеют <angles> "45 -60 0", то установите Pitch override на "-45".

Создание собственных 2D текстур неба

  1. Создаем собственные текстуры. Вам понадобится шесть изображений, одного и того же разрешения:
    • <название_неба>bk  (Сзади)
    • <название_неба>ft  (Спереди)
    • <название_неба>up  (Сверху)
    • <название_неба>dn  (Снизу)
    • <название_неба>rt  (Справа)
    • <название_неба>lf  (Слева)
  2. Затем конвертируйте в формат VTF(en). Убедитесь, что у вас "Clamp S" и "Clamp T", иначе при низкой детализации текстур Вы увидите швы.
  3. Создавайте материалы для каждой текстуры в папке \materials\skybox\, используя следующий шаблон:
sky
{
	$basetexture(en) "<VTF>"
	$hdrcompressedtexture(en) "<VTF>"
	$nofog(en) 1
	$ignorez(en) 1
}

Теперь, в редакторе карт(en), перейдите в Map > Map Properties > Skybox Texture Name и введите имя вашего неба без сторонних тегов.

Создание 2D-неба для Goldsource(en) с помощью Source

Это поможет Вам создавать на карте зону внутри 2D-скайбокса, чтобы использовать её в Goldsource (на движке HL1). Вот простой пример:

  1. Создайте большое открытое пространство с небольшой деформацией, деревьями, туманом и скрытыми краями. Обзовите это carrotjuice .
  2. Запустите карту в игре, и включите читы ( sv_cheats 1 ).
  3. Активируйте режим noclip, просто введя в консоли "noclip", и нажмите Enter.
  4. Пролетите в центр небосвода.
  5. Откройте консоль и впишите "mat_envmaptgasize 256", нажмите Enter.
  6. Теперь впишите "envmap" и нажмите Enter. Созданы 6 фалов TGA, которые хранятся в папке с именем "cubemap_screenshots", находящейся в каталоге вашего мода ( например, HL2DM: Steam\SteamApps\youraccount\Half-Life 2 Deathmatch\hl2mp ).

Поскольку карта носит название carrotjuice , имена 6 TGA-файлов следующие:

carrotjuicert.tga
carrotjuiceft.tga
carrotjuicelf.tga
carrotjuicebk.tga
carrotjuiceup.tga
carrotjuicedn.tga

Теперь их можно скопировать или перенести в папку с вашим HL1-модом - gfx\env, чтобы использовать в качестве неба на вашей карте.

Руководства по созданию собственных текстур неба

Уроки, созданные Project-S:

См. также

  • light_environment(en), env_sun(en) и shadow_control(en) это точечные объекты мира, отвечающие за настройку света от неба, который исходит из служебной текстуры toolsskybox на карте.
  • Sky List(en) - Список материалов неба из различных игр и модов, основанных на Source и GoldSrc
  • Sky Writer(en) - Инструмент для рендеринга сцен 3ds Max прямо в Source в виде неба HDR.
  • Skybox Optimization(en) - Руководство по оптимизации элементов небосвода.
Статьи об окружающей среде
Текстуры неба и создание неба Небосвод (2D)Объёмное небо (3D)HDR-текстуры небаСоздание текстур неба в TerragenСоздание текстур неба в Terragen - подробноСписок текстур неба
Создание рельефа местности и деформация поверхностей Деформированные поверхностиСоздание отверстий в деформированных поверхностяхЦифровые модели местностиСоздание рельефа в Worldmachine


Неполная

Эта статья(раздел) является наброском. Вы можете помочь, дополнив её.