Как сделать светящийся объект в unity

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

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

Свет.

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

Свет можно добавить к вашей сцене из контекстного меню в верхней части редактора по пути GameObject\Light . В появившемся подменю можно выбрать необходимый формат источника освещения. В Unity существует четыре источника освещения, которые мы можем расставить по сцене и пятое, которое работает на всю сцену в целом. В этой статье я вкратце расскажу, что они собой представляют. Позже я также напишу отдельную статью, которая более углубленно расскажет о каждом из них. Итак, начнем:

1. Point Light – это точечный свет который мы можем настроить по радиусу действия. Например, с помощью такого источника освещения мы можем сделать свет для лампочки или факела.

2. Spot Light – представляет из себя направленный конус света, с помощью него можно сделать свет от фонарика или прожектора.

3. Directional Light – представляет из себя направленный источник освещения и имитирует свет от солнца.

4. Area Light – представляет из себя прямоугольник, который светит впереди себя. С его помощью можно сделать, например, свет от телевизора/монитора.

5. Ambient Light – это рассеянный свет который в отличие от остальных видов освещения – присутствует во всей сцене и не исходит от какого то конкретного объекта. Он предназначен чтобы задавать яркость сцене, или же, например, создать настроение светом для нее. Для его настройки перейдите по пути в контекстном меню Window\Rendering\Lighting Settings . Секция Environment Lighting это и есть рассеянный свет. Поиграйте с её настройками, и поймете, как он воздействует на сцену.

Помимо создания готовых игровых объектов со светом, вы также можете добавить источник освещения (он же компонент Light ), к любому игровому объекту, находящемуся на сцене. Для этого нужно выбрать интересующий вас игровой объект и в контекстном меню выбрать Component\Rendering\Light после чего он добавится к компонентам игрового объекта.

Данный компонент имеет множество настроек, которые вы можете увидеть в окне инспектора.

Я создаю приложение iOS в игровом движке Unity.

Я пытаюсь переписать свой шейдер, чтобы материал, использующий его, дал эффект Bloom (Glow) (как компонент Halo).

Пример того, как он должен выглядеть:

Bloom (Glow) effect

enter image description here

Я действительно искал ответ в Интернете, но ничего не нашел для рабочего или подходящего решения моей проблемы.

Мой шейдерный код:

Шейдерная программа - это просто код, используемый для рисования треугольников на экране. Эффекты Bloom - совершенно другой зверь, и это расчеты пространства экрана, которые выполняются после рисования геометрии. Вы не получите эффект цветения, просто изменив шейдер объекта.

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

Тем не менее, вы можете заставить его работать, внедряя скрипты Image Effect, такие как встроенный эффект цветения. После добавления сценария в камеру и активации HDR-настройки камеры вы можете использовать специальный шейдер, который приведет к сиянию, но не раньше всего.

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

Недавно я играл с неоновыми эффектами для игры, которую я делаю, и хотел поделиться с вами своими результатами.

Если у вас есть другие способы достижения этого результата, обязательно поделитесь.

1 ответ

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

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

«введите

Это спрайт, который мы использовали в игре (он встроен в альфа, который необходим для эффекта свечения):

Это шейдер, который я сделал для эффекта:

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

Итак, вы создаете новый материал, выбираете шейдер для этого материала, меняете цвет и ввод спрайта, и у вас есть неоновый эффект.

Несколько советов по улучшению освещения в Unity

Linear Color Space

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

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

Gamma Color Space

Liner Color Space

Для того чтобы использовать линейное пространственное освещение перейдите в Edit > Project Settings > Player и во вкладке Other Settings вы увидите Color Space, замените на Linear .

Важно! Перед использование линейного пространственного освещения важно знать, поддерживает ли целевая платформа данное цветовое пространство.

Global Illumination (GI)

Глобальное освещение – моделирует отталкивание света от одних поверхностей на поверхности других. Например, при свечении солнца на диван красного цвета, красный цвет будет отскакивать на стену.

Чтобы включить Realtime Global Illumination, перейдите в Window > Lighting > Settings, появится окно Lighting. Откройте вкладку Scene и включите Realtime GI. Вы можете увеличить разрешение, изменив параметр Indirect Resolution.

Важно! Только у статических объектов может быть inderect освещение, поэтому свет не будет отскакивать от движущихся объектов на статичные и наоборот. Тем не менее, они всё ещё могут отражать свет через Light Probes.

Color Harmony

Грамотно подобранные цвета залог атмосферности сцены и качественного освещения. Правильно подбирайте цвета т.к. различные цвета могут резко менять настроение вашей сцены.

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

Вот несколько цветовых схем для правильного подбора цветов:

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

Post-Processing

Пост-обработка — это процесс применения полноэкранных фильтров и эффектов к изображению камеры, прежде чем изображение будет отображаться на экране.

Пост – обработка значительно улучшить визуализацию вашего продукта с небольшим затратами времени на настройки

Для использования Пост – обработки в своем проекте можно использовать бесплатный пак из AssetStore Post Processing Stack

Помощь в настройке Пост-обработки в своем проекте можно найти здесь.

Ambient Color

Неплохой результат можно получить и при изменении цвета теней

Вы можете сделать это, перейдя в Window > Lighting > Settings, появится окно Lighting. В этом окне откройте вкладку Scene и поставьте Environment Lighting Source на Color. Теперь вы можете изменить Ambient Color на любой другой цвет.

Используйте эти советы и вы придадите своему проекту, при помощи настройки освещения и подбора цветов, реалистичность и атмосферность. Удачных проектов!

Читайте также: