Тип проекта: Asset Pack
Инструменты: MagicaVoxel,Unity, Photoshop
Всего ассетов: ~530 воксельных моделей
Дополнительно: Скайбоксы (Skyboxes), шейдер воды (Water Shader), кастомная система сетки (Custom Grid System), инструмент расстановки объектов (Scatter Tool), инструмент ландшафта (Terrain Tool) и текстуры ландшафта
Создание воксельных ассетов на первый взгляд может показаться тривиальной задачей. Мы все играли в Minecraft и думаем, что это просто расстановка блоков, верно? По сути, обычный 3D пиксель-арт

Визуально воксели работают именно так, как вы от них ожидаете. Это действительно своего рода «3D пиксель-арт». Однако всё становится гораздо сложнее, когда вы начинаете рассматривать эти ассеты в контексте реал-тайм проекта (в реальном времени).
Цель этого проекта заключалась в создании визуально привлекательных, относительно детализированных воксельных ассетов, которые при этом обладают высокой производительностью, бесшовно интегрируются с Unity и достаточно универсальны для поддержки самых разных окружений.
Это амбициозная цель, но определенно достижимая. В этой статье я поделюсь своим процессом создания этих ассетов, трудностями, с которыми столкнулся, и уроками, которые извлек по пути.
Для начала я собрал референсы, вдохновение и визуальный материал, после чего создал мудборд (moodboard).
После сбора референсов и определения визуального направления я начал экспериментировать с первыми концептами и определять различные категории природных ассетов, которые хотел создать.

На самом деле, главная сложность заключалась не в создании самих моделей. Процесс подчинялся тем же принципам, что и любой творческий проект: экспериментируй, тестируй, собирай фидбек, вноси правки — и так по кругу (итерируй), пока не получишь результат, который тебя устроит.Настоящий вызов крылся в том, как именно движок Unity обрабатывает воксели.
Главная сложность заключалась именно в том, как движок Unity обрабатывает воксели.
-
Проблемы оптимизации
Unity рендерит каждый треугольник в полигональной сетке (mesh). Чем больше треугольников, тем больше времени требуется на рендеринг и тем хуже производительность. Мне приходилось многократно и сильно снижать детализацию моих ассетов, балансируя между качеством визуала и производительностью.Также я настроил отсечение (culling) всех невидимых полигонов, чтобы рендерить только то, что попадает в поле зрения камеры, и полностью удалил все внутренние грани блоков. Это погрузило меня в глубокое изучение воксельной оптимизации и привело к использованию таких алгоритмов, как Greedy Meshing (алгоритм жадного мешинга).
Источник: Blackflux.com -
Создание инструментов (Building the Tools)
Большая часть времени ушла на создание инструментов, которые делают разработку воксельного окружения максимально простой и быстрой. Сюда вошли система сетки (Grid System), инструменты ландшафта (Terrain tools) и многое другое.
Ссылка на демонстрацию работы системы сетки (Grid System) в действии: [LINK]
Работа системы сетки (Grid System) с воксельными тайлами. Большое количество времени также ушло на адаптацию ассетов для работы со встроенной системой ландшафта Unity (Unity Terrain), создание кастомного генератора ландшафта, а также на общую оптимизацию ради модульности и удобства использования.Я очень доволен тем, какими получились эти ассеты, а также их гибкостью и функционалом, когда дело доходит до создания великолепных воксельных миров.




Спасибо за внимание! Надеюсь, этот разбор кейса был полезен для тех, кто работает с Unity и воксельной графикой. Буду рад услышать ваше мнение и вопросы в комментариях
ссылка на оригинал статьи https://habr.com/ru/articles/1046750/