Войти
ПроектыФорумОцените

Bakery - GPU Lightmapper

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 318 19 Следующая »
#0
(Правка: 28 сен. 2018, 21:44) 10:59, 6 авг. 2018

Сегодня у меня для вас лайтмаппер. Можно купить на ассетсторе для юнити (хотя есть и standalone версия):
https://assetstore.unity.com/packages/tools/level-design/bakery-g… mapper-122218
Тема на юнитифоруме: https://forum.unity.com/threads/bakery-gpu-lightmapper-released.536008/

Изображение

(автор сцены на картинке - LostFrame)
+ Показать

Требует Nvidia карту (6хх и выше) и Windows (7+) х64.

Начал писать его ещё давно в 2015м для Faded, потом был занят другими вещами, сейчас вернулся. Вроде пока всем нравится результат :)

Всю жизнь я мучался с лайтмаппингом - в сканлайне макса, в Vray, в Beast (до знакомства с юнити и после), в Enlighten и новом юнитивском прогрессиве. Везде было медленно и криво, а главное - между трассировкой картинки из камеры и лайтмапом лежала огромная пропасть, разделённая всевозможными швами, протечками света и прочими артефактами. Сложилось ощущение, что большинство авторов сперва делают обычный рендер из камеры как законченный продукт, а затем приклеивают к нему наспех render-to-texture функционал. Я решил пойти другим путём и сделать наконец Нормальный Лайтмаппер, у которого печь лайтмапы - главная задача.

За основу был взят OptiX, ибо я порешил что нвидия, наняв всех крутанов рейтрейсинга и посадив их рядом с дизайнерами драйверов и железа, лучше меня сможет реализовать пересечение луча с треугольниками на GPU. Кроме, собственно, поиска пересечений, либа ничего толком не делает. Все алгоритмы света и оптимизации - свои. Тогда Оптикс был единственной такой либой. Сейчас есть ещё RadeonRays и микрософтовский DXR, но с ними я ещё не имел дела.

Главные задачи проекта:
- Запечка без артефактов (скажем нет швам, протечкам света и теней, шуму и т. д.)
- Кастомизация лайтмапов на выбранные объекты, чтоб можно было на один печь направленные, на другой одиночные, на третий вертексные и т. п, а не на всю сцену один режим выбирать.
- Физическая корректность. Всё сверял в процессе разработки с Митсубой, как с референсом (с ней же сверяли авторы Order 1887). Т.е. результат должен сходиться с любым unbiased рендерером.
- Выжать максимальную скорость рендера без заметных фейков.

Что сейчас есть:
- GI.
- Источники света: направленный (солнце), небо (HDRI карта или цвет), меш (любой формы и текстуры), IES, спот (с любой куки-текстурой), поинт.
- Материалы: понимает альбедо, прозрачность (пока только однобитную, т.е. маску), эмиссив (самосветимость).
- Объекты: любые меши и террейны.
- Каждый лайт можно печь целиком (прямой+непрямой свет) или только GI от него (прямую часть оставляя реалтайм).
- Атласы пакуются автоматически, но можно отдельные объекты заставить быть в своём именованом атласе.
- Можно печь в vertex color.
- Можно печь лайтпробы.
- Офигительный денойзер на нейросетях.
- Авто-исправление швов на разрывах UV и протечек света/тени из-за стен.
- Можно рендерить не всю сцену заново, а только выборочные лайтмапы в ней. А при твикании параметров лайта можно перерендеривать только его + GI, скипая лайты без изменений.
- В комплекте есть патчер юнитивских шейдеров с добавлением бикубической фильтрации лайтмапам (выглядит всяко лучше) и инверсно-квадратичного затухания реалтайм лайтам.
- ЛОДы.
- Shadowmask режим (смешивание динамических и статических теней).

Использовать Bakery довольно просто - не сложнее, чем встроенные лайтмапперы (а порой и проще). Достаточно пометить объекты static и нажать Render, и уже на автомате всё должно быть неплохо :) Дальше можно твикать разные настройки.
Печёт всяко быстрее прочих лайтмапперов.

Направленные лайтмапы, запечка масок теней, поддержка кастомных шейдеров в GI, лодов и прочих весёлых вещей скоро будет.

Мануал: https://docs.google.com/document/d/19ZDUAVJA69YHLMMCzc3FOneTM5IfE… P_qYfJ9c/edit


#1
12:12, 6 авг. 2018

Mr F
Поздравляю с релизом!

#2
12:18, 6 авг. 2018

Крутота! Оно как весь уровень в одну огромную текстуру печет? Или для каждого объекта своя лайтмапа?

#3
12:24, 6 авг. 2018

разве еще остались игры со статическим светом? сейчас даже глобальное освещение делают полностью динамическим

#4
(Правка: 12:50) 12:50, 6 авг. 2018

Ruslan
Спасибо!)

Андрей5000
> Оно как весь уровень в одну огромную текстуру печет? Или для каждого объекта
> своя лайтмапа?
По умолчанию делает так же, как и встроенный паковщик юнити - рассовывает все объекты в много атласов в зависимости от двух параметров - макс. размера атласа и желаемой плотности текселей на метр.
Специальным компонентом можно отделять выбранные объекты в свои атласы.

gamedevfor
Остались и останутся. Полностью динамическим мало кто его делает, не всякой игре это подходит, не на каждой платформе взлетает, много ограничений по качеству имеет. Единого удачного реалтайм GI для всех случаев пока никто не придумал.

#5
13:19, 6 авг. 2018

А можно както запечь лайтмапы и юзать их для динамических обьектов? Или там все жестко завязано в конвеер юнити для gi.

#6
13:46, 6 авг. 2018

Mira
> А можно както запечь лайтмапы и юзать их для динамических обьектов?

Нет, они пекутся прямо в текстуры окружающего мира.

#7
13:47, 6 авг. 2018

Mr F
> Остались и останутся. Полностью динамическим мало кто его делает, не всякой
> игре это подходит, не на каждой платформе взлетает, много ограничений по
> качеству имеет. Единого удачного реалтайм GI для всех случаев пока никто не
> придумал.

Железо на месте не стоит, так что может еще год, два и всё.

#8
13:50, 6 авг. 2018

Mira
> А можно както запечь лайтмапы и юзать их для динамических обьектов?
если не смущает то что освещение на динамических объектах не будет меняться - то можно.

gamedevfor
> Железо на месте не стоит, так что может еще год, два и всё.
мечтать не вредно

#9
(Правка: 13:58) 13:57, 6 авг. 2018

Mr F
У меня они статические по сути. Просто загружаются рантайм а не сценой. Да и интерьер запечь бы не плохо. Освещение там не зависит от положения здания

Так то крутая у тебя примочка

#10
(Правка: 14:00) 13:59, 6 авг. 2018

Mira
по идее ты можешь просто пометить объект как Lightmap Static (но не юзать прочие static галочки), запечь и дальше спокойно перемещать как угодно.

#11
16:02, 6 авг. 2018

У Юни свой GPU свет выходит скоро.
Как вы думаете, кому я доверю свет в своём проекте - команде Юни или какому-то неизвестному хрену?

#12
16:08, 6 авг. 2018

gamedevfor
> разве еще остались игры со статическим светом? сейчас даже глобальное освещение
> делают полностью динамическим

Сначала запекают индирект статитеский свет, а на него уже идёт директ динамический.

#13
16:13, 6 авг. 2018

Саныч
> Сначала запекают индирект статитеский свет, а на него уже идёт директ
> динамический.

разве можно запекать если в игре есть смена дня и ночи?

#14
16:17, 6 авг. 2018

gamedevfor
> разве можно запекать если в игре есть смена дня и ночи?

Если вы хотите чтобы было темно как у афроамериканца в.... эээ... ну вобщем. Тогда конечно нет.

Страницы: 1 2 318 19 Следующая »
ПроектыФорумОцените