Пятница, 13 Декабря 2019, 19:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Лайтмаппинг в юнити посредством V-ray (Решил вот поделится.)
Лайтмаппинг в юнити посредством V-ray
NOVAДата: Среда, 18 Апреля 2012, 00:28 | Сообщение # 1
почетный гость
Сейчас нет на сайте
На изучение сих подробностей у меня ушло около 4 месяцев, А судя по скринам разрабатывающихся на юнити игр никто в основном и не осознаёт как хороший лайтмаппинг меняет графику до неузнаваемости.
На такое ухищрение меня сподвиг сам двиг (юнити) Тупо ждал сутки пока лайтмаппинг beast запечёт карты, а потом висяк.
Вообще лайтмаппинг статичная карта освещённости. Изначально я пугался при виде этого понятия и ненормальных уроков в ютьюбе. Зачем он нужен? Затем что рендер треугольников уменьшается в 3 раза, если выключить тени от солнца. А да и само солнце можно тоже выключить)
Алгоритм таков.
1. Создаём всю сцену в максе (майе). Располагаем источники света и светящиеся материалы. Настраиваем рендер v-ray (уроков море) и самое главное, чего редко встретишь в уроках, включаем галочку ambient occlusion. Это затемнение в углублениях мэша.
2. Объединяем (все объекты с одинаковыми материалами и текстурами (предположительно текстуры лежат и развёрнуты в канале 1) Таким образом: Объект-> convert to editable mesh. Ищем atach и тыкаем по всем объектам с одинаковыми материалами. В итоге теперь у нас в сцене гораздо меньше объектов, но они гораздо больше. Это нам надо для запекания карт света.
3. Где-то читал, что чем меньше объектов - тем выше производительность и их надо объединять. Это есть полная чушь. Так как Куллинг в юнити совершается пообъектно. И если объект огромен (на всю сцену) лучше его поделить.
4. Большие объекты (которые не влазят в экран) делим пропорционально экрану или по 500 треугольников, если мэш сложный. Эти числа на самом деле далеки от правды, может у вас на всю сцену китайская стена из 6 треугольников. Их надо тогда поделить в виду того, что она просто большая. Делим Обычным detach в editable mesh. И Называем объекты одинаковым названием материала, с нумерацией в конце. Размер отдельных объектов достигается опытным путём (по разрешению лайтмапы и тому как она будет выглядеть в двиге)
5. Развертка второго канала. (развёртка первого канала не сбивается). Самое простое во всей процедуре. Вешаем модификатор unwrap uvw, переключаемся на канал 2 (на меше может висеть одновременно 2 unwrap модификатора и боле с развёртками на разных каналах) Выбираем в модификаторе face. Открываем окно edit. Далее убеждаясь, что не выбран не один треугольник ищем наверху mapping - flatten mapping. В появившемся окне выставляем spacing o.005 для экономии текстурного пространства и ок. Далее по желанию можно отредактировать развёртку.
6. Итак мы имеем двухканальную развёртку. На первом канале висит диффуза (по желанию можно повесить туда и нормал мап, что отобразится на карте света). Теперь нажимаем клавишу "ноль" появится окно render to texture. Там конечно много страшных букавок, но нам оттуда много не надо.

Добавлено (18.04.2012, 00:08)
---------------------------------------------
Ищем mapping coordinates using existence (тобишь использовать существующий канал развёртки) ставим 2.
Далее во вкладке output нажимаем add и добавляем vray raw total lighting map.
Выбираем разрешение карты ниже и куда сохранить. Далее нажимаем рендер.
Лайтмапа готова. И её можно редактировать в фотошопе!!!
7. Естественно захочется посмотреть как это в действии в двиге юнити.
Создаём новый материал standart. На diffuse вешаем нашу цветную диффузную карту. (в настройках bitmap ставим channel 1). Далее рядом в selfillumination также вешаем карту bitmap и загружаем в неё нашу только что отрендеренную световую карту. Не забываем выставить channel2.
По желанию можно отбразить модели только с картой света. Думаю учить не надо.
8. Экспорт из макса. Естессно fbx.

Добавлено (18.04.2012, 00:28)
---------------------------------------------
9. Импорт в юнити. В окне pроject (Надеюсь что ваша сцена экспортировалась в ассетс) Находим нашу сцену (объект) и в настройках импорта ищем раздел materials и в material naming выставляем from model. Материалы импортируются те что висят на модели. При чём по умолчанию это будет diffuse. Меняем шейдер на legacy lightmapped ....... И втыкаем в окно lightmap rgb нашу лайтмапу.
Вот собственно и всё.
10. Основные преимущества перед бист:
- Далее мы можем ещё мельче разбить объекты в максе тем же detach и при этом не надо заново рендерить лайтмапу. Текстурные координаты сохраняются на каждом отделённом куске от объекта.
- Далее мы можем сохранить 2 сцены 3dmax (1-я в которой рендерили текстуры, 2-я в которой эти текстуры уже висят с материалами стандарт готовые к экспорту в юнити) И если чтото не нравится как выглядит в юнити перерендерить лайтмапу.
-Далее мы можем править лайтмапу в фотошопе с интерактивным отображением результата в юнити. Для этого просто надо одновременно открыть юнити и фотошоп. И периодически сохранять лайтмапу после совершённых подкрашиваний.
-Далее мы можем в фотошопе облегчить вес лайтмап посредством изменения разрешения (не забывайте сверятся с окном импорта в юнити) а также переключением режимов 16 - 8 бит и graysсale наконец(оттенки серого)
-Далее может возникнуть глюки с бликами глянца от нормалмап. ИХ НЕБУДЕТ!!! Что очень нехорошо конечно. А посему ищем в сети шейдер от gnoblin - lightmapped bumped spec. И естественно учитываем, чтобы бликовало надо всё равно выставить солнце, но уже можно без теней.
Итак всё работает всё красиво и быстро все счастливы и довольны.
Если этот пост Вас пугает, забудьте о создании качественной графики.




Сообщение отредактировал NOVA - Среда, 27 Июня 2012, 23:29
MyACTДата: Среда, 18 Апреля 2012, 06:03 | Сообщение # 2
C# CODERS
Сейчас нет на сайте
хм,интересненько,попозже прочитаю smile

ПОЖИЗНЕННО ЖИВ
http://youtube.com/myactybatya | twitch.tv/myacty
NOVAДата: Среда, 18 Апреля 2012, 16:55 | Сообщение # 3
почетный гость
Сейчас нет на сайте
А теперь начинаем копать глубже. Какой лайтмаппинг лучше beast или v-ray.

Берём и делаем сцену в 3дмакс на 15 к треугольников.

Рендер v-ray:

Как мы видим. В сцене есть прямой свет (солнце), свет окружения (enviroment) серый = 100,100,100 rgb. Цвет ambient - чёрный. Дополнительный свет:
- белые самосветящиеся объекты в полу, на балках по флангам
- красные самосветящиеся объекты на колоннах
- голубой самосветяшийся материал на пушках у бота.

Добавлено (18.04.2012, 16:31)
---------------------------------------------
Далее импортиуем сцену в юнити и накладываем материалы и шейдеры bumped spec (разумеется с нормалмапами). Делаем сцену static. Выставляем свет. direct light и у self-illumination обектов (те что красные белые и голубые) emission lightmapper - 7.
Сцена в юнити

Внимание я специально выставил ambient серый, иначе сцена слишком тёмная.
Окно stat показывает 2000 fps при drawcalls 47 и 42,4 k треугольников. Не хило тени работают.

Добавлено (18.04.2012, 16:55)
---------------------------------------------
Далее делаем лайтмаппинг юнити в hi качестве, не забыв включить ambient occlusion.
Выключаем солнце и вот что мы видим

Окно stat показывает 4000 fps при drawcalls 47 и 15 k треугольников. Хорошая оптимизация - в 2 раза.
Здесь уже амбиент чёрный.
А вот так выглядит сама лайтмапа на объектах без диффузной карты:(цвет белый)

Световые карты весят 1,5 мб.




Сообщение отредактировал NOVA - Среда, 18 Апреля 2012, 17:10
mrResidentДата: Среда, 18 Апреля 2012, 17:06 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
NOVA, полезная информация, лови +

Укроп головного мозга - болезнь тяжелая, но излечимая!
NOVAДата: Среда, 18 Апреля 2012, 17:11 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Спасибо, это только начало. Скоро будет рендер v-ray

jazzyДата: Среда, 18 Апреля 2012, 17:38 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
тык ента для каждой модели свою лайтмаму надыть
NOVAДата: Среда, 18 Апреля 2012, 18:38 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Читай сначала. Не для каждой модели. А для каждого материала. Ты можешь создать текстуру диффуз 1024 в квадрате и юзать её на 10 моделей. Умеючи конечно. Зачем на куб 6 сторон развёртки, когда можно использовать от одной до 3-х
Итак что мы имеем. Проект с лайтмапой в 3d max: (лайтмапы можно подкрашивать и ужимать как угодно с любым разрешением и вы знаете какая лайтмапа, где висит)


Графика в юнити стала мягче:


И для сравнения голая лайтмапа в юнити:

Обратите внимание на трубы. Чем больше мешей, тем красивее затемнение. И приближать камеру не стыдно.

Добавлено (18.04.2012, 18:38)
---------------------------------------------
Производительность такая же. Вес лайтмап 8,5 мб. А если нецветное освещение поставить в фотошопе режим grayscale и вес будет 2 мб.




Сообщение отредактировал NOVA - Среда, 18 Апреля 2012, 18:33
Sim4ikДата: Суббота, 12 Мая 2012, 12:52 | Сообщение # 8
был не раз
Сейчас нет на сайте
Привет я тут тоже начал все изучать и у меня появилось 2 вопроса:
1) У меня такая ситуация есть остров, на нем деревья под физикой wind zone при запекании текстур тени от них уже не анимированные. Это как то можнно испрвить
2)И второй вопрос. До изучения запекания текстур для имитации GI я ставил 4 direction light, как кроме beast baking и 4 direction light можно отобразить GI

Добавлено (12.05.2012, 12:52)
---------------------------------------------
А и еще если у меня допустим стоит смена дня и ночи, как тогда включить GI

NOVAДата: Среда, 27 Июня 2012, 23:22 | Сообщение # 9
почетный гость
Сейчас нет на сайте
1) Конечно не анимированные. Лайтмапа то запечена. В редких случаях когда нужны динамические тени можно в рендере статичных объектов отключить принятие и создание теней. И включить директлайт.
2) Второй не понял. Статья больше про v-ray.
Смену дня и ночи организует опытный программер. Печём 2 общие лайтмапы на левел. Либо одну лайтмапу дневного освещения, а для ночного включаем директ лайт или наоборот (в разных папках). Стоит аналогичная задача кстате. Возможно как осилим расскажу.


theSilentДата: Суббота, 16 Февраля 2013, 21:45 | Сообщение # 10
уже был
Сейчас нет на сайте
Цитата (NOVA)
А теперь начинаем копать глубже. Какой лайтмаппинг лучше beast или v-ray.

Очень полезная статья, спасибо тебе.Полностью с тобой согласен. При желании и правильном подходе можно и на самом, казалось бы, убогом движке получить картинку порой намного лучше, чем у тех, кто ждет, что кинул в UDK или unity3d что нибудь и все "само" должно выглядеть как в crysis2.Только ,что все-таки лучше использовать V-Ray или Beast?
NOVAДата: Понедельник, 25 Марта 2013, 11:55 | Сообщение # 11
почетный гость
Сейчас нет на сайте
Цитата (theSilent)
V-Ray или Beast?

Тут так получилось, что пришлось выкопать все премудрости beast и детально его изучить. Так вот теперь я на стороне beast по нижеследующим причинам.
1. Работает с любыми шейдерами
2. Печь быстрее при грамотных настройках.
3. Только с бист лайтмаппинг выглядет насыщеннее.
4. После запёка beast можно регулировать интенсивность и радиус света. AO останется.
5. Карты бист весят меньше.
3 минуса таки остались.
1. Неудобно редактировать готовую лайтмапу в фотошопе.
2. Плохо работает с тонкими мешами. Надо пользовать meshcollider
3. Ненормальный прогресс. Визуально не понять сколько запеклось.

Если хотите bumped specular убирайте галку с use in forward rendering
Камеру в deffered режим. Иногда можно дополнительно ставить реалтайм источники.


s500Дата: Среда, 19 Июня 2013, 20:54 | Сообщение # 12
был не раз
Сейчас нет на сайте
чёт я непонял. Есть такая штука как смешивание запеченных теней с биста и динамических(это дуал лайтмапинг)(мне нада чтоб на автомате отображались динамические тени с deferred light и были лайтмапы и бамп и спекуляр везде). Ок при бисте дуал лайтмап пашет. Но качество биста его меня не устраивает. Если я хочу использовать лайтмапу с вирея то этот дуал лайтмап можно сделать?

sdfsdf

Сообщение отредактировал s500 - Среда, 19 Июня 2013, 21:30
shubniggurathДата: Среда, 19 Июня 2013, 20:58 | Сообщение # 13
www.playnoread.com
Сейчас нет на сайте
http://befreeindie.blogspot.com/2012....3d.html вот еще статейка

Учу 3д!
s500Дата: Среда, 19 Июня 2013, 21:24 | Сообщение # 14
был не раз
Сейчас нет на сайте
Насколько я знаю этот лайтмап бист печёт от определённого источника света. Если он ещё и используется динамически вместе с лайтмапами от него то все вроде ок но если свет изменить то будет каккаято ерунда на камере(зетемнения какието).

Так вот к примеру у меня вся мапа запечена лайтмапами + бамп и спек есть (используется deferred ligthing) но нужно чтобы некоторые объекты отбрасывали динамические тени и на них падали динамические тени - Чё мне делать?

Добавлено (19.06.2013, 21:24)
---------------------------------------------
shubniggurath - только что это читал поэтому и возник вопрос


sdfsdf
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Лайтмаппинг в юнити посредством V-ray (Решил вот поделится.)
  • Страница 1 из 1
  • 1
Поиск:

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