Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Общеигровые вопросы (http://forum.igromania.ru/forumdisplay.php?f=75)
-   -   Оптимизация в играх, консоли и ПК (http://forum.igromania.ru/showthread.php?t=140737)

[CCCP] Monster 21.03.2016 05:20

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


Речь там шла вот о чем:

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

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

Но сперва правила темы:
Оффтопом не считается:
1. Обсуждение графики и производительности PC в сравнении с консолями.
2. Обсуждение того, что "вот эта игра могла работать лучше!", при условии аргументации
3. Сравнение характеристик железа (процессоров, памяти и GPU) PC и консолей, консолей и консолей, PC и PC.
__________________________________________________ __________________________________________________ ___________

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

На самом деле нет. Когда вы запускаете игру, в начале запускается целый ряд заставок в стиле "Коламбия пикчерс представляет", где вы видите лого издателя, разработчика и прочих причастных организаций. И часто в этом списке обитают NVidia и AMD. Это значит, что разработчики обращались к производителям видеокарт, чтобы те сделали их игру более медленной быстрой. Например, NVidia имеет в Москве самый большой офис в Европе, который занимается тестированием и оптимизацией игр. Иногда NVidia или AMD даже приплачивают(!) командам наиболее перспективных тайтлов, чтобы те предоставили исходники своих движков для редактирования, чтобы можно было заставить игру работать быстрее на железе соответствующего производителя. Однако в большинстве случаев оптимизации там получаются довольно общего вида, так что улучшения получаются на всех типах карт. Просто NVidia или AMD имеет возможность еще и подогнать тонкие настройки драйвера (вроде объема CPU-GPU кэша и оптимального размера квантов памяти для обновления содержимого буферов констант, например), что позволяет достичь плавной картинки и оптимального фреймрейта.

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

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

Окей, а как дела с приставками?

Ну, с приставками, на самом деле, в плане железа, все удручающе. Посмотрите вот на этот график:


Здесь показано, чем занимаются создатели видеокарт, пока создатели приставок стригут капусту.
Обратите внимание, что шкала флопсов (от слова FLOPS - Floating Point OPerations - операции с плавающей запятой) - логарифмическая. Это значит, что значение каждой следующей горизонтальной линии в 10 раз больше предыдущего. То есть если GeForce 8800 имел где-то 500-600 GigaFLOP (это миллиардов операций, стало быть), то уже Titan X имеет больше 6000 GigaFLOP, т.е. в 10 раз больше. Окей, и как же на помогут эти флопсы, спросите вы? Да очень просто. Один флоп - это одно сложение, вычитание, умножение или деление, выполненное над некой переменной типа float.

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

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

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

Так почему же тогда разработчики игр любят приставки больше?

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

В этом, кстати, заключается причина, почему часто одни и те же игры на консолях и на PC одинаково выглядят: они просто портированы с консолей. В этом случае в PC-версию можно добавить больше каких-то эффектов, которые не затрагивают ресурсы игры: какие-нибудь HBAO/shadow map based godrays/ ray-marching reflections. Текстуры и модели остаются прежними, поэтому особой разницы не заметно.

Можем ли мы как-то выяснить, хорошо ли оптимизирована игра?

Ну, если вы умеете программировать графику, у вас не maxwell-видеокарта и вы поставили себе NSight graphics debugger, то полагаю, кое-какие выводы сделать вполне получится. Этот дебаггер работает с картами NVidia и может показывать различные данные во время работы игры и выполнять capture frame - получение данных о всех вызовах, выполненных от одного D3D11ImmediateContext->Present() (или glSwapBuffers) до другого. Там можно понять, что рисует игра и как она это делает, сколько времени тратит на выполнение каждой операции, если ли в процессе рендера остановки для синхронизации GPU-CPU (например, когда игра пытается получить результаты GPU-based occlusion culling, и когда она делает это не правильно) и как выглядит шейдер, который выполняется на конкретном этапе, а также можно посмотреть состояние всех ресурсов. Единственное, что удручает - это то, что дебаггер не доступен для работы с видеокартами с архитектурой Maxwell внутри, а это 7хх и 9хх.

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

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

За один раз я их все не опишу, потому буду добавлять по мере поступления вдохновения.

Скрытый текст:

Текстуры
Режимы фильтрации
Вообще в природе есть 4 основных вида фильтрации текстур: метод ближайшего подходящего, билинейная, трилинейная и анизотропная.
Метод ближайшего подходящего для фильтрации текстур на объектах никто (кроме Майнкрафта) уже давно не использует, потому что если подойти к стенке, результат выглядит вот так:
Скрытый текст:

Линейная в этом плане получше. Чтобы ее выполнить, текстурный сэмплер видеокарты читай 4 ближайших пикселя к той точке, которую нужно закрасить, и смешивает их с помощью линейной интерполяции. Результат вот такой:

Но если мы смотрим на поверхность под очень острым углом, получается, что по одной оси один экранный пиксель закрывает, например, 2 пикселя текстуры, а по другой - сразу 10. Чтобы корректно смешать цвета в этом случае, нужно использовать анизотропную фильтрацию. Она самая тяжелая, потому что сэмплер выполнят много обращений к памяти, а результат выглядит вот так:
Скрытый текст:

Screen-Space методы
SSAO / HBAO
Screen Space Ambient Occlusion. Особый метод аттенюации итоговой картинки, который затемняет те места, которые закрыты большим количеством объектов.

Впервые техника появилась в Crysis.

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

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

Проблема в том, что для затенения одного пикселя, нужно просмотреть много пикселей вокруг и понять, насколько далеко каждый из них находится от экрана (эта информация у нас есть в Z-буфере). Чем больше пикселей осмотришь, тем лучше будет результат. Но это очень сильно пожирает ресурсы: чтобы отойти от закрашиваемого пикселя на 2 пикселя в каждую сторону (pixel kernel 5x5), нужно осмотреть 25 пикселей. Чтобы увеличить радиус до 4 пикселей вокруг, нужно осмотреть в общей сложности 81 пиксель.

Выглядит результат вот так:


DoctorWagner 21.03.2016 06:47

Ох уж эти извечные холивары пека vs консоли.

Deep_wolf 21.03.2016 07:07

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

Что точно он показывает, так это удивительную PR-способность фанатов nVidia превозносить и выдавать действительное за желаемое (см. Razer).

Teo:) 21.03.2016 11:44

Цитата:

Сообщение от [CCCP
Monster;12089630]если у вас разрешение 1920 на 1080

В Боксе 360 не было фул хд.
Цитата:

Сообщение от [CCCP
Monster;12089630]Дело в пиратстве

На старом поколении пиратство процветало)

kassota 21.03.2016 13:55

Цитата:

Сообщение от [CCCP
Monster;12089630]Здесь показано, чем занимаются создатели видеокарт, пока создатели приставок стригут капусту.

создатели приставок вполне заслуженно стригут капусту)))
немного лирического оффтопа)))
являюсь обладателем ПеКа,ПСов и коробок. Так вот на PC играю когда время есть в улиточные танкосамолеты, и широкий набор разных стратегий или гоночек в сингле. За PC у меня интимная обстановка, только для меня одного, я в это время живу в своем мирке. честно сказать, игры покупаю на PC со скидочками в стиме и иногда даже не брезгую пираткой в основном это старенькие игры (в The Hospital играл так до не давнего времени, пока не нашел его за 100р в Ориджине)

У консолек меня можно встретить чаще, так как это удобно, быстро и весело, PC мне не дает возможность набить морду жене в МК не вставая с кровати, а отец например с товарищем на полном серьезе с удовольствием и интересом смотрели полное прохождение Анчартеда 3 почти 4 часа))) Консольки больше социально ориентированы, в отличии от аутичного PC (да. знаем подключаешь в к ТВ, тянешь провода и прочую ахинею куда угодно...это сложно)

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

[CCCP] Monster 21.03.2016 14:48

Deep_wolf, ничего не понял, каких именно "тех времен"? Если мы добавим туда Радеоны и Нинтендо, как изменится главная мысль - консоли остаются на том уровне производительности, на котором они были спроектированы?

Teo:), по сравнению с ПК пиратство на X-Box было, гхм, весьма детским:)

Deep_wolf 21.03.2016 14:52

Цитата:

Сообщение от [CCCP] Monster (Сообщение 12089785)
консоли остаются на том уровне производительности, на котором они были спроектированы?

Это очевидные вещи для которых нужно банальное знание сабжа. Конечно, если в расчет не идут вариации и добавления типа 32X или SEGA CD.

[CCCP] Monster 21.03.2016 15:28

Deep_wolf, Там наглядно виден масштаб проблемы. Например, между Титан Х и PS 4 трехкратный разрыв по производительности. На одном Титане в полтора раза больше памяти, чем во всей приставке.

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

Deep_wolf 21.03.2016 16:11

Не спорю, но ведь не графитом едины.

Консоли на то они и консоли, что имеют уникальные игры, ровно как и пк, начиная с текстовых квестов и заканчивая симуляторами всего на свете.

Teo:) 21.03.2016 18:34

Цитата:

Сообщение от [CCCP
Monster;12089785]Teo, по сравнению с ПК пиратство на X-Box было, гхм, весьма детским

Ну как сказать...на 360-й в день релиза уже были пиратские аналоги запилены, а на последних прошивках даже в инете можно было играть...
При том, можно было так же качать игры с торрента и писать на диск) Вроде там двд диски были, если не ошибаюсь, так что большой сложности не было.

Без_Имени 21.03.2016 21:26

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

Брутал 21.03.2016 22:38

Цитата:

Сообщение от Без_Имени (Сообщение 12090004)
те же солсы на пк продались лучше

Я так полагаю изза цены в 5 рублей на одной из распродаж
Цитата:

Сообщение от Без_Имени (Сообщение 12090004)
и примеров масса

Валиант хеартс вспомнил ?
Цитата:

Сообщение от kassota (Сообщение 12089760)
да. знаем подключаешь в к ТВ, тянешь провода и прочую ахинею куда угодно...это сложно

Странно, обычно консольщики утверждают братное.

Без_Имени 21.03.2016 22:44

Цитата:

Сообщение от Брутал (Сообщение 12090046)
Я так полагаю изза цены в 5 рублей на одной из распродаж

Этот глюк и 1% не дал, но ты можешь искать оправдания дальше, я же буду оперировать фактами.

Добавлено через 5 минут
Цитата:

Сообщение от Брутал (Сообщение 12090046)
Валиант хеартс вспомнил ?

Цитата:

PC ведет в цифровых продажах за 2015 год
Основным источником цифровых доходов стал PC, принеся 42% от всех доходов за год.
....

klop 22.03.2016 11:32

Цитата:

Сообщение от kassota (Сообщение 12089760)
да. знаем подключаешь в к ТВ, тянешь провода и прочую ахинею куда угодно...это сложно)

Провода... тянуть... что??? У вас ламповый телевизор и древний DSL модем?

кук 22.03.2016 12:38

klop, согласен, в видяху HDMI кабель от тв и все - больше ничего не надо.

klop 22.03.2016 13:41

Цитата:

Сообщение от кук (Сообщение 12090283)
klop, согласен, в видяху HDMI кабель от тв и все - больше ничего не надо.

Да же HDMI есть беспроводной, технологии шагнули довольно далеко вперед и проблем с подключением телика, плойки и пк без провода вообще нет, да и с подключением DS4 к пк и плойке то же проблем нет, у меня вот дома что плойка, что ПК подключен к одному телеку, если я хочу, играю в ПК, если хочу в плойку, два DS4 (оба работают там, где я хочу, хоть на ПК, хоть на PS), доп клава + мышь и беспроводная гарнитура вполне умещаются незаметно на месте отдыха, никаких проводов, никаких проблем

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

a1exios 22.03.2016 14:07

Оптимизация для педиков, тарьте свои 980 и смотрите на мыло, зато в 60 фпс и фулл хд. Вот такой нынче некст ген.
Цитата:

Сообщение от Брутал (Сообщение 12090046)
Я так полагаю изза цены в 5 рублей на одной из распродаж

Их начали сметать ещё во время выхода. Солсы клёвые. Ну, первые, по крайней мере.
Цитата:

Сообщение от klop (Сообщение 12090339)
Все эти проблемы из разряда - плойку воткнул и не паришься, чушь собачья

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

кук 22.03.2016 14:36

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

klop 22.03.2016 14:40

Цитата:

Сообщение от a1exios (Сообщение 12090366)
Почему? Нажать старт, что бы включить игру, потом нажать икс, что бы её пройти. Удобно. На пека же эта схема может вообще не сработать. Всё может упереться в железо или отбитых разработчиков.

Ну так и на третей плойке игры от четвертой не пойдут и тут дело далеко не в различных архитектурах (что убедительно доказали рукожопы делавшие MKX к примеру, оптимизация? нет, просто индусы, которые есть как среди ПК разрабов, так и среди PS-XBOX разрабов), если компу 200 лет в обед то несколько глупо ожидать того, что на нем пойдет что то сложнее тетриса.

кук 22.03.2016 14:49

[CCCP] Monster, тема хорошая, в плане объяснения технологий, а какой общий посыл?


Часовой пояс GMT +4, время: 20:47.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.