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

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

Допустим есть у нас плоскость из одного полигона (на самом деле 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...

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

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

Я очень надеюсь, что вы не имеете никакого отношения к гейм-деву.

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

так и есть

показать ответы
14
Автор поста оценил этот комментарий
Если замоделить эти плитки и убрать дисплейс, это сэкономит оооочень много ресурсов ;)
раскрыть ветку (1)
18
Автор поста оценил этот комментарий

а если 2 квадратных километра? и камера то близко то далеко в разных точках локации

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

Спасибо. теперь понятней всё. В свое время ковырялся с модельками для Сорса, теперь понятнее, что за "синенькие" карты в моделях были ))).

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

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

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

ОП, как давно 3д графикой занимаешься? Учился где или сам все постигал?

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

около 10 лет, сам

1
Автор поста оценил этот комментарий
У меня диплом связан с созданием трехмерной модели здания и реализацией на webgl через threejs (сайт). И надо затекстурировать так, чтобы было реалистично и не загружать комп пользователя. Так вот, какие карты текстур использовать и какой должен быть у них вес? Буду рад любой помощи. Заранее спасибо.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

512*512 100кб на каждую, тогда не нагрузите нетбуки домохозяек или кто у вас там ЦУ.

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

добротная статья) текстурируешь в чем? substance painter?
статьи будут только про маты и текстуры?

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

статьи будут про то, что в голову придёт что подписчики попросят (елси я в этом как-то разобрался конечно) и  про что не лень будет пилить, как-то так)) substance не пользуюсь в принципе.

показать ответы
Автор поста оценил этот комментарий
Угол наклона нормалей? помоему нормаль уже подрузамевает кое-какой угол
раскрыть ветку (1)
Автор поста оценил этот комментарий
Нормаль имеет угол 90 к поверхности. Карта нормалей делает фейк
Автор поста оценил этот комментарий

Ну гуглил как умел, полчаса не тратил на загугливание. Если по-простому, то мне интересно откуда там возникла большая белая сосиска? Я немного шарю в физике и мне кажется, что ее, источник дать не может. Те она отражена от невидимой стены? Или там есть еще один скрытый источник? Было бы круто если б Вы объяснили или дали бы ссылку на вики или написали бы просто это термин на английском.

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

лампочка же 3я

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

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

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

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

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

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

@brave24 и ещё вопрос. Мех как можно реализовать с помощью стандартных шейдеров/карт?

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

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

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

Интересно, подписался. А что такое рефлексное отражение? Где об этом почитать? Гуглил, не нашел.

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

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

показать ответы
Автор поста оценил этот комментарий
3d max подписчик просит)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

я и так делаю это все в 3ds max, лучше конечно более общие азы давать, чем конкретно  зацикливаться на интерфейсе однйо программы

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

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

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

есть разные типы дисплейса, есть 3d есть 2d, ну и parallax mapping на худой конец, он вообще только тексели смещает внутрь

показать ответы