Pull to refresh

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

Reading time 4 min
Views 48K
Original author: Simon Schreibt
Эта статья является переводом сразу двух статей от Simon Schreibt. Обе статьи на одну тему и являются взаимодополняющими. Не пугайтесь того, что в начале все набрано большими буквами, это стилистика автора и я постарался максимально её сохранить.

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



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



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




H o m e w o r l d 2



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

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



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

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


ЧТО?


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

Это одно



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



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




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



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

#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):



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



И вот как это выглядит в “CFHodEdit”. Вы можете очень четко видеть UV развертку сферы. Так, теперь мы знаем три вещи:
  1. Не следует добавлять детализации сверху и снизу текстуры, так как она очень сильно сожмется там.
  2. Левая и правая стороны текстуры должны совпадать друг с другом, чтобы избежать видимого шва.
  3. Цвет получаются ярче, чем на оригинальной текстуре.

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



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

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



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

Уровень яркости: 255


Уровень яркости: 128


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

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



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



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




Последние мысли будут немного техническими. Поправьте меня если я объясняю неверно. В том что я сказал “пока” числам и пошел путем графики есть смысл.
  • 1 пиксель требует 24 бита \ 3 Байта чтобы быть сохраненным (RGB, каждый канал 8 бит)
  • 1 вершина нуждается в позиции (XYZ) и цвете (RGB)


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

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

И вот теперь уже действительно благодарю за прочтение.
Tags:
Hubs:
+44
Comments 10
Comments Comments 10

Articles