Что такое статичное освещение сцены

Алан-э-Дейл       20.10.2023 г.

Использование[]

Как ингредиент при крафте

Ингредиенты Рецепты крафта Результат
Камень +Красный факел +Кварц Нижнего мира Компаратор
Железный слиток +Палка +Красный факел Активирующие рельсы
Камень +Красный факел +Красная пыль Красный повторитель

Размещение

Красные факелы могут быть установлены на всех сторонах большинства твёрдых, непрозрачных, полных блоков (в том числе двух плит). Исключения перечислены в таблице ниже.

Блок Может ли быть установлен факел
Ступени Только сверху перевёрнутых ступеней
Плита Только сверху плит, установленных в верхней половине блока
Забор Только сверху
Булыжниковая стена Только сверху
Стекло Только сверху
Окрашенное стекло Только сверху
Загрузочная воронка Только сверху
Снег Только сверху 8 слоёв
Поршень Только сверху и только в отключённом состоянии
Липкий поршень Только сверху и только в отключённом состоянии
ТНТ ТНТ при этом не активируется
Шалкеровый ящик Да
Магмовый блок Да
Блок слизи Да
Маяк Да
Песок душ Да
Лёд Да
Плотный лёд Да
Светокамень Да
Спаунер мобов Да
Люки Да
Цепь Да
Рамка портала Края Нет
Грядка Нет
Листва Нет
Табличка Нет
Чародейский стол Нет
Костёр Нет
Кувшинка Нет
Кактус Нет
Тропа Нет

В схемах из красного камня

Красные факелы могут заряжать блоки и активировать механизмы. Также красный факел способен инвертировать сигналы.

Красный факел активирует близлежащие красные провода и выключается, если к блоку, на котором он закреплён, подводится включённый красный провод. При переключении своего состояния красный факел дает задержку в один такт красного камня (0,1 секунды). Если красный факел будет в течение некоторого времени менять своё состояние с частотой в один такт (например, будет замкнут сам на себя), то он «перегорит» — перестанет работать до тех пор, пока не изменится цепь, к которой он подключён.

В активном состоянии красный факел может активировать красный провод, компаратор или повторитель до уровня сигнала, равного 15, в том числе под самим красным факелом, если он прикреплен к боковой стороне блока.
Также он способен заряжать твёрдый непрозрачный блок, если этот блок расположен над красным факелом. Красный факел не влияет на блок, к которому он прикреплен, даже если это блок-механизм. Например, факел из красного камня, прикреплённый к лампе, не активирует её.

Красный факел гаснет, когда он вынужден изменить своё состояние более восьми раз за 60 тактов (три секунды, исключая задержку). После сгорания красный факел дымится, шипит и отключается, а затем игнорирует попытки изменить своё состояние до тех пор, пока количество изменений состояния за последние 60 тактов игры не упадёт до менее восьми. После этого он повторно активируется, когда получает обновление блока (соседний блок меняет своё состояние) или обновление красного провода, которое обычно не деактивирует красный факел. Нет предела тому, как часто может перегореть единственный красный факел.

Свет

Уровень света красного факела — 7, но использовать красный факел в качестве источника света не рекомендуется, потому что он выделяет в два раза меньше света, чем обычный факел (и свет красного факела не будет мешать спауну враждебных мобов). Добыть красную руду сложнее, чем уголь (нужна более качественная кирка, опасная близость лавы). К тому же крафтится красный факел в соотношении 1:1, а обычный факел — 1:4.

Красный факел не может растопить снег или лёд.

История[]

Pre-classic-версия Java Edition
Нотч предлагает добавить факелы, которые «осветят область размером 3×3».
Indev-версия Java Edition
0.31 20091223-2 Добавлены факелы.
Факелы могут быть размещены в воздухе без какого-либо поддерживающего их блока и не имели верхней текстуры.
Факелы теперь имеют другую иконку в инвентаре.
? Верхние красные пиксели факела были удалены. Тем не менее, факелы по-прежнему не имеют верхней текстуры.
Факелы теперь стали короче.
Факелы теперь немного тусклее.
20100125-1 Факелы теперь имеют эффекты частиц.
Факелы теперь могут быть сделаны в верстаке.
unknown В ранней версии игры при удалении блока факел перемещался в другой доступный блок.
unknown Факелы теперь имеют верхнюю текстуру.
Альфа-версия Java Edition
v1.1.0 Факелы больше нельзя размещать на листьях деревьев (только на причудливой графике).
v1.2.0 ? Факелы теперь используются для крафта светильника Джека.
Бета-версия Java Edition
1.2 Теперь факелы можно скрафтить из древесного угля.
1.6.6 Факелы теперь могут быть размещены на светокамне.
1.7 Факелы больше нельзя размещать на листьях, независимо от того, были ли они сгенерированы естественным образом на дереве или размещены после обрезки ножницами.
Факелы и красные факелы теперь можно размещать на заборах.
1.8 1.8 Pre-release Факелы теперь генерируются в заброшенных шахтах.
Официальный выпуск Java Edition
1.2.1 12w08a Теперь факелы можно размещать поверх блоков травы.
1.3.1 12w19a Факелы теперь появляются вокруг бонусных сундуков, если вокруг каждой стороны есть блок на одинаковой высоте.
12w25a Факелы теперь можно размещать поверх перевернутых плит и ступенек.
1.4.2 12w42b Падающий песок теперь правильно «всплывает» при падении на факелы.
1.8 14w07a Факелы, размещённые на стенах, теперь представляют собой просто повёрнутые версии вертикальных факелов, а не имеют собственную модель блока.
14w18a Факелы теперь можно размещать на витражах.
? Факелы, являющиеся частью портала выхода из Края, теперь генерируются некорректно и попадают в портал как предметы.
1.9 15w43a Факелы теперь могут генерироваться в подвалах иглу.
15w44a Факелы теперь можно найти внутри вагонеток с сундуком в заброшенных шахтах.
1.11 16w39a Факелы теперь генерируются в лесных особняках.
1.13 17w47a Состояния блока, повёрнутого не вверх для ID были отделены в .
До «Сглаживания» числовой ID этого блока был 50.
1.14 18w43a Текстура факелов была изменена.
18w46a Факелы теперь можно использовать для изготовления фонарей.
18w47a Факелы теперь генерируются в форпостах разбойников.
1.14.3 pre3 Факелы теперь могут быть размещены на железных прутьях и стеклянной панели.
1.16 20w06a Добавлены факелы душ.
20w15a Факелы душ теперь можно крафтить с помощью песка душ.
20w17a Факел огня душ был переименован в Факел душ.
Идентификаторы факелов души были изменены с на и на .
0.1.0 Добавлен факелы.
0.8.0 build 2 Факелы теперь используются для крафта светильников Джека.
0.9.0 build 1 Факелы теперь генерируются в деревнях, заброшенных шахтах и крепостях.
build 2 Факелы теперь могут размещаться на спаунерах.
build 5 Скорость размещения факелов была улучшена.
build 6 Освещение от факелов теперь стало ярче и ближе к тому, что есть в PC.
0.14.0 build 1 Факелы теперь можно найти внутри вагонеток с сундуком в заброшенных шахтах.
1.0.0 alpha 0.17.0.1 Факелы теперь генерируются в подвалах иглу.
Четыре факела теперь генерируются на портале выхода из Края после смерти дракона Края.
1.1.0 alpha 1.1.0.0 Факелы теперь генерируются в лесных особняках.
Официальный выпуск Bedrock Edition
1.2.0 beta 1.2.0.2 Четыре факела генерируются рядом с бонусным сундуком.
1.4.0 beta 1.2.20.1 Факелы теперь можно использовать для изготовления подводного факела и цветных факелов.
1.10.0 beta 1.10.0.3 Текстура факела была изменена.
Факелы теперь генерируются в форпостах разбойников.
Факелы теперь используются для крафта фонарей.
1.11.0 beta 1.11.0.1 Факелы теперь можно найти в селе биома саванны.
1.16.0 beta 1.16.0.51 Добавлены факелы душ.
beta 1.16.0.57 «Факел огня душ» теперь был переименован в «Факел душ».
Для крафта факелов душ используется песок душ.
Legacy Console Edition
Добавлены факелы.
Факелы теперь могут быть размещены на полной стороне ступенек.
Текстура факелов была изменена.
Факелы теперь используются для крафта фонарей.
Факелы теперь генерируются в форпостах разбойников.
New Nintendo 3DS Edition
0.1.0 Добавлены факелы.

Как настроить динамическое освещение

Динамическое освещение настраивается картой в Roll20. Щелкните панель инструментов страницы в верхней части экрана, выделите карту, которую хотите отредактировать, а затем щелкните значок «Параметры».

Есть три вкладки: «Сведения о странице», «Динамическое освещение» и «Устаревшее освещение». Если вы еще не обновили свою игру до современного динамического освещения, вы будете использовать устаревшее освещение. В противном случае вам нужна средняя вкладка.

Если вы не изменили настройки где-либо еще, динамическое освещение будет отключено. Щелкните переключатель, чтобы включить его. Как только вы это сделаете, вы можете выбрать, активировать ли режим проводника, дневной режим и обновлять при сбросе токена.

Если у вас есть друзья, чьи компьютеры не могут справиться с освещением, активация обновления при сбрасывании жетонов позволяет Roll20 делать обновления только при перемещении жетонов, что уменьшает ресурсы, необходимые для динамического освещения.

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

Динамика и статика: общие сведения

Подсветка объекта с использованием одноцветных источников света, обладающих неизменными показателями яркости, определяется как статическая. В данном случае могут использоваться осветительные приборы, работающие с различными видами источников света, в том числе светодиодные прожекторы, люминесцентные светильники и т.д.

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

  • театры;
  • архитектурные памятники;
  • административные здания;
  • учебные заведения.

То есть данный тип более актуален там, где требуется использовать подчеркнуто строгий стиль.

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

Использование приемов динамической подсветки актуально в тех случаях, когда требуется привлечь к объекту максимум внимания, сделать его узнаваемым и заметным. Возможности современных осветительных приборов, применяемых для художественной подсветки зданий, позволяют воплотить самые сложные задумки дизайнеров. Чаще всего данный тип подсветки применяется для декорирования фасадов таких объектов как:

  • торгово-развлекательные центры;
  • рестораны;
  • ночные клубы;
  • спортивные комплексы и прочие культурно-массовые заведения.

Также динамическая подсветка может применяться для украшения улиц и зданий в период праздников.

Список литературы

  1. Seif El-Nasr, M., Miron, K. and Zupko, J. (2005). Intelligent Lighting for a Better Gaming Experience. Proceedings of the Computer-Human Interaction 2005, Portland, Oregon.
  2. Seif El-Nasr, M. (2005). Intelligent Lighting for Game Environments. Journal of Game Development, 1(2),
  3. Birn, J. (Ed.) (2000). Digital Lighting & Rendering. New Riders, Indianapolis.
  4. Calahan, S. (1996). Storytelling through lighting: a computer graphics perspective. Siggraph Course Notes.
  5. Seif El-Nasr, M. and Rao, C. (2004). Visually Directing User’s Attention in Interactive 3D Environments. Siggraph Poster Session.
  6. Reid, F. (1992). The Stage Lighting Handbook. A&C Black, London.
  7. Reid, F. (1995). Lighting the Stage. Focal Press, Boston.
  8. Petr Dyachikhin (2017), Modern Videogame Technology: Trends and Innovations, Bachelor’s thesis, Savonia university of applied sciences
  9. Adorama learning center (2018), Basic Cinematography Lighting Techniques, from (https://www.adorama.com/alc/basic-cinematography-lighting-techniques)
  10. Seif El-Nasr, M., Niendenthal, S. Knez, I., Almeida, P. and Zupko, J. (2007), Dynamic Lighting for Tension in Games, the international journal of computer game research
  11. Yakup Mohd Rafee, Ph.D. (2015), Exploring Georges de la Tour’s painting based on Chiaroscuro and tenebrism theory, University Malaysia Sarawak
  12. Sophie-Louise Millington (2016), In-Game Lighting: Does Lighting Influence Player Interaction and Emotion in an Environment?, University of Derby
  13. Prof. Stephen A. Nelson (2014), Properties of Light and Examination of Isotropic Substances, Tulane University
  14. Creative Commons Attribution-ShareAlike License (2019), The Dark Mod, from (https://en.wikipedia.org/wiki/The_Dark_Mod)

Inputs

Set the light’s render color (R G B).
Set the light brightness.
Set the maximum light distance.
Set the inner (bright) angle.
Set the outer (fading) angle.
Set the radius of the spotlight at the end point.
Change the lightstyle (see Appearance field for possible values).
Turn the light off.
Turn the light on.
Toggle the light on/off.

Base:

Adds to the entity’s list of response contexts. Format is .
Assigns a new keyvalue/output on this entity. For keyvalues, some rely on extra necessary code to be ran and won’t work if its simply just changed through this input. There is a strict format that must be followed:

Syntax: 

// Format of changing KeyValues "AddOutput  "
//// Raw text
"OnUser1" "!self,AddOutput,targetname new_name"

// Format of adding an Output "AddOutput {targetname}:{inputname}:{parameter}:{delay}:{max times to fire, -1 means infinite}"
//// Raw text
"OnUser1" "!self:SetParent:!activator:0.0:-1"
// Arguments can be left blank, but the empty blank should still be contained.
//// Raw text
"OnUser1" "!self:ClearParent::0.0:-1"
Removes all contexts from this entity’s list.
Removes this entity from the the movement hierarchy, leaving it free to move independently.
to
Fires the respectiveoutputs; see User Inputs and Outputs.
Removes this entity and any entities parented to it from the world.
Functions the same as , although this entity and any entities parented to it are killed on the same frame, being marginally faster thaninput.
Remove a context from this entity’s list. The name should match the key of an existing context.
Move with this entity. See Entity Hierarchy (parenting).
Change this entity to attach to a specific attachment point on its parent. The entity will teleport so that the position of its root bone matches that of the attachment. Entities must be parented before being sent this input.
As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
 !FGD
Same as a player invoking +use; no effect in most cases.
 !FGD
Dispatches a response to the entity. See Response and Concept.
 (removed since ) !FGD
Dispatches a special effect from the entity’s origin; see also List of Client Effects. Replaced by the particle system since .
 (in all games since )
Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
 (in all games since )

Execute a string of VScript source code in the scope of the entity receiving the input. String quotation may be needed when fired via console.
 Bug: In Hammer, using string arguments will corrupt the VMF file’s structure, making the file unviewable for the next Hammer session.

Fix: Remove the string argument manually with a text editor.
 (in all games since ) !FGD
Execute a VScript function in the scope of the receiving entity.
 (in all games since ) !FGD
Send this entity to a spot in the map. If the entity is parented to something, it will be offset from the parent by this amount.
 (in all games since ) !FGD
Set this entity’s angles.

Keyvalues

Entity to point at
The name of an entity in the map that the dynamic light will point at.
Light color
The RGB render color of the spotlight. Colors must be between 0 and 255.
Light brightness
The intensity of the spotlight.
Inner (bright) angle
The angles of the inner spotlight beam. 0 makes it omnidirectional.
Outer (fading) angle
The angles of the outer spotlight beam. 0 makes it omnidirectional.
Pitch
Used instead of Pitch Yaw Roll’s value for reasons unknown.
Maximum distance
This is the distance that light is allowed to cast, in inches.
Spotlight end radius
This is the radius of the light, in inches, at the object that it is hitting.
Appearance
Various Custom Appearance () presets.
Light Appearances
Literal Value Description Sequence Preview
Normal
10 Fluorescent flicker
2 Slow, strong pulse
11 Slow pulse, noblack
5 Gentle pulse
1 Flicker A
6 Flicker B
3 Candle A
7 Candle B
8 Candle C
4 Fast strobe
9 Slow strobe
12 !FGD Underwater light mutation

Base:

Name
The name that other entities use to refer to this entity.
Parent

Maintain the same initial offset to this entity. An attachment point can also be used if separated by a comma at the end. ()
 Tip: Entities transition to the next map with their parents

 Tip: can be used as a workaround if parenting fails.

Global Entity Name
When the player transitions to a new map, entities in the new map with matching globalnames will have their previous map’s states copied over to it.
Origin (X Y Z)

The position of this entity’s center in the world. Rotating entities typically rotate around their origin.
 Note: Hammer does not move the entities accordingly only in the editor.

Pitch Yaw Roll (X Y Z)

This entity’s orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
 Note: This works on brush entities, although Hammer doesn’t show the new angles.

Response Contexts

Pre-defined response system contexts; Format is and so on.
 Tip: Can also be filtered for or against!

Classname  !FGD

Determines the characteristics of the entity before it spawns.
 Tip: Changing classnames using theinput can still influence the game’s code, like making the classname match one element in the S_PreserveEnts list will make the entity persists on new rounds!

Flags  !FGD
Toggles exclusive features of an entity, its specific number is determined by the combination of flags added.
Effects  !FGD
Combination of effect flags to use.
Hammer ID  !FGD
The entity’s unique Hammer ID that’s auto-generated on map compiles. Mainly used by plugins or debugging commands (like thecommand). Run-time spawned entities don’t have a Hammer ID.
Entity Scripts  (in all games since )
Space delimited list of VScript files (without file extension) that are executed after all entities have spawned. The scripts are all executed in the same script scope, later ones overwriting any identical variables and functions.
Script think function  (in all games since )
Name of a function in this entity’s script which will be called automatically every 100 milliseconds (ten times a second) for the duration of the script. It can be used to create timers or to simulate autonomous behavior. The return value (if present) will set the time until the next call. Try to avoid expensive operations in this function, as it may cause performance problems.
Lag Compensation  (in all games since ) !FGD
Set to Yes to lag compensate this entity. Should be used very sparingly!
Disable for Xbox 360  (in all games since ) !FGD
If this entity should automatically be given the ‘Disable’ input on the Xbox 360 version of Source.
Is Automatic-Aim Target  (in all games since ) !FGD
If set to 1, this entity will slow down aiming movement for consoles and joystick controllers when the entity is under the crosshairs.

Освещение стен

Вот только стены в текущей текстуре чёрные. «Конечно», возразит зануда, далёкий от геймдева, пиксельарта и чувства прекрасного — «Ведь это не стены, а срез трехмерных стен в двумерном пространстве. А внутри стен, как известно, темно.». Поблагодарим зануду и продолжим эксперименты. Попробуем вообще не затемнять стены:

Стены без применения освещения.

В первом случае результат красиво смотрелся только под землёй, во втором — на поверхности. Нужно адаптивно менять яркость стен в зависимости от окружения.

Переведём наши массивы в текстуру, где в одном канале будет яркость пикселя, а другом — принадлежность стене. Размоем пиксели стены на GPU с помощью простого шейдера (простое среднее арифметическое с соседями) в цикле.

Размытые стены (scale = 2).

Вот такое недоразумение получится, если применить освещение.

В первой статье цикла я рассказывал про основы пиксельарта

Дополню еще одной важной аксиомой: никаких градиентов в духе photoshop’а! Это превращает аккуратную картинку в мыло и пластилин. На фоне градиенты не так бросаются в глаза, как на стенах

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

Световая маска с низкой дискретизацией (scale = 2).

Результат применения маски.

Результат применения маски при использовании реальных текстур.

Обратите внимание, как хорошо скрываются шумы и недочеты освещения, когда мы применяем его к реальным текстурам. Если бы глобальное освещение было динамическим, человеческий мозг, отлично распознающий движение, сразу же нашел бы косяки

Итак, у нас есть глобальное освещение!

Плюсы этого алгоритма:

  • Настраиваемость. Меняя количество лучей, количество переотражений или размер текстуры, можем найти баланс между качеством и скоростью;
  • Многопоточность. В теории (на практике пока не дошли руки), алгоритм должен хорошо распараллеливаться;
  • Реалистичность. В пещерах темно, в комнатах — сумеречно, как мы и хотели;
  • Простота в использовании. Создаём новый уровень, запускаем игру и всё.

И минусы:

  • Скорость работы. Около двух секунд на расчет освещения при загрузке уровня;
  • Зависимость от размера карты. Увеличение карты в два раза замедлит расчет света тоже в два раза (забавный момент: чем сильнее мы заполним уровень стенами, тем быстрее будет рассчитываться свет);
  • Шумы. Возможно, на некоторых картах будут заметны артефакты освещения.

Методы

Оптимизация карты освещённости

Практически всю свою информацию карты освещённости хранят в файлах Source BSP, поэтому их эффективное использование является эквивалентом хорошего освещения. Они вносят ключевой вклад в размер файла BSP: эффективное использование имеет преимущество в загрузке карты для любого желающего поиграть.

Масштаб карты освещённости — основной момент оптимизации. Он определяет, насколько детальна будет информация об освещении для данной грани ( вы можете посмотреть эффекты). Чем больше хранится информации, тем больше размер файла. Меньший масштаб карты освещённости даёт отличную детализацию, но ценой распухшего файла (производительность останется без изменений). Больший масштаб создаёт размытое освещение, но уменьшает размер файлов. Поэтому, нуждается ли грань в детализированной карте освещенности — является определённой задачей.

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

 Примечание: Не забывайте также учитывать размер грани. Если большую поверхность переместить всего лишь на одну точку вверх или вниз, это может иметь большие последствия. Если необходимо, не бойтесь разделять грань на сегменты.

Пример

Рабочий пример.

Рассмотрим рабочий пример коридора, который изображён справа. Одна картинка показывает вид в игре, другая отображает карты освещенности в редакторе Hammer. Карту освещённости легко посмотреть: в окне 3D-вида щелкните левой кнопкой мыши по слову Camera, и в выпавшем меню выберите 3D Lightmap Grid. И так, жёлтые грани показывают меньший масштаб относительно масштаба по-умолчанию, белые грани — масштаб по-умолчанию, и синие — большой масштаб.

В коридоре видим светильники на стенах и потолке. На снимке видно, где масштаб освещения выше, а где ниже. Передняя сторона колонны имеет повышенную карту освещённости, чтобы поймать все нюансы, т.к. на ней висит источник света. Это не такая большая проблема, ведь колонна — суть маленькая тонкая грань с малым масштабом. Пол и стены вдоль края имеют увеличенный масштаб освещённости, поскольку в игре их детализация интереса не представляет, особенно пол. У остальных граней оставлен масштаб по-умолчанию, поскольку там есть некоторая игра теней и перепады яркости. Увеличение масштаба в них приведёт к плохой освещённости и потере детализации.

Хотя, с технической точки зрения, для улучшения чёткости теней можно уменьшить масштаб на всей карте, однако затянутая компиляция и раздутый размер файла перевешивают эту плюшку. Поиск баланса между большим и малым масштабами карты освещённости может отнять у вас несколько компиляций и привести к некоторым догадкам, которые позволят найти оптимальный размер файла карты.

Создание теней

Некоторые пропы пропускают сквозь себя статичный свет, но имеют сетку столкновений, которая полностью их покрывает (большинство, если не все[confirm], чему хороший пример — модель забора в серии игр Half-Life 2). Как результат — большие, неестественные тени. Обойти это можно, создав func_brush, отключив в нём тени и покрыв текстурой . Насколько это будет трудно, зависит от размеров пропа. Обычно, браши с block_light рисуются там, где свет не должен проходить сквозь браши/пропы.


В этом примере материал metaltruss024a используется без block_light.


В игре. Материал не отбрасывает тени, хотя балка реально загораживает свет.

Покрыв балку материалом block_light, вы создадите ‘фиктивные’ тени.


Здесь же, block_light покрывает балку по контуру текстуры.


В игре.

Управление

По умолчанию, всё динамическое освещение мода включается и выключается кнопкой «L», но это можно изменить в настройках. Мод позволяет создавать неограниченное количество источников света, но учтите, что слишком их большое количество значительно снизить скорость FPS в игре, все зависит от мощности вашего компьютера. Для оптимизации работы мода очень рекомендуем установить OptiFine HD. Он полностью совместим и работает корректно. Также мод хорошо ведет себя и в сетевой игре со стороны клиента. Он никаким образом не нагружает сервер. Можете смело его устанавливать в мультиплеер игрищах.

Опции компилирования

Движок Orange Box (Source 2007) добавил три новых опции, которые повышают реализм во время компиляции. Чтобы получить к ним доступ, в диалоговом окне Run Map выберите режим Expert, и затем «HDR Full compile -final (slow!)»; далее, в списке ниже, выберите строку «$light_exe». В поле Parameters введите необходимые параметры, описанные ниже.

ПРИМЕЧАНИЕ: Это значительно увеличит время компиляции, так что рекомендуется использовать на последних стадиях создания карты!

-staticproppolys

Как правило, VRAD создаёт тени под статичными пропами на основе сетки столкновений, потому что это проще, поскольку сетка столкновений близка к форме пропов. Обычно этого достаточно, но некоторые пропы могут иметь упрощенную сетку — или вообще её не иметь — вынуждая VRAD создавать неестественные тени. Данная опция позволяет обходить это для некоторых пропов, заставляя VRAD использовать полигональную сетку. Также, это необходимо, если вы используете -textureshadows (см. ниже).

Просто добавьте -staticproppolys в список параметров $light_exe (см. ниже).

-textureshadows

Не все пропы имеют геометрические «дырки». Сетчатые заборы, например, используют текстуры с альфа-каналами. Обычно они не распознаются VRAD, поэтому при их использовании отключите тени от них (что иногда приводит к приличным результатам), или добавьте эту опцию, которая заставит VRAD обрабатывать альфа-каналы также, как и браши.

Чтобы команда -textureshadows работала, вам нужно создать пользовательский файл RAD со списком пропов, к которым будет применяться данная опция. Извлеките из игры файл lights.rad с помощью GCFScape или Crafty, поместите его в папку с игрой и дайте ему новое имя. Затем, откройте его в любом текстовом редакторе, и добавьте строку forcetextureshadow , чтобы файл применился к каждой модели. Также необходимо активировать ‘staticproppolys’. Наконец, добавьте -lights -textureshadows в список Parameters $light_exe (см. ниже).

-staticproplighting

В отличие от двух других, этот параметр влияет на свет, отбрасываемый пропами. Пропы, как правило, отсвечивают в зависимости от места размещения (см. info_lighting выше), что приводит к неестественному освещению, когда свет падает только на одну сторону пропа, или проп находится наполовину в тени. Эта опция заставляет VRAD рассчитывать уровень света каждой вершины независимо. Из всех трёх опций, эта, пожалуй, сильнее всего влияет на время компиляции, но, как правило, является необходимым шагом в деле создания убедительно выглядящих моделей.

Просто добавьте -staticproplighting в список $light_exe Parameters (см. выше).

 Предупреждение: Параметр отключает энтити info_lighting в статических пропах, не использующих рельеф карты!

 Примечание: light_spot будет освещать вершины независимо от этого параметра.

 Примечание: Параметр подталкивает некоторые пропы (например сосны) отбрасывать тени на себя, создавая неестественный вид. Чтобы избежать этого, в свойствах пропов установите значение для Disable Self-Shadowing with vertex lighting на «Yes.»

 Примечание: Пропы, использующие карты рельефа или фонг-материалы, не будут отсвечивать вертексами.

Что такое глобальное освещение?

Давайте определимся, какую картинку мы вообще хотим получить. «На свету светло, в темноте — темно» — звучит неплохо для отправной точки. Как в реальном мире: в шкафу темно, в коридоре светлее, в комнате еще светлее, а на крыше совсем ярко. Переформулируем: элементы фона, персонажи и прочие объекты должны получать столько света, сколько фотонов смогло добраться до них от небесной сферы (в нашем 2D случае — небесной окружности). Понятно, что лучше направлять наши «фотоны» не с неба, как в реальном мире, а наоборот, из освещаемой точки в небо: в противном случае нам понадобится слишком много бросков, да и то, многие уйдут «в молоко».

Ещё одно из условий: рассчитываем глобальное освещение только для статических объектов: стен, земли. Так мы сможем запускать его при загрузке и пользоваться результатами весь уровень (без влияния на fps).

Кусочек сцены. На самом деле, расчеты идут для всей сцены целиком.

Гость форума
От: admin

Эта тема закрыта для публикации ответов.