• Авторизация


Как сделать Low-poly астероид в Blender? 14-10-2024 18:49 к комментариям - к полной версии - понравилось!


Всё нижеперечисленное делалось в Blender 4.2. Цель - сделать маленький низкополигональный астероид, преимущественно сферической формы для мобильной игры.

1. Берём где-нибудь или делаем примерную текстуру поверхности астероида. Речь идёт о шаблоне для карты Альбедо (обычная диффузная текстура), цветная. Можно взять какой-нибудь фрагмент рисунка или сгенерировать текстуру в нейросети. Она не обязана быть тайловой. Потом из этой картинки Блендер сделает кисть (раньше в других программах это называлось ""штампом").
2. В Блендере создаём типа "Ico sphere". Она хороша тем что имеет отличную готовую развёртку текстурных координат.
3. Идём не вкладку "Shading", создаём новый материал. Далее создаём новую текстуру прямоугольной формы 1024x512 залитую каким-нибудь сплошным непрозрачным цветом. Назначаем её в качестве диффузной текстуры материала.
5. Далее идём на вкладку "UV mapping" и подстраиваем текстурные координаты под новую текстуру с помощью их масштабирования и перемещения.
6. Идём на вкладку "Texture Paint" и выбираем инструмент "Brush". Вообще, он выбран по умолчанию. У этой кисти есть свойство "Texture" - в нём создаём новую текстуру и загружаем в неё файлик, полученный на первом шаге. Блендер сам делает из обычной картинки правильный круглый шаблон с прозрачностью по краям. Всё довольно волшебно. Это наш основной шаблон рисования. Далее крутим объект как нам надо и проштамповываем его весь нашей картинкой чтобы не осталось пустых мест. Далее не забываем сохранить изменения в готовой диффузной текстуре.
7. Снова идём на вкладку "Shading". В материале создаём узел "Dispacement" и назначем его материалу. Создаём ещё одну текстуру (называем её как-то вроде "...height_map") и копируем в неё содержимой диффузной текстуры. Можно также заранее пропустим её через какой-нибудь редактор и обесцветить. В качестве источника карты высот узлу "Displacement" указываем эту текстуру.
8. Возвращаемся на вкладку "Texture Paint" и выбираем рисование на текстуре нашей карты высот. Блурим лишнее, усиливаем нужное. Сохраняем изменения карты высот.
9. В материале создаём новую карту нормалей. Ни с чем её не соединяем. Этот узел дожен быть выделен. Теперь идём в меню справа, выбираем там панель рендеринга, выбираем движок "Cycles", в панели ищем вкладку "Bake" (Bake Type: Normal) и жмём кнопку запекания. Блендер должен запечь новую карту нормалей и отобразить изменения в окне предпросмотра слева. Сохранём изменения карты нормалей.
10. Аналогично можно запечь текстуру Roughness.
11. Всё готово! Теперь если показать отдельно дубликат объекта, то мы увидим на нём рельф от карты нормалей. Экспортируем объект, диффузную текстуру и текстуру нормалей куда нам надо в нужные форматы.
asteroid41_render_result_512_transparent (512x512, 163Kb)

З. Ы.: создать из диффузной карты карту нормалей в каком-нибудь стороннем инструменте НЕ ВЫЙДЕТ! Точнее выйдет, но мы сразу увидим отвратительные стыки в местах, где заканчиваются текстурные координаты. Внешний инструмент не может сгенерировать карту нормалей правильно, потому что не знает (или не хочет знать) о текстурных координатах. Заблурить стыки в Блендере тоже НЕ ВЫЙДЕТ - не знаю почему, но все попытки это сделать оказались тщетны.

З. Ы. 2: Пару слов о текстуре Metallic/Smoothness в Unity. Использовать нужно только материал типа Standard с моделью Metallic/Smoothness (не стоит даже думать о модели Specular/Glosiness!). В неё загружаем текстуру в виде PNG-файла с прозрачностью, где в в RGB-каналах должен быть сплошной чёрный цвет, а в Alpha-канале должна находиться инвертированная Roughness-текстура (т.е. белым участкам соответствует полная глянцевость, а черным - полная шершавость). Такая текстура называется в Unity словом "Smoothness".
Smoothness-текстура в известном графическом редакторе должна выглядеть примерно так:
smoothness_in_photoshop (251x100, 5Kb)
Настройки текстуры в Unity в таком случае должны выглядеть так:
unity_smoothness_map0 (480x126, 8Kb)
Есть способ проще, но тогда глянцевые области станут одновременно металлическими (более тёмными и более зеракальными). Можно использовать обычную картинку для Smoothness-текстуры: без Alpha-канала, без прозрачности. Данные глянцевости в оттенках серого храним в обычном RGB-формате или любом другом в зависимости от формата файла. Тогда в Unity надо настроить эту текстуру как "Single Channel", указав основной канал ("Channel") как "Alpha" (не существующий). В "Alpha Source" указываем "From Gray Scale". Настройки должны выглядеть вот так:
unity_smoothness_map (476x179, 12Kb)
Настройки материала в Unity в любом случае должны выглядеть так (режим Fade нужен мне для плавного исчезновения объекта):
unity_mat_settings (472x222, 17Kb)
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Как сделать Low-poly астероид в Blender? | eugene20237 - Дневник eugene20237 | Лента друзей eugene20237 / Полная версия Добавить в друзья Страницы: раньше»