Фотореалистичная графика в Unity - сложно? Просто!

Научился сам? Помоги начинающему.

Фотореалистичная графика в Unity - сложно? Просто!

Сообщение sledo 19 авг 2018, 05:25

Версия 2.2
В ходе существования урока выяснилось что люди не знают что такое фотореализм, а так же плохо представляют себе результаты 3D сканирования. Это в корне меняет подход к вопросу фотореализма в Unity и поэтому я принял решение переписать урок подробно охватив эти темы.

Если же тут попадется человек который знает что такое фотореализм, а возможно и работал в этом художественном направлении, а так же тот который работал с 3D сканерами, или с их результатами, что бы не читать лишний текст, все сводится к одному простому правилу - для достижения фотореализма в Unity, надо использовать результаты 3D сканирования.
То что часто, точнее постоянно, а у многих это вообще одно и тоже. Так вот то что путают с фотореализмом, называется фотографичность - т.е. достижение фотографической копии с реальном миром (я лично вообще не понимаю этого стремления. Зачем вообще копировать реальность, если мы в ней и так живем?).
Текст с фотографичностью был вынесен в отдельную тему - Фотографичность в Unity? Повышаем четкость картинки.
Результаты от Turic - viewtopic.php?f=11&t=48346&st=0&sk=t&sd=a&start=30,
ключевые слова - "нашел сегодня свободное время и попробовал ту фишку".*

Теперь начнем.

Для начала определимся с терминами.
Фотореализм.
(Из Вики)
Термин зародился в США, когда видимо у какого то гениального художника случился глубокий творческий кризис, после того как он очередной раз попытался превзойти Айвазовского. Суть его в том, что художник с помощью технических средств запечатливает не просто картинку, а движение. Благодаря этому создается впечатление живого изображения (тут вообще надо провести лекцию на то как мы воспринимаем этот мир, но это серьезная и очень обширная тема, поэтому тут я этого делать не буду, хоть это и крайне занимательно (один факт того что мы способны воспринимать плоское изображение как объемное чего стоит!)). Отсюда выходит, что создать фотореализм не возможно без технических устройств и ключевой момент тут именно фотография как основа для изображения.
Собственно из той же Вики пять правил фотореализма:
1. Фотореалист использует камеру и фотографию для сбора информации
2. Фотореалист использует механические и электромеханические средства для переноса информации на холст (в данном случае в проект)
3. Фотореалист должен иметь техническую возможность сделать финальный результат выглядящим фотографически (может для кого то это новость, но у Unity прекрасные технические возможности)
4. Художник должен иметь выставленную работу как фотореалист от 1972 года для того, чтобы считаться значительным фотореалистом
5. Художник должен посвятить как минимум пять лет созданию и показу работ в стиле фотореализма

Т.е. особенность фотореализма, которое его и формирует, следущее - для достижения фотореализма, за основу изображения используется фотография. Фотореализм, это не реализм в абсолютном понимании, это прием с помощью которого достигается большее ощущение реальности в изображении, а в случае с играми с помощью которого вы сможете приблизить игровую графику к реальному изображению, поскольку качество фотографий намного выше чем качество рисованных текстур.
Тем не менее ошибочно полагать, что фотореализм это непосредственно максимальное приближение изображения к реальному. Это вовсе не так. Фотографии хоть и довольно точно отображают реальность, но они все равно проигрывают реальному миру, в чем вы можете убедиться просто сфотографировав что либо и сравнив с реальностью. Для фотореализма вовсе не обязательно приближать картинку к реальности, можно делать абстракции которые вообще мало имеют общего с реальностью на основе фотографий и это так же будет считаться фотореализмом.
Однако фотография максимально близко по качеству к реальному миру, относительно нарисованной текстуры и именно эта особенность дает ощущение высококачественной картинки, и именно по этому проще всего использовать фото для достижения реализма. Прием фотореализма заключается в том, что вы просто используете фотографии вместо нарисованных текстур - это надо понять и принять.
В общем смысле, наши игры фотореалистичны, поскольку художник очень часто использует для основы текстуры разного рода фотографии, а значит соблюдает основное правило фотореализма. Т.е. по факту, если вы собрали свой проект на основе фотографий, вы можете смело утверждать что ваш проект имеет фотореалистичную графику.
Я надеюсь теперь понятно почему многиие разработчики заявляли о фотореалистичности в своих проектах, даже при том что графика там могла быть весьма далекой от реалистичности. Кстати как пример фотореалистичности с плохой графикой, можно увидеть в Евро Трак Симулятор. В нем используются сканированные материалы, однако выглядит это все не особо.

Теперь другое основное понятие - 3D сканеры.
(Из Вики)
3D-сканер — периферийное устройство, анализирующее физический объект и на основе полученных данных создающее его 3D-модель.
Из определения видно, что 3Д сканер копирует физический объект в виртуальный объект. Качество копирование очень серьезно разнится.
Что бы было понятнее, можно провести аналогию с радиоприемником. Простейший радиоприемник состоит всего из 3х деталей и даже не требует к себе автономного источника питания типа батарейки, поскольку берет энергию из так называемого эфира (привет поклонникам Николы Теслы). Так вот качество этого радиоприемника, мягко говоря плохое. Высококлассные радиоприемники, разрабоатывают целые институты, на это тратится огромное количество денег, собираются они из дорогостоящих высокотехнологичных материалов и стоят очень дорого. Но качество приема у них очень хорошее.
Со сканерами такая же ситуация. Простейший сканер может собрать ребенок. Он совершенно не сложен, а для вычислений используется обыкновенная триангуляция. Однако качество такого 3D сканера, очень плохое. Настолько плохое что практически использовать его результы не представляется возможным. Серьезные устройства так же разрабатываются целыми институтами и стоят очень серьзных денег. Но и результат его работы очень серьезный. Например даже относительно простой сканер, при сканировании предмета 30х30см, может создать модель с точностью около 0.1 мм (точность конечно условна, для разных моделей она разная. Если мне не изменяет память, максимальная точность равна что то около 0.001мм и используется на производстве). Это миллионы полигонов. Это просто чудовищная детализация.
Обычно у таких сканеров есть камера, которая фиксирует поверхностное изображение. Обычно у моделей которые на данный момент стоят около 50 000р, (сразу оговорюсь - это очень дешевые модели. Очень, дешевые) качество их камеры довольно посредственное и редко достигает и 2Мрх. Поэтому использование 3D моделей в тех же играх от дешевых моделей сканеров не распространено. Ценник сканеров которей дают серьезный результат начинается примерно от 800 000 рублей. При этом для работы с ним нужен специально обученный человек, который так же стоит немало.
Эта ситуация на рынке и приводит к тому, что использование фотореалистичной графики в играх практически не распространено, поскольку это очень дорого.

Теперь поговорим о том, что же такое из себя представляют отсканированные материалы.
Хотя конечно многим это станет не интересно, после вышенаписанного, но не спешите, все не так плохо.

Итак, как я писал выше, даже у очень дешевых моделей, качество сканирования довольно высокое для 3D моделей игр. Это дает очень серьезное преимущество даже если вы не будете использовать текстурирование. Вам в любом случае надо будет создавать карты освещенности, для которых эти отсканированные модели прекрасно подойдут и дадут вам высококачественные карты света. Только представьте, вы берете отсканированную модель камушка в 5 см, у которого несколько миллионов полигонов которые полностью соотвествуют реальному камню и создаете по нему карты освещенности полностью соответствующие реальности! Как правило ограничения по размеру предмета в очень дешевых моделях доходит примерно до 30 см, но есть и такие которые не ограничивают человека в размерах физического тела. Только в ресурсах компьютера. Ведь если на 5 см может быть несколько миллионов полигонов, то на предмете в 1 метр, их могут быть сотни и тысячи миллионов. Эта проблема так же решена програмным обеспечением, но это уже другая тема. Вернемся к результатам сканирования.
Затем вам нужны будут LODы, которые вы как раз можете сделать из отсканированных моделей. Упрощенные модели будут максимально повторять оригинал, что даст вам минимальные искажения при смене объекта.


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

Теперь о текстурировании.
Как правило все 3D сканеры оснащены камерой. Камера поточная, на подобии веб-камеры. Это накладывает свои особенности на качество и стоимость. Скорее всего если вы не намерены профессионально заниматься 3D сканированием, денег на сканер который имеет камеры (там бывает несколько камер) высокого разрешения у вас не хватит. Т.е. не то что бы не хватит, но как только вы увидите ценник в 3 000 000 рублей, вы сразу подумаете что можно как то обойтись и без 3D сканера. Проблема в том, что без текстуры из 3D сканера качественной фотореалистичности не добиться. Конечно в некоторых случаях можно использовать фотографии, например для фона, удаленных объектов, декалей и т.п. Но непосредственно для игровых объектов с которыми должен взаимодествовать игрок, это не подойдет. Причины две. Без настолько же качественных карт освещения (и конечно света) объект будет выглядет не особо и фальшиво, а если не использовать их то он не будет иметь глубины. Поэтому у нас образовался рынок по сканированию и продаже результатов от высококачественных сканеров, которыми занимаются высококлассные специалисты. Поэтому зная где, можно вполне найти и специалистов которые предлагают свои услуги, и их работы которые они продают. Например тут https://www.textures.com/ или тут
https://megascans.se/.
Я уже точно не помню весь объем результата из программного обеспечения сканера, но он выдает как минимум два результата изображений. 1) непосредственно сама текстура для отсканированной модели. 2) Карта нормалей для нее же. Если мне не изменяет память, то как правило еще и спекуляр, дифуз и карту высот.
Т.е. по факту при использовании результатов 3D сканера, вы обеспечиваете себя всем необходимым для создания высокачественного объекта на сцене, при этом как моделлер вы можете быть обсалютным нулем и даже вовсе не иметь своего сканера.

Подведем итог.
Для того что бы создать фотореалистичную графику, вам нужно просто зайти например сюда https://www.textures.com/ или сюда https://megascans.se/, купить/скачать бесплатно выложенные сканированные материалы или объекты и засунуть их на сцену так, что бы это выглядело не хаотично. Сложно? Просто!

Это все что вам нужно знать для создания фотореалистичности на Unty. Для того что бы эта фотореалистичность выглядела реалистично (а если быть точным - фотографичности, т.е. добиться максимального соответствия с исходником), нужно применять дополнительные приемы, но я убежден, что только такие которые не искажают и без того по сути реальные текстуры и модели.
К сожалению я не дизайнер и полноценно описать их не смогу. Если кто то захочет это сделать, милости просим. Надеюсь модераторы почистят сообщения что бы человек смог это сделать непосредственно под основной темой.

Тут сами Юниты озаботились проблемой фотореалистичности и выпустили пособие для создания 3D моделей при помощи фотограмметрии. Там довольно хорошо все изложено, но способ очень трудоемкий и кропотливый. Подчеркну - очень трудоемкий и кропотливый.
Ссылка на пособие - Unity-Photogrammetry-Workflow

Некоторые видео на тему.
Скрытый текст:
Тут просто использован скайбокс или сфера


Это для того что бы было понятно что с освещением у Юнити все в порядке


И вот тут на днях сами Юниты выложили сцену собранную из сканов (совпадение?):
(Ссылка на ассет https://assetstore.unity.com/packages/e ... 21175)



Дополнение.


Поскольку тема оказалось очень животрепещащей и большое количество людей этим ревностно интересуются, я решил что добьюсь в unity фотографичной графики настолько, насколько это возможно.
Я буду использовать только стандартные средства Unity, что бы каждый человек мог воспользоваться моим трудом. Если результат со стандартными средствами будет неудовлетворительный, то тогда сначала пройдусь по бесплатным решением разработчиков, а затем по платным.

Начнем пожалуй.

Небольшое предисловие. Так уж наш мозг устроен, что воспринимает исключительно образы, а не реальное положение дел. Он воспринимает огромное количество информации, обрабатывает ее и создает образ. Этот образ, а точнее эта комбинированная информация запоминается, в начале как просто справочная информация, а затем при частом ее использовании, как ассоциативная. Именно с ассоциативной информацией мозг в первую очередь сравнивает вновь поступивший образ и таким образом для себя понимает, правдив ли образ или нет. В зависимости от установки, образ сравнивается с разным набором ассоциаций, часто на первый взгляд мало чем друг с другом связанными. Например некоторые люди слышат запах, или могут сказать какого цвета вкус того или иного продукта. Все это благодаря тому, что наш мозг мыслит образами.
Так вот задача художника - создать этот образ. Создать его таким, что бы человек ассоциировал его точно с тем набором ассоциаций которые общеприняты в обществе и чем точнее у него это получается, тем более талантливым считается художник. В художественном обществе резко осуждается копирование реальности, поскольку в таком случае утрачивается сама суть художественности.
Имено по этому каждое творение художника уникально. Именно по этому строгих правил нет, а есть лишь набор приемов с помощью которых художник создает стилистику своего творения. Отход от этих приемов не поощряется, но и не осуждается и даже наоборот, строгое соблюдение правил осуждается.
Так вот вы, художники. Все закономерности, все правила художников применимы к вам. Вы творите, а не коприруете. Вы вкладываете часть своей души в свое творение и только тогда оно становится живым. И только тогда, когда люди увидят в вашем творении вашу душу, они скажут - это гениально.
Так вот к чему я это все. Многие ошибочно полагают, что если они скопируют реальность, то получат гениальное творение. Они стараются и копируют, и не получают гения, и искренне удивляются - почему? Причина в том, что копирование бездушно. Строгое соблюдение правил, лишает творение души. Поэтому тут, вы не увидите универсальной инструкции про то, как сделать шедевральную графику. Тут вы увидите лишь приемы, которые позволят вам создать тот стиль, которого вы намерены придерживаться. А создавать вам придется самим.

Конкретно в этой теме, мы будем стремиться создать стилистику реального мира. В этом нам помогут 3 примема:
1) Фотореалистичность которая была описана выше
2) Реалистичность
3) Фотографичность (вообще сторого говоря ее как раз надо стараться избегать)

Нужно точно понимать чего вы хотите и четко разделять понятия. Если вы не будете этого делать, то и не сможете получить результат к которому стремитесь. Это так же как выбирать путь по которому идешь. Если пытаться попасть в несколько мест сразу, то ничего не получится, если не знать куда идти, но идти, то куда нибудь обязательно придешь, вот только именно куда-нибудь (Алиса в стране чудес). Что бы дойти до конца пути, надо иметь четкое представление о цели пути. Как идти, вам подскажут разные художественные и графические приемы. Насколько хорошо вы их знаете и настолько хорошо в них ориентируетесь, настолько быстрее и качественее получится результат. Описать все дисциплины я просто физически не смогу, да и не нужно. Есть прекрасные учебные пособия разработанными истинными мастерами. Правда кого считать мастером, вам надо решить самим.
К сожалению большая часть разработчиков стремится не к фотореалистичности, а именно к фотографичности. Даже первое многими осуждается, а уж второе это буквально АД художника.
Добиться фотореалистичности просто. Так же просто сделать проект шедевром. Микилянжело отвечая на вопрос "Как вы делаете свои скульптуры?" говорил - я просто отсекаю все лишнее. Простота гениальна. Это должно для вас стать компасом к тому, получается ли у вас, и достаточно ли у вас навыков для создания шедевров, или нет. Если вы испытываете трудности, значит не получается и не достаточно. Если можете сказать - "я просто отсекаю все лишнее", значит вы идите верной дорогой.
Так же надо понимать, что это вовсе не значит что вы двумя штрихами создадите картину. Это всегда трудоемкий процесс. Но трудоемкость, не синоним сложность. Так вот творчество, а фотореализм это именно творчество, должно у вас получаться просто. Вы берете и создаете Другой мир (позволю себе небольшую от ссылку).
Нельзя никогда забывать, что как бы вы не называли дисциплину, всегда это лишь инструмент для того, что бы донести до человека образ, а через образ эмоции. Вы решили изобразить закат - вы должны точно понимать, какую именно эмоцию вы хотите вложить в него и используя стиль, создать для нее образ. Не важно с помощью чего изображаете вы изображаете, не важно чем вы изображаете. Это может быть супер компьютер, планшет, компьютерная мышка или стилус, или вовсе карандаш, важно только одно - результат должен быть всегда один.

Добиться реалистичности сложнее, тут вы отступаете от творчества и начинаете копировать. Кроме того надо знать уже особенности нашего организма, восприятия, как мозг обрабатывает информацию и прочие психологические дисциплины. Это не просто трудоемкий процесс, это уже сложный, кропотливый процесс. Тем не менее, вы все еще можете творить и представить реальность, не совсем реальной.
Добиться фотографичности можно только использовав два предыдущих приема, однако можно просто обойтись обычными текстурами и имея под рукой технические возможности которые позволят создать ее. Честно говоря я не уверен в таких возможностях у Unity, но посмотрим. Юнити как то умудрились создать вот это https://unity3d.com/ru/pages/adam (точнее не совсем юниты и не совсем умудрились). Должно получиться и у нас нечто похожее.
Должен вас предупредить, что фотографичность, это уход от творчества. Тут вы следуете четкому алгоритму - вы копируете, в данном случае рельным мир. Вы не можете отступать от этого, вы не можете его искажать. Вы не можете сказать - я так вижу, потому что видите вы ровно то, что ваши глаза, что глаза других людей. Вы закрываете себя в клетку. Нужно относиться к фотографичности только как к приему и не более. Приему, который например создаст общий образ у коллективного творчества. Ни один здравомыслящий художник не похвалит и не восторгнется вами, увидев как точно вы скопировали реальность. Если вы учились в академии и покажите свою работу учителю, а вы были его любимым учеником, то он заплачет. Это будет твое фиаско, братан. Но если этого требует проект, если без этого общий образ игры будет не полным, то надо пойти на эту жертву, ибо за все надо платить. Важно лишь что бы для вас эта клетка, не стала домом.

Я долго не мог определиться, что же счиать фотографичностью. Однако я точно знал что где то я это уже видел и мне это не особо нравилось. И вот я вспомнил что как то озаботился проблемой зеркала в Юнити и сделал сцену с примерами зеркальных отражений тынц. Сами зеркала получились конечно хорошими, но в них не было жизни. Вот что такое фотографическая точность - это зеркальное отражение. Каждый раз как вы смотрите в зеркало, вы видите копию мира который создан с фотографической точностью...

Что же, общее положение дел я дал. Дал и предупреждения, теперь приступим непосредственно к практике.

Для начала уроки от юнитов. Они помогут вам более глубоко узнать возможности вашего инструмента. Конечно если вы еще там не были.
https://assetstore.unity.com/publishers/1
https://unity3d.com/ru/learn/tutorials

Я долгое время не мог понять с какой стороны надо подойти к этому вопросу (примерно 5 минут). С одной стороны, я физически не смогу охватить тут все приемы по созданию реалистичности, с другой стороны я не должен давать строгих правил, с третьей стороны, что то написать да нужно. Поэтому решил я следующее - я возьму один элемент из сцены Другой мир: водитель грузовика, и на его примере пройдусь по всем особенностям.


В игре есть дом, который может купить игрок (или сможет, с патчем) Или не этот дом). Давайте попробуем сделать его фотореалистичным. Для начала заменим необходимые тектстуры на сканы или фотографии и получим фотореалистичную сцену. В данном случае это будет являться основой для фотографичности. Добиться фотографичности можно и не используя прием фотореалистичности. Но так проще. И я продемонстрирую что такое фотореалистичность в ее нормальном понимании.
Итак, у меня есть хороший ассет с домами (привет Tolking), где большая часть текстур это уже обработанные фотографии. Дома модульные, что очень удобно (в дальнейшем эти модели можно объединить в один меш, для оптимизации). Они имеют приемлемое для фотореалистичной графики разрешения от 1024, до 2048. Ссылка на ассет Suburb Neighborhood House Pack (Modular)
Что я заменил это - текстуру пола, обои на втором этаже, внешний сайдинг, доски крыльца. Поставил фотографию панорамы в качестве скайбокса, который нарезал с помощью Panorama To Cubemap. Сами материалы я настроил больше на матовое отражение. Из эффектов только sun flare, который дает лучи из окон в помещении. Собственно все.
Сцену я не оптимизировал, т.е не создавал один мешь для дома и атласы для него же, поэтому есть некоторые артефакты.
Поскольку конечная цель, фотографичность, то текстуры не имеют компресии. Свет запекался с настройками отсюда - https://www.youtube.com/watch?v=sFugrMBmtf4.
Что мне не нравится, но я не стал исправлять - двери и перила. Перила не фотореалистичны и выглядят как кусок пластмасски. Хорошую фотографию двери я просто не нашел, да и с картами освещения не хотелось заморачиваться, с перилами надо было бы переделывать развертку, что так же было делать лень. Это не плохо, потому что они создадут контраст с фотореалистичностью, что только на пользу.
Цель демо, продемонстрировать вам как человек весьма далекий от дизайна, способен сделать приемлимую фотореалистичную сцену. В демо используются платные ассеты, поэтому выложить в открытый доступ я не могу.
Забавный факт. Изначально я хотел сделать первым этаж таким холодным и неуютным, навел туда тумана, частицы, белый светящийся фон за окном, но получалось не особо. Тогда я удалил блум, стало лучше, убрал туман и частицы - обои и пол себя проявили. Добавил панораму за окно и собственно сцена была готова. Мораль - не надо усложнять.
Ссылка на сборку - https://drive.google.com/open?id=1DQ8rU ... hgsuSmdXzY
Осторожнее со стремлением выйти погулять!

Продолжение следует.

Продолжение.

Реалистичность

Для начала снова определяемся с терминами.
Реалистичность - приближенность образа к жизненному отображению (прим автора - т.е. между реализмом и реалистичностью есть разница).
Образ (психология) — формируемый в сознании человека мысленный (ментальный) образ воспринимаемого им в окружающей среде объекта.
Психология (от др.-греч. «дух; душа; сознание; характер»; «учение») — наука, изучающая закономерности возникновения, развития и функционирования психики и психической деятельности человека и групп людей.
Психика (греч. psychikos – душевный) – свойство человека или животного субъективно отражать события объективной реальности для его ориентации и взаимодействия с окружающий средой.

Т.е. надо для себя понять, что реалистичность это в первую очередь создание образа реальности. Вот что такое РЕАЛИ́ЗМ - Направление в литературе и искусстве, ставящее основной целью правдивое воспроизведение объективной действительности в её типических чертах. Т.е. по факту исходя из определений, при реалистичности вы создаете образ который только лишь приближен к жизненному, а если вы добиваетесь реализма, то вам надо по максимуму воспроизвести реальное положение дел. Например вы создаете образ дома. Для реалистичности он должен иметь атрибуты дома - стены, крышу. Стены могут быть пряничными, а крыша мармеладовой, а жить в нем может вообще робот. Если вы создаете реализм, то стены должны быть из например кирпича, крыша покрыта кровлей например из черепицы, а живут там люди. А вот если вы сделаете два столба и скажите что это дом, то это уже не реалистичность и тем более не реализм.
Это как правило достигается вниманием к деталям. Например в доме должно быть спальное место и место для готовки еды, если художник хочет показать что дом обжит. Это чистая психология.

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

Использованные ассеты. Как обычно, я старался использовать доступные пакеты:
1) Хорошие ассеты у https://assetstore.unity.com/publishers/2053. Однако не все имеют именно фотографические текстуры, будьте внимательны. Это разработчики игры http://theuncertaingame.ru/. Крайне рекомендую для время препровождения и оценки с точки зрения разработчика.
2) https://assetstore.unity.com/publishers/7601.
3) https://assetstore.unity.com/packages/3 ... ree-101246
4) Тут ребята говорят примерно тоже что и я https://blogs.unity3d.com/ru/2015/11/10 ... with-ssrr/
5) Теперь уже надо объединять меш для устранения артефактов, с чем превосходно справляется https://assetstore.unity.com/packages/t ... baker-5017

Есть некоторая разница между фотографичными (сканы и фотографии) текстурами и тестурами PBR. Последние так же высококачественные, но уступают по своему качеству фотографичным текстурам и в большинстве своем выглядят как качественный пластик. Знаете, когда панели ДСП обклеивают декоративными накладками или вы смотрите на ламинат? Вот примерно так же. Тем не менее их с успехом можно применять, только они не терпят к себе яркого освещения.
Например кухня сделана с помощью текстур PBR. Они высококачественные, но не настолько как фотографичные текстуры, поэтому кухня не выглядит как сделанная из дерева, но все же вполне приемлимо.
Так же насчет пластика. Столешница кроме того что имеет карту нормалей от https://cc0textures.com/post/171897600692/plastic-04, еще и имеет карту нормалей от https://www.textures.com/download/pbr0150/133185, все это сдобрено тайлингом и на мой взгляд получилось что то похожее на пластик. Единственно что цвет слишком ровный.
Так же мягкие поверхности не должны быть ровными, а так или иначе помятые.
В общем надо добавлять настолько много деталей, насколько это вообще возможно.
Однако поскольку это фотореалистичность, то надо бы добавить живости и нереалистичности, тогда она будет соответствовать жанру. Например анимировать картины, добавить пыть в воздух (в реальности она должна осесть (так же есть коффициант оседания пыли. Привет сторонникам ядерной зимы), а не вечно летать в воздухе) и т.п. В общем все что добавит ощущение того, что картина живая. Я этого не делал, ибо я не художник и все это у меня получится чудовищно криво.


Страшно представить, но этот проект дома весит аж 20 гб)
Разные интересности - https://www.behance.net/gallery/4999086 ... h-Unity-3D
https://assetstore.unity.com/publishers/4364

Ко всему прочему есть набор иллюзий которые я не использовал. Вот список:
Иллюзии:
1) Ощущение глубины. Это иллюзия глубины.
2) Иллюзия движения
Создается при помощи цветовых контрастов, движение будет видно переферийным зрением. Движение будет казаться от светлого к темному.
3) Оптические иллюзии
4) иллюзии искажения
5) иллюзия цвета и контраста. (подмена цветов)
6) Двойственные изображения
7) Иллюзии соотношения фигуры и фона.
8) Иллюзии кажущихся, несуществующих фигур.
9) Иллюзия следящего взгляда. Есть картины лиц, с какой бы стороны человек не рассматривал их, нарисованные персонажи будут смотреть ему прямо в глаза. Обычно достигается расположением глаз по середине картины.
10) Иллюзии распознания образов. Возникают при условии, если есть подсказка или известно, что нарисовано. Тогда распознать образ относительно легко. Если не знать, что изображено, то увидеть рисунок образа практически невозможно.
11) Не внажно коакй пяродок бкув у совла, сысмл вегдса пянтоен елси использовать правила русского языка. В русском языке достигается путем верных начальных и конечных букв, верным общим набором букв которые есть в слове, а так же вниманием к окончаниям. Мы читаем слово в общем, а не по буквам.

Использовать оптические иллюзии надо осторожно - многие люди плохо их воспринимают, отчего у них начинает рябить в глаза, болеть голова и глаза. Особенно это касается эпилептиков.

Сложности с которыми я столкнулся.
1) Модульный дом удобен для сборки, но в местах стыков иногда появляются артефакты. Когда я объединил мешь, то свет стал себя вести как то уж очень странно. Углы и стены около пола, были сильно засвечены, в то время как верх стен и потолок сильно затемнены. Некоторые предметы мебели так же были засвечены и их яркость можно было регулировать спекуляром (это просто был материал со спекуляром).
2) Отчего то слетела сглаживание МСАА которое смогло починиться только новой камерой на сцене.

Вот что мне не давало покоя все это время. Что бы я не делал, как бы я не строил сцену, всякий раз у меня получался хороший, но какой то не естественный результат. То тени слишком темные, то свет падает как то странно, то еще какое то третье чувство мне подсказывало что все это неправильно. Я читал и перечитывал тонны информации, везде видел одно и тоже, что отражения считаются, память тратится, рефракция высчитывается и т.п. Однако все это хорошо, но! Я ни где не видел что бы считалось отражения света от... Воздуха! Т.е. эффект Тендаля. Фундаментальнейшая вещь в освещении которая вообще позволяет нам видеть этот мир таким, каким мы его видим. Этого попросту нет, вообще. Есть отражение света от неба и в целом это хорошо себя показывает на открытых позициях, но вот в помещении получается какой то лунный пейзаж.
Попробуем это доказать.
Если мы создадим в воздушном пространстве полый куб где будет отсутствовать одна грань, а в внутрь его поместим объект, то даже если свет будет направлен в противоположную сторону от открытой грани, то мы все равно будет видеть предмет который находится внутри куба. Возможно не четко и только его очертания, но все равно будем видеть и тем лучше, чем ближе он будет к отсутствующей грани. Конечно при условии отсутствия засветки глаз от источника света. Что получается в Unity? А ничего не получается. Если собрать из пяти примитивов куб и в него поместить еще один куб, а глобальный источник света направить строго в противоположную сторону от открытой грани, то куб будет виден. Но виден он будет благодаря тому, что его освещает... Небо. Если у неба убрать цвет, т.е. сделать его черным, то в этом кубе будет темно как в попе сами знаете кого. Вот тебе и естественное освещение...
Думал что поможет Light Probe Group, однако нет.

Вот и выявился косяк Юнити. Так что если местные умельцы хотят таки сделать что то полезное, кроме того что бы бесполезными строками кричать о том что они много знают и умеют, вот это и надо сделать.
Значит как я себе это представляю.
Есть источник света, предположим для простоты понимания - глобальный. Направление лучей у него идет по одному и тому же вектору. Когда его лучи проходят через воздух, то они за каждое мгновенье времени как бы образуют новый Point Light. В свою очередь лучи от образованного Point Light так же образуют новый Point Light и так до тех пор, пока воздух полностью не поглотит лучи света. Соответственно каждый вновь образованный Point Light, имеет яркость меньшую чем его источник на коэффициент поглощения света воздухом (конечно разная длинна волны по разному поглощается и это хорошо было бы так же реализовать. Например массив деревьев на горизонте кажется синеватым потому что синий цвет имеет бОльшую длину волны, чем красный и как следствие меньше поглощается. Отсюда же цвет противотуманных фар. Но в рамках игры, можно взять один усредненый коэффициент). Т.е. я это вижу как матрицу света где яркость каждого источника света рассчитывается в соответствии с коэфициентом поглащения и взаимодействия с соседними источниками света. Если у кого получится сделать такую штуку, да еще и обсчитываемую в реальном времени, то он не то что бы произведет революцию, но определенно произведет фурор в сообществе.

Теперь что касается демонстрации.
Я не стремился создать красивую комнату, цель демонстрации другая.
Я собрал сцену таким образом, что бы человек мог увидеть разницу между фотореалистичностью, типичным положением дел и текстурами PBR. В доме мебель на кухне это полностью текстуры PBR, в прихожей мебель у двери так же текстуры PBR, шкаф напротив двери в прихожей - типичные низкокачественные текстуры с разрешением в 512. В комнате мебелированый угол из фотографичных текстур (ванильные я заменил) с обычными текстурами у стула который стоит у окна, стол со стульями по середине комнаты так же имеют фотореалистичные текстуры (кроме декалий стола), и у прохода в комнату 2 стола и 2 стула и кресло - типичные низкокачественные текстуры.
Все имеет полноценные карты освещений. И конечно не забывайте о том что не со всех ракурсов качество будет себя полностью проявлять.

Теперь по поводу света.
Поскольку выяснилось что нет реализации рассеивания, то пришлось вручную добавить источники света. В данном случае источниками света будут являться окна. Однако это костыль. В комнатегде стоит напольная лампа хорошо видно четкую тень от Point Light окна. Этого не должно быть - тень должна быть во первых размыта, а во вторых иметь градиент уменьшения в сторону окна, покольку наибольшее освещенеие идет от окна в саму комнату. Но все же это лучше чем вообще без источника света на окнах.
Сделал кнопку которая отключает свет от окон, что бы можно было понять разницу.

Демо 3 - https://drive.google.com/open?id=10yhjX ... bqWgwl2AAQ

Далее попробуем добиться фотографичности. Как выяснилось, это весьма забавное явление.

Фотографичность.

О да, как много в этом звуке, для сердца разработчика сплелось. Высший скил, верх творенья. Святой Грааль для тех многих, что далеки от искусства. Апогей графического мастерства технаря. Кто то уверен, что за этим будущее. Кто то совершенствуется в своей твердолобости и считает что в будущем будет только фотографичная графика. Кто то считает что это не достижимо... Мда...
Признаться честно, когда я вывел основные критерии фотографичности, мне стало так смешно что я не мог приступить к работе пару дней. В отличии от предыдущих тем где я не мог давать строгих указаний, тут я основательно пройдусь по критериям достижения фотографичности, но позже. Сейчас навалилось много работы, а все наработки надо собрать в одну осмысленную кучу, скомпоновать, причесать, структурировать и т.д. Поэтому я выложу только первые результаты, что бы понятно было, что фотографичность в Юнити достижима, это еще проще чем фотореалистичность, конечно при условии соблюдения основных правил.
В целом я думаю это можно даже будет использовать в играх, если очень строго подойти к оптимизации.
Итак, материал для сцены я взял отсюда - https://www.artec3d.com/ru/3d-models. Тут его мало, но достаточно что бы понять прелесть высококачественных сканов.
Далее сам билд - https://drive.google.com/open?id=1tCgyv ... UrVKJbRPOe
Сцена собиралась 20 минут.

Текст с фотографичностью был вынесен в отдельную тему - Фотографичность в Unity? Повышаем четкость картинки.

Результаты от Turic, ключевые слова - "нашел сегодня свободное время и попробовал ту фишку". viewtopic.php?f=11&t=48346&st=0&sk=t&sd=a&start=30
Последний раз редактировалось sledo 23 окт 2018, 21:19, всего редактировалось 17 раз(а).
sledo
Старожил
 
Сообщения: 816
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение lawson 19 авг 2018, 11:18

В заголовке это
Фотореалистичная графика в Unity - сложно? Просто!

а в итоге это
надо использовать сканированные текстуры в высоком разрешении.

:ymapplause:
Хоть бы даже упомянули об освещении.

Все остальное как вы и сказали
не буду ходить вокруг да около, переливая из пустого в порожнее

А дальше "интересные истории" о том как важен каждый пиксель.
Где собственно реалистичная графика и как ее добиться, надо смотреть видео? - тогда к чему вообще эта тема!?

Выложили кучу разных материалов, которые сможет создать даже человек вчера открывший первый раз unity - достаточно почитать справку.

Скрытый текст:
Интересно, а что ж за графика была в Another world: Truck driver раз теперь стало "лучше".
lawson
UNIверсал
 
Сообщения: 481
Зарегистрирован: 14 сен 2012, 21:20

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение Cr0c 19 авг 2018, 14:57

Да уж, зная и понимая F = m*a можно легко написать SSS или рефракцию света )) и без сопромата легко написать физическую симуляцию поведения шин на разных поверхностях, только с одной этой формулой ))
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 2970
Зарегистрирован: 19 июн 2015, 13:50
Skype: i_cr0c

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение sledo 19 авг 2018, 21:19

.
Последний раз редактировалось sledo 21 окт 2018, 22:22, всего редактировалось 3 раз(а).
sledo
Старожил
 
Сообщения: 816
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение lawson 19 авг 2018, 21:41

Скрытый текст:
Изображение


с вами все в порядке!? мне кажется, что ваше новое сообщение содержит больше полезной информации чем первое.
lawson
UNIверсал
 
Сообщения: 481
Зарегистрирован: 14 сен 2012, 21:20

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение Cr0c 19 авг 2018, 23:02

sledo писал(а):Первична текстура, свет вторичен.
<...>
1. Узнаем силы которые воздействуют на колесо F = ma > 1 * 0 = 0. Человек который окончил восьмой класс, сразу же увидит что колесо находится в состоянии покоя относительно тела на котором находится (сделаем допущение что колесо используется по своему прямому назначению, а именно является точкой опоры). Однако, хоть оно и находится в состоянии покоя, но все равно пока мы еще не знаем будет ли смещение по оси. F1 < F2 = 0 < 1. Превосходно, теперь мы знаем что сил у колеса не достаточно для преодоления сил сопротивления.

Фотореалистичная графика без затенения, бликов, подповерхностного рассеяния... Это круто, да.
И откуда же взялась сила сопротивления без сопромата? Откуда известно, что трение качения, а не трение скольжения?
lawson писал(а):
Скрытый текст:
Изображение

с вами все в порядке!? мне кажется, что ваше новое сообщение содержит больше полезной информации чем первое.

Плюс тебе в карму ))
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 2970
Зарегистрирован: 19 июн 2015, 13:50
Skype: i_cr0c

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение sledo 19 авг 2018, 23:26

потеряло актуальность
Последний раз редактировалось sledo 22 авг 2018, 09:20, всего редактировалось 1 раз.
sledo
Старожил
 
Сообщения: 816
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение waruiyume 19 авг 2018, 23:44

Как сделать фотореалистичную графику in nutshell
https://youtu.be/ZXsQAXx_ao0
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 5212
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение lawson 19 авг 2018, 23:48

Ну все хватит уже, я больше не могу SLEDO!

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

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

Удачи, у всего хорошего. ;;)
lawson
UNIверсал
 
Сообщения: 481
Зарегистрирован: 14 сен 2012, 21:20

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение sledo 20 авг 2018, 06:44

потеряло актуальность
Последний раз редактировалось sledo 22 авг 2018, 09:21, всего редактировалось 1 раз.
sledo
Старожил
 
Сообщения: 816
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение Cr0c 20 авг 2018, 09:48

Мде. Проблемы либо с логикой, либо одно из двух. Нет, спасибо, до свидания.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 2970
Зарегистрирован: 19 июн 2015, 13:50
Skype: i_cr0c

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение 1max1 20 авг 2018, 15:54

картинку пиксель бережет)))
t.me/realwar_fx
Аватара пользователя
1max1
Адепт
 
Сообщения: 2629
Зарегистрирован: 28 июн 2017, 10:51

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение sledo 20 авг 2018, 23:35

Добавил дополнение
sledo
Старожил
 
Сообщения: 816
Зарегистрирован: 05 янв 2014, 15:44

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение 1max1 21 авг 2018, 08:39

Не обижайся, но ты объясняешь очевидные вещи, это больше похоже на урок философии, чем на урок по юнити))
t.me/realwar_fx
Аватара пользователя
1max1
Адепт
 
Сообщения: 2629
Зарегистрирован: 28 июн 2017, 10:51

Re: Фотореалистичная графика в Unity - сложно? Просто!

Сообщение sledo 21 авг 2018, 10:42

потеряло актуальность
Последний раз редактировалось sledo 22 авг 2018, 09:21, всего редактировалось 1 раз.
sledo
Старожил
 
Сообщения: 816
Зарегистрирован: 05 янв 2014, 15:44

След.

Вернуться в Уроки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2