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

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

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

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

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

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

Эта страница переведена не полностью.
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?
snorska
snorska
Но тогда откуда деколь?
Если посмотреть в недавно выпущенный “Словарь галлицизмов русского языка”, то мы найдем там вот такое:
ДЕКОЛЬ и, ж. décoller. Деколь. Перевод рисунков по типу детских переводных картинок. Тов. сл. 1956. Сокращенное название декалькомании. Беркман А. С. Декорировка фарфора. М., 1949 с. 42. Многокрасочные переводные изображения, используемые для маркировки и художественного оформления промышленных изделий; способ такой маркировки и декорирования. Кобальтовая деколь. Декорирование посуды деколью. БАС-2. Переводчик деколи. Сл. зан. 1988.
Ответ на все эти вопросы может быть, кажется, только один: деколь родилась в СССР в середине-конце 1940-х от американской декали и независимо от «декалькомании» где-то в недрах полиграфической промышленности. И появление “о” объяснить можно так:
Вариант первый: слово из английского не этимологизировалось, а знаний французского у советских специалистов хватило только на то, чтобы связать decal с французским décoller.
Вариант второй: слово было объяснено нашим специалистам неким не слишком сведущим французом, который считал, что decal, потерявшая с, происходит не от décalcuer, а от décoller и, возможно, даже соответственно его произносил.
Смотрим Ларусс:
décoller
Quitter le sol, la surface, en parlant d’un avion, d’une fusée, de quelqu’un, etc. : Skieur qui décolle d’un tremplin.
S’élever socialement, intellectuellement ou sortir de la stagnation : La production des vidéodisques a décollé.
Ne plus pouvoir suivre : Cet élève paresseux a décollé du reste de la classe.
Populaire. Maigrir beaucoup ; dépérir.
Sortir du sous-développement.
En parlant d’un coureur, se faire distancer par ses rivaux ou ne plus pouvoir suivre son entraîneur.
Decal cap что это
i dont know why tho, but some people says that the game cant get beyond 60 fps because of the engine limitation. I think i’ve saw a video where the world and character got glitched because of high fps. dont know how tho
Fallout 3, Fallout NV, Fallout 4, Skyrim, Oblivion and I think Morrowind all have a 60 FPS cap and if you go around that cap, then you will get really bad stuff with the game engine. I know when I uncapped Fallout 4 to, I wasn’t able to exit dialogue. so like weird stuff like that.
But if you want to try it. You need to disable V-sync and then go into the Fallout.ini and FalloutPrefs.ini and turn ipresentinterval=1 and change it to ipresentinterval=0
Don’t recommend it though. If you want to make the game more smooth though, you can try out the stutter remover mod (but there are certain values in that ini that need to be changed or it will cause crashing on Windows 10/modern hardware). Also if you have a G-sync monitor, you can always just set your refresh rate beyond 60 (assuming its a 60+ hz monitor) and keep Fallout locked at 60 FPS with something like RivaTurner while disabling v-sync. That’s what I do. 144 refresh rate and 60 fps lock. No screen tearing because g-sync. Game = buttery smooth.
Fallout 3, Fallout NV, Fallout 4, Skyrim, Oblivion and I think Morrowind all have a 60 FPS cap and if you go around that cap, then you will get really bad stuff with the game engine. I know when I uncapped Fallout 4 to, I wasn’t able to exit dialogue. so like weird stuff like that.
But if you want to try it. You need to disable V-sync and then go into the Fallout.ini and FalloutPrefs.ini and turn ipresentinterval=1 and change it to ipresentinterval=0
Don’t recommend it though. If you want to make the game more smooth though, you can try out the stutter remover mod (but there are certain values in that ini that need to be changed or it will cause crashing on Windows 10/modern hardware). Also if you have a G-sync monitor, you can always just set your refresh rate beyond 60 (assuming its a 60+ hz monitor) and keep Fallout locked at 60 FPS with something like RivaTurner while disabling v-sync. That’s what I do. 144 refresh rate and 60 fps lock. No screen tearing because g-sync. Game = buttery smooth.







