Для чего запекать текстуры
Гайд по текстурированию: проверка запекаемых карт. Часть 1: проверка нормала
В изучении 3D-графики большую роль играет работа над ошибками. Хоть в продакшене это чаще всего невозможно, но в обучении все новички должны стремиться доводить свои работы до идеала. Проще сказать, чем сделать, ведь один вопрос решать известные проблемы, а совсем другое — фиксить то, о существовании чего и не догадываешься.
Действительно, вот ты затекстурил очередной пропс, смотришь на него и вроде в общем всё хорошо, но что-то с ним не так. Цвета неправильные? Roughness однообразный? Может быть это всё из-за плохого света? Точно, плохой свет. или всё же нужно перезапеч карту AO покачественней?
Через подобного рода «поиск улучшений» проходят все артисты в начале своего пути. Даже когда начинаешь разбираться во всем получше — всё равно возникают подобные ситуации.
Конкретные требования к качеству запекаемых карт нельзя определить однозначно. На одних проектах допускается normal map со слабо заметными артефактами, на других же — требуют просматривать каждую карту в максимальном приближении.
Все зависит от значимости ассета. Если в играх от первого лица есть возможность рассмотреть все детали, то в проектах от третьего — бессмысленно тратить время на полировку каждого элемента. Учитывать нужно и степень освещенности сцены, разрешение текстур, шейдеры и тп. Незачем шлифовать объект до безупречности, если он прячется в дальнем темном углу.
В этой статье мы пройдемся по типичным артефактам на normal map и пофиксим их.
Итак, ты создал классную модель, развернул её и даже успел забэйкать карты, но что-то с ними не так:
..да и остальные карты смотрятся так себе.
Однозначно нужно чинить. В большинстве случаев начинать стоит с нормала, ведь на нем проявляется большая часть проблем. Разберешься с ним — и работа пойдет намного легче.
Normal map
Отметим проблемные места на шлеме.
Практически все артефакты при запекании нормала решаются по шаблону.
Разберем пять основных ошибок, которые видно на шлеме.
Пересечение кейджа. Если простыми словами: при бейке нормала программа создает область вокруг объекта, из которой проецируются световые лучи, помогающие запечь карту. Когда объекты находятся слишком близко друг к другу или в настройках запекания выставлены высокие значения Cage Distance, элементы могут перепекаться друг на друга, что и видно на скриншоте.
Решение: назначить объектам разные имена, если ты запекаешь по неймингу, или разнести их в сцене дальше друг от друга. Как вариант, можно покрутить настройки Cage Distance.
Существует два основных алгоритма работы Normal map — OpenGL и DirectX. Отличаются они направленностью света в зеленом канале. В OpenGL свет идет снизу вверх (Y+), а в DirectX — наоборот (Y-). Если ты запекаешь нормал в Marmoset и используешь DirectX в своем сабстанс проекте — нужно обязательно инвертировать зеленый канал. Алгоритм DirectX/OpenGL выбирается при создании проекта. Но его можно сменить и в процессе работы в Edit —> Project Configurations.
Причина таких жестких швов на нормале — разная ориентация шеллов на UV. Старайся следить, чтобы островки имели общую направленность. Во-первых, это поможет избежать подобных проблем на нормале. Во-вторых, в будущем будет проще использовать гранжи с явной направленностью при текстурировании.
Несоответствие high poly и low poly версий модели — частая ошибка новичков. Из-за этого на нормале смещаются запеченные элементы. Старайся сопоставлять и подгонять друг к другу хайполи и лоуполи перед запеканием.
Тут видно, что карта нормалей вовсе не пропеклась. Скорее всего, была допущена ошибка в нейминге. Если ты запекаешь карты по именам, названия должны быть корректными и совпадать на low и high poly моделях. И не забывай назначать правильные суффиксы в именах мешей.
Каким бы сложным не казался процесс запекания карты нормалей, 90% возникающих проблем решаются по одному алгоритму.
Большая часть артефактов на нормале решена, теперь можно приступать к запеканию остальных карт и исправлять оставшиеся проблемы.
В следующем материале мы тщательно проверим AO, Curvature, Position, World Space Normal карты, пофиксим лишние запеченные тени, черные пиксельные линии на стыках UV шеллов и другие мелкие недостатки. Stay tuned.
RailUnion.net
Русскоязычное железнодорожное сообщество
Запеченные текстуры, Baked Textures: вопросы и ответы
Запеченные текстуры, Baked Textures: вопросы и ответы
Мне уж порядком надоело повторять одни и те же ссылки и рекомендации по сабжу. Поэтому давайте в отдельной теме обсуждать насущную проблему Запеченных Текстур, методы их создания.
Baked Textures переводится как Запеченные Текстуры, что подразумевает создание затемнений (теней) на текстуре.
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Так же для создания текстурной развертки, очень рекомендуеться учить эту статью!
http://render.ru/books/show_book.php?book_id=773
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Если кому надо: быстрая настройка vRay для запекания текстур.
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Андрей, ты неправильно что-то понял. Или я тебя каким-то образом сбил с толку, когда мы с тобой на эту тему разговаривали. Цитирую:
А вот раскладку до запекания можно создавать как твоей душе угодно.
Что касается повторяющихся деталей, опять же, можно спокойно отекстурить их одной текстурой, при запекании рендер в текстуру создаст для каждой отдельную раскладку, и ты уже вручную после завершения процесса удалишь все дубли и склонируешь на их место первый. Естественно лишние области текстуры придётся очистить. Вновь созданные клоны будут ссылаться на общую область текстуры.
Кстати, можно поступить иным образом. Если созданные раскладки дублей идентичны, ты берёшь все кроме первой и перемещаешь на место первую. Теперь без удаления и повторного клонирования твои дубли ссылаются на единую раскладку.
Надеюсь я правильно объяснил
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
В первом посте пункт 3, который ты процитировал, идет ДО запекания, и относится к целому текстурному листу. Поэтому там раскладки не должны накладываться и пересекаться.
Применимо же к игровому текстурному листу, на котором все текстуры уже запечены, это правило не относится. По крайней мере я в мануале такого не видел.
Поэтому я и хотел услышать мнение тех, кто уже это всё делал, и как они поступали в этом случае.
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Всё правильно, после создания первоначальной неигровой и возможно весьма черновой раскладки ты создаешь вторую, в которую будет проводиться запекание. Вторая до запекания не должна накладываться/пересекаться. Но вот после того как рендер завершился можно спокойно идентичные объекты с идентичным или очень малоотличимым освещением/текстурами отослать к раскладке первого объекта, а раскладки дублей на текстуре стереть, освободив тем самым место на текстурном листе.
Либо можно поступить вообще хитро. Все дубли изначально отсылать на отдельный лист (второй раскладки). Не будет тратится место на основном листе и не образуется свободного места.
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Re: Запеченные текстуры, Baked Textures: вопросы и ответы
Кстати, вот ещё какой вопрос. Вы вроде сторонник мелких «прибамбасов» на модели (гаек, болтиков, проводов, и т.п.), которые после запекания и создания ЛОДов образуют чёрные теневые пятна на текстуре. Как вы решаете эту проблему?
И ещё один вопрос: плоскости отекстуренные текстурой с альфа-каналом (8 битным), такие как стёкла окон, запекаются вместе со всем остальным или как-то отдельно?
Основы запекания текстур в V-Ray, часть I
>>> Запекание текстуры >>> |
Search Keywords: bake, baking, render to texture
Обзор
В этом уроке мы будем обсуждать процесс запекания текстуры в V-Ray.
Визуализация в текстуру, или «запекание текстуры», позволяет вам создавать текстурные карты основанные на внешнем виде объекта в визуализированной сцене. Эти текстуры, «запеченные» в объект становятся частью самого объекта посредством преобразования (mapping) и могут быть использованы для быстрого отображения текстурированного объекта на устройствах, поддерживающих Direct3D, таких как видеокарты и игровые движки.
В нашем случае, мы покажем вам как может быть запечена простая сцена, и как может быть использован этот метод для создания анимации с пролетом камеры (Fly-Through Animation).
Наша сцена содержит 2 объекта (космический корабль Space_ship и землю Ground) и 1 источник света (omni). Вы можете загрузить начальную сцену отсюда.
Настройка визуализации
1.1. Откройте начальную сцены, которую можно найти здесь.
1.2. Установите V-Ray в качестве текущего визуализатора.
1.3. Вы можете открыть Редактор материалов (M) что бы удостовериться, что материалы правильно настроены и присвоены.
1.4. Перед тем, как вы сделаете первую визуализацию, мы включим Frame Stamp (свиток System), что бы на изображении показывалось время визуализации.
Вот что мы получили с настройками V-Ray по умолчанию. Для того, что бы сделать освещение более интересным, мы добавим к визуализации непрямое освещение и размытые тени.
Это будет нам давать некоторый цвет из окружающей среды, действующий как свет от неба.
Обратите внимание, как увеличилось время визуализации из-за тех изменений, которые мы сделали в настройках визуализатора.
Теперь у нас есть размытые тени.
Изображение выглядит хорошо, но видна зернистость. Для уменьшения шума мы настроим параметры DMC-сэмплера.
Обратите внимание как увеличилось время визуализации, но качество стало гораздо лучше. Теперь наша сцена готова для запекания.
Подготовка объектов для запекания текстур
2.1. Сначала мы выключим штамп Frame Stamp (свиток System). В противном случае мы получим его на на нашей запеченной текстуре, что не входит в наши планы.
2.2. Теперь откройте окно Render to Texture (0) из меню Rendering.
2.3. В поле Output укажите каталог, где будут сохраняться запеченные текстуры.
2.4. Выберите (Select) в сцене оба объекта (космический корабль и землю).
2.5. В группе Mapping Coordinates установите переключатель в положение Use Automatic Unwrap.
Посмотрите как оба объекта были автоматически добавлены в таблицу Objects to Bake (Объекты для запекания).
В действительности это будет суффиксом имени для ваших файлов запеченных текстур, которые будут созданы, а префиксом имени будут имена самих объектов в сцене.
Посмотрите как это было автоматически добавлено в таблицу.
Все остальные настройки оставьте как есть.
Теперь наши объекты готовы для запекания (визуализации).
Запекание текстур (визуализация)
3.1. Нажмите кнопку Render в нижней части окна Render to Texture.
3.2. Вы можете видеть, что baking process (процесс запекания) обрабатывает построчно объект за объектом, как они занесены в таблицу.
Первым начал визуализироваться (запекаться) объект Ground, за ним последовал Space_ship.
Загрузка новых запеченных материалов и их предварительный просмотр во вьюпорте
4.1. Откройте Редактор Материалов (M) и выберите пустой слот материала.
4.2. Нажмите значок Get Material для открытия окна Material/Map Browser.
4.4. Вы можете заметить, что в сцене есть 2 новых материала. Они имеют тип Shell Materials и содержат в себе оба материала: исходный материал V-Ray и новый Baked Material.
4.5. Перетащите, как показано, новые материалы в Редактор Материалов.
Это просто означает что:
— если мы делаем новую свежую визуализацию (F9), то объект будет использовать свой Original material (VRayMtl).
— во всех вьюпортах объект будет использовать свой Baked Material (Standard).
4.9. Перейдите на карту Self-Illumination и включите отображение карты во вьюпорте (значок Show Map in Viewport ).
4.10. Во вьюпорте вы должны будете увидеть плоскость земли с уже запеченной картой.
Обратите внимание: если вы забыли включить значок Show Map in Viewport, вьюпорт будет выглядеть так:
Сейчас Space_ship по прежнему показывается абсолютно черным потому, что мы для него еще не настроили материал.
4.12. Здесь мы приводим еще несколько дополнительных видов сцены с различных положений:
Визуализация сцены с запеченными материалами
5.3. Выберите источник света Omni и выключите его. В действительности мы даже можем его удалить из сцены, и визуализация при этом останется такой же, поскольку все освещение уже запечено в текстуру.
Обратите внимание на время визуализации. На шаге 1.14 у нас было 4 мин 36 сек. Сравните с 8.6 сек сейчас. Это происходит потому, что с запеченными текстурами V-Ray не производит каких-либо вычислений освещенности. Вы можете даже переключиться на встроенный в 3ds Max визуализатор Scanline и по прежнему получить тот же результат.
Имейте ввиду, что вы можете анимировать камеру и визуализировать целую анимацию с пролетом камеры (fly-trhough animation) с очень малым временем визуализации на один кадр.
Мы покажем вам другой метод, который дает абсолютно такой же результат, как показанный выше. Это касается шагов с 2.7 по 2.10.
В следующей части урока по запеканию текстур вы научитесь как запекать только определенные элементы визуализации (например только освещенность или GI).
Перевод © Black Sphinx, 2008-2011. All rights reserved.
Для чего запекать текстуры
Урок по запеканию текстур в 3d’s max
Benz | Дата: Вторник, 26 Января 2010, 16:05 | Сообщение # 1 |
Сегодня мы рассмотрим «запекание текстур» в графическом пакете 3D Studio Max. Что такое запекание текстур? Запекание текстур это преобразование нескольких текстур сцены, в одну. Для чего нужно запекание текстур, и какую пользу, оно может принести? Запекание текстур очень удобное средство, для облегчения создания 3D моделей. Наверное каждый из вас хоть раз замечал как устроены текстуры в других играх? Одно из главных преимуществ этого способа наложения текстур в том, что вам не нужно настраивать множество материалов, а порой и заново текстурировать модель, возиться с настройками материалов в игровом движке, так как на выходе получается всего 1 текстура. Помимо всех выше перечисленных преимуществ, запекание текстур очень удобно использовать дизайнерам, и всем тем кто работает в 3D редакторах, так же можно Для начала мы должны иметь уже готовую(затекстуренную) сцену: Прежде чем начать процесс запекания текстуры, убедитесь что в качестве основного визуализатора установлен «Default Заходим в Render=>Render to Texture или просто жмем на клавишу «0» Появится вот такое вот окошко: Теперь нам нужно создать развертку, путем перемещения и масштабирования объектов так, чтобы все елементы модели поместились в «синий квадратик» Жмем Render, ждем пока отрендерится изображение: вот что получилось у меня: А теперь наложим новоиспеченную текстуру на нашу модель, для этого создайте новый материал, импортируйте на карту *Примечание: Если у вас большая сцена с интерьером, вы так же можете использовать запекание текстур, со всеми тенями На этом пожалуй все. Пробуйте, эксперементируйте! Запекание текстурPalin sergey Нарад, для чайника, что такое Гугл?) Это полезно для игровых движков, чтобы не считать мелкие тени, они уже отрендерены и сохранены как текстура. Это перенос определенных данных с 3D поверхности на ее 2D развертку. Это полезно для игровых движков, чтобы не считать мелкие тени, они уже отрендерены и сохранены как текстура. Спасибо! Но яж говорю, что вопрос от НАЧИНАЮЩЕГО. Вот вы мне сейчас рассказали, а я понял только первое предложение-)))) то что дальше написано для меня ещё рано, но всё равно Спасибо! Спасибо! Всё понятно рассказывает и показывает. Но только про само ЗАПЕКАНИЕ мало инфы. Я так понимаю запекание это как и заморозка, но только заморозить и разморозить можно, а вот запечь и перепечь нельзя. Название не значит что там что-то «запекается», просто назвали так. Само «запекание», как я выше писал, это перенос данных с 3Д на 2Д. Данные самые разнообразные могут быть, от цвета до координат нормалей, высот и прочего. И понядобится оно Вам, только как научитесь моделить и текстурную развертку делать. Нет. Не сомневайся. Я строитель из Белгородской области. Деревенский строитель так сказать. А 3дмаксимка мне поможет для работы. Фотошоп cs-ку я освоил за месяц, Pinnacle за пол год. Вот и до макса добрался, пока изучу что-то новое выйдет. Вот так и живём. строим и юзаем. Название не значит что там что-то «запекается», просто назвали так. Само «запекание», как я выше писал, это перенос данных с 3Д на 2Д. Данные самые разнообразные могут быть, от цвета до координат нормалей, высот и прочего. И понядобится оно Вам, только как научитесь моделить и текстурную развертку делать. Я так понимаю (своими словами, а то у меня нет умных слов). Например обьект в 3d со всеми тенями, светом, короче со всей хренью, а если его запечь, то вся эта хрень запечётся в текстуру обьекта, и при следующем рендере, уже не будет расчитывать по новой тени свет и всё такое, а сразу всё готово в текстуре запечённой. Короче говоря, к примеру. Солнечный день, всё светится везде тень, а если эту всю картинку запечь, то всё так и останется. На самом деле солнце ушло, тени пропали, а на запечённой текстуре всё ясно, и расчёт начнётся с запечённой картинки. Пипец запутался я. А насчёт текстурной развёртки Вы вообще в тему сказали. Это вообще чё? Я правильно понимаю, что текстурная развёртка это когда объект разлаживается по всем частям, на плоскости, и нельзя чтоб один над другим навис, иначе на нижний текстура не ляжет? Например: развернуть обезьянку по плоскости, одно ухо под другим расположить, и наложить на неё текстуру волос, то получится что вся обезьяна волосатая, а одно ухо нет. Или я вообще не туда думаю.
|