Для входа на форум нажмите здесь
Новые комментарии
[Перевод] Star Citizen: текстурирование открытого sci-fi мира
Автор темы: Malstream
Дата создания: 13.07.2019 21:43
Аватар для Malstream
Гуру
Регистрация:
24.10.2016
GoHa.Ru I Степени Знаток
Награжден за: Отличные статьи и материалы по Star Citizen Знаток вселенной Star Citizen
Награжден за: Знатоку игры Star Citizen за знание игры и помощь в развитии форума и портала.
[Перевод] Star Citizen: текстурирование открытого sci-fi мира
Источник



Сегодня мы приветствуем команду Cloud Imperium Games, рассказывающую о рабочем процессе в Substance, который они разработали для создания предстоящей космической игры Star Citizen. Объем текстурной работы для планет и ландшафтов огромен, поэтому мы обсудим, как им удалось достичь как технических, так и художественных целей в их пайплайне.

Введение

Мишель: привет, меня зовут Мишель Купер, и я ведущий художник по окружающей среде в нашем офисе во Франкфурте. Я работаю над играми чуть более 10 лет. Прежде чем присоединиться к Cloud Imperium Games при создании немецкой команды по окружающей среде, я пять лет находился в Crytek, работая над такими играми, как Crysis, Ryse, Homefront 2 и Hunt: Showdown.

Я присоединился к компании в январе 2017 года, организовав и управляя новой командой по окружающей среде, работаю с инженерами над нашей планетарной технологией и над созданием пайплайна для органических/природных ассетов.

Себастьян: здравствуйте, меня зовут Себастьян Шрёдер и я один из старших художников по окружающей среде. Я провел большую часть своей карьерыв качестве внештатного художника, работая последние девять лет над различными названиями.

Я присоединился к компании в апреле 2017 года, и с тех пор моя роль завязана на улучшении наших технологий и пайпланов, связанных с планетами, с помощью наших собственных инструментов и рабочих процессов.

Star Citizen



Мишель: со Star Citizen мы создаем вселенную, которая сочетает в себе свободу исследования, острые ощущения в бою и уникальную задачу построения жизни в космосе. Мы стремимся вложить в руки игрока максимальный контроль. Прокладывая себе путь будучи грузоперевозчиком, нанося на карту неизвестное или живя вне закона, игроки будут перемещаться по смеси процедурно сгенерированных и созданных вручную миров, взаимодействуя с различными неотразимыми персонажами.

Substance

Мишель: впервые я познакомился с Substance на GDC 2014 в Сан-Франциско, где увидел демонстрацию на стенде. Хотя это и было интересным, в тот момент программа и рабочий процесс показались мне очень абстрактными. Позже в том же году, в декабре, я купил инди-лицензию Substance Designer и начал копаться в ней. С тех пор я не оглядывался назад.

Себастьян: Я не помню, как и когда я наткнулся на Substance Designer, но я использую его с тех пор, как Substance Designer 4 стал частью рождественской распродажи в Steam в 2013 году.



Мишель: мы решили использовать набор инструментов Substance, потому что он невероятно расширяет возможности художников. Многое из того, что мы делаем в Star Citizen, является модульным и, в какой-то степени, извлекает выгоду из некоторого уровня процедурности. Это делает Substance отличным выбором для нашего пайплайна, так как ощущается частью нашей общей философии.

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

Наш пайплан и технологии постоянно совершенствуются и пересматриваются; non-destructive концепция Substance позволяет нам легко вносить изменения или корректировки в существующий контент без особых усилий. Таким образом, мы можем иметь много игрового контента, сохраняя при этом гибкость в изменении или улучшении этого контента на пути разработки.



Наш рабочий процесс

Мишель: во многих наших пайплайнах по-прежнему используется сочетание более традиционных инструментов, таких как 3ds Max для моделирования и ZBrush для high-res скульптинга, но мы также очень заинтересованы в новых и более интеллектуальных инструментах, таких как текстурирование в Substance или использование SpeedTree при создании ассетов растительности. Мы также работаем над автоматизацией элементов нашего пайплана с помощью Houdini, потенциально перенося часть работы по моделированию геологических ассетов в инструменты Houdini.

Что касается органики, наша работа разделена на несколько основных категорий: растительность, геология и сам вид планеты, который охватывает глобальные виды вплоть до рельефа и слоев земли.

Примеры пайплайна

Растительность:

Для нашей растительности мы используем комбинацию SpeedTree, ZBrush и Substance Painter. Ассет растения мы разбиваем на листья/цветы, другие альфа-компоненты и компоненты веток/коры. Затем мы создаем white-box версию с текстурой альфа/листьев, используя либо фото референсы, либо макеты, которые представляют формы листьев. Полученное мы используем как начало для создания ассета в SpeedTree. Таким образом, мы можем проверить, достигнет ли ассет нашего видения, правильного масштаба, формы, плотности листьев и т. д. Этот, основанный на нодах, рабочий процесс, такой же non-destructive, как и всё остальное в Substance.



Когда мы удовлетворены продвижением ассета и расположением альфа слоёв и слоёв листвы, мы перемещаем наш макет в ZBrush и начинаем заменять макет листвы на 3D смоделированные листья/цветы и другие компоненты. После этой фазы скульптинга мы перемещаем все слои в Substance Painter, чтобы текстурировать их и запечь.Нам показалось, что Substance Painter отлично подходит для таких ассетов, потому как позволяет нам использовать множество простых генераторов и получать красивые базовые слои и детали с помощью всего нескольких кликов, и при этом иметь возможность рисовать уникальные детали вручную.



Вместе с нашим обновленными слоями листьев, мы используем tiling-материалы для коры, сделанные в Substance Designer. Настраивается окончательная версия материалов и модель экспортируется в наш движок.

Такой процесс мы используем для всей нашей внутренней библиотеки.



Материалы местности:

Наши материалы для местности мы создаём как наборы, покрывая запрос на текстуры, описывающие изменения и сочетающиеся друг с другом; например, пустынный песок, переходящий от гладкого к волнистому, покрытому камням иили покрытому камнями плотно. В наборе бывает много общих элементов, но мы используем гибкость Substance, чтобы легко создавать вариации.

Примером этого является нода basic_sand, которая находится у нас в библиотеке. Эта простая нода содержит встроенные в Substance различные типы песка, которые используют сканы в качестве референса для наших значений PBR. Каждый из пресетов был проверен в нашем движке и имеет все выходы, необходимые для подключения к другим графам.



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



Ниже приведены некоторые примеры наборов материалов земли, которые мы создали с помощью этого метода.



Рельефы

Для создания наших карт высот мы используем Substance. Эти карты высот имеют разрешение 2k и описывают примерно 4 на 4 километра. Самое большое отличие от обычных карт рельефа — это наша рельефная «плитка». Мы покрываем наши планеты рельефами и смешиваем их между собой, создавая великолепно выглядящие массивные ландшафты по всей поверхности.



Мы используем Substance Designer для создания наших карт высот, карт нормалей, карт цветов и любых дополнительных данных, которые мы используем для размещения объектов на местности.



Это делает Substance исключительно подходящим для наших нужд в сравнении с другими инструментами на основе нод, специально ориентированными на создание рельефа. «Выкладывание плитки» — это одна из особенностей, которые поставляются прямо из коробки с Substance. Substance также является универсальным и достаточно мощным, чтобы позволить нам создавать собственные ноды моделирования рельефа, в которые углубится Себастьян.

Общий вид планет

Для глобальных текстур наших планет мы в основном используем Substance Painter. Мы создали небольшую библиотеку альфа-объектов рельефа, чтобы облегчить процесс рисования. Часто мы начинаем работу от создания концепта и можем легко перенести детали на нашу текущую модель, используя Substance Painter. Затем этот глобальный материал применяется в нашем движке и смешивается с материалами и картами высот, которые вы увидите, когда начнете приближаться к поверхности.




Собственные модели превью

Еще одна действительно крутая вещь, которую вы можете сделать в Substance, - добавить свои собственные 3D-модели. Мы использовали эту опцию, чтобы добавить несколько собственных моделей превью для нашего пайплайна.

Для материалов поверхности и геологии мы создаём собственные модели превью. Поскольку мы создаем наши материалы для покрытия 4 метров, у нас есть 4-метровый участок земли с масштабной моделью из нашей игры. Это позволяет нам всегда иметь масштабный референс в нашем окне превью и следить за тем, чтобы мы не добавляли слишком большие элементы или не фокусировались на деталях, которые не добавляли бы ничего, кроме визуального шума.

Мы используем аналогичную идею для геологических материалов, но на вертикальной плоскости, покрывающей 2 метра. Просто полезно следить за масштабами при создании убедительных материалов.



Собственные ноды

За последние два года мы создали прекрасную библиотеку собственных нод, инструментов и утилит, которые облегчают нашу жизнь. Даже мелкие повторяющиеся задачи или часто используемые комбинации нод стоит помещать в собственные ноды и делиться ими с командой. Со временем это действительно ускоряет работу.

Одним из примеров будет нода, которая будет брать текстурный атлас с сеткой до 25 слотов и разбивать их на отдельные компоненты, которые будут использоваться в других нодах, таких как tile sampler.



Таким образом, мы можем управлять атласными слоями определенных тем и ресурсов в отдельных файлах. Отслеживать и поделиться ими стало намного проще. У нас есть одно место, где все художники хранят свои атласы; поменять тему или тип ассета теперь так же просто, как поменять атлас.

Другой пример полезной ноды — это наша нода height_validate. Все карты высот мы балансируем для смещения рельефа местности и parallax occlusion mapping’а вокруг средней точки 0,5. Сохранение одной и той же средней точки или уровня земли для всех этих карт гарантирует, что у нас всегда будет отличное смешение и переход между материалами и ландшафтами. Height_validate дает нам представление отладки, которое помогает художникам сбалансировать максимальный диапазон и среднюю точку карты высот.



Технические и художественные цели

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

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

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

Поскольку Substance уже является частью нашего пайплайна для ландшафта из-за своего процедурного рабочего процесса, позволяющего нам создавать разнообразные и интересные базовые формы рельефа и корректировать их за очень короткое время, было логично исследовать то, можем ли мы каким-то образом получить в нем недостающее важные геологические процессы.

Технический разбор

В Интернете доступны десятилетия исследований всех аспектов моделирования геологических процессов. Основная задача для нас заключалась в том, как запустить эти алгоритмы для сотен итераций в Substance Designer без его падения.

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

Наша цель — это структура графов, которая вложит графы с большим и большим количеством итераций следующим образом:



Граф 1it является наименьшим строительным блоком и содержит одну итерацию нашего алгоритма. Мы хотим, чтобы он просто содержал входные данные, сам алгоритм и полученные в результате выходные данные. В нашем примере итерация представляет собой простую адаптацию набора правил для игры «Жизнь», которую вы можете увидеть в Википедии внутри пиксельного процессора. Мы смещаем соседние пиксели, чтобы сравнить их с «текущим», сравниваем результат с правилами и соответствующим образом корректируем вывод.



Мы ограничиваем использование обычных параметров только счетчиком итераций, поскольку хранение параметров между тысячами нод с помощью подхода с использованием регулярных параметров затрудняет работу Substance Designer.

Граф 10it — это то место, где мы начинаем с процесса вложения. Мы используем ноды смешения, чтобы проверить, должна ли нода итерации быть частью вычисления, сравнивая ее номер итерации с максимальным количеством итераций.



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

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



Для графа 100it мы используем ноды 10it вместо 1it, но остальные - очень похожи, с небольшими отличиями в логике.



Мы проверяем, за какую группу из 10 отвечает смешение, и позволяем ей соответствующим образом передавать данные.



Поскольку у нод 10it есть параметр «Итерации», мы делаем следующее в его собственной функции, чтобы определить их группу из 10-ти:



Для всех последующих групп итераций мы повторяем ту же настройку, но для групп по 100, 1000 и т. д.

Чтобы наш пример работал, все, что осталось, — это убедиться, что наш ввод равен 1 биту (черный или белый), а затем мы можем просмотреть счетчик итераций, чтобы увидеть появление жизни.

Это результат первых 100 итераций:



Используя эту настройку, мы можем реализовать множество ранее невозможных алгоритмов, которые позволяют нам расширять функциональность Substance Designer.

Для большинства алгоритмов вы хотите предоставить дополнительные параметры и получаете их там, где они должны быть; мы просто используем дополнительные входные данные и подаем их таким образом в алгоритм.



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



Подробное описание реализации исследовательских работ, на которых базируются наши ноды, превратит это в очень длинное интервью.

Комбинированная гидравлическая и термическая эрозия на основе «Синтеза и рендеринга эродированных фрактальных ландшафтов»:



Расхождение воды по рельефу на основе уравнения мелкой воды Навье-Стокса:



Эоловая эрозия на основе работ Б.Т. Вернера:



Эрозия по сравнению с обычным шумом при использовании потока воды для окраски:



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

Мы также сделали еще несколько служебных нод, чтобы облегчить работы с особыми эффектами.

Террасирующая нода на основе логистической функции с маской для контроля крутизны гор:



Наши любимые функции в Substance

Мишель: трудно выбрать, но я бы сказал, что моей любимой вещью будет гибкий non-destructive характер программного обеспечения. Оно предрасположено для экспериментов, художественного выражения и создания инструментов/утилит одновременно. Это невероятный уровень мощности и контроля.

Себастьян:
с момента их появления, мои фавориты это 32fзначения и пиксельный процессор.

Секреты и уловки

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

Работая в команде, убедитесь, что вы заранее договорились об общем расположении собственных узлов, и чтобы всем было легко регулярно обновлять эту папку. Таким образом, вы избегаете проблем при открытии ноды, которые имеют много ссылок на другие ноды, которые скрыты в различных областях, таких как личные диски.

Необходимость найти недостающие ноды и исправить испорченные референсы может стать разочаровывающим опытом и стоить много времени проекту.

Что-нибудь, что вы хотели бы добавить?

Мы хотели бы поблагодарить команду Substance за возможность поговорить и поделиться работой, которую мы проделали над нашей игрой!

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

Спасибо, что приняли нас!
Последний раз редактировалось Malstream; 14.07.2019 в 20:05.
8 пользователей оценили это сообщение: Показать
Аватар для Wanderv
Регистрация:
18.04.2008
GoHa.Ru - 10 лет
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Уравнения Навье-Стокса - как много в этих звуках для тех кто учился на физмате
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Осуждаю отсутствие мармосета в пайплайне и наличие макса
Годная статья

Не грусти, черепом врага похрусти
Сообщение от GoHa:
И ДА БУДЕТ СРАЧ! ГОВНЫ БУРЛИТЕ!
Сообщение от GoHa:
во всем виноват Сиротин!
Сообщение от NkTOZZ:
от темы про страпоны и БДМС плавно перешли на тему славянской фолк музыки, как вы это сделали?
Аватар для nORb Dragon
Предводитель
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Флуд и оффтоп удалены.

not an Ordinary Rainbow Dragon - анахроничный танцующий с лезвиями дракон

Epic Seven, сводки с полей:
набор в гильдию «NightHawks» (свободных мест нет)
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Ну вот опять все пропустил

Не грусти, черепом врага похрусти
Сообщение от GoHa:
И ДА БУДЕТ СРАЧ! ГОВНЫ БУРЛИТЕ!
Сообщение от GoHa:
во всем виноват Сиротин!
Сообщение от NkTOZZ:
от темы про страпоны и БДМС плавно перешли на тему славянской фолк музыки, как вы это сделали?
1 пользователь оценил это сообщение: Показать
Аватар для -Stigi-
Маньяк
Регистрация:
25.09.2009
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
за перевод
Аватар для Chaosstyle
Chaosstyle
Guest
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Сообщение от Malstream:
Что-нибудь, что вы хотели бы добавить?
Игру начните добавлять, пожалуйста.
Аватар для R a r i t y
Гуру
Регистрация:
10.10.2013
Просветитель
Награжден за: За советы и подсказки по игре Guild Wars 2 GoHa.Ru I Степени
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Прогресс во времени виден невооруженным глазом.
Для сравнения первые планетоиды в системе Стентон и центральные планеты со спутниками в системах Херстон и Аркорп.
Скоро увидим Микротек.
1 пользователь оценил это сообщение: Показать
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Сообщение от R a r i t y:
Скоро увидим Микротек
или не скоро

или не увидим

Аватар для 02nz
02nz
Guest
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Сообщение от R a r i t y:
Скоро увидим Микротек.
декорации - это прекрасно,
а когда увидим смысл происходящего?
Аватар для DrSlon
Скрепный имперец
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Сообщение от 02nz:
декорации - это прекрасно,
а когда увидим смысл происходящего?
Смысл каждый находит для себя сам (с)
Это как абстрактная живопись. Кто то видит нелепую мазню, а особо одаренные дивергенты целую вселенную.

Толерантность это уважение интересов глистов в организме (с)
Патриотизм это иммунитет государства, который разрушают паразиты (с)

Аватар для e2f_renamed_870066_03102023
Ю ноу
Регистрация:
01.12.2011
Танк Медаль "1К лайков" Знаток
Награжден за: За отличные материалы по игре Cyberpunk 2077 и помощь игрокам Destiny 2
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
1 пользователь оценил это сообщение: Показать
Аватар для THUGan
Предводитель
Регистрация:
26.11.2011
Медаль "500 лайков" GoHa.Ru - 10 лет Герой пустоши
Награжден за: За участие в остановке конвоя в спецпроекте по Rage 2 Космос
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Офигеть. Вот это они замарочились.

Сообщение от Winterhearted:
видать мы не в галактике живем а в очке розового пони-единорога!
Человек с обостренным чувством справедливости.
Re: [Перевод] Star Citizen: текстурирование открытого sci-fi мира
Цитата:
Необходимость найти недостающие ноды и исправить испорченные референсы может стать разочаровывающим опытом и стоить много времени проекту.
Ну вы поняли, да?

Добавлено через 5 минут
В 2019 пейнтере добавили смешивание масок, как в дизайнере

Не грусти, черепом врага похрусти
Сообщение от GoHa:
И ДА БУДЕТ СРАЧ! ГОВНЫ БУРЛИТЕ!
Сообщение от GoHa:
во всем виноват Сиротин!
Сообщение от NkTOZZ:
от темы про страпоны и БДМС плавно перешли на тему славянской фолк музыки, как вы это сделали?
Последний раз редактировалось НечтоХрустящее; 15.07.2019 в 09:38. Причина: Добавлено сообщение
1 пользователь оценил это сообщение: Показать
Ваши права в разделе