Войти
ПрограммированиеСтатьиГрафика

Текстурирование руками программиста.

Внимание! Этот документ ещё не опубликован.

Автор:

Привет, Gamedev.ru!

Хочу поделиться знаниями, которые могут кому-нибудь пригодиться.
Предупреждаю, вступление длинное, дабы отсеять людей, которым статья просто не нужна.
Ремарки о грамматике и пунктуации приветствуются.
Стоит пояснить название, что если вы - художник, то текстурировать вы будете руками программиста, который писал ПО, которым вы воспользуетесь.

И так, для кого статья:
- для программистов, которые ищут художника, для реализации графической части своей готовой, или только запланированной игры, и совершенно не слышали о процедурном текстурировании, или не "попробовали" себя в этом безумно интересном деле.
- для художников/дизайнеров, сталкивающихся со сложностями в создании современных наборов текстур (bump, normal, specular, metalness, curvature, albedo~=diffuse, color (разметка материалов), object-space maps), или попросту бесшовных текстур.

I. Процедурное текстурирование.
Проще говоря: создание текстур, программными, "автоматическими" методами.
Наверняка вы слышали о нем, и может даже пробовали (если вы - программист) писать генераторы шума Перлина, или диаграммы Вороного, но не думаю, что самописные генераторы способны удовлетворить современным меркам качества, требованиям реализма и т.д. Потому, остается только стороннее решение. Если вы - художник, пропускайте следущий текст, и переходите сразу к пункту II.

Для начала:

- Выберите стилистику (условные примеры: Sci-Fi  + фотореализм, Фэнтези + Casual Cartoon, Top-down + Дарк Фэнтези)
- 2D  или 3D?
- есть ли у вас освещение(в 2D  оно тоже бывает, и смотрится очень даже хорошо), отражения, сложные графические техники, требующие определенного типа текстур (в 2D  с освещением  normal map, как мне кажется, must have. А современная 3D  игра в фотореализме  уже неторт без normal + specular на каждом листочке каждого кустика минимум)
- Если 3D - есть ли у вас 3D  модели и, упаси господи (простите, я агностик, наверное), анимация к ним? Если нет - текстурирование хоть и очень важно, но вторично в вашем случае, закрывайте вкладку, ищите (или создавайте) 3D модели и (самое сложное) анимацию.
- Вы владеете базовыми навыками фотошопа, слышали о масках, альфа-канале и т.д. ?

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

Если вы - 3D-моделлер, вы наверняка видели в своем 3D-редакторе (Blender, 3ds-Max) генератор текстур. И как вам качество? Мне кажется что возможности довольно узкие, или порог вхождения не стоит результата, каждую текстуру придется собрать самому, и потратить на каждую отдельную кучу времени и сил.

Зато у вас есть некоторое преимущество над программистами и художниками, если у вас есть исходная high-poly  и low-poly  модель, вы сможете получить все необходимые карты для работы, например, в ddo (Object-space map, base normal map, ao map, curvature map и т.д.)

II. Преимущества?

*Если найдется статья, из которой я узнал основы о  procedural texturing, она будет здесь*

Кратко из статьи:
Плюсы генерированных текстур:
+ Бесшовность
+ Гигантские размеры (до 64к)
+ Готовые наборы многих видов текстур (diffuse + normal + specular + metalness и т.д.)
+ Внесение правок во все виды текстур одновременно
+ Легкость и скорость создания (нарисовать от руки в любом случае сложнее и дольше, как не крути)
+ Множество вариантов одной текстуры (в Filter Forge  при 1 рандомном компоненте = 30к вариантов)
+ Вариативность вдоль самой текстуры (очень полезно в мегатекстурах ландшафта)
+ Покадровая анимация

минусы:
- большой размер => требуют много памяти
- гиперреализма достичь довольно трудно, но вполне возможно (P.S. да, ddo не генерирует с нуля, я в курсе)
- Генерировать на лету - просто не выгодно, или невозможно (сугубо личное мнение)
- Рендеринг текстур жрет много ресурсов
- Сложность в освоении ПО, алгоритмов, техник

Что легко создать с помощью процедурных текстур, а что сложно?
Сильно зависит от стилистики, возьмем сложную задачу - фотореализм, фентези (много органики).

Легко:
- Материал предмета, преимущественно неорганический (метал, дерево, камень, кожа, ткань, краска, шпаклевка, асфальт, бетон, лава)
- Некоторые отдельные части  живого существа ( зубы, глаза)
- Многие виды частиц (Particles), в готовом виде (электрические дуги, облака, вспышки, огонь, дым)
- Колейдоскопо-подобные картины, некоторые виды фракталов и другие основанные на паттернах текстуры
- Составные части ландшафта (земля с камешками, травой, валяющимися листьями, снегом или песком)
- Космические тела, и космические ландшафты

Работая в ddo/Quixel Suite :
- Современные текстуры материалов, со всеми необходимыми видами текстур, с потертостями и ржавчиной, беспорядочной, по всей площади

имея Color map:
- Комплексную текстуру, в которой может быть одновременно пластик, кожа, метал, камень и т.д. А царапины все еще беспорядочны, в рамках каждого материала

еще базовую normal map:
- Можно  выбрать готовый компексный материал, и "потертости"(мелкие детали, вторичный материал) будут там же, где и на превью-модели

имея high-poly исходник 3д модели, разбитую на объекты, покрашенные в цвета, соответствующие Color map, и low-poly модель, в размере 1 к 1 к high-poly, object-space map, base normal map, occlusion map:
- Всё, что угодно (в рамках библиотеки материалов, которую можно расширить самому)

Работая в Filter Forge :
- Всё, что есть в библиотеке, и вашего владения данной программой. для художников: включая пост-обработку изображений, например: пикселизация,дождевые капли

имея лицензионную версию FF (Filter Forge), и зная XML или пользуясь любительским GUI :
- Рендерить множество текстур подряд, в простонародии - Batch processing, включая покадровую анимацию (рендер карт в духе diffuse + normal и так доступен в professional  trial  и pirated  версиях)

Владея масками и созданием фильтров в FF :
- очень широкие возможности (маски + фильтры FF)

III. Программное обеспечние

- ddo, входящий в Quixel Suite.

(субъективно) Самое современное ПО для создания полного набора текстур. Делаете фотореализм? Вам сюда.

- ndo2, так же входящий в Quixel Suite.

(так же) Лучшее ПО для создания normal map из фото, или из ничего, или конверсии между картами. Есть diffuse, нужны normal, specular и т.д. ? Вам сюда.

- Substance Designer

ПО, для генерации материалов, материалы совместимы с Unity3D и UE 3-4. Знаком крайне поверхностно, низкая производительность в купе с сложностью в основах сильно оттолкнули.

- Filter Forge

ПО, автоматизирующее  операции, возможные в PS(Photoshop, уровни, контраст, маски, RGB-операции), и оборачиваюшее всё в Node-программирование.
для генерации с нуля, в основе есть: шум Перлина, диаграмма Вороного и еще с 5ку других алгоритмов, с гибкими настройками, базовые 2д примитивы, моделирование освещения, система партиклов, работа с несколькими исходниками в одном фильтре, bezier и заготовленные кривые, циклы, multisamling, antialiasing, поддержка multicore-процессоров. Важное преимущество FF -  большая библиотека готовых фильтров, доступных даже из trial  версии, лучшие из которых вы найдете здесь

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

Всё зависит от поставленной задачи, ваших навыков/знаний/опыта в FF и в процедурном текстурировании в общем. Ежедневно ставят странные задачи, приходится много работать в PS, Action слишком накладно и муторно записывать, или ищете ....... текстуру или пост-эффект? Вам сюда.

Все мои фильтры для FF

Пока что всё. Всем удачи в творчестве и труде.

#текстурирование

1 декабря 2015