Какую технологию использует Starcraft 2 для рендеринга своих карт?

9

У меня есть карта, которая процедурно генерируется во время выполнения, и в настоящее время я изучаю способы рендеринга этой карты. Я заинтересовался внешним видом Starcraft 2 и хотел бы посоветовать, какие методы он использует для его достижения. Во-вторых, я хотел бы видеть любые учебники, статьи или даже примеры исходного кода, если это возможно.

Есть несколько основных вещей, о которых я хотел бы получить совет, но, пожалуйста, не стесняйтесь предлагать что-нибудь еще, что может мне помочь.

  1. Snappable Tilesets - типичная карта звездного корабля, кажется, состоит из набора плиток моделей, которые можно соединить вместе, чтобы создать скалы, скаты и другой возвышенный ландшафт. Какие методы они используют, чтобы заставить их выглядеть так естественно? Я имею в виду, что очень трудно обнаружить повторение.

  2. Текстуры ландшафта - Текстуры ландшафта настолько разнообразны и даже динамичны (ползучесть зергов). Какие методы используются для этого?

Спасибо.

S.Richmond
источник
Что касается № 2, исследование "текстуры брызги".
Джордж Дакетт

Ответы:

23

Я думаю, что отчасти это может быть из-за того, что у Blizzard есть потрясающее количество художников текстур. Но давайте перефразируем вопрос немного:

У меня ограниченный бюджет и я хочу сделать стратегическую игру в реальном времени без явных текстур. Как я могу это сделать?

Хороший вопрос! Вот несколько больших инструментов, которые я бы использовал:

1) Достаточно большой набор сменных плиток . Допустим, вы собираетесь использовать текстуру размером 64x64 на своей сетке: создайте восемь текстур 64x64, каждая из которых может совмещаться с любыми другими, и у вас получится симпатичная игра на основе плиток с большим количеством вариаций!

2) Декали или мегатекстурирование . Возьмите свою повторяющуюся текстуру и небольшое количество наложенных текстур «пятно», «грязь» или «потертость». Брызги несколько таких оверлеев на ваших текстурах. Они могут быть отображены в реальном времени, в этом случае они являются декали, или запекаться в огромную текстуру, и в этом случае это называется мегатекстурированием. В любом случае вы, вероятно, можете сделать это почти случайно, и у вас будет много вариаций с несколькими примененными наложениями.

3) Плитка цикады . Проверьте это для более подробной информации о том, как это работает. Таким образом, это способ взять небольшое количество частично прозрачных фонов с явно мозаичным рисунком и использовать его для создания гораздо менее очевидного фонового рисунка.

4) Брызги текстуры . Я сохранил это последнее, потому что на самом деле речь идет не о том, чтобы избежать наложения на одну текстуру, а об объединении нескольких текстур. Однако, если вам удастся извлечь несколько дополнительных текстур из своего бюджета, это может быть критически важным инструментом - на самом деле, я бы сказал, что если вы не используете это, вы, вероятно, делаете что-то не так. Это не поможет с большими явно плиточными секциями одного типа текстуры, но это то, что вы будете использовать, чтобы ваши текстуры выглядели хорошо рядом друг с другом.

ZorbaTHut
источник
Для тех, кто заинтересован, Starcraft 1 использует # 1 в этом списке, а Starcraft 2 использует # 4. В обоих случаях это для основной местности. Что касается «doodads» в SC1, то они были # 2 (декали, а не мегатекстуры), а в SC2 они все были 3D-моделями. - Кроме того, то, что делает карты SC2 настолько великолепными, - это то, что большинство локаций имеют две текстуры, разбросанные друг над другом в разной степени, в результате чего это больше напоминает плитки цикады. (о котором я не знал до сих пор и планирую использовать.)
DampeS8N
@ DampeS8N: На самом деле SC1 не делает № 1 per se. Вместо этого у них есть небольшая палитра плиток, которые накладываются друг на друга, а также некоторые плитки, которые накладываются только на некоторые другие плитки. В редакторе карт есть таблица того, с какими плитками и с какими, поэтому, когда вы размещаете плитки, которые не располагаются рядом с тем, что находится рядом с ними, он просматривает свои таблицы и заменяет эти плитки тем, что делает плитки тем, что вы положили. Рекурсивный.
Никол Болас
@NicolBolas Технически верно, но основная философия состоит из взаимозаменяемых плиток. Кроме того, мои друзья и я привыкли видеть, сколько переворотов плитки мы можем вызвать в редакторе SC1 как цепную реакцию.
DampeS8N