Освещение карты
В этом уроке мы подробно изучим освещение карты.

Введение
Освещение в Source играх делается с помощью лампочек и солнца. Лампочки делятся на три вида: обычные, прожекторы и динамические лампочки. Лампочки-прожекторы отличаются от обычных тем, что они могут светить в заданную точку или в заданное направление (как фонарик в Half-Life 2). Динамические лампочки похожи на лампочки-прожекторы, но их можно перемещать, привязать к чему-либо. В этом уроке мы рассмотрим солнце и обычные лампочки.
Основное освещение
  • Солнце (light_environment). Само солнце свет не излучает, поэтому его можно ставить в любом месте карты. Сам свет падает от неба, поэтому если на карте нет неба, солнце ставить бессмысленно. Свойства, которые вам нужно знать:

    Pitch Yaw Roll. Направление света. Править лучше только второе число (ось Z), так как для угла падения лучей есть специальный параметр

    Pitch. Угол падения солнечных лучей. Значение должно быть отрицательным и может быть от 0 до -90.

    Brightness. Яркость и цвет солнца (первые три значения - цвет, последнее значение - яркость)

    Ambient. Яркость и цвет неба

  • Обычные лампочки (light). Сами лампочки в игре никак не отображаются, а только излучают свет. Поэтому, для большей реалистичности, следует рядом с ними ставить модель лампы. Свойства лампочки:

    Brightness. Яркость и цвет лампочки

    Appearance. Эффекты освещения (мигание и т.д.)
Динамическое освещение
Если на вашей карте присутствует свет — light, light_spot или light_environment, то он просчитывается при компиляции vrad'ом и изменить расположение лампочки в игре не получится. Можно изменить её цвет, яркость с помощью Output'ов, но не больше. А если вам нужен перемещающийся свет, например, у двигающегося поезда? Для этого и существует динамический свет. За него отвечает entity под названием: light_dynamic. Но, чтобы свет правильно работал, нужно кое-что учесть:

  1. Динамический свет будет работать на карте только в том случае, если на ней есть хоть один источник статического света (т.е. light, light_spot или light_environment)

  2. Entity — light_dynamic похожа по своим параметрам на light_spot (то есть light_dynamic — тоже лампочка-прожектор, но динамическая), настраивать их можно, но есть три параметра — Color, Brightness и Maximum Distance нужно рассмотреть отдельно.

  3. Color — это цвет лампочки

  4. Brightness — этот параметр должен быть равен 6 или 8, чтобы лампочка освещала не только игрока, но и другие объекты. Лучше ставьте значение 8

  5. Maximum Distance — максимальная длина луча света. Если луч не достаёт до какого-либо объекта, то освещать его не будет

В отличие от других лампочек, у light_dynamic есть параметр Parent, так что теперь вы без проблем можете сделать любой динамический свет. Но есть у него и минусы: он иногда может работать некорректно + он тратит много ресурсов. Такой свет есть на карте de_metropoliten.
Лампочки-прожекторы
Создайте в любом месте карты точечную entity под названием — light_spot. Настройте параметр Brightness, отвечающий за цвет и яркость лампочки. Параметры Inner Cone Angle и Outer Cone Angle отвечают, скажем так, за толщину луча света. Ну, а самое главное в лампочке с направленным светом - разумеется, направление света. Задать его можно двумя путями. Первый - указать направление в параметре Pitch Yaw Roll. Второй - там, куда должен быть направлен свет, разместить точечную entity — info_target и дать ей имя. Это имя вписать в параметре Entity to Point at нашего light_spot'а. Мне кажется, второй способ легче. Вот что в результате получится:

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

Если вы до сих пор не усвоили материал данного урока, или просто что-то не поняли, то рекомендую вам перечитать его. Ведь освещение на карте — это очень важная штука. Особенно для CS:GO, откуда Valve вырезали фонарик, так там вообще жесть полная.
Вернуться в каталог уроков