Что такое шейдинг в играх

Shading (Модели Освещения)

Исторически же в 3D-графике под шейдингом (закрашиванием) подразумевались способы закрашивания полигонов.
Существует два основных типа закрашивания объектов:
1. Плоское закрашивание

2. Плавное закрашивание
• Закрашивание по Гуро
• Закрашивание по Фонгу

1.Плоское закрашивание (Flat Shading)

При плоском закрашивании полигоны как бы выделяются и это связано с вычислением одного и того же цвета для каждого пикселя на грани. Хотя, например, вы можете задать вершине отдельный цвет, как атрибут. Как же это повлияет на закраску этой вершины? Оказывается, при плоском закрашивании всегда используется только первый цвет грани, и по этому при применении закраски полигон будет казаться сплошным. Из-за этого можно команду FindColor вынести за начало цикла. При этом влиянии диффузионная и зеркальная освещенность имеют слабый эффект. Такой метод закрашивания в играх не применяется.

В Direct3d9 плоское закрашивание устанавливается с помощью команды:

В OpenGL плоское закрашивание устанавливается так:

2. Плавное закрашивание

При плавном закрашивании происходит сглаживание ребер между гранями. Обычно вычисляется цвет в большем числе точек каждой грани. Существует два вида плавного закрашивания: закраска Гуро и закраска Фонга.

1. Закраска Гуро (Gourand Shading)

При этом методе для каждого пикселя вычисляется отдельное значение цвета c. Для получения цвета пикселя x:

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

В Direct3d9 закрашивание Гуро устанавливается с помощью команды:

2. Закраска Фонга (Phong Shading)

Большей реалистичности можно достигнуть с помощью этого метода. Он заключается в аппроксимации нормали к поверхности для каждого пикселя. При работе с закрашиванием Фонга, мы находим нормаль для каждой точки на грани объекта, и для нахождения цвета в ней применяем модель закраски. Вычисление нормали для каждой точки грани вычисляется с помощью интерполяции между нормалями полигона. Для получения цвета точки x на грани:

В Direct3d9 закрашивание Фонга устанавливается с помощью команды:

Что такое Shading (Модели Освещения)?

Источник

Коэффициент шейдинга в Metro Exodus

Metro Exodus – компьютерная игра, шутер от первого лица, события которого разворачиваются в постапокалиптической Российской Федерации и Республике Казахстан. Разработчиком проекта является украинская компания 4A Games, в России игра вышла в феврале 2019 года под названием “Метро: Исход”. Как и другие современные медиапродукты имеет немало графических параметров. Пользователь может управлять ими для оптимизации игрового процесса в соответствии с возможностями своего компьютера. Одной из таких настроек является коэффициент шейдинга. В статье расскажем на что он влияет и как его увеличить.

Что такое коэффициент шейдинга в играх

Шейдер – программа для обработки изображений в продуктах с трехмерной графикой, в т.ч. в играх. Запускается непосредственно процессором видеокарты. Позволяет накладывать текстуры на геометрические объекты, создавать эффект затемнения, сдвига, отражения и т.д.

Коэффициент шейдинга – это величина, показывающая сколько шейдеров обрабатывают один пиксель картинки на мониторе. Если параметр равен 1.0, значит на 1 пиксель приходится 1 шейдер, 2.0 – для 1 пикселя задействовано 2 шейдера и т.д. Показатель так же может выражаться в дробных числах, например, 1, 5.

Почему не меняется

Часть пользователей Metro Exodus столкнулись с проблемой – коэффициент шейдинга не меняется в игре. Настройки, отвечающие за этот параметр не активны, управлять графикой в полной мере не получается. Среди игроков, обсуждающих в сети это затруднение, немало владельцев видеокарты NVIDIA GeForce RTX 2060.

Официальные системные требования Metro Exodus гласят, что рекомендуемый объем памяти видеокарты должен быть не менее 8 ГБ. Минимальный размер для пользования игрой начинается от 2 ГБ. Но изображение и остальные характеристики будут соответствующими.

Как увеличить коэффициент шейдинга в Metro Exodus

В Интернете есть советы как сделать настройку активной. Но не стоит забывать, что высокие параметры графики “съедают” производительность. Увеличение коэффициента шейдинга на единицу снижает FPS примерно на 25%. Это порождает неудобства для владельцев видеокарт с размером памяти меньше рекомендуемого – комфортно играть на максимальной величине 4,0 не получится.

Попробовать можно следующее:

Выключить DLSS

В некоторых случаях помогает и опция становится доступной для управления.

Выставить пресет “Extreme”

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

Вручную прописать значение в файле конфигурации

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

Читайте также:  что расскажет дата рождения о человеке

Оптимальное соотношение настроек FPS и качества изображения

Для получения FPS 60 при разрешении экрана 1920×1080, 2560×1440 или 4K, в зависимости от производительности компьютера рекомендуются следующие настройки

Источник

Технология Сel shading в играх и кино

Для начала нужно рассказать о технологии «сel shading». Что это такое? Это некий метод преобразования изображения. Заключается он в том, что за счет избавления от полутонов и выявления границ объектов мы получаем картинку, напоминающую рисунок. Те, кто работал с векторными редакторами, знают очень похожую штуковину под названием «трассировка».

Впервые использование «сel shading» мне довелось увидеть в компьютерной игре «XIII». Игра была создана компанией Ubisoft в 2003-м году. Здесь обыкновенную и уже вполне привычную нам трехмерную графику превращают в живой комикс. Собственно, этой новацией игра и прославилась. Каких либо иных достоинств за ней замечено не было.

Тем временем режиссер Ричард Линклейтер использовал подобную технологию в фильме «Пробуждение». Кино осталось не востребовано широкой публикой, но не из-за своего необычного вида, а по причине сложных философских умозаключений, на которых построен весь фильм.

Следующая работа Линклейтера имела более внушительный восьми миллионный бюджет. Над фильмом работало около 50 аниматоров. Несмотря на участие в проекте таких звезд, как Роберт Дауни, Вайнона Райдер, Вуди Харрельсон и Киану Ривз, фильм провалился в прокате. Оценить «Помутнение» смогут пожалуй только любители литературы Филипа К. Дика, по книге которого снят фильм. Лично я считаю, что Линклейтеру кино удалось. Но сами идеи Дика многих отпугивают и чем ближе к оригиналу снимается кино, тем более шизофреническим и параноидальным оно предстает перед обывателем.

Для фильма была написана специальная программа обработки кадров Rotoshop. На минуту фильма, сделанного таким образом, уходит 500 часов компьютерной обработки материала. Поэтому для ускорения процесса Rotoshop делает интерполяцию кадров. Т.е. фактически в машину может быть введен только каждый 10-тый кадр, все промежутки программа может дорисовать самостоятельно.

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

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

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

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

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

Источник

Полезные советы по оптимизации игровой модели. Часть 1

Shading

Шейдинг — это подложка под запекание нормалки. Чем лучше он выглядит, тем красивее будет финальная модель и normal map. Слева на скриншоте пример хорошего шейдинга, справа — плохого.

То есть слева low poly модель, максимально похожая на high poly: выглядит красиво, нет никаких артефактов и искажений. Справа видны ошибки в шейдинге, искажения.

Основные инструменты воздействия на шейдинг — это добавление большего количества геометрии. Если этот вариант не подходит, — проставление хардов. Изначально шейдинг модели на гифке ниже недостаточно корректно отображает ее форму. С добавлением edge loops модель шейдится лучше. Ее форма становится понятней.

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

Поэтому хороший шейдинг — это баланс между софтами и хардами.

Читайте также:  как заполнить ттн если перевозчик третье лицо образец

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

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

Texel Density

Это нужно для того, чтобы абсолютно все объекты на уровне имели одинаковое разрешение текстур. Предположим, на уровне есть две бочки — одна маленькая, другая большая. Если мы применим к ним одинаковую текстуру в 2К, плотность их текстур будет отличаться. Маленькая бочка будет крайне плотная и детализированная, большая будет замыленная. Чтобы избежать этих проблем появился термин Texel Density.

Очень часто бывает, что клиент задает необходимое значение Texel Density, но не задает разрешение текстур. Раньше это создавало трудности. Приходилось колхозить. Сейчас в UV Editor Maya 2018 есть специальный инструмент. Выбираете необходимый UV Shell, нажимаете Get и вам выдает числовое значение, в зависимости от разрешения текстур. Точно так же можно выбрать любой Shell, задать цифру, нажать Set и Texel Density будет такой, как вы задали.

Распределение Texel Density.

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

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

С другой стороны, уменьшить детализацию там, куда никто не смотрит — это прием из разряда «must have». Абсолютно независимо от того, какой объект вы делаете.

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

Reuse

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

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

Ровные UV Shells

Для примера, я запек два кубика с одинаковым Texel Density и текстурой. Но в кубе слева все UV Shells выровнены по горизонтали и вертикали, а справа повернуты под углом.

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

Mip Mapping и Padding

Если игрок отдаляется от какого-то игрового объекта, то модель этого объекта меняется на менее полигональную. Точно так же с текстурами — чем дальше мы отходим, тем меньшая текстура к нему применяется. 4К подменяется на 2К, когда мы отходим еще дальше — на 1К. Этот прием экономит ресурсы вашего компьютера.

Padding — это расстояние между UV Shells. Чем меньше это расстояние, тем сложнее отображать текстуры при Mip Mapping. Потому что при уменьшении текстур, уменьшается и расстояние между шеллами. Padding нужно всегда делать побольше, или хотя бы следить за тем, чтобы он везде был равномерным. Для персональных работ, в принципе, все равно, но если вы делаете проекты для клиентов, на это следует обращать внимание.

Триангуляция

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

Любой движок, работающий с геометрией, триангулирует модель, чтобы корректно ее отобразить.

Читайте также:  как рассчитать сколько кубов в бассейне прямоугольной формы

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

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

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

Градиенты на нормалях

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

Почему градиенты — это плохо? Текстуры — самая затратная часть любой игры. Когда вы качаете игру на 150 гигов, 100 из них — текстуры. Но все они компрессируются, что ухудшает их качество. Лучше всего компрессия видна в тех местах, где есть градиенты. Поэтому при максимально ровной нормалке ошибок быть не должно. Они, конечно, будут, но значительно меньше, чем с градиентом.

Следуя этим правилам, вы легко повысите качество своих работ, сократив усилия, необходимые для их создания.

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

Источник

Коэффициент шейдинга в Metro Exodus — что это такое

Коэффициент шейдинга — одна из настроек графики в шутере Metro Exodus, которая озадачила многих игроков. Дефицит информации усугубляется тем, что данная опция у значительного числа геймеров “не работает” и стандартное значение 1.0 в настройках попросту не активно.

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

Коэффициент шейдинга в Metro Exodus

Что это за настройка в Metro Exodus — на что влияет

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

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

Увеличение шейдинга ведет к понижению производительности

Отсюда можно сделать вывод, что увеличение коэффициент шейдинга в Metro Exodous является одной из ключевых настроек для улучшения графики. При грубом приближении можно провести такую аналогию: при использовании монитора с разрешением 1920х1080 и коэффициентом шейдинга 2.0 будет получено качество картинки эквивалентное разрешению 2560×1440 (больше исходного на 200%).

Но за хорошую графику придётся платить снижением производительности. При повышении коэффициента шейдинга на один пункт, FPS просядет на 20-30%. В результате большинство геймеров сходятся во мнении, что при максимальном значении этой настройки (4.0) играть в Metro Exodous станет попросту невозможно.

Как включить коэффициент шейдинга в Metro Exodus

Многие игроки сталкиваются с тем, что настройка коэффициента шейдинга по-умолчанию остаётся неактивной и повлиять на это никак нельзя (например, с этой проблемой практически наверняка столкнутся владельцы карт GeForce RTX 2060). Официального комментария разработчиков на этот счёт пока нет, но опытным путём геймеры обнаружили несколько способов, как с этим бороться.

Первым делом пробуйте отключить настройку DLSS

Изменение файла конфигурации Metro Exodus

На данный момент это является самым действенным способом “активировать” эту опцию — является ручная правка конфига. Сделать это можно так:

Перед проведением данной манипуляции рекомендуется сохранить оригинальный файл конфигурации.

Заключение

Надеюсь вы разобрались для себя — что означает «коэффициент шейдинга» в Метро Исход Конечно, при повышении данной настройки — текстуры становятся четче. Но повышение этого коэффициента будет актуально тогда, когда у вашей видеокарты есть запас мощности. В таком случае вы сохраните баланс — четкая картинка + приемлемые FPS. От себя замечу, что даже на UltraHD мониторе, разницу между 2.5 и 4.0 вы практически не почувствуете.

Источник

Академический образовательный портал