При создании любого мультимедиа контента, будь то компьютерная игра, приложение дополненной или виртуальной реальности, видеоролик, либо что-то ещё, очень важно сразу определиться не только с целевой аудиторией и платформами, но и с визуальной частью.
Причем если с первыми двумя пунктами вполне можно разобраться самостоятельно, то в вопросе визуальной части очень часто необходимо узнать мнение людей , разбирающихся в данном вопросе.
Мы же постараемся данной статьей внести немного ясности в том, как понять на что можно рассчитывать в разных ситуациях.
Визуальная часть или графика в приложении легко описывается фразами "реалистичная", "мультяшная", "вот как в том фильме/ролике", но на самом деле всё это очень размытые понятия.
Ведь визуал строится из очень многих элементов:
- детализация 3d моделей
- детализация фонов, если они есть
- визуальные эффекты(взрывы, искры, лучи, порталы, огонь, вода и прочая услада для глаз)
- текстуры
- пост-обработка
В данной статье мы коснемся такого пункта, как текстуры и более подробно разберем, когда и какие варианты лучше использовать. Чтобы хорошо разобраться в вопросе, предлагаю начать с верхушки нашей пирамиды, постепенно углубляясь в детали.
Перед началом стоит сделать одно уточнение. Как правило для того, чтобы “раскрасить” модель используются материалы, которые в свою очередь содержат в себе одну или несколько текстур, в зависимости от выбранного варианта текстурирования.
Итак если очень сильно округлить все значения, то бывают реалистичные текстуры и мультяшные(они же стилизованные). Но внутри этих двух видов есть много подвидов.
Реалистичные текстуры.
Для того, чтобы сделать модель фотореалистичной в настоящее время используется метод с названием PBR (Physically-Based Rendering) или физически корректный рендеринг.
Данная технология имеет два основных разделения в плане комплекта текстур, которые практически никак не влияют на финальную картинку и больше зависят от предпочтений студии.
При этом данные комплекты по факту отличаются только одной картой - specular/metallic и немного отличными техниками создания карт цвета. Потому как glossiness и roughness являются инвертированными вариантами друг друга. Но это всё технические моменты. Гораздо нагляднее будет увидеть всё на примере.Как легко можно понять, плюсы данной технологии - реалистичный вид финальной модели, с учетом отражений и физических свойств материалов, из которых состоит модель.При этом есть минусы, которые в некоторых случаях могут быть очень существенными:
- Размер материала (из-за учета комплекта текстур)
- Высокая нагрузка на устройство для рендера картинки в режиме реального времени.
Если же очень хочется реализма на мобильном устройстве, но при этом нужно, чтобы приложение хорошо работало и на слабых аппаратах, можно прибегать к хитростям. Например объединить карту цвета с картой глянцевости, запечь тени. Но это технические моменты.. В целом такие технологии использовались лет 8-10 назад для моделей в компьютерных играх.Вам лишь нужно знать, что стоит попросить о текстурировании с помощью традиционного метода текстурирования.
Мультяшные (стилизованные) текстуры.
Данный вид текстур используется повсеместно, от больших анимационных мультфильмов, до мобильных приложений.
При этом наибольшей популярностью они пользуются у мобильных разработчиков и инди-студий, которые ограничены в бюджете и времени.
Если говорить о различных вариантах данных текстур, то тут вопрос скорее в стилистике.
Это основные варианты текстур, которые чаще всего встречаются в проектах. При этом есть и другие, которые образуются путем смешивания уже перечисленных методов, либо при помощи добавления шейдеров - если описать кратко, то это программируемый код, который влияет на отображение текстур. В этом плане стоит упомянуть о Cell шейдинг варианте.Плюсы мультяшных текстур:
- Небольшой размер и количество карт
- Большой выбор стилей, не ограниченных физическими законами
- Стильная картинка
Ограничения и оптимизация
В качестве заключения стоит кратко коснуться вопроса оптимизации. В настоящее время позволить роскошь не сильно думать об оптимизации текстур могут себе лишь те, кто производит заранее отрендеренные материалы. К таким относятся рекламные видео, фильмы, мультфильмы и прочее, что доступно только для просмотра.
В случае создания компьютерных игр, мобильных приложений, игр и программ для виртуальной и дополненной реальности происходит рендер картинки в реальном времени, а потому размер и количество текстур играют очень важную роль в хорошей работоспособности приложения. И если в случае с компьютерными играми всё сводится лишь к тому, чтобы оптимизировать развертку текстур, то для мобильных приложений, особенно в случае с большими объектами необходимо:
- создавать атласы всех текстур, в которые закладывается вся локация.
- соединять между собой различные текстуры, чтобы добиться хорошо работающего приложения;
- проводить работы по конечной оптимизации текстур и запечке освещения.
В этом плане даже можно сказать, что для качественной локации на мобильном устройстве необходимо куда больше времени и сил, чем для той же локации но на компьютере. При этом, как бы не хотелось, но в плане графики мобильный вариант всё равно будет уступать тому, что можно получить на ПК.
Однако текстуры - не единственное, что влияет на производительность. В следующих статьях мы затронем и другие аспекты графики в приложениях.