Как получается изображение на вашем мониторе в игре?

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

     При этом важно понимать, какое железо стоит в вашем ПК и понимать слабые места конкретной сборки. Например у вас может быть не очень мощный процессор, медленная оперативная память, или слабая видеокарта. Чтобы уже потом оптимизировать под нее настройки.

 Как создается кадр?

 

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

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

 

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

Что такое шейдер?

     Шейдер - это программа, выполняющаяся на GPU, и обрабатывающая поток данных, а это значит, что у шейдерной программы есть "вход" и есть "выход", а "посередине" - набор команд, выполняющих обработку. Под "потоком данных" подразумевается информация о координатах вершин полигонов, освещении каждой вершины, нормалях, текстурных координатах, и т.п, непрерывно поступающая блоками в шейдерную программу. Алгоритм работы шейдерной программы можно представить следующим образом:

 

1) принять со входа блок информации в формате А

2) обработать его по некоему алгоритму

3) выдать на выход блок информации в формате Б

4) далее программа бездействует до следующего прихода блока информации на вход

 

 

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

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

     Далее, исходя из положения и расстояния до камеры рассчитывается глубина изображения и помещается в так называемый z-буфер.

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

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

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

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

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

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

Как выбрать правильные настройки графики в игре?

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

Настройки для видеокарты в игре

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

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

Что такое анизотропная фильтрация?

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

     Она сильно улучшает картинку, но при этом не снижает частоту кадров. Поэтому однозначно ее стоит устанавливать на максимальное значение.

Что такое тесселяция?

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

 

     По идее она не должна особо сказаться на производительности, но это зависит от того как часто она используется в игре. Каждый движок игры работает немного по своему, а также разработчики игры могут определить где она будет использоваться а где нет. Например в той же GTA 5 ее можно заметить в основном только на деревьях, на других объектах она не используется. Так что эту настройку следует выставлять опытным путем.

 

Какое качество теней устанавливать в игре?

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

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

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

Мягкие тени

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

Виды сглаживая в играх. Какое сглаживание выбрать в игре?

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

     Первая подгруппа подразумевает изначальное увеличение изображения и последующее сжатие его до нужного размера. В эту группу относиться, например MSAA. Разумеется нагрузка при таком виде сглаживая сильно возрастает.

Здесь самым прожорливым с точки зрения видеокарты является NVIDIA TXAA, который учитывает результаты сглаживания предыдущих кадров.

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

 

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

AA vs FXAA vs MSAA vs CSAA

     Общий вывод который тут можно сделать будет такой: Если у вас мощная видеокарта используйте MSAA или более сложные технологии типа NVIDIA TXAA, а если у вас слабая видеокарта, то можете попробовать сглаживание из второй группы, например FXAA, которое является наименее прожорливым к ресурсам системы. А если вам кажется что в конкретной игре сглаживание только ухудшает картинку, то лучше его отключить совсем.

Дальность прорисовки в играх

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

 Постобработка в игре

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

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

     Бывает два вида ambient occlusion - это старый вид SSAO, и более современный и требовательный HBAO, который просчитывается по более сложным физическим формулам и результат выдает еще более реалистичный:

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

 

Глубина резкости в играх

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

 

Общий итог.

     Большое влияние на загрузку центрального процессора оказывает просчет NPS, физики и исходной геометрии сцены. 

     Видео чип сильно нагружается при просчете освещения и затенения, а также и при увеличении детализации объектов, также при включении мягких теней или глобального освещения. Различные фишки, основанные на усложении геометрии тоже могут сильно понижать частоту кадров, например Nvidia hairworks или AMD TressFX.

Загрузка видеопамяти в играх

     Видеопамять в основном нагружается с увеличением качества текстур на объектах и увеличении общего количества пикселей, то есть с увеличением разрешения монитора. В том числе и при использовании сглаживания, основанного на просчете изначально большего изображения (1 категория сглаживания).

Заключение

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

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

     И все же, если у вас железо 5-6 летней давности, да  и еще не самое мощное то не нужно ждать чуда, как бы вы не крутили настройки производительность игры будет ограничиваться старым железом.


  • Популярные статьи

Автор : btamedia