САЙТ В ПРОЦЕССЕ РАЗРАБОТКИ
Главное меню сайта
Делаем сами
настройки игры
качаем общие файлы
качаем для клиента
качаем для сервера
качаем проги и др.
трюки
разное
свет


Общая информация об освещении карты
В этой статье мы кратко познакомим Вас со всеми возможными способами освещения карты, которых, к слову, не так и много, а также коротко расскажем о каждом из них.
Два основных типа освещения
Освещение в Half-Life, как и в реальной жизни, делится на 2 основных типа:
Естественное (солнечный свет)
Искуственное (лампочка)
Каждый из этих двух типов освещения реализуется при помощи разных энтити-объектов.
1. Естественное освещение (солнце)
Какую бы карту Вы не взяли, на ней есть естественнное освещение. Реализуется оно при помощи точечного энтити-объекта light_environment и SKY-брашей, окружающих карту снаружи и отделяющих ее от «вакуума» за ее пределами.
Объект light_environment иногда шутливо называют «солнышком» карты, например говорят: «Вставь солнышко и все будет путем» :) Запомните, что для карты вполне достаточно одного такого солнышка, смысла создавать несколько объектов light_environment нет (раньше был :)
Что касается второго обязательного условия, чтобы естественное освещение заработало, а именно SKY-брашей, то ими являются простые браши, только окрашенные со всех сторон специальной текстурой SKY (голубого цвета). Эта текстура обладает способностью излучать свет (при наличии на карте объекта light_environment). Иногда всю совокупность SKY-брашей, составляющих как бы купол над картой, называют просто «небом» и говорят: «создать небо», подразумевая создать вокруг карты SKY-браши.
В свойствах объекта light_environment выставляется цвет света и его яркость. От этих параметров очень сильно зависит внешний вид карты после компиляции. Обычно мапперы выбирают цвета близкие к желтому, оранжевому, коричневому или белому — в общем ближе к естественному, дневному свету. Также в свойствах этого объекта указывается угол, под которым свет падает на землю. По умолчанию это -90°. «Минус» показывает, что свет наклонен к земле. Запомните, что указывать следует только отрицательные значения (-30°, 45°, -60° и другие). От данного угла зависит размер отбрасываемых объектами теней. Действительно, длина тени меняется при изменении угол падения света (при движении Солнца). Например, чтобы создать утреннюю карту, когда Солнце находится невысоко над горизонтом, нужно указать значения близкие к -30° и т.п.
2. Искуственное освещение (лампочки)
Представить карту без искуственного освещения в принципе можно, если на ней нет укрытий, комнат, подвалов, пещер и т.п. На большинстве карт укрытия есть, а значит есть и искуственное освещение.
Исскуственное освещение можно создать точечными энтити-объектами light и light_spot или же светящимися текстурами. Первый объект освещает помещение как обычная лампочка, второй — создает направленный свет (типа прожектора). Light_spot применяется гораздо реже, чем light и в основном для декоративной подсветки (рекламные щиты, картины), а также может использоваться при создании уличных фонарей.
Исскуственное освещение может быть создано и при помощи светящихся текстур. Этот способ также нашел свое применение. Подробнее о светящихся текстурах Вы можете прочитать в статье «Светящиеся текстуры (создание RAD-файла)».

 Естественное освещение (солнце)
В этой статье речь пойдет о создании естественного (основного) освещения карты (от солнца). Перед прочтением статьи ознакомьтесь со свойствами следующего энтити-объекта:
light_environment
Общее (естественное) освещение в Half-Life создается при помощи объекта light_environment. Необходимо разместить ОДИН такой объект на карте и выставить необходимые свойства.
Обычно light_environment размещают несколько выше основных стен карты, как бы на месте солнца. Для освещения карты достаточно разместить ОДИН такой объект.
Рассмотрим свойства этого объекта:
Pitch Yaw Roll (Y Z X)
Направление света по трем координатам. Но гораздо удобнее пользоваться компасом (кружком) под названием «Angle» + параметром «Pitch» для определения угла наклона лучей к земле (см. рис. ниже). При определении направления света при помощи «Angle» всегда ставьте вид сверху (2D top).

Предположим, мы хотим, чтобы тень от ящика и стен (и всех других объектов на карте) отбрасывалась вверх и вправо (на рисунке). Тогда в свойствах light_environment необходимо указать угол 45 градусов или любой другой, указывающий вверх и вправо. Помните, что углы необходимо выставлять на виде сверху, иначе направление будет задано неверно.
Pitch
Угол в градусах, под которым свет падает на землю. Используйте здесь только отрицательные значения (-30°, -45°, 60° и другие). «Минус» означает, что свет направлен к земле. Например, значение -90° означает, что свет падает перпендикулярно вниз. Часто используются значения -60°, -45° и -30°.
На картинке ниже немного криво :), но все-таки изображены основные используемые углы (pitch) для объекта light_environment:

Brightness X X X X
Здесь указывается цвет (в формате RGB — красный, зеленый, синий) и яркость света (0-255). Первые три цифры определяют цвет света. Его можно подобрать, нажав на кнопку «Pick color». Обычно мапперы выбирают цвета близкие к желтому, оранжевому, коричневому или белому — в общем ближе к естественному, дневному свету. Последняя цифра определяет яркость света от 0 до 255. Обычно яркости 150 хватает для создания достаточно светлой карты. Поупражняйтесь с различными значениями яркости и цвета от них очень сильно зависит внешний вид карты. Грамотное освещение может творить чудеса — это неопровержимый факт!
Для темных карт (вечер, сумерки) выставляйте небольшие значения яркости от 10-15 и подбирайте соответствующую темную картинку неба. Согласитесь, на темной карте довольно нелепо будет смотреться светлое небо от de_dust.
Также при подборе цвета примите во внимание основной цвет Вашей карты (цвет преобладающих текстур). Так например, если на карте много серого (как на de_aztec), то наилучшим образом будет смотреться карта, освещенная белым светом или светом с оттенками серого, если карта желтая, как de_dust, то хорошо подойдет свет с оттенками желтого или оранжевого и т.д.

Минимальная освещенность карты
Существует возможность указать минимальную освещенность на карте. Это делается в меню Map/Map properties... (см. рис. ниже).

Map Description / Title
(к освещению не относится) Здесь можно вписать название карты и кто ее сделал, например: De_Lalala by Somebody!
Environment map (cl_skyname)
(к освещению не относится) Здесь указывается название картинки, используемой в качестве неба. Подробнее об этом Вы можете прочитать, в статьях посвященных созданию неба.
Default light level
А вот это как раз то, что нам нужно — минимальный уровень освещения карты. Большинство мапперов оставляют здесь значение ноль, некоторые же любят «что-нибудь» поставить, например, 75. В последнем случае любое неосвещенное помещение будет таки освещено с яркостью 75 единиц. Следует заметить, что выставление в этом параметре числа большего нуля, не избавляет Вас от необходимости разместить хотя бы один источник света на карте. Это обязательное условие! Иначе без источников света возникнет ошибка во время компиляции.
Max viewable distance
(к освещению не относится) Максимальное видимое расстояние на карте. Если Вы вдруг заметили, что в определенных местах (обычно это бывает на больших открытых пространствах) дальние объекты не отрисовываются (исчезают стены и т.п.), то необходимо увеличить этот параметр. По умолчанию здесь стоит 4096 юнитов. Максимальное значение в 2 раза больше: 8192. Устанавливать ЕЩЕ большее значение смысла нет, объекты все-равно будут скрыты.
Остальные параметры необходимо оставить как есть.

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

Искусственное освещение (лампочки)
В этой статье речь пойдет о создании искусственного освещения (от лампочек). Перед прочтением статьи ознакомьтесь со следующими энтити-объектами:
light
light_spot
info_target
info_null
Объекты light и light_spot используются для освещения помещений (комнаты, подвалы и пр.), куда наружный свет от объекта light_environment не попадает или его недостаточно.
Рассмотрим сначала наиболее часто применимый на практике и более простой объект light.

1. Объект light
Объект light по сути является самой обычной лампочкой. Свет от него распространяется во все стороны, как бы создавая сферу. Вот как выглядит освещение темной комнаты таким объектом:

Рассмотрим свойства объекта light.
Name
Имя объекта (лампочки). Имя следует указывать в том случае, если лампочку предполагается включать/выключать при помощи кнопки или какого-то другого объекта. Ниже показана схема, при которой нажатие кнопки (func_button) выключит свет (light) с именем light1. Повторное нажатие включит свет.

Target
При создании простой лампочки этот параметр оставляют пустым. Если необходимо, чтобы свет распространялся в каком-то определенном направлении, то в том месте, куда должен быть направлен свет, создается точечный объект info_target или же его полный аналог info_null. Затем этому объекту дают имя и вписывают его в свойства лампочки, в параметр «Target». В таком случае лампочка будет светить в направлении этого объекта (объект в игре абсолютно невидим). На рисунке ниже показана схема.

Appearance
Редко используемый параметр. В нем указывается тип лампочки (мигающая, мерцающая и др.). Для создания простой лампочки, которая постоянно светит, ничего указывать не надо.
ustom Appearance
Еще один мало пригодный параметр. При помощи него можно установить характер мерцания лампочки. Для этого используются комбинации букв английского алфавита от a до z, где a — потухшая лампочка, z — горящая. Например, комбинация abcdedcba заставит лампочку сначала загорется, потом потухнуть, затем это повторится. Чтобы иметь возможность устанавливать свой режим мерцания, необходимо дать лампочке имя (Name). Для создания обычной лампочки здесь ничего писать не надо.
Лампочка в начале раунда не горит
Если необходимо, чтобы лампочка в начале раунда не горела, то в закладке Flags надо отметить «Initialy dark». Чтобы ее включить понадобится кнопка или какой-нибудь триггер.
Brightness
Главный параметр, определяющий цвет и яркость испускаемого лампочкой света. Цвет указывается в формате RGB — красный, зеленый, синий, а яркость значениями от 0 до 255. Первые три цифры определяют цвет света. Его можно подобрать нажав на кнопку «Pick color». Последняя цифра определяет яркость света от 0 до 255. Обычно используются значения яркости от 100 до 200.

2. Объект light_spot
Теперь рассмотрим второй объект — light_spot. Он используется для создания направленного света, и при этом мы можем управлять «шириной» луча. Свойств у этого объекта чуть побольше, чем у light. Кроме таких же по значению параметров как Name, Target, Brightness, Appearance и Custom Appearance данный объект имеет следующие:
Inner (bright) angle
Угол внутреннего конуса (представьте конус вдоль оси распространения света, угол этого конуса и есть данный параметр). Яркость света внутри данного угла (конуса) будет максимальной. Значение по умолчанию 30 градусов.
Outer (fading) angle
Угол внешнего конуса, который формирует затенение (уменьшение яркости) света. Значение по умолчанию 45 градусов.
На рисунке ниже угол «Inner angle» показан желтым конусом, угол «Outer angle» — синим.

Посмотрите как меняется освещение в зависимости от этих углов. Слева — углы по умолчанию, справа — 90° и 105°.

Pitch
Eгол, под которым лучи падают на землю. Отрицательное значение — лучи направлены вниз, положительное — вверх. Вообще, мы рекомендуем всегда использовать объект info_target или info_null (любой из них) для указания направления падения света. Это проще, понятнее и быстрее, чем устанавливать углы вручную. К тому же, Вы будете точно знать место, куда будет направлен свет.
Is Sky
Здесь возможны два варианта: No и Yes. По умолчанию — No. Значение «Yes» используется для создания эффекта освещения с неба, при этом свет не будет исходить из самого источника light_spot. Обычно оставляется значение по умолчанию — «No».

 Эффект световых лучей
В этой статье мы расскажем о создании одного красивого эффекта, который поможет украсить Вашу карту. Речь идет о визуализации лучей от источников света. Чтобы изготовить такие лучи, Вы должны уметь работать с вертексами (вершинами объектов). Перед прочтением статьи ознакомьтесь со следующим энтити-объектом:
func_illusionary
На картинке ниже наглядно показано о какого рода эффекте идет речь:

Данный эффект наилучшим образом смотрится в темном месте, поэтому наша карта-пример именно такая. Для начала создадим из нескольких брашей небольшой фонарик (черный на рисунке) и под ним расположим лампочку, т.е. объект light, о котором мы писали в прошлой статье. Также можно использовать и объект light_spot (для него необходимо будет указать направление света объектом info_target).
Вот, что у нас получилось (см. рис. ниже).

У объекта light выставим свойства. Какие? Выбирайте сами, теперь Вы это умеете :)
Теперь выберите текстуру FADE2 (желто-черная градиентная текстура), она находится в стандартной самой большой библиотеке текстур halflife.wad. Эта текстура при определенных свойствах объекта будет прозрачной с черной стороны и полупрозрачной с желтой. Кстати, подобную текстуру можете создать и Вы, причем любого цвета. Так например, на карте KA_100x100 я использовал текстуры синего, зеленого и розового цветов для получения соответствующих по цвету лучей.
Создайте под фонарем обычный браш и инструментом для работы с вертексами раздвиньте нижнюю поверхность браша. Данный браш будет определять форму исходящих лучей. На рисунке ниже показан первоночальный браш и измененный браш с формой усеченной пирамиды.

Разместите этот браш под фонарем (см. рис. ниже).

Выравняйте текстуры, чтобы светлая (желтая) часть была сверху, а темная (черная) снизу (см. рис. выше). Нижнюю грань браша покрасьте текстурой BLACK, эта грань в игре будет прозрачной.
Теперь выделите браш и превратите его [Ctrl-T] в объект func_illusionary. Мы используем этот объект, т.к. нам необходимо, чтобы через лучи можно было ходить, а не спотыкаться о них. Теперь выставим следующие свойства:
Render Mode: Additive
FX Amount: 20 (чем выше значение, тем лучи более заметны)
Вот и все. Эффект красивый и часто используемый, теперь Вы знаете как его сделать.

 Эффект дымки вокруг источников света
В этой статье мы рассмотрим создание еще одного интересного эффекта вокруг источников света, который поможет придать им более реалистичный вид. Речь идет о создании дымки (свечения, ореола). Перед прочтением статьи ознакомьтесь со следующим энтити-объектом:
env_glow
Подобный эффект Вы могли видеть на карте cs_italy, там есть небольшие настенные фонарики, вокруг которых распространяются лучи (дымка, ореол). Сейчас мы сделаем нечто похожее. Предположим у нас на карте есть фонарь с обычным источником света light (см. рис. ниже).

Для создания дымки используются спрайты, т.е. файлы с расширением *.spr. Эти файлы находятся в директории cstrike/sprites.. Мы будем использовать спрайт с именем flare1.spr. Если у Вас нет такого спрайта, то Вы можете взять его из архива pak0.pak, который находится в папке valve.
Итак, чтобы вставить спрайт, мы используем точечный энтити-объект env_glow. Размещаем его под фонарем, достаточно близко к поверхности фонаря. В редакторе объект env_glow отображается довольно большим квадратом, гораздо большим, чем, например, источник света light (см. рис. ниже).

Выставим для env_glow следующие свойства:
Render FX — Normal (можно использовать и Constant Glow, подробнее объяснено ниже)
Render Mode — Glow (для env_glow всегда должен быть этот режим)
FX Amount — 150 (чем больше значение, тем ярче дымка. Максимум: 255)
FX Color — 255 255 200 (цвет дымки, в данном случае бледно-желтый, в принципе можно не выставлять)
Model — sprites/flare1.spr (также можно использовать другие спрайты с именем flare или glow)
Теперь подробнее о параметре Render FX. Для спрайтов рекомендуется выставлять 2 режима: Normal или Constant Glow.
Все разница между этими режимами заключается в различной интенсивности (яркости, насыщенности) дымки при приближении/удалении игрока от спрайта.
В режиме Normal при удалении игрока от спрайта, его яркость уменьшается, спрайт становится менее видимым. При Constant Glow спрайт всегда имеет постоянную яркость, независящую от дистанции взгляда игрока. Попробуйте оба варианта, иногда лучше выглядит Normal, иногда Constant Glow.
Вот собственно и все! Компилируем, запускаем и видим следующий эффект:

На нашей карте-примере мы создали еще один фонарь (на картинке справа). Он несколько отличается от того, что расположен слева. Вогруг него мы создали все эффекты, рассмотренные в предыдущих статьях: мы создали лучи из func_illusionary, дымку из env_glow и вместо простого света light использовали направленный light_spot (см. рис. ниже).

Свойства объекта light_spot и мишени info_target, используемой для задания направления света, указаны на рисунке.

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

Конечно, вместо ящика из func_wall можно было использовать обычный браш, который естественно «отбросил» бы тень, но тогда земля была бы разбита на более мелкие полигоны. Если ящиков немного, то можно использовать и обычные браши, а если штук 10 в одном месте, то они могут серьезно снизить скорость отрисовки карты (понизить fps).
Чтобы энтити-объект отбрасывал свет необходимо выставить световые флаги. Эти флаги есть у большинства брашевых энтити-объектов, и они доступны в свойствах объекта (см. рис. ниже). Но помните, что световые флаги доступны только при использовании компиляторов ZHLT или ZHLT: Custom Build. Со стандартными (старыми) компиляторами флаги не работают.

Возможные варианты
1. Normal — по умолчанию (объект не отбрасывает теней);
2. EmbeddedFix — не использовать сложную коррекцию освещения. Иногда брашевый объект, проходящий сквозь стену, бывает неправильно освещен. Используйте этот флаг для избежания подобной ситуации;
3. Opaque (Block Light) — объект отбрасывает тени. Делает объект «непрозрачным», в результате чего он начинает отбрасывать тень. Полезно использовать этот флаг для func_wall, некоторых func_illusionary, func_door и, возможно, других объектов для достижения различных эффектов;
4. Opaque + Embedded Fix — это комбинация предыдущих двух флагов;
5. Opaque + Concave Fix — используется для искривленных объектов func_wall, особенно арок. Когда эти объекты имеют флаг непрозрачности Opaque (3), внутренняя сторона арки (вогнутая часть) будет иметь темные края, особенно в местах стыковки брашей. Установка флага ConcaveFix решает проблему темных швов, однако объект не может использовать флаг EmbeddedFix при этом.
Итак, любой из флагов со словом Opaque, заставляет энтити блокировать свет. Для обычных объектов (ящики) можно указывать Opaque (blocks light). Другие флаги Opaque применяются редко, в основном для сложных арок, состоящих из большого числа объектов func_wall.
Как Вы можете видеть на рисунке ниже, большой ящик справа отбрасывает тень, хотя также, как и левый, является объектом func_wall.

Другой способ управления тенями
Теперь рассмотрим еще один способ управления тенями. Наряду с Light Flags есть еще Light Origin.
В этом параметре указывается имя объекта info_target, который по своей сути является объектом-мишенью. Таким образом, при расчете освещения брашевый энтити-объект будет временно перемещен на место объекта info_target, имя которого указано в параметре Light Origin. Посмотрите на рисунок ниже.

В том месте, где находится тень, на самом деле установлен объект info_target с именем target1. Это же имя указано в свойствах ящика func_wall в параметре Light Origin (см. рис. ниже).

Трудно сказать, в каких случаях можно использовать Light Origin. В отличии от Light Flags он применяется очень редко.
Совет: не устанавливайте блокировку света двигающимся или разрушаемым объектам, т.к. тень просчитана и никуда не денется при изменении положения объекта.
Форма входа
Поиск по сайту
Наш опрос
Оцените наш сайт
Всего ответов: 14
Мини-чат
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
qwertys © 2025
Сделать бесплатный сайт с uCoz