Пятница, 19 Апреля 2024, 02:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать такое красивое освещение? (И снова я о графике :))
Как сделать такое красивое освещение?
robertonoДата: Четверг, 19 Июня 2014, 14:30 | Сообщение # 1
Чокнутый Кот
Сейчас нет на сайте
Всем привет! Как сделать красивое освещение?

Взгляните на этот скриншот. Да да, это майнкрафт. Видите, слева теплые тона, справа холодные. Как сделать такое красивое, плавное освещение?
Как вообще такое делают в других играх? Просто под рукой у меня оказался именно этот скриншот. С встроенной в юнити системой света такое не сделать? Идея с запеканием света не подходит, на скриншоте динамичное всё.
Недавно натыкался на такой дешевый и красивый ассетик..
https://www.assetstore.unity3d.com/en/#!/content/8683
С ним можно такое сделать?

Заранее спасибо тем, кто будет отвечать что то хорошее по теме)
RangerДата: Четверг, 19 Июня 2014, 19:36 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Я так думаю нужно специальный шейдерок на "глаз" повесить.
Который будет сепарировать теплые и холодные цвета.
Обрати внимание, что слева и справа изображения монохромные тонированные.


robertonoДата: Четверг, 19 Июня 2014, 19:54 | Сообщение # 3
Чокнутый Кот
Сейчас нет на сайте
Ranger, по моему тут нужен физический шейдер. Что то типо такого, какой появится в unity 5.

Добавлено (19.06.2014, 19:54)
---------------------------------------------
Но ждать пятую версию не вариант, она выйдет то скорее всего в конце осени, а я релиз игры своей на начало осени поставил

true_abrakadabraДата: Четверг, 19 Июня 2014, 19:54 | Сообщение # 4
Unity3d - ван лав
Сейчас нет на сайте
Неужели так сложно поменять цвет ИС? Это теперь магия какая-то?

Ниндзя
robertonoДата: Четверг, 19 Июня 2014, 20:22 | Сообщение # 5
Чокнутый Кот
Сейчас нет на сайте
true_abrakadabra, ИС?
true_abrakadabraДата: Четверг, 19 Июня 2014, 20:35 | Сообщение # 6
Unity3d - ван лав
Сейчас нет на сайте
источник света

Ниндзя
RangerДата: Четверг, 19 Июня 2014, 20:36 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Источник света.
не думаю что источники смогут так четко разделить цвета.
надо пробовать


true_abrakadabraДата: Четверг, 19 Июня 2014, 20:39 | Сообщение # 8
Unity3d - ван лав
Сейчас нет на сайте
Очень даже норм получается

Ниндзя
romgermanДата: Четверг, 19 Июня 2014, 21:46 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата robertono ()
Как сделать красивое освещение?

Поставить больше одного источника света. *пудум тсссс*
Ещё можно запечь лайтмапу. Ещё можно попробовать юзнуть Self-Illuminated материал. Например поставить объекты с этим материалом, запечь лайтмапу, а потом убрать их.
robertonoДата: Четверг, 19 Июня 2014, 21:48 | Сообщение # 10
Чокнутый Кот
Сейчас нет на сайте
true_abrakadabra, в закрытых помещениях конечно норм. На скриншоте только два источника?
В принципе конечно поиграться с источниками света можно.. Но тут и шейдеры получше должны быть мне кажется.
В любом случае, как тогда добиться лучшего результата? В смысле тот же Directional Light, который использую я, освещает всё что попадает в его угол. В смысле если свет попадет через окно в помещение, в помещении не будет темного уголка, куда свет вообще не попал.
Для этого не подходит Directional Light? Какой тогда лучше будет использовать?
allodsДата: Четверг, 19 Июня 2014, 22:14 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
Цитата robertono ()
помещении не будет темного уголка

Темные места , может запекание
robertonoДата: Четверг, 19 Июня 2014, 22:21 | Сообщение # 12
Чокнутый Кот
Сейчас нет на сайте
allods, нельзя запекание делать на динамические сцены. В любой момент игрок может с помощью ракетницы вынести стену и темно там уже не должно быть.
DantorSДата: Четверг, 19 Июня 2014, 22:35 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
robertono, я не понял чем тебе directional light не подходит. Можешь переобъяснить?
romgermanДата: Четверг, 19 Июня 2014, 23:18 | Сообщение # 14
старожил
Сейчас нет на сайте
Цитата robertono ()
нельзя запекание делать на динамические сцены

Для этого есть тени.
robertonoДата: Суббота, 16 Августа 2014, 00:06 | Сообщение # 15
Чокнутый Кот
Сейчас нет на сайте
жаль что в free есть только hard shadows и они только для direction light...

Добавлено (15.08.2014, 23:52)
---------------------------------------------
Как обычно, после затишья я подниму тему, дабы показать вам свои наработки по этой теме. Выяснилось, что мне нужно Global Illumation или Ambient Occlusion (походу я ещё не особо различаю их разницу..). Но это не важно, ведь всё равно сделать их по настоящему правильно можно только с Pro лицензией. В гугле по теме fake global illumination можно найти много наработок от пользователей юнити. Были какие то cone tracing и ещё куча сложных алгоритмов по этой теме, но самый простой способ, как сказал true_abrakadabra и romgerman и ещё куча других пользователей которые пытались сделать fake GI - поставить больше источников света.
Пока я был занят всё лето кучей другой механики, сегодня мне захотелось опять попробовать сделать красивый свет.
Т.к. в домах у меня используются отдельные модели окон я добавил на каждое окно мой скрипт fake global illumination (позже расскажу краткую его работу).

Чтож, давайте что ли посмотрим на скрины, а именно на результаты:
До
После

Хочу уточнить, что цвет источника света не просто белый! С помощью луча я узнаю координаты на текстуре, потом получаю пиксель на текстуре по координатам и затем получаю цвет! Поэтому ИС имеет такой цвет, какой был получен лучом!

Как видите стало значительно светлее, однако это и есть эффект свечения из окна.
Чтож, принцип работы скрипта очень прост - пускаем луч от центра окна по направлению главного источника света, немного танцев с бубном и мы получаем цвет точки куда мы попали, создаем свет, корректируем его высоту а так же проверяем на объекты вокруг него, что бы на стене у нас не появилось белое пятно из за близкого расположения ИС к объекту..
Это всё вроде smile

Добавлено (16.08.2014, 00:06)
---------------------------------------------
Ещё конечно было бы хорошо сделать Glow / Bloom эффект на полу, надо как нибудь тоже посмотреть какие решения есть для этого в Indie.

Сообщение отредактировал robertono - Пятница, 15 Августа 2014, 23:53
MANMANAДата: Суббота, 16 Августа 2014, 00:34 | Сообщение # 16
почти ветеран
Сейчас нет на сайте
Цитата robertono ()
С помощью луча я узнаю координаты на текстуре, потом получаю пиксель на текстуре по координатам и затем получаю цвет

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


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Суббота, 16 Августа 2014, 00:35
berilДата: Суббота, 16 Августа 2014, 00:51 | Сообщение # 17
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
А ты уверен, что это именно с игры, а не рендинг или обработанный скрин?



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
berilДата: Суббота, 16 Августа 2014, 00:52 | Сообщение # 18
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата robertono ()
Чтож, давайте что ли посмотрим на скрины, а именно на результаты:
До
После

Разница существенная )




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
robertonoДата: Суббота, 16 Августа 2014, 11:33 | Сообщение # 19
Чокнутый Кот
Сейчас нет на сайте
Цитата MANMANA ()
планируется ли учитывать не один пиксель, а область вокруг него и брать средний цвет из них, ведь попадание рея в шов между досками даст совсем другой результат, нежели волокно дерева?

ну если где то найти алгоритм, который на основе массива RGBA сделает средний цвет (а я уверен что это в интернете уже есть, ведь это проще простого, просто своей головой не додумаю) biggrin
Спасибо за идею, учту smile

Цитата MANMANA ()
как это будет выглядеть при размытии текстур?

Вы имеете ввиду MIP ? Цвет зависит на прямую от текстуры, если текстура размыта в указанной координате то такой цвет и будет взят. Я просто использую Texture2D.GetPixel(x,y) что бы получить цвет по координатам.

Добавлено (16.08.2014, 01:02)
---------------------------------------------
beril, жаль что это не realtime sad
Realtime бы убил вообще производительность. А так, источники света устанавливаются при старте сцены. Т.е. Awake.

Добавлено (16.08.2014, 01:20)
---------------------------------------------
"2. Взять сложить по трём составляющим (RGB) каждый пиксель и поделить каждую составляющую на количество пикселей и получим средний цвет."
Я тут прочитал один из способов извлечь средний цвет, попробую потом. Проблема в том что я использую атлас, у меня блоки строго занимают место 64x64, так что сначала нужно будет по координатам определить в каком блоке мы сейчас находимся и проанализировать средний цвет в радиусе например 5 пикселей

Добавлено (16.08.2014, 11:33)
---------------------------------------------
А я читал что Point Light довольно прожорливые и много таких лучше не использовать.
Если я просто сделаю SetActive(false) движок засчитает это как полное выключение источника света ? В смысле допустим я отключу таких 100 поинт лайгхтов, производительность повыситься? Отключение объекта освобождает движок от обработки этого объекта?

DantorSДата: Суббота, 16 Августа 2014, 12:16 | Сообщение # 20
заслуженный участник
Сейчас нет на сайте
Цитата robertono ()
Выяснилось, что мне нужно Global Illumation или Ambient Occlusion (походу я ещё не особо различаю их разницу..)

GI - это более реалестичное отражение света. AO, SSAO - это более реалестичные тени.
Цитата robertono ()
В гугле по теме fake global illumination можно найти много наработок от пользователей юнити. Были какие то cone tracing и ещё куча сложных алгоритмов по этой теме, но самый простой способ, как сказал true_abrakadabra и romgerman и ещё куча других пользователей которые пытались сделать fake GI - поставить больше источников света.

Держи. Здесь просто стоит вопрос в оптимизации. Думаю в unity 5 всё будет хорошо.
А насчёт вопроса где почитать - crytek публиковала где-то алгоритмы своей GI. Найти сейчас не получается.


Сообщение отредактировал DantorS - Суббота, 16 Августа 2014, 12:20
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать такое красивое освещение? (И снова я о графике :))
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг