Допоміжне освітлення - valve developer community

Допоміжне освітлення - valve developer community

Подання в Хаммері і грі.

Зображує сонячне світло, спрямований в одну сторону. Напрямок задається числами всередині ентіті. Ключовим є те, що світло виходить з текстури tools / toolsskybox. Перше значення - Brightness (яскравість), задає напрям освітлення. Це приблизно прямі сонячні промені. Друге значення - Ambient (оточення), задає розсіяне світло з неба. Він падає на кожну відкриту неба поверхню. В основному, колір і яскравість тіней на листках.

Якщо ви не хочете придумувати свої значення для цієї сутності, то ось список офіційних значень, використовуваних для кожного скайбокса в іграх Valve.

Зазвичай, на карті потрібно тільки одна сутність light_environment. Якщо ви розмістите кілька таких сутностей, Vrad буде брати значення з першої знайденої.

Прямий промінь світла для ефекту прожектора. Візуальні ефекти включають відблиски навколо джерела світла, спрямований яскравий промінь, і динамічне освітлення землі. Чи не переміщається самостійно, але світло і його мета можуть бути прив'язані до рухається суті. Також, npc_spotlight може використовуватися для створення візуального ефекту, коли світлом керує інтелект NPC. Це джерело динамічного світла дуже навантажує графіком, і повинен використовуватися дбайливо.

пов'язані елементи

Це - список всіх тем, пов'язаних з ентітей, що не випромінюють світло. Незважаючи на це, вони потрібні для ефектів, пов'язаних з освітленням. Якщо вони управляються освітленням ентіть або тіней antlion's. то обов'язково потрапляють під ефекти освітлення.

Найчастіше неправильно трактується як сонячне світло, по суті будучи ефектом накладення відблисків на небі, який виглядає і діє як сонце. Він взагалі не випромінює світло, але часто використовується разом з light_environment для створення ефекту освітлення.

Ще одна сутність, яка не випромінює світло. Env_sprite в основному використовується для легкого свічення і різних яскравих засветов. В Episode 1, в кінці карти використовується env_sprite, який зображає велику залиту світлом майданчик. Це приклад того, як env_sprite може бути використаний в якості яскравої заливки світлом з-за меж темного простору, і в той же час може задіяти технологію HDR. Ця карта знаходиться в кінці Ep1 і називається ep1_c17_06_d.

Shadow_control призначений для використання разом з light_environment; і тому має обмеження у використанні з light. light_spot або light_dynamic.

  • Shadow_control розраховує тіні тільки від одного джерела світла, і працювати буде тільки один shadow_control, так що об'єкт зможе відкидати тільки одну динамічну тінь.
  • Shadow_control розраховує тіні тільки від 'паралельних' сонячних променів (наприклад, сонце / місяць); ігнорує промені від точкових джерел світла (наприклад, лампи).
  • Shadow_control не впливає на Lightmap (і навпаки).

Динамічні тіні не поєднуються з тонкими тінями Lightmap.

  • Рухливі об'єкти (більшість моделей: NPC, prop_phys, weapon_, prop_vehicle, prop_dynamic, і т.д.) ніколи не відкидають тіней карти освітленості; але відкидають динамічні (коли включено shadow_control). Тільки браши і об'єкти prop_static не відкидали динамічних тіней; але відкидають тіні карти освітленості.
  • Величина Lightmap не впливає на різкість / розсіювання динамічних тіней (шкала карти освітлення приблизно дорівнює 1 luxel / unit).
  • Динамічні тіні і тіні карти освітлення від одного джерела світла не зливаються, але перетинаються або "подвоюються".
  • Див. Також Info_no_dynamic_shadow.
  • Динамічні тіні падають тільки на браши.

Вони розкривають, як використовувати зазначені елементи для створення ефективного освітлення. Раніше було викладено багато практичних знань. Але знання марно, якщо воно використовується неналежним чином. Наступні розділи покажуть вам, як використовувати всю повноту інформації, щоб створювати краще висвітлення на ваших картах.

кольорова температура

Зазвичай, яскравість кольору RGB виставляється на 255 255 255. але в реальності яскраво-біле освітлення зустрічається рідко. Залежно від "температури чорного тіла", воно буде випромінювати кольору десь між помаранчевим "червоним" (іменується "теплим", хоча його температура насправді нижче) і ультрафіолетовим "синім" (що має назву "холодним"), як точно показано на цій шкалі. Ви можете взяти цю статтю в якості посилання на ваш спосіб створення світу, або використовувати стандартні карти Valve, де вже виставлені значення RGB для "теплого" світла лампи розжарювання 254 216 146. "холодного" світла флюоресцентной лампи 159 237 215. і звичайного поєднання крижаного світла 147 226 240.

Психологія освітлення

Допоміжне освітлення - valve developer community

Існує багато кольорових комбінацій. Тут ніжний зелений відтінок надає хворобливий вигляд.

Було доведено, що спектр холодного освітлення "температури чорного тіла" (див. Вище) пригнічує гравців, змушуючи відчувати себе ніяково, а іноді і болісно, ​​навіть якщо і присутня теплий колір.

Ця підсвідома емоційна реакція може бути використана для створення певного настрою гравця. Наприклад, кімнати з люмінесцентними лампами будуть зображувати жахи, а яскраві глоу-лампи - спокійну обстановку.

Наприклад, на першій карті Half-Life 2 є коридор, де охоронець веде гравця на допит (типу того). Дослідження освітлення покаже, що Valve постійно зберігає психологічний ефект. Коридор починається з звичайної лампи розжарювання (тепле світіння), за яким йде лампа денного світла (з неприємним світінням). Така комбінація досить рідко зустрічається в реальному житті, тому що це означає, що архітектор передумав будувати коридор, або у електрика закінчилися нормальні лампи. Найімовірніше, Valve (або Комбайни) хотіли домогтися ефекту переходу між небезпечною і безпечної зонами.

Перед тим, як зайти в одну з камер, гравець бачить тривожну сцену за участю громадянина, який пояснює своє скрутне становище. Тут на стелі світить лампа розжарювання. Швидше за все це тому, що денне світло буде некомфортний для такого обсягу. (Флуоресцентний світло використовується в основному для коридорів і великих просторів.) Проте, трохи в стороні розташований безтілесний light_spot. який надає певний настрій сцені.

Крім перерахованих вище прямих ефектів, у створенні певного настрою також може допомогти теорія кольору. Прийняті в якості прикладу лампи денного світла, проте мають неприємну холодну відчуття, оскільки неприродне м'яке синє світіння викликає почуття холодної порожнечі і ізоляції.

Хоча, колір - не єдиний ефект. Відстань і освітленість також вносять свою лепту. Освітлені кімнати здаються більш безпечними, тому що добре проглядаються, а кімнати з постійно мерехтливим світлом викликають неприємні почуття, оскільки велика частина простору прихована від гравця. Також, якщо в кімнаті добре видно всі кути, крім одного, то саме цей кут стане потенційною загрозою, і буде перебувати під пильною увагою гравців.

Використовуйте цю інформацію, щоб стати дизайнером рівня. Вона допоможе створювати як карти жахів, так і карти для дітей, але не намагайтеся лякати дітей до гикавки: Бог вас покарає. Освітлення не просто робить світ видимим, воно визначає його.

Правдоподібний джерело світла

Створення правдоподібного джерела світла може стати нетривіальним завданням. Просте розміщення суті, випромінює світло, нічого не дає в плані того, навіщо воно там і чому. Правильний джерело світла - це таке джерело, який виглядає на карті як рідний. Найчастіше хороший світло складається з декількох ентіть. Зазвичай їх дві: одна - джерело світла, а інша - лампа (береться prop_static або func_detail з відповідною текстурою).

Допоміжне освітлення - valve developer community

Перший крок полягає в тому, щоб визначитися з джерелом світла. Знайдіть потрібну текстуру або модель. Фільтр за словами "light" або "lamp" в браузері текстур або моделей дасть хороший результат. Тепер виберіть лампу, яка підходить по обстановці (тобто промислові для промислової сцени) і розмістіть в кімнаті модель або текстуру. Для нашого прикладу виберіть лампу, показану справа, і поставте її на карту як prop_static.

Наступним кроком буде створення світла. Подивіться на обраний джерело і запитайте себе: чи буде світло виходити через тоноване скло, і чи не є він вузько спрямованим променем. Задіюйте різні ентіті, і задайте їм відповідні властивості, які створять потрібний ефект. В даному прикладі світло буде спрямованим, так що беремо light_spot. Далі, цей буде інтенсивне світло, тому виставляємо яскравість на 1000. Тепер подивимося на колір джерела. Скло не тоноване, а випромінюється потік в реальному світі виходить інтенсивним за рахунок відображають поверхонь всередині, тому залишимо значення температури на 255 255 255. Тепер відрегулюйте лінію променя так, як якщо б він виходив з prop_static.

Тепер може виникнути проблема. Якщо ви помістили джерело світла всередині моделі / Браша, вона може блокувати світло (який буде висвітлювати тільки модель). Щоб уникнути цього, зайдіть в властивості prop_static, і навпроти рядка "Disable shadows" поставте "Yes". (Якщо джерелом світла є браш, перетворіть його в func_brush і змініть його властивості так само. Це запобіжить блокування джерела світла).

Тепер, коли у вас є робочі матеріали, непогано буде згрупувати їх (а можливо, і створити з них префаб, щоб вставляти на інші карти) таким чином, щоб вони завжди залишалися разом.

Ще одним способом створення високоякісного джерела світла, невідмітного від справжнього, і не йде на компроміси з продуктивністю, буде комбінація світла і light_spot. Помістіть light_spot так, як показано вище, але відсуньте його приблизно на 50 одиниць від моделі. Створіть світло з світловий потік близько 50 і того ж кольору, як light_spot. Це додасть світіння правильну форму, чого часто одному light_spot не під силу.

Статичне освітлення проти динамічного

У статичних джерел світла є значна перевага перед динамічними. Статичні джерела не дають додаткового навантаження на графіку, тому вони використовуються для швидкої промальовування карти. Динамічний світло досить сильно навантажує движок, і може сповільнити вашу карту. Важливо розуміти, де і як використовувати той чи інший тип освітлення.

По-перше, статичне освітлення розраховується під час VRAD-компіляції; тому, в грі воно просто візуалізується і не впливає на продуктивність. Стандартне статичне освітлення - це light, light_spot і light_environment, але є умови, які можуть це змінити. Проблема зі статичним освітленням в тому, що воно - статично. І будучи таким, воно не дасть будь-яких спеціальних ефектів.

Динамічне ж освітлення представлено в двох варіантах. Існує перемикається освітлення, і динамічно що розраховується світло. Кожен з них по-своєму впливає на обробку, але обидва вони дуже навантажують графіком, і повинні використовуватися ощадливо.

Перемикається освітлення схоже на статичну тим, що інформацію про карту освітленості воно збирає в процесі компіляції RAD. Світло роблять перемикається з допомогою трьох речей: йому дають ім'я, йому дають стиль, йому задають шаблон. Звичайним освітленням, яке не підтримує динамічні ефекти, є перемикаються вогні: це light і light_spot, але аж ніяк не light_environment. Перемикається світло використовує дві карти освітленості: включено і вимкнене. Перемикається освітлення чергує або змішує карти освітленості, що дозволяє створювати їх тільки дві. Це дає статичному освітленню всі переваги, дозволяючи бути частково динамічним. Припустимо, у вас є два перемикаються джерела світла, які падають на одну поверхню, скільки необхідно карт освітленості?

  • Light 1 2 ВКЛ
  • Light 1 ВКЛ, 2 ВИМК
  • Light 1 ВИКЛ, 2 ВКЛ
  • Light 1 2 ВИКЛ

В цілому, це чотири стану. Ви додали третю перемикати лампу, і утворили вісім карт освітленості. Тут виникає проблема з освітленням, бо для карти освітленості занадто важко створювати всі можливі стани. Справа в тому, що існує жорстко запрограмований ліміт: для однієї поверхні ви можете створювати тільки дві перемикаються лампочки. Є деяке рішення: для однієї поверхні ви можете зробити 50 перемикаються лампочок з одним і тим же ім'ям; тим не менше, не можна створювати більш 32 названих джерел світла. Перемикається освітлення збільшує час запуску RAD, збільшує розмір файлу, а також навантажує систему під час перемикання; проте, в будь-якому стані воно надає не більший вплив, ніж статичне освітлення.

Істинне динамічне освітлення - це те, що притаманне самій ентіте, і пов'язано з властивостями її батька (Parent). Ентіті з вбудованим динамічним ефектом - light_dynamic і point_spot. Point_spot має унікальний прапорець, який переводить його в динамічний або статичний режим освітлення, і за замовчуванням включений динамічний режим, що може застати вас зненацька. Динамічний процес освітлення повністю виконується під час гри, що означає, що він не впливає на компілятор RAD і розмір файлу, але гальмує під час гри на карті. Система гальмує тому, що динамічний світ повинен постійно вимальовуватися. Такі ентіті повинні використовуватися тільки тоді, коли джерело світла рухається, якщо ж світло не призначений для руху, то він не повинен бути істинно динамічним. Якщо він призначений для включення і виключення, то повинен бути перемикається. Ніякий переміщення не повинно мати статичний світло. При неправильному використанні, витрати на динамічне освітлення будуть переважувати його переваги. Динамічне освітлення повинно використовуватися набагато економніше, ніж перемикається освітлення. Ще однією слабкою стороною динамічного освітлення є те, що для спрощення обчислень воно не запускає процеси відображення і дифузії, що дає різке світло.

Статичне освітлення легко для движка, і дає хорошу деталізацію, динамічне ж освітлення може переміщатися і змінюватися, але при цьому навантажується графіка і виникає втрата деталізації. Найпростішим способом перевірити вашу карту на завантаження динамічним освітленням, є команда + Showbudget. Вона дозволяє з'ясувати, коли на вашій карті занадто багато світлових ефектів. Добротне використання динамічного освітлення може дуже покращити вашу карту, і одночасно гальмувати її.

Швидкий і ефективний RAD

Процес компіляції RAD може проходити дуже довго, що стане гальмом у процесі розробки карти. Вирішити це можна наступним чином:

  • Вимкніть компіляцію RAD, і включайте її тільки тоді, коли необхідно налаштувати і перевірити освітлення карти.
  • Використовуйте інструмент Cordon. щоб компілювати лише окремі ділянки карти. (Якщо ви використовуєте light_environment. Створіть його копію, і помістіть в межах компилируемого ділянки карти.)
  • Внесіть кілька змін відразу. Навіщо налаштовувати тільки пару точок освітлення, коли їх можна налаштувати в різних частинах карти, і все це відразу скомпілювати?
  • Організаціями зі стандартизації ваше освітлення. Встановіть значення RGB і кольору для кожного типу освітлення вашого рівня (напр. Флуоресцентних ламп або прожекторів, і т.д.), щоб кожен екземпляр мав однакові вихідні значення. Тоді, замість того, щоб для кожного джерела світла придумувати свої значення, вам потрібно всього лише підправити деякі значення для отримання потрібного ефекту (напр. У великій кімнаті знадобиться багато світла певного типу).
  • Використовуйте будь-який вільний комп'ютер в будинку. Встановіть на них SDK, і компілюйте там ваше освітлення. Поки вони компілюють, ви будете продовжувати малювати карту.
    • Автоматизуйте синхронізацію ваших файлів за допомогою програми Dropbox або SparkleShare. щоб спростити процес.

висновок

Ми розкрили основи ефектів освітлення в стандартних іграх Source. З випуском Episode Two можуть бути додані нові ефекти.