Декаль что это такое в игре
Пропсы и декали в геймдеве
Полнота погружения пользователя в геймплей во многом зависит от детальной проработки игрового окружения. Чтобы создать иллюзию большого, впечатляющего и реалистичного мира, дизайнеры уровней используют самые разные элементы структурной геометрии, проще говоря “пропсы” и “декали”. Создание деталей игрового окружения — не менее важная задача, чем дизайн уровней, написание сценария, звука и кода.
В этой статье преподаватели Высшей школы бизнес-информатики НИУ ВШЭ, профессиональные левел-дизайнеры и авторы образовательных программ “Менеджмент игровых проектов” и “Основы создания игр”, поделятся опытом создания атмосферных уровней и расскажут, как правильно расставлять акценты на локации.
Какие бывают пропсы
Пропсы в геймдеве — это своего рода бутафория, позволяющая игроку ощутить атмосферу и оценить обстановку в окружающем мире. Все пропсы подразделяются на три основных типа:
Как использовать пропсы и декали
На «необработанную» структурную геометрию накладываются пропсы различных габаритов. Чтобы у игрока не возникло ощущения “обмана”, при ближайшем рассмотрении объектов должно четко читаться количество полигонов, текстура, комплексность и качество материалов. Это особенно важно для объектов на первом плане.
Не меньшую роль в создании реалистичной картинки играют декали. Эти специальные изображения накладываются на поверхности, создавая на них различные эффекты. Например, можно поместить на стену декаль с потеками, трещинами и граффити. Добавить к дому изображения окон, вентиляционных люков и рекламных объявлений. И, наконец, просто создать реалистичное дорожное полотно с разметкой, лужами, решетками ливневок и мусором на обочине.
Как создаются детали игрового окружения
Как правило, игровые объекты (особенно крупные) компонуются из нескольких готовых моделей. Если на high-poly моделях должны присутствовать более мелкие детали (узоры, сколы, трещины), используется технология скульптинга, основанная на принципах классической лепки.
Важно учитывать правильность отрисовки света и его взаимодействия с различными материалами. При проработке освещенности и текстуры пропсов используются различные специальные текстурные карты (кривизны и шероховатости, дополнительные эффекты и фото-текстуры). Работа со светом позволяет добиться максимально реалистичного качества графики.
Где научиться создавать реалистичное окружение в играх
Узнать подробнее, как создаются детали игрового окружения можно, пройдя обучение по программам “Основы создания игр” и “Менеджмент игровых проектов” в ВШБИ НИУ ВШЭ. Вы освоите навыки проработки реалистичного игрового мира, который необходим для создания уникальной атмосферы в игре. А помогут вам в этом профессиональные разработчики, за плечами который не один успешный продукт!
Еще больше информации вы найдете на канале МИП ВШБИ на YouTube. Подписывайтесь и не пропускайте свежие записи с открытых мероприятий ВШБИ НИУ ВШЭ.
Decal (декаль)
Декали (decal с англ.: бирка, ярлык, клеймо) это особый вид геометрии, который позволяет повышать детализированность игровых окружений без надобности запекать мелкие детали в текстуры, что может быть просто невозможным в ситуациях, когда множество поверхностей используют одинаковый материал. Обычно декали используют для отрисовки дырок от пуль, пятен крови или гари от взрывов, но в некоторых случаях использование уходит за пределы таких вещей. К тому же декали можно создавать не только в динамике, но и во время изготовления уровня.
Можно представить себе игровой уровень с большим количеством зданий. С помощью декалей стены этих зданий можно уникально «украсить» оборванными плакатами, трещинами или пятнами краски, здесь фантазия не ограничена. При наложении можно применять различные методы блендинга для достижения подходящего результата.
Для улучшения восприятия таких деталей можно использовать стандартные техники освещения, такие как bump mapping, parallax mapping и другие. Параллакс особенно хорошо выглядит, так как придаёт намного больше объёма и позволяет таким вещам, как дыркам от пуль «углубляться» в геометрию.
Создавать декали в динамике можно разными способами. Существует упрощённое решение, дающее во многих ситуациях неверные решения, так и более точное, требующее от двух и более треугольников под декаль.
Одно из простых решений, которое можно смело применять для создания «дырок» от выстрелов, заключается в поиске точки пересечения луча с треугольниками игрового уровня (тут нужны различные оптимизации, для того чтобы не проверять каждый треугольник и расчёт места пересечения занимал мало времени). Затем мы берём найденную точку, и используя бинормаль и тангент в этой точке создаём два треугольника, образующих квад. Если информации о бинормали и тангенте нету, можно просто взять два случайных перпендикулярных единичных вектора, расположенных в плоскости поверхности и строить квад по ним. Нормаль поверхности следует использовать как нормали в точках декаля для правильного освещения. Для избежания проблем с z-fighting’ом, который возникает на плоскостях расположенных близко друг к другу следует использовать Polygon Offset/Depth Bias. Текстурные координаты тоже можно находить разными способами, например, для дырок от выстрелов можно использовать координаты углов квада. А вот, например, для пятен крови, которые должны «размазываться» по направлению движения можно рассчитать текстурные координаты методами eye linear\object linear.
Но это простое решение может плохо работать для тех же пятен крови, имеющих большую площадь поверхности. Для таких декалей нужно рассчитывать не центральную точку пересечения, а находить треугольники попадающие в зону покрытия, и создавать множество геометрии на всех этих поверхностях.
Существует также метод при котором детали отрисовываются в текстуру, но это имеет ряд проблем, например требуется уникальность изменяемой текстуры (она должна использоваться только на одном объекте, иначе добавленные детали появятся на всех объектах, использующих изменяемую текстуру), а также страдает скорость из-за постоянных обновлений текстуры (если генерируются мип-уровни, то это будет занимать значительное количество времени).
Текстуры, используемые для декалей лучше хранить в одном текстурном атласе. В таком случае для огромного количества декалей на уровне можно будет использовать один вершинный и индексный буфера, и рисовать всю их геометрию за один вызов функции DrawIndexedPrimitive\glDrawElements.
Декаль что это такое в игре
Это вторая часть нашего гайда. Первая, где собраны основные настройки вроде разрешения, качества текстур и теней, вы можете прочитать по ссылке.
Качество освещения (Lightning Quality)
То, насколько правдоподобно симулируется освещение в игре. Если это единственный подобный параметр в игре, то именно в эту настройку заложили уйму других, будь-то и объемный свет, и рассеивание лучей, и отражения, а иногда даже глобальное затенение. Освещение — это, пожалуй, вообще едва ли не самое основное из всего, что влияет на красоту картинки: оно делает ее объемной, натуралистичной, правдоподобной. Но и ресурсов все это дело «кушает» тоже немало. Именно поэтому, например, Nvidia так расхваливает свои новые RTX-видеокарты — они изначально разработаны под Ray Tracing — метод рендеринга, предполагающий правдоподобную симуляцию каждого луча.
Влияние на производительность
Зависит от движка, но почти во всех современных играх — очень сильное. Симулировать свет — это очень непросто, так что врубайте «ультра» только если у вас действительно мощная видеокарта.
Качество эффектов (Effects Quality)
Влияние на производительность
Тоже зависит от игры, чаще всего не особенно высокое. Но чем выше этот параметр, тем сильнее будет нагружаться ваша видеокарта в загруженных сценах, например, при масштабных перестрелках. Так что если игра начинает «подлагивать» в особо динамичные моменты, можно попробовать поиграться с этим ползунком, прежде чем снижать, например.
…Качество шейдеров (Shader Quality)
Шейдеры — это специальные программы для вашей видеокарты, исполняемые ее процессором. Грубо говоря, это такие «инструкции» от игры вашей GPU, по которым та понимает, как именно нужно отрисовывать тот или иной эффект. Чаще всего шейдеры используются для улучшения освещения, затенения, создания эффектов преломления лучей в воде (помните, как взрывала мозг та самая «шейдерная водичка из Half-Life 2: Lost Coast?), отражений, рассеиваний и так далее. Так что да, эта опция работает в тандеме с другими параметрами: качеством освещения и качеством теней. Существует три вида шейдеров: вершинные, геометрические и пиксельные, но игры, где можно отрегулировать качество каждого из них отдельно, встречаются невероятно редко.
Соответственно, чем выше качество шейдеров, тем лучше описанные выше эффекты, красивее тени и свет, реалистичнее геометрия — и тем сильнее нагрузка на видеокарту. Именно на видеокарту — потому что шейдеры считаются только GPU.
Влияние на производительность
Чаще всего — высокое. Например, в GTA V это один из самых «тяжелых» параметров в игре — снизив качество шейдеров с «Ультра» на средниее значение, вы получите прирост больше, чем в 15 FPS. Но бывает и так, что снижение этого параметра почти ничего не дает, как, например, в Mass Effect Anromeda.
Декали в Counter-Strike 1.6: как их найти, установить и использовать
В Counter-Strike 1.6 есть функция, позволяющая рисовать на стенах декали (граффити), нажав для этого забинченную по умолчанию клавишу.
Далее я расскажу, что такое декаль, где ее можно найти и как установить на сервер с игрой.
Что такое декали
Декалями называются граффити (официально – логотипы), которые можно наносить на любую поверхность в игре. Обычно для этого предстоит вплотную подойти к стене, двери или окну и нажать клавишу T, после чего воспроизведется соответствующий звук нанесения граффити. Декали по умолчанию видят все другие игроки, если они не отключены у них через конфиг.
Изначально логотип связан с Half-Life, что, конечно, устраивает далеко не всех пользователей. Присутствующие в настройках другие варианты тоже не всегда подходят. Вместо них можно найти логотип в интернете или даже нарисовать его самому, после чего заменить файл в корневой папке и придать себе индивидуальности при игре на сервере.
Особенности использования логотипов
Вкратце разберем особенности нанесения граффити в игре, чтобы в будущем не возникло проблем и не пришлось гуглить, почему что-то не работает.
Все цветные логотипы распространяются в виде файла tempdecal.wad и заменяются в папке с игрой. Если вы скачиваете или создаете цветной логотип, выбирать его цвет в настройках не нужно.
Добавленный цветной логотип может не отображаться в меню с настройками, что связано с параметрами миниатюр, но при этом на поверхности он наносится нормально.
Вы не можете использовать несколько разноцветных граффити одновременно (если речь не идет о плагине на сервере). Для внесения изменений файл всегда придется заменять.
На некоторых серверах отключена функция нанесения логотипа, поэтому не удивляйтесь, что где-то нажатие по клавише T ничего не даст.
Настройки файла tempdecal.wad могут периодически сбрасываться. Если это происходит, установите для него атрибут «Только чтение» в свойствах.
Вы, наверное, заметили, что выше речь шла преимущественно о цветных граффити, но есть еще и черно-белые (к ним относится другое правило установки). Кроме того, в CS 1.6 доступна настройка цвета при нанесении декали. Ниже я подробно расскажу о разнице в инсталляции логотипов и о том, где их найти.
Как найти логотип для КС 1.6
Если у вас появилось желание изменить стандартный логотип в Контре, можно пойти двумя путями: скачать готовый пак/одно граффити в интернете либо создать его самому, используя специализированные графические редакторы.
Способ 1: Поиск декалей в сети
Самый простой вариант – найти граффити в интернете. Есть множество проверенных сайтов, занимающихся распространением целых паков с логотипами. На них вы можете найти как черно-белые варианты для быстрой настройки в самой игре, так и цветные, если речь идет о каком-то сложном рисунке.
После получения архива с файлами останется только установить их, о чем пойдет речь в следующем разделе статьи. Главное при использовании этого метода – обращать внимание на источник и не скачивать картинки с первого попавшегося веб-ресурса. Это позволит обезопасить ПК от заражения вирусами и нарушения целостности файлов игры.
Способ 2: Самостоятельное создание логотипа
Более сложный метод – самостоятельное создание логотипа, для чего понадобится использовать специальное ПО. Я не буду давать детальную инструкцию того, как это делается, а опишу лишь общие принципы и правила, чтобы упростить вам задачу.
Для создания цветного логотипа понадобится программа, поддерживающая формат WAD для цветных граффити и BMP – для черно-белых.
При создании черно-белого граффити обязательно проверяйте, чтобы изображение было вообще без цвета.
Оптимальный размер логотипа – 64 на 64 пикселя.
Для цветного граффити используйте название tempdecal.wad и при установке замените оригинальный файл.
Что касается выбора подходящего софта, то здесь вам пригодится поисковик, чтобы найти именно тот графический редактор, который удовлетворит потребности. Я бы порекомендовал присмотреться ко встроенному в Game Maker редактору, поскольку он максимально подходит для игр и поддерживает формат WAD. Называется этот редактор Wally. В нем можно без проблем создать бесцветное изображение и сохранить его как файл.
Установка декали в игру
В установке пользовательского граффити нет ничего сложного. Если речь идет о цветном логотипе, его необходимо заменить при копировании, удалив тем самым оригинальный файл под названием tempdecal.wad, который находится в корне папки с игрой.
Все черно-белые логотипы вы можете сразу поместить в расположение steam\steamapps\common\Half-Life\cstrike\logos и убедиться, что все изображения корректно отображаются в настройках игры, для них можно настроить цвет и приступить к рисованию на сервере.
Установка декалей на сервер
Если вы являетесь обладателем собственного сервера и хотите добавить разные логотипы, чтобы пользователи выбирали их через текстовое меню, используйте для этого плагин под названием Graffiti Plugin. При этом на сервер обязательно должен быть добавлен AmxModX. При скачивании архива обязательно ознакомьтесь с тем, куда необходимо помещать файлы плагина, чтобы он работал корректно. После установки игроки смогут ввести в чате команду /graffiti и посмотреть список доступных граффити. После выбора одного из них рисование осуществляется точно так же, как и в стандартном варианте – нажатием по клавише T.
Нет ничего сложного в том, чтобы найти декали и установить их в игру или даже создать граффити самостоятельно, прибегнув к графическим редакторам. Такие визуальные элементы – отличное средство индивидуализации на сервере или просто повод чаще рисовать граффити.
Декали
Эта страница переведена не полностью.
This page has not been fully translated.
Также, убедитесь в том что статья пытается соответствовать статье об альтернативных языках.
Создать декаль не сложно: это обычный материал, у которого есть альфа-канал и который использует DecalModulate шейдер.
До того как читать дальше эту статью, рекомендуем вам ознакомится со статьей про создание материалов.
Contents
Обычные декали
Параметры материала
Настройки материала для декали выглядят примерно так:
Декали на моделях
Hammer
Это может быть достигнуто и на сервере с помощью функции engine->StaticDecal :
Индексы декалей могут быть получены вызовом decalsystem->GetDecalIndexForName или UTIL_PrecacheDecal() :
Использование модуляции
Для декалей, предназначенных для имитации выбоин или вмятин на поверхности, шейдер DecalModulate (mod2x) оказывается крайне подходящим: он осветляет целевые пиксели для каждого исходного пикселя, который имеет цвет светлее серого (>128), и затеняет целевые пиксели для каждого исходного пикселя, который имеет цвет темнее серого. Этот эффект может быть использован для придания ощущения глубины, при применении к поверхности.
Для начала создайте исходное изображение, цветовой канал которого будет использован для модуляции исходных значений. Еще раз: светлые значения будут осветлять пиксели, поверх которых они нарисованы, в то время как темные значения будут затемнять целевые пиксели. Значения с серым цветом будут рассматриваться как полупрозрачные.
Далее, создайте альфа-канал, который будет определять маску для декали. Так как модуляция не может иметь точное среднее значение корректно, маска обязательна для предотвращение появления границы (обводки) вокруг декали.
To do: Try converting source images with background colors RGB 127 127 127 with vtex found in other games other than L4D2 and see if it results in a background with RGB 124 126 124. Also, does RGB 124 126 124 apply to other versions of the Source engine as alpha for DXT1 compression?