Как сделаны фоны в Homeworld2 изнутри

в 16:21, , рубрики: game development, Homeworld, графика, игра, космос, оптимизация, Работа с анимацией и 3D-графикой, метки:

Эта статья является переводом сразу двух статей от Simon Schreibt. Обе статьи на одну тему и являются взаимодополняющими. Не пугайтесь того, что в начале все набрано большими буквами, это стилистика автора и я постарался максимально её сохранить.

То, что вы видите тут

Как сделаны фоны в Homeworld2 изнутри - 1

это сносшибательные фоны

Как сделаны фоны в Homeworld2 изнутри - 2

одной из наиболее прекрасных научно-фантастических игр.

Как сделаны фоны в Homeworld2 изнутри - 3

H o m e w o r l d 2


Благодарю за прочтение.

Шучу, разумеется. Конечно же у меня есть что рассказать на эту тему. В нашей компании мы время от времени смотрим на арт из Homeworld и преклоняемся мастерству его создателей. Теперь, после того, как мы обсудили как здорово выглядит фон и как интересен этот набросочный стиль (скетч), остаётся что-то… некоторые детали кажутся… специально для нас.

Как сделаны фоны в Homeworld2 изнутри - 4

Я упомянул, что это выглядит немного как… градиентное раскрашивание по вершинам. Но они же не будут рисовать фон геометрией, верно? Я имею ввиду… что в этом случае это должна быть довольно сильно тесселированная сфера. Обсуждения были закончены, но я не был удовлетворен результатом и хотел, хотябы, увидеть текстуры. Поэтому я использовал некоторые утилиты для извлечения из Homeworld 2 Demo данных, однако текстур там не было. Только некоторое количество .HOD файлов. Погуглив я нашел тему о том, как генерировать эти .HOD файлы из .TGA. Она гласила:

“…сканирует каждый пиксель изображения и затем на основе контраста
решает добавить или нет новую вершину и цвет…”

ЧТО?

Может ли это действительно быть раскраской вершин? Благо можно посмотреть на .HOD файл с помощью CFHodEdit. Другая утилита может включить принудительный режим отображения сетки. Смотрите, что получается вытащить на свет:

Это одно

Как сделаны фоны в Homeworld2 изнутри - 5

из самых смелых

Как сделаны фоны в Homeworld2 изнутри - 6

решений для игрового арта, который я когда-либо видел.

Как сделаны фоны в Homeworld2 изнутри - 7

И здесь вы можете заметить как это влияет на геометрию небесной сферы в игре. Видите как мало разрешение в неконтрастных областях? И какая гладкая сфера в местах, где имеется много деталей?

Как сделаны фоны в Homeworld2 изнутри - 8

Никогда даже не думал, что таким образом можно получить такие хорошие результаты. Ой, и не забудьте, что такой подход решает две большие проблемы.

#1 Нет никаких проблем с артефактами от сжатия текстур DDS форматом.
#2 Более важно со стороны композиции: из-за того, что нельзя получить сильную детализацию (в обучении сказано, что исходная TGA не должна содержать множество четких деталей), фон остается где он и должен быть:

НА ФОНЕ.

Очень часто я вижу игры, где фон содержит слишком много шума и деталей, которые правда очень трудно отличить от среднего и ближнего плана.

Последний раз я видел идеальную комбинацию технологии и композиции в Diablo 3. Я говорю о моей статье «Деревья в Diablo 3».


Конец первой статьи. Вторая часть.


Некоторые спрашивают в теме на Polycount как эти сферы в Homeworld были сделаны. Давайте сделаем её вместе! Ну, мы-то будем использовать для этого утилиты для модов. И я не имею ни малейшего представления о том насколько это близко к оригинальному подходу Relic в данном вопросе.

Download
Скачайте эту коллекцию утилит для модов и используйте инструмент “HW2BGBuilder”. Здесь также есть “HW2 – Spookysoft – HOD Tool 1.5.0.1″ но для меня он не особо подошел.

HOD Viewer
Для просмотра .HOD файлов нужно использовать “CFHodEdit 3.1.5″ (откройте ваш .HOD файл, затем в нижней части программы найдите закладку “Miscellaneous” и нажмите “HOD Preview”).

Поехали!
Хорошо, сначала мы создадим тестовую .TGA чтобы увидеть чего нам ожидать. Думаю это должно неплохо сработать (1024×512, 24bit):

Как сделаны фоны в Homeworld2 изнутри - 9

Создадим ярлык для HW2BGBuilder.exe и перетащим на него нашу текстуру. Дадим утилите рассчитать необходимое и потом нажмем “Space” (игра слов от автора. Подразумевается и кнопка пробел и космос одновременно. Прим. пер.) для старта процесса. Почувствуем себя хакером Матрицы пока числа будут бежать вниз по командной строке.

Как сделаны фоны в Homeworld2 изнутри - 10

И вот как это выглядит в “CFHodEdit”. Вы можете очень четко видеть UV развертку сферы. Так, теперь мы знаем три вещи:

  1. Не следует добавлять детализации сверху и снизу текстуры, так как она очень сильно сожмется там.
  2. Левая и правая стороны текстуры должны совпадать друг с другом, чтобы избежать видимого шва.
  3. Цвет получаются ярче, чем на оригинальной текстуре.

Чуть подробнее обо всем этом в паре предложений ниже.

Как сделаны фоны в Homeworld2 изнутри - 11

Касательно последнего пункта: в Homeworld они рисуют только гладкие градиенты на полюсах сферы и избегают любой видимой деформации. Вершины также редки в этих областях, что приводит к гладким градиентам цветов вершин.

Посмотрите, как распределена геометрия вокруг полюса:

Как сделаны фоны в Homeworld2 изнутри - 12

Я считаю это просто круто. Из-за ограничения на использования детализации только в горизонтальных областях вы достигаете еще и того (надеюсь), что игрок никогда не потеряет ориентацию в пространстве.
Теперь давайте перейдем к “реальной” текстуре. Но до этого давайте уменьшим уровень (яркости прим. пер.) с 255 до 128 (Photoshop > Image > Adjustments > Levels).

Уровень яркости: 255
Как сделаны фоны в Homeworld2 изнутри - 13

Уровень яркости: 128
Как сделаны фоны в Homeworld2 изнутри - 14

После генерации вы найдете “_ref.TGA” текстуру, которая представляет собой карту границ, используемую программой для создания сферы. Мне кажется она выглядит действительно интересно. Я думаю что квадраты это части, которые программа считает одну за другой.

Карта граней:

Как сделаны фоны в Homeworld2 изнутри - 15

И вот как это выглядит в программе просмотра В некоторых местах, особенно на вершине большой горы можно увидеть “подтекание” цвета. Я не особо игрался с настройками “HW2BGBuilder”. Возможно здесь есть место для маневра и можно улучшить результат, но в целом результат очень хороший.

Как сделаны фоны в Homeworld2 изнутри - 16

Надо заметить, разрешение исходной текстуры заметно ударило по количеству полигонов в результате.

Как сделаны фоны в Homeworld2 изнутри - 17
Как сделаны фоны в Homeworld2 изнутри - 18

Последние мысли будут немного техническими. Поправьте меня если я объясняю неверно. В том что я сказал “пока” числам и пошел путем графики есть смысл.

  • 1 пиксель требует 24 бита 3 Байта чтобы быть сохраненным (RGB, каждый канал 8 бит)
  • 1 вершина нуждается в позиции (XYZ) и цвете (RGB)

Это значит, что если исходная текстура содержит слишком много контраста и деталей повсюду, то данных будет больше чем при использовании текстуры. Но фоны в Homeworld состоят большей частью из цветов и градиентов, а также небольшого количества деталей. Так что для этих целей оптимизация клёвая.

Пока я писал эту статью, здесь были дискуссии о том, как добиться уменьшения количества полигонов в zBrush. Computron разместил свои результаты тут. Ой и poopinmymouth дал отличную ссылку где описывается утилита создания сфер со всеми её параметрами.

И вот теперь уже действительно благодарю за прочтение.

Автор: Darthman

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js