Выжимаем по максимуму из полигона!

Пятнишное моё.

Допустим есть у нас плоскость из одного полигона (на самом деле 2, триангуляция всё такое). Что же можно получить с этого полигона?

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Попробуем как в лихие 90-е, кинуть на него фототекстуру.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

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

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Слишком плоско, попробуем обмануть глаз и искусственно добавить теней в стыках, накинем карту аmbient occlusion.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Ну вот, появились затенения в тех местах куда свету якобы должно труднее попасть. Напомню что просчёт света в сцене не изменился, движок думает что это все еще  плоская поверхность. Чтобы вбить ренедер-движку идею о том, что эта поверхность имеет неровности, прибегнем к стандартной с года 2003 для геймдева технологии - Normal bump. Это RGB карта, где каждый канал содержит себе информацию о угле наклона нормали в конкретном текселе. Где условно черный цвет это -45 градусов, а белый +45 относительно осей X Y Z соответственно.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

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

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Плохо видно структуру, накрутим отражений. Абсолютно все поверхности отражают не только диффузно, но и рефлексно.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

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

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Проблема - поверхность одинаково ярко отражает, такого не бывает, добавим карту reflection (specular).

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Попробуем покрутить глянцевость. 

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

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

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

нямка, вернем предыдущие карты на место: Diffuse color,Ambient occlusion, normal bump.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

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

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

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

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Упс, переборщ.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Так то лучше, сразу появилась неоднородность структуры, затенения в стыках просчитываются уже движком, а не заготовленной картой AO, но её я все равно оставляю, чтобы издалека карта  выглядела контрастной. Вернем все предыдущие карты  кроме normal, она будет только мешать корректно просчитывать нормали поверхности.

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

Посмотрим под более привычным углом. "плитка как плитка" - если так скажет обыватель,то значит работа удалась.  И это еще не все, что можно выжать из пары полигонов, все выше описанное относится к классическому подходу к текстурированию, а ведь есть еще PBR (physically based rendering), но это уже другая история :)

Выжимаем по максимуму из полигона! Графика, Текстуры, Текстурирование, Компьютерная графика, Длиннопост

P.s.Текстуру для этого примера я получил методом фотосканирования, про который я писал в предыдущем своем посте. http://pikabu.ru/story/nemnogo_o_teksturirovanii_ili_chto_mo...

Подписывайтесь, спрашивайте, а я буду пилить посты по популярным вопросам.

149
Автор поста оценил этот комментарий

Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы... И эльфу раз лесные то сделать так что там густой лес... А движок можно поставить так что вдали деревья картинкой, когда подходиш они преобразовываются в 3-хмерные деревья[1]. Можно покупать и т.п. возможности как в Daggerfall. И враги 3-хмерные тоже, и труп тоже 3д. Можно прыгать и т.п. Если играть за охрану дворца то надо слушаться командира, и защищать дворец от злого (имя я не придумал) и шпионов, партизанов эльфов, и ходит на набеги на когото из этих (эльфов, злого...). Ну а если за злого... то значит шпионы или партизаны эльфов иногда нападают, пользователь сам себе командир может делать что сам захочет прикажет своим войскам с ним самим напасть на дворец и пойдет в атаку. Всего в игре 4 зоны. Т.е. карта и на ней есть 4 зоны, 1 - зона людей (нейтрал), 2- зона императора (где дворец), 3-зона эльфов, 4 - зона злого... (в горах, там есть старый форт...)



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



P.S. Я джва года хочу такую игру.

раскрыть ветку
22
Автор поста оценил этот комментарий

Ага, только вот дисплейс в разы нагружает систему

69
Автор поста оценил этот комментарий

дисплейс все равно генерит полигоны же

раскрыть ветку
95
Автор поста оценил этот комментарий

Нихера не понял, поставил плюс.

раскрыть ветку
19
Автор поста оценил этот комментарий

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

раскрыть ветку