Что такое декали в графике

Decal (декаль)

Декали (decal с англ.: бирка, ярлык, клеймо) это особый вид геометрии, который позволяет повышать детализированность игровых окружений без надобности запекать мелкие детали в текстуры, что может быть просто невозможным в ситуациях, когда множество поверхностей используют одинаковый материал. Обычно декали используют для отрисовки дырок от пуль, пятен крови или гари от взрывов, но в некоторых случаях использование уходит за пределы таких вещей. К тому же декали можно создавать не только в динамике, но и во время изготовления уровня.
Можно представить себе игровой уровень с большим количеством зданий. С помощью декалей стены этих зданий можно уникально «украсить» оборванными плакатами, трещинами или пятнами краски, здесь фантазия не ограничена. При наложении можно применять различные методы блендинга для достижения подходящего результата.
Для улучшения восприятия таких деталей можно использовать стандартные техники освещения, такие как bump mapping, parallax mapping и другие. Параллакс особенно хорошо выглядит, так как придаёт намного больше объёма и позволяет таким вещам, как дыркам от пуль «углубляться» в геометрию.

Создавать декали в динамике можно разными способами. Существует упрощённое решение, дающее во многих ситуациях неверные решения, так и более точное, требующее от двух и более треугольников под декаль.
Одно из простых решений, которое можно смело применять для создания «дырок» от выстрелов, заключается в поиске точки пересечения луча с треугольниками игрового уровня (тут нужны различные оптимизации, для того чтобы не проверять каждый треугольник и расчёт места пересечения занимал мало времени). Затем мы берём найденную точку, и используя бинормаль и тангент в этой точке создаём два треугольника, образующих квад. Если информации о бинормали и тангенте нету, можно просто взять два случайных перпендикулярных единичных вектора, расположенных в плоскости поверхности и строить квад по ним. Нормаль поверхности следует использовать как нормали в точках декаля для правильного освещения. Для избежания проблем с z-fighting’ом, который возникает на плоскостях расположенных близко друг к другу следует использовать Polygon Offset/Depth Bias. Текстурные координаты тоже можно находить разными способами, например, для дырок от выстрелов можно использовать координаты углов квада. А вот, например, для пятен крови, которые должны «размазываться» по направлению движения можно рассчитать текстурные координаты методами eye linear\object linear.
Но это простое решение может плохо работать для тех же пятен крови, имеющих большую площадь поверхности. Для таких декалей нужно рассчитывать не центральную точку пересечения, а находить треугольники попадающие в зону покрытия, и создавать множество геометрии на всех этих поверхностях.
Существует также метод при котором детали отрисовываются в текстуру, но это имеет ряд проблем, например требуется уникальность изменяемой текстуры (она должна использоваться только на одном объекте, иначе добавленные детали появятся на всех объектах, использующих изменяемую текстуру), а также страдает скорость из-за постоянных обновлений текстуры (если генерируются мип-уровни, то это будет занимать значительное количество времени).

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

Источник

CGI blog

Всё о CGI (Computer-generated imagery)

Декали в трёхмерной графике. Что это и как с этим работать?

Декаль (en decal) это «переводная картинка», которая накладывается на поверхность. В трёхмерной графике значение декалей очень велико. Без декалей не обходится не одна серьёзная большая композиция. Декаль представляет собой изображение с прозрачным фоном (альфа-каналом). Прозрачные изображения очень помогают в создании композиций.

Создаётся поверхность (плэйн) и на неё накладывается текстура с прозрачным изображением. Далее этот плэйн накладывается поверх других. Таким способом создаются различные рисунки на стенах, артефакты, трещины и т.д. Область применения декалей весьма обширна. В видео играх кровь и следы от выстрелов на стенах — это и есть декали. Т.е. декали отличаются от текстур тем, что они налепляются поверх. Расстояние между плейном с декалью и самой поверхностью, на которую он налепляется, крайне мало. Поэтому всё выглядит реалистично. Увидеть налеплённую на поверхность деталь можно если вид камеры разрезает эту поверхность в месте, где наклеена декаль. Можно увидеть, что в этом месте поверхность стены как бы двойная. Это потому, что на одну поверхность наклеивается плейн с декалью.

Как уже стало понятно, декали используются для того, чтобы сэкономить на геометрии. А делаются в виде отдельных плейнов они потому, что это гораздо легче, чем смешивать имеющуюся текстуру объекта с текстурой декали. Вообще тема смешения текстур до сих пор остаётся проблемной. Поэтому исторически так повелось, что проще на имеющуюся поверхность наклеить ещё одну с прозрачной текстурой.

Если вы серьёзно занимаетесь трёхмерной графикой, то вам придётся сталкиваться декалями. Что нужно знать при работе с декалями? Ничего особенного. Следите за размером, правильной стороной наклеивания и отключайте тень у плейнов с декалями.

На декали крайне желательно (чаще даже обязательно) устанавливать отключение отбрасывания тени, чтобы:

В играх всякие, точнее вообще все, декали (повреждения, следы от выстрелов, краска, граффити) также на стены наклеиваются на плейны поверх полигонов поверхностей.

Вот в принципе и всё, касательно декалей. Декали вообще лёгкая тема.

Источник

Пропсы и декали в геймдеве

Что такое декали в графике. Смотреть фото Что такое декали в графике. Смотреть картинку Что такое декали в графике. Картинка про Что такое декали в графике. Фото Что такое декали в графике

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

В этой статье преподаватели Высшей школы бизнес-информатики НИУ ВШЭ, профессиональные левел-дизайнеры и авторы образовательных программ “Менеджмент игровых проектов” и “Основы создания игр”, поделятся опытом создания атмосферных уровней и расскажут, как правильно расставлять акценты на локации.

Что такое декали в графике. Смотреть фото Что такое декали в графике. Смотреть картинку Что такое декали в графике. Картинка про Что такое декали в графике. Фото Что такое декали в графике

Какие бывают пропсы

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

Как использовать пропсы и декали

На «необработанную» структурную геометрию накладываются пропсы различных габаритов. Чтобы у игрока не возникло ощущения “обмана”, при ближайшем рассмотрении объектов должно четко читаться количество полигонов, текстура, комплексность и качество материалов. Это особенно важно для объектов на первом плане.

Что такое декали в графике. Смотреть фото Что такое декали в графике. Смотреть картинку Что такое декали в графике. Картинка про Что такое декали в графике. Фото Что такое декали в графике

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

Как создаются детали игрового окружения

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

Что такое декали в графике. Смотреть фото Что такое декали в графике. Смотреть картинку Что такое декали в графике. Картинка про Что такое декали в графике. Фото Что такое декали в графике

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

Где научиться создавать реалистичное окружение в играх

Узнать подробнее, как создаются детали игрового окружения можно, пройдя обучение по программам “Основы создания игр” и “Менеджмент игровых проектов” в ВШБИ НИУ ВШЭ. Вы освоите навыки проработки реалистичного игрового мира, который необходим для создания уникальной атмосферы в игре. А помогут вам в этом профессиональные разработчики, за плечами который не один успешный продукт!

Что такое декали в графике. Смотреть фото Что такое декали в графике. Смотреть картинку Что такое декали в графике. Картинка про Что такое декали в графике. Фото Что такое декали в графике

Еще больше информации вы найдете на канале МИП ВШБИ на YouTube. Подписывайтесь и не пропускайте свежие записи с открытых мероприятий ВШБИ НИУ ВШЭ.

Источник

Оптимизация текстур: оверлапы, реюз, декали

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

Это значит, что если ты нарисуешь какую-то деталь на одном из плейнов — она автоматически появится и на остальных. Поэтому оверлапы нужно использовать аккуратно.

Способы создания оверлапов

Разберем два основных способа: один из них удобен при работе с большими массивами деталей, а второй подойдет для создания точечных оверлапов.

Способ 1

Когда ты закончил оптимизацию Low poly модели и приступаешь к работе с UV — удали все элементы и полигоны, которые планируешь оверлапить, и оставь только по одному референсному элементу.

Например: у тебя есть 10 одинаковых винтов. Тебе нужно удалить 9 из них, развернуть один, который остался, а потом сделать 9 копий развернутого винтика.

Дальше можешь работать с UV как обычно. Единственное, что нужно учесть в таком случае, — когда UV будет готова, тебе предстоит раскопировать обратно все удаленные элементы.

Используя этот подход, ты можешь создавать оверлапы для множества разных элементов, и тебе не придется выискивать нужные шеллы в UV-эдиторе. Удобно, если модель простая и нет проблем с расположением копий всех элементов на последнем этапе.

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

Способ №2

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

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

Преимущества оверлапов на примере ассета

Возьмем ящик для патронов и сделаем для него две развертки: одна без использования оверлапов, а вторая — с ними. Texel density будем держать в районе 512px/m.

В развертке с реюзом нужный тексель удалось сделать при разрешении текстуры 2048х2048. Для текселя такой же плотности без оверлапов понадобится текстура 4096х4096.

Карта Albedo на примере с реюзом весит на 11.2 Мб меньше. На всем текстурном сете можно будет сэкономить

30 мегабайт. А теперь представь экономию в рамках проекта, когда таких сетов сотни. Десятки гигабайт.

Вывод: реюз помогает эффективнее использовать ресурсы проекта.

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

Декали

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

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

Так как декали используют свою отдельную текстуру, они никак не привязаны к объекту и их можно использовать для нанесения надписей поверх реюзнутых плоскостей.

Ошибки при использовании оверлапов

Оверлапы нужно использовать осторожно, ведь если реюзаемые плоскости находятся рядом — может возникнуть «эффект бабочки».

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

Чуть больше о проблемах с оверлапами можно почитать в нашей статье о проверке дополнительных карт.

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

Источник

Что такое декали в графике

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

Качество освещения (Lightning Quality)

То, насколько правдоподобно симулируется освещение в игре. Если это единственный подобный параметр в игре, то именно в эту настройку заложили уйму других, будь-то и объемный свет, и рассеивание лучей, и отражения, а иногда даже глобальное затенение. Освещение — это, пожалуй, вообще едва ли не самое основное из всего, что влияет на красоту картинки: оно делает ее объемной, натуралистичной, правдоподобной. Но и ресурсов все это дело «кушает» тоже немало. Именно поэтому, например, Nvidia так расхваливает свои новые RTX-видеокарты — они изначально разработаны под Ray Tracing — метод рендеринга, предполагающий правдоподобную симуляцию каждого луча.

Влияние на производительность

Зависит от движка, но почти во всех современных играх — очень сильное. Симулировать свет — это очень непросто, так что врубайте «ультра» только если у вас действительно мощная видеокарта.

Что такое декали в графике. Смотреть фото Что такое декали в графике. Смотреть картинку Что такое декали в графике. Картинка про Что такое декали в графике. Фото Что такое декали в графике

Качество эффектов (Effects Quality)

Влияние на производительность

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

…Качество шейдеров (Shader Quality)

Шейдеры — это специальные программы для вашей видеокарты, исполняемые ее процессором. Грубо говоря, это такие «инструкции» от игры вашей GPU, по которым та понимает, как именно нужно отрисовывать тот или иной эффект. Чаще всего шейдеры используются для улучшения освещения, затенения, создания эффектов преломления лучей в воде (помните, как взрывала мозг та самая «шейдерная водичка из Half-Life 2: Lost Coast?), отражений, рассеиваний и так далее. Так что да, эта опция работает в тандеме с другими параметрами: качеством освещения и качеством теней. Существует три вида шейдеров: вершинные, геометрические и пиксельные, но игры, где можно отрегулировать качество каждого из них отдельно, встречаются невероятно редко.

Соответственно, чем выше качество шейдеров, тем лучше описанные выше эффекты, красивее тени и свет, реалистичнее геометрия — и тем сильнее нагрузка на видеокарту. Именно на видеокарту — потому что шейдеры считаются только GPU.

Влияние на производительность

Чаще всего — высокое. Например, в GTA V это один из самых «тяжелых» параметров в игре — снизив качество шейдеров с «Ультра» на средниее значение, вы получите прирост больше, чем в 15 FPS. Но бывает и так, что снижение этого параметра почти ничего не дает, как, например, в Mass Effect Anromeda.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *