Ru/Lighting: Difference between revisions
< Ru
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
(53 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
{{LanguageBar|title=Освещение}} | |||
{{Abstract Mapping}} | |||
== Руководства == | |||
[[File:Proper lighting example.png|right|thumb|Пример хорошо освещённой комнаты.]] | |||
* {{L|Adding Light|Добавление света}} - Уроки для начинающих о том, как настраивать основные энтити {{L|light|света}}. | |||
* {{L|Intermediate Lighting|Вспомогательное освещение}} - Подробный материал обо всех источниках света. | |||
* {{L|Advanced Lighting|Продвинутое освещение}} | |||
* {{L|Constant-Linear-Quadratic Falloff|Константно-Линейно-Квадратичное рассеивание}} - Простое объяснение старой системы C-L-Q затухания света. | |||
* {{L|HDR}} - Освещение, поддерживающее технологию широкого динамического диапазона. | |||
== | == Виды == | ||
=== Статичные источники света === | |||
{{Tip|Статичный свет компилируется в {{L|Lightmap|лайтмапы}}, освещающие {{L|brush|браши}}, {{L|model|модели}}, {{L|Cubemaps|кубмапы}} и дают статичные {{L|reflection|отражения}}. | |||
Это | Это {{L|free|упрощает}} процесс рендеринга, поскольку источники освещения уже прописаны в карту.}} | ||
;{{ent|light}}:Неподвижный, все-направленный точечный источник света (различные лампы, огонь и др.). | |||
;{{ent|light_spot}}:Неподвижный, однонаправленный точечный источник света (например, направленный прожектор). Конический угол луча не должен превышать 90°. | |||
;{{ent|light_environment}}: Содержит два связанных источника света: | |||
:*Рассеянный 'окружающий' свет (отраженный от облаков и атмосферы в целом), исходящий из всех поверхностей скайбокса. | |||
:*Направленный 'яркий' свет (солнечный или лунный), падающий в одном направлении. | |||
:Оба излучаются материалом [[Tool textures#skybox|toolsskybox]] везде, где он есть на карте. См. также {{L|Skybox Basics|Скайбокс}}. | |||
;{{ent|env_particlelight}}: Освещает частицы, порождаемые {{ent|env_smokestack}}. Частицы не подвержены нормальному освещению. Используйте не более двух. | |||
;{{L|Glowing Textures|Светящиеся текстуры}} | |||
:{{L|Brush|Брашевые}} поверхности со светоизлучающим материалом (определяемым в <code>game_dir/lights.rad</code>), который отбрасывает свет на угол 180°. | |||
=== Статичные светоприёмники === | |||
;{{L|Brush|Браши}} | |||
:Инструмент {{L|Lightmap_Scale|Масштаб карты освещения}} диалогового окна {{L|Hammer Face Edit Dialog}} может быть использован для управления резкостью и размытостью лайтмапа на поверхности браша - эффект наиболее заметен в зонах с повышенной контрастностью, например, в затенённых местах. Обратите внимание, что добавление новых источников света не сильно скажется на производительности, но уменьшение масштаба карты освещения (т.е. увеличение разрешения) сразу увеличит размер карты и объём занимаемой памяти. | |||
;{{ent|prop_static}} | |||
:В отличие от других моделей, prop_static светится статично: значение освещения сохраняется для каждой {{L|vertex|вершины}}, а модель {{L|collision mesh|сетки столкновений}} (или, опционально, {{L|reference mesh}}) используется для расчёта теней. | |||
:Существуют следующие опции: | |||
:*<code>disableshadows</code> - Не отбрасывать тени; | |||
:*<code>disablevertexlighting</code> - Сохранять только одно значение освещения для всей модели; | |||
:*<code>disableselfshadowing</code> - Не позволять энтити отбрасывать тень на себя; | |||
:*<code>ignorenormals</code> - При расчёте освещения игнорировать данные нормалей вершин. Это чрезвычайно полезно для листвы и других тонких типов вершин сетки. | |||
=== Динамические источники света === | |||
{{Tip|Динамическое освещение вычисляется в процессе игры, что делает рендеринг более {{L|expensive|дорогим}}.}} | |||
[[File:Shadowmap.jpg|thumb|180px|{{L|env_projectedtexture}} светит из дверного проёма.]] | |||
;{{ent|light_dynamic}}:Простой, однонаправленный динамический свет, который может быть перемещён, повёрнут и отрегулирован. | |||
;{{ent|point_spotlight}}:Эффект луча от прожектора с дополнительным динамическим источником света в точке падения на поверхность. | |||
;{{ent|npc_spotlight}}:Прожектор {{L|NPC}}, похожий на point_spotlight, но с возможностью отслеживания целей. | |||
;{{ent|env_projectedtexture}}:Динамический источник, который светит не однотонным цветом, а определённой текстурой и в то же время 'вычитает' реалистичные динамические тени. Влияет на все поверхности, которые могут принимать свет, и используется в качестве фонарика игрока в {{L|Episode Two}}. | |||
=== Динамические тени === | |||
{{Tip|Динамические тени отбрасываются только {{L|model|моделями}} (NPC, физическими пропами и т.д.), и только на {{L|brush|брашевые}} поверхности (от статичных и динамических источников света). Они рассчитываются в реальном времени, поэтому довольно грубы и достаточно {{L|showbudget|затратны}} для визуализации.}} | |||
{{warning| Это не *настоящие* тени, а процедурные (создаваемые кодом) текстуры, проецируемые объектом. В Left 4 Dead, Portal 2 и Alien Swarm направление теней вычисляется на основе энтити, и обусловлено близостью к ней света. Но не в модах Source2006/2007/2013, если там не используются {{L|Dynamic RTT shadow angles in Source 2007|Динамические RTT углы теней из Source 2007-го года}}.}} | |||
{{warning|Иногда динамические тени проникают сквозь стены и полы, выдавая местоположение игроков или объектов. Если вы столкнулись с этой проблемой, используйте {{L|info_no_dynamic_shadow}}.}} | |||
{{Note|Тени "скользят" по визуальной сетке, если только нет shadowlod, задаваемого в {{L|QC}}. Shadow LOD при создании тени используют низкую детализацию. Это не относится к теням на карте (фонарикам, {{L|env_projectedtexture}}) }} | |||
{{Note|Если динамические тени пересекаются, то они не сливаются друг с другом или освещением карты. Это может приводить к нежелательным эффектам 'удвоения', когда, например, физические пропы находятся на физическом пропе стола. Чтобы обойти эту проблему, вы можете включать и отключать динамические тени требуемых энтити.}} | |||
{{Note|Динамические тени поддерживают полупрозрачность. Если ваша модель имеет разные уровни прозрачности, они могут отразиться на тени.}} | |||
;{{ent|shadow_control}}:Точечная энтити, использует управление динамическими тенями по всей карте, в том числе максимальное расстояние отбрасывания, направление отбрасывания и резкость/рассеяние. | |||
;{{ent|info_no_dynamic_shadow}}:Точечное энтити, использет список {{L|Brush|брашевых}} поверхностей, чтобы ''не'' отбрасывать динамические тени. | |||
;Энтити {{ent|prop_physics}}: Имеет значение "shadowcastdist" для переопределения дальности отбрасывания динамических теней. | |||
;Энтити {{ent|prop_dynamic}}: Имеет значение "disableshadows" и входы "enableshadows" и "disableshadows" для управления отбрасываемыми ими динамическими тенями. | |||
;Энтити NPC : Имеет управление prop_dynamic shadow, а также "disablereceiveshadows" {{TODO|чтобы предотвращать...?}} | |||
=== Эффекты Тиндаля === | |||
{{L|Wikipedia:Tyndall effect|Эффекты Тиндаля}} вызваны рассеянием света на взвешенных (коллоидных) частицах в прозрачной среде. Например, автомобильные фары в тумане. | |||
* {{L|Wikipedia:Halo_(optical_phenomenon)|Эффекты Гало}} (светящийся спрайт) : | |||
:*{{ent|env_sprite}} - энтити, используемая для создания всенаправленного свечения или засветки. | |||
:*{{ent|env_lightglow}} - асимметричное свечение (для зон с контрастным освещением). | |||
:*{{ent|env_sun}} - добавляет яркое пятно с ореолом в {{L|Skybox|скайбоксе}} для задания положения Солнца или Луны. | |||
* {{L|Wikipedia:Light beam|Эффекты ярких лучей}} (объёмный свет) : | |||
:*Брашевая текстура : <code>models/effects/vol_light001</code> | |||
:*Брашевая текстура : <code>models/effects/vol_light002</code> | |||
:*Модель : <code>models/Effects/vol_light.mdl</code> - используется вместе с {{ent|prop_static}}. | |||
* См. также {{L|Render Modes|Режимы отрисовки}} для спрайтов, особенно [[Render Modes#World Space Glow (9)|Свечение]]''. | |||
== Стандартные значения == | |||
{| class="wikitable" | |||
! !! Яркость | |||
|- | |||
| Автомобильные фары | |||
| style="background: #e7dfc0;" class="table-yes"|<code style="color:black;">231 223 192</code> | |||
|- | |||
| Лампа Комбайнов | |||
| style="background: #93e2f0;" class="table-yes"|<code style="color:black;">147 226 240</code> | |||
|- | |||
| Вольфрамовая лампа | |||
| style="background: #fed892;" class="table-yes"|<code style="color:black;">254 216 146</code> | |||
|- | |||
| Флуоресцентная труба | |||
| style="background: #9fedd7;" class="table-yes"|<code style="color:black;">159 237 215</code> | |||
|- | |||
| Лампа накаливания | |||
| style="background: #fff591;" class="table-yes"|<code style="color:black;">255 245 145</code> | |||
|} | |||
Значения для {{L|Skybox Basics|скайбоксов}} смотрите в {{L|List of Skyboxes|списке}}. | |||
== Примечания == | |||
*Указание имени источника делает его гораздо тяжелее для рендеринга. Давайте имена только необходимым источникам света. Несколько источников света с одинаковыми именами движку проще обрабатывать, чем с разными. | |||
*{{L|light_dynamic}} - самый тяжёлый, и на некоторых системах может не отображаться | |||
*Основные энтити света не связаны с видимыми источниками (например, лампочки). Для этого вам нужна модель. Смотрите список {{L|HL2 Light Props|моделей освещения}}. | |||
*Основные энтити света не "отсвечивают", как будто в тумане или сумерках. Чтобы это заработало, скомпилируйте и запустите карту с включённым {{L|HDR}}, или добавьте {{L|point_spotlight}} (с ''отключенным'' динамическим освещением, если таковое не нужно) или энтитю {{L|env_lightglow}}. | |||
*Карты не будут освещены, если вы не запустите {{L|vrad}} (или эквивалент). VRAD не сможет работать как надо и не будет рассчитывать реалистичное отражение света, если на карте присутствуют {{L|Leak|утечки}}. | |||
*Некоторые текстуры сами отбрасывают свет и могут быть созданы с помощью <code>{{L|lights.rad}}</code> в папке мода или в <code>sourcesdk/bin</code>. | |||
*Перемещаемые объекты не меняют свечения. Их освещение будет рассчитываться только в соответствии с их положением в Хаммере (например, браш из тёмной комнаты не станет ярче, если его перенести в освещённую комнату). | |||
== {{L|Console command|Консольные команды}} == | |||
[[File:Mat fullbright 2.jpg|thumb|<code>mat_fullbright 2</code>. Ярко-белые физические модели, кажется, работают с ошибкой; они освещаются правильно во время движения.]] | |||
;<code>mat_fullbright <0-2></code> | |||
:<code>0</code> - нормальное освещение. | |||
:<code>1</code> - 'полноценное' освещение, когда всё освещено на 100%. | |||
:<code>2</code> был введён в Orange Box и отображает 'только освещение'. Он заменяет все текстуры на однотонный цвет, позволяя вам увидеть что, где и как излучает свет. | |||
== См. также == | |||
* {{L|HL2 Light Props}} | |||
* {{L|Color Theory in Level Design|Теория цвета (дизайн уровней)}} | |||
* [[List_of_entities#Light_entities|Энтити света]] - Список энтити света. | |||
* {{L|Intermediate Lighting|Вспомогательное освещение}} | |||
* {{L|Advanced Lighting|Продвинутое освещение}} | |||
* {{L|Window lighting|Освещение из окна}} - Как имитировать солнечный свет, исходящий из проёмов. | |||
== Внешние ссылки == | |||
<!-- | |||
* [http://www.halflifestorm.com/?page=tutorials&tutorial=18 Understanding and Using Lightmaps] - Tutorial | |||
* [http://www.halflifestorm.com/?page=tutorials&tutorial=44 Volumetric Lighting] - Tutorial | |||
the Half-Life Storm website seems to have gone AWOL --> | |||
* [http://source-tutorials.synthasite.com/lighting-tutorial.php Lighting Tutorial] - Covers entities & variables with examples | |||
* [http://www.editlife.net/tutorials.php?id=15 Quadratic/Linear/Constant in Lights] | |||
<!-- SDK nuts has closed. When (and if) this tutorial is ported onto the VDC, please link to it instead! | |||
*[http://www.sdknuts.net/akg/?sdk=tutlights HDR/Shaped Light/Burning Light/Darkness/Sun/Volumetric] | |||
--> | |||
{{ACategory|Level Design}} | |||
{{ACategory|Hubs}} | |||
{{ACategory|Lighting|*}} |
Latest revision as of 07:18, 30 May 2025
Серия Воссоздание окружающей обстановки Выскажите свои мысли — Помогите нам воплотить больше идей |
---|
Снаряжение | Животные и существа | Муравьиные львы | Лучи и лазеры | Кабели и верёвки | Движущиеся облака | Теория цвета | Битвы | Комбайны | Сжатие ресурсов | Двери | Пыль, туман и дым | Лифты | Переключение карт | Внешнее освещение, солнце, погода и окружение | Взрывы | Огонь | Растительность | Стекло и окна | Хэдкраб | Жизнеспособность | Лестницы | Освещение | Оптимизация | Физические объекты | Сканеры сетчатки | Звук и музыка | Спецэффекты | Ландшафт | Поезда | Турели | Вода | Оружие | Зомби |
Руководства
- Добавление света - Уроки для начинающих о том, как настраивать основные энтити света .
- Вспомогательное освещение - Подробный материал обо всех источниках света.
- Продвинутое освещение
- Константно-Линейно-Квадратичное рассеивание - Простое объяснение старой системы C-L-Q затухания света.
- HDR - Освещение, поддерживающее технологию широкого динамического диапазона.
Виды
Статичные источники света

- light
- Неподвижный, все-направленный точечный источник света (различные лампы, огонь и др.).
- light_spot
- Неподвижный, однонаправленный точечный источник света (например, направленный прожектор). Конический угол луча не должен превышать 90°.
- light_environment
- Содержит два связанных источника света:
- Рассеянный 'окружающий' свет (отраженный от облаков и атмосферы в целом), исходящий из всех поверхностей скайбокса.
- Направленный 'яркий' свет (солнечный или лунный), падающий в одном направлении.
- Оба излучаются материалом toolsskybox везде, где он есть на карте. См. также Скайбокс .
- env_particlelight
- Освещает частицы, порождаемые env_smokestack. Частицы не подвержены нормальному освещению. Используйте не более двух.
- Светящиеся текстуры
- Брашевые поверхности со светоизлучающим материалом (определяемым в
game_dir/lights.rad
), который отбрасывает свет на угол 180°.
Статичные светоприёмники
- Браши
- Инструмент Масштаб карты освещения диалогового окна Hammer Face Edit Dialog может быть использован для управления резкостью и размытостью лайтмапа на поверхности браша - эффект наиболее заметен в зонах с повышенной контрастностью, например, в затенённых местах. Обратите внимание, что добавление новых источников света не сильно скажется на производительности, но уменьшение масштаба карты освещения (т.е. увеличение разрешения) сразу увеличит размер карты и объём занимаемой памяти.
- prop_static
- В отличие от других моделей, prop_static светится статично: значение освещения сохраняется для каждой вершины , а модель сетки столкновений (или, опционально, reference mesh ) используется для расчёта теней.
- Существуют следующие опции:
disableshadows
- Не отбрасывать тени;disablevertexlighting
- Сохранять только одно значение освещения для всей модели;disableselfshadowing
- Не позволять энтити отбрасывать тень на себя;ignorenormals
- При расчёте освещения игнорировать данные нормалей вершин. Это чрезвычайно полезно для листвы и других тонких типов вершин сетки.
Динамические источники света


env_projectedtexture светит из дверного проёма.
- light_dynamic
- Простой, однонаправленный динамический свет, который может быть перемещён, повёрнут и отрегулирован.
- point_spotlight
- Эффект луча от прожектора с дополнительным динамическим источником света в точке падения на поверхность.
- npc_spotlight
- Прожектор NPC , похожий на point_spotlight, но с возможностью отслеживания целей.
- env_projectedtexture
- Динамический источник, который светит не однотонным цветом, а определённой текстурой и в то же время 'вычитает' реалистичные динамические тени. Влияет на все поверхности, которые могут принимать свет, и используется в качестве фонарика игрока в Episode Two .
Динамические тени






- shadow_control
- Точечная энтити, использует управление динамическими тенями по всей карте, в том числе максимальное расстояние отбрасывания, направление отбрасывания и резкость/рассеяние.
- info_no_dynamic_shadow
- Точечное энтити, использет список брашевых поверхностей, чтобы не отбрасывать динамические тени.
- Энтити prop_physics
- Имеет значение "shadowcastdist" для переопределения дальности отбрасывания динамических теней.
- Энтити prop_dynamic
- Имеет значение "disableshadows" и входы "enableshadows" и "disableshadows" для управления отбрасываемыми ими динамическими тенями.
- Энтити NPC
- Имеет управление prop_dynamic shadow, а также "disablereceiveshadows" Нужно сделать: чтобы предотвращать...?
Эффекты Тиндаля
Эффекты Тиндаля вызваны рассеянием света на взвешенных (коллоидных) частицах в прозрачной среде. Например, автомобильные фары в тумане.
- Эффекты Гало (светящийся спрайт) :
- env_sprite - энтити, используемая для создания всенаправленного свечения или засветки.
- env_lightglow - асимметричное свечение (для зон с контрастным освещением).
- env_sun - добавляет яркое пятно с ореолом в скайбоксе для задания положения Солнца или Луны.
- Эффекты ярких лучей (объёмный свет) :
- Брашевая текстура :
models/effects/vol_light001
- Брашевая текстура :
models/effects/vol_light002
- Модель :
models/Effects/vol_light.mdl
- используется вместе с prop_static.
- Брашевая текстура :
- См. также Режимы отрисовки для спрайтов, особенно Свечение.
Стандартные значения
Яркость | |
---|---|
Автомобильные фары | 231 223 192
|
Лампа Комбайнов | 147 226 240
|
Вольфрамовая лампа | 254 216 146
|
Флуоресцентная труба | 159 237 215
|
Лампа накаливания | 255 245 145
|
Значения для скайбоксов смотрите в списке .
Примечания
- Указание имени источника делает его гораздо тяжелее для рендеринга. Давайте имена только необходимым источникам света. Несколько источников света с одинаковыми именами движку проще обрабатывать, чем с разными.
- light_dynamic - самый тяжёлый, и на некоторых системах может не отображаться
- Основные энтити света не связаны с видимыми источниками (например, лампочки). Для этого вам нужна модель. Смотрите список моделей освещения .
- Основные энтити света не "отсвечивают", как будто в тумане или сумерках. Чтобы это заработало, скомпилируйте и запустите карту с включённым HDR , или добавьте point_spotlight (с отключенным динамическим освещением, если таковое не нужно) или энтитю env_lightglow .
- Карты не будут освещены, если вы не запустите vrad (или эквивалент). VRAD не сможет работать как надо и не будет рассчитывать реалистичное отражение света, если на карте присутствуют утечки .
- Некоторые текстуры сами отбрасывают свет и могут быть созданы с помощью
lights.rad
в папке мода или вsourcesdk/bin
. - Перемещаемые объекты не меняют свечения. Их освещение будет рассчитываться только в соответствии с их положением в Хаммере (например, браш из тёмной комнаты не станет ярче, если его перенести в освещённую комнату).
Консольные команды
mat_fullbright <0-2>
0
- нормальное освещение.1
- 'полноценное' освещение, когда всё освещено на 100%.2
был введён в Orange Box и отображает 'только освещение'. Он заменяет все текстуры на однотонный цвет, позволяя вам увидеть что, где и как излучает свет.
См. также
- HL2 Light Props
- Теория цвета (дизайн уровней)
- Энтити света - Список энтити света.
- Вспомогательное освещение
- Продвинутое освещение
- Освещение из окна - Как имитировать солнечный свет, исходящий из проёмов.
Внешние ссылки
- Lighting Tutorial - Covers entities & variables with examples
- Quadratic/Linear/Constant in Lights