PDA

Просмотр полной версии : Проблемы видео, как решить и тд и тп. вообшем речь о нстройках видео.


Devlok
27.06.2007, 22:03
Call of Duty 2 очень требовательна к объему видеопамяти, в разрешении 1024x768 с включенным антиалиасингом уровня 4x и максимально возможным качеством текстур (Extra в настройках игры) использует до 340-350 мегабайт видеопамяти! Среднее же использование видеопамяти в тестовом разрешении 1024x768 с включенным 4x антиалиасингом и максимальными настройками составляет около 280-300 Мб. Понятно, что на большинстве систем с физически меньшим количеством набортной памяти частично используется системная память. Это же показывают и результаты тестов на максимальных настройках, все карты с 512 Мб локальной видеопамяти в игре оказываются заметно быстрее своих собратьев, оснащенных 256 Мб памяти. Приведу пример из 3DGiТогов (http://www.ixbt.com/video2/itogi-video.shtml) - видеокарта ATI RADEON X800 XL 256MB отстает в игре Call of Duty 2 от точно такой же модели с теми же частотными характеристиками, но с 512 Мб видеопамяти, на 15-45%, в зависимости от видеорежима!

Графическим движком игры используются шейдерные программы, написанные на HLSL, и на тестовой системе с видеокартой, поддерживающей Shader Model 3.0, они на лету компилируются в вершинные и пиксельные шейдеры версий 1.1 и 2.0, причем наибольшее количество программ именно версии 2.0, обычно более сложных и длинных. Это касается как пиксельных шейдеров, так и вершинных. Количество пиксельных и вершинных шейдеров версии 2.0 примерно в четыре раза больше, чем программ версии 1.1, то есть игра явно рассчитана на видеочипы с поддержкой DirectX 9. Кстати, абсолютно во всех пиксельных шейдерах версии 2.0 сделаны оптимизации в виде расчетов с пониженной точностью (partial precision), которые должны пойти на пользу всем видеокартам NVIDIA, а особенно - серии NVIDIA GeForce FX. Хотя даже в этом случае, включить режим "DirectX 9" на младших видеокартах GeForce FX, особенно при остальных максимальных настройках, вряд ли получится. Для таких случаев в игре есть специальный "DirectX 7" режим, в котором недоступно подавляющее большинство эффектов (но дым остается), зато производительность значительно выше и пользователи старых видеокарт тоже могут спокойно поиграть. Об этом режиме читайте подробнее ниже по тексту, в описании настроек качества графики.
"Rendering Method Preference" - опция, позволяющая форсировать путь рендеринга, оптимальный для современных и устаревших или слабых видеокарт соответственно, возможные варианты установки: DirectX 9, DirectX 7 и Auto. "DirectX 9" - основной вариант для быстрых современных видеокарт, а "DirectX 7" подойдет и для довольно старых видеокарт, и для видеокарт с недостаточной производительностью. Также, этот режим может оказаться полезным для тех, кого не устраивает производительность его современной системы в нормальном DX9 режиме, дающем максимально возможное качество. С последней опцией проще всего, игра сама предложит оптимальный режим для вашей системы. Ну а получаемую в разных режимах картинку сравните сами:
http://www.ixbt.com/video2/images/tech_cod2/cod2_dx7_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_dx7.jpg) http://www.ixbt.com/video2/images/tech_cod2/cod2_dx9_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_dx9.jpg) В упрощенном DirectX 7 режиме отсутствуют: normal mapping, specular mapping, тени (кроме предрассчитанных в лайтмапы, от крупных неподвижных объектов) и эффекты постобработки: bloom, glow, heat haze, blur и так далее. В целом, картинка с включенным DX7 path получается заметно худшей, хотя и вполне играбельной. Думаю, что для видеокарт, начиная примерно с ATI RADEON 9700/X700 и GeForce 6600, предпочтительнее будет попробовать использовать DirectX 9 режим. Вероятно, на этих картах можно будет получить приемлемую производительность, пусть даже изменив некоторые другие настройки, отключив анизотропную фильтрацию и др. А вот более старые и медленные карты, хотя и обладающие поддержкой необходимых для этого возможностей, не смогут дать нужной производительности. Это относится, в первую очередь, к серии NVIDIA GeForce FX, которые недостаточно быстры в выполнении пиксельных шейдеров версии 2.0. Хотя и на самых быстрых из них можно попробовать включить DirectX 9 и снизить остальные настройки качества, о которых пойдет речь дальше. Дополнить информацию по данной опции должен тот факт, что на тестовой системе разница в производительности в режимах DX7 и DX9 (остальные настройки при этом были на максимуме) составляет 3-4 раза! Безусловно, свой вклад в повышение производительности вносит и снижение объемов текстур в DX7 режиме, ведь карты нормалей и specular карты в этом случае не используются. Но основной эффект дает полное отсутствие попиксельных расчетов освещения.

"Optimize for SLI" - опция, предназначение которой понятно из названия, ее я привел в качестве интересной для технического обзора особенности. Это одна из первых игр, в которой специально учитываются особенности подобных двухчиповых конфигураций. Возможные значения: Yes и No. Если у вас стоят две видеокарты NVIDIA с включенным режимом SLI в драйверах (а возможно и две видеокарты ATI в CrossFire, тут ничего определенного точно сказать не могу), то нужно включить эту опцию. В этом случае графический движок игры оптимизирует свою работу так, чтобы получить максимум производительности от двух видеокарт, работающих в тандеме. Вероятно, это касается оптимизаций работы с render targets, используемых в алгоритмах постобработки, именно подобные вещи могут послужить причиной недостаточного увеличения производительности от SLI системы. Интересно, что в демо-версии игры эта опция называлась "Optimize for Dual Cards", так что есть вероятность, что и пользователям CrossFire систем эта настройка тоже пригодится, хотя там используется совершенно иная технология объединения мощности двух видеочипов.

"Shadows". Настройка очень часто встречающаяся в играх, в Call of Duty 2 она отключает только динамические тени от моделей солдат и техники (скриншоты см. выше). Влияние построения теней на общую производительность весьма велико, до 20%! В конкретных цифрах это 41 FPS и 49 FPS в тестовой демке, соответственно для включенных и отключенных теней. Так что трижды подумайте, нужны ли вам довольно немногочисленные динамические тени, если вы обладатель недостаточно мощной системы. По этим цифрам понятно, почему разработчики игры упростили алгоритм наложения теней, по сравнению с тем, что мы видели в ранних скриншотах. Если даже существующие тени так сильно влияют на производительность, то что было бы в случае более сложных алгоритмов с самозатенением и при использовании теневых карт более высокого разрешения?

"Number of Dynamic Lights" - количество динамических источников света, освещение поверхностей от которых будет рассчитывать движок. Для этой опции из игры возможны значения: Off, Low, Normal и High. Эта настройка влияет на количество рассчитываемого освещения от вспышек выстрелов и взрывов, чем больше значение, тем больше источников света будут реально освещать поверхности в игре. Даже при установке "Low" динамическое освещение от основных источников света, таких, как вспышки выстрелов оружия самого игрока, включено. А на более высоких настройках реалистичность освещения увеличивается, большее количество вспышек и взрывов начинает действовать на освещенность сцены, тут и выстрелы врагов и союзников, и взрывы снарядов и гранат. Хотя на производительность игры в типичных ситуациях эта настройка влияет не очень существенно, на тестовой системе получалась разница максимум 5-7% между отключенными динамическими источниками освещения и максимальным их количеством. Возможно, на менее мощных видеокартах разница будет большей, поэтому пользователям лучше самим найти необходимый баланс на их собственной системе.

Devlok
27.06.2007, 22:04
"Soften Smoke Edges" - эта настройка включает использование эффекта "ZFeather" (так она называлась в предрелизной демо-версии) для дыма в игре. Применяется специальный алгоритм, который нужен для того, чтобы убрать давно всем надоевшие линии пересечения полупрозрачных полигонов дыма с геометрией уровня и моделей. Наглядно эти пересечения видны на скриншоте:
http://www.ixbt.com/video2/images/tech_cod2/cod2_smoke_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_smoke.jpg)
Возможные значения: Off, World Only и Everything. Опция, выставленная в "Off" полностью выключает режим, в результате пересечения дыма и геометрии уровня резкие, ярко выраженные и это выглядит нереалистично. Зато такая настройка обеспечивает лучшую производительность в игровых сценах с большим количеством дыма. Значение "World Only" смягчает края дымовых эффектов только на фоне геометрии уровня: земной поверхности, зданий, неба и так далее, но не на фоне динамических объектов: моделей людей и техники. А вот установка "Everything" убирает резкие пересечения полупрозрачных полигонов дыма и всех поверхностей, что еще более реалистично, но дополнительно снижает производительность. Далеко не всегда артефакты пересечений бросаются в глаза, посмотрите на скриншоты, это я еще старался, чтобы было видно (левый скриншот с режимом "Off", правый - "Everything", обратите внимание на тени в центре около бочек и на полученное количество кадров в секунду):


http://www.ixbt.com/video2/images/tech_cod2/cod2_zfeather_off_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_zfeather_off.jpg) http://www.ixbt.com/video2/images/tech_cod2/cod2_zfeather_on_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_zfeather_on.jpg)
Если FPS на вашей системе снижается во время появления большого количества дыма, можете попробовать поставить эту настройку в значение "Off". Ведь ее влияние заметно не всегда и в глаза артефакты не бросаются, то вот на тестовой системе настройка влияет на производительность довольно значительно, в режиме 1024x768 разница между крайними режимами составляет до 10%. Если принять показатель FPS при включенном "Everything" за 100%, то с "World Only" получается около 105%, а с "Off" - 110% на стандартной игровой ситуации.
Опции в разделе "Texture Settings" определяют используемый игрой размер текстур. К счастью, в отличие от демо-версии, в релизе пользователю дали и ручные настройки качества текстур из меню, что важно для достижения максимального качества изображения, ведь автоматически максимальные настройки разрешения текстур выставляются только для видеокарт с установленными 512 Мб видеопамяти, а все остальные довольствуются текстурами худшего качества. В релизе значение настройки "Texture Quality" может быть Automatic или Manual. Если данная настройка установлена в значение "Automatic", то игра сама выставляет настройки разрешения основных текстур, карт нормалей и specular карт, которые считает оптимальными для вашей системы. Для этого определяется объем свободной текстурной памяти, с учетом системной памяти, выделенной под видеонужды. То есть, при автоматических настройках размера текстур они могут получиться разными для различных разрешений экрана и уровней антиалиасинга. Обычно, автоматическая настройка работает нормально, но этого недостаточно для всех случаев. Иногда хочется поэкспериментировать или тонко подстроить качество для себя. Тогда нужно установить "Texture Quality" в значение "Manual" и изменять раздельные настройки для основных текстур, карт нормалей и specular карт.
http://www.ixbt.com/video2/images/tech_cod2/cod2_settings_2.jpg
Texture Resolution". Настройка служит для изменения разрешения используемых базовых (diffuse) текстур. Это самый главный текстурный слой, который во многом определяет поверхность материалов в игре. Возможные значения: Low, Normal, High и Extra. Разница в картинке между всеми этими уровнями есть и ощутимая (см. ниже). Параметр примерно должен соответствовать следующему правилу: если на вашей видеокарте установлено 512 мегабайт видеопамяти, то можно смело ставить "Extra". Также этот режим подойдет для некоторых мощных видеокарт с 256 Мб локальной памяти, таких, как GeForce 7800 GT/GTX и RADEON X1800 XL/XT и выше. Режим "High" подходит для остальных видеокарт с 256 Мб памяти средней мощности, а режим "Normal" - для менее быстрых видеокарт (low-end) с 256 Мб памяти и почти для всех 128 Мб видеокарт, кроме самых слабых. Понятно, что какой-нибудь GeForce FX 5600, даже имея 128 Мб набортной памяти, может банально не потянуть. Для таких карт и для всех видеоплат лишь с 64 мегабайтами памяти подойдет только самая низкая настройка "Low". Эти цифры стоит принимать лишь как примерное руководство к действию, конкретные настройки нужно подбирать на каждой отдельной модели видеокарты и даже системы в целом, ведь в ряде случаев используется часть системной памяти. Также не нужно забывать о настройках антиалиасинга и игрового разрешения, производительность и играбельные настройки качества текстур также сильно зависят от них.
"Normal Map Resolution" - опция, определяющая разрешение используемых карт нормалей, которые обычно используются для попиксельного освещения и отображения мелких геометрических деталей, вроде неровностей и складок поверхностей. Возможные значения такие же, что и в случае основных текстур: Low, Normal, High и Extra. Каждый из этих уровней также сразу заметен на получаемой в результате картинке. Производительность от изменения этой настройки также зависит не только от объема установленной видеопамяти, но и от вычислительных возможностей видеочипа. Многие современные видеокарты высокого уровня очень быстры и значительного влияния данная настройка на FPS не окажет, лишь бы хватало памяти. Ну а видеокарты уровня low-end могут потребовать более низких установок, даже обладая 256 Мб памяти.
Ну и последняя интересующая нас настройка - "Specular Map Resolution". Она делает то же самое, что и описанные выше две опции, но только для specular текстур, использующихся для расчета бликовой составляющей и определения того, какие поверхности обладают способностью отражать свет и насколько. Возможности по конфигурации те же: Low, Normal, High и Extra. Чем выше установлена настройка, тем более высокого разрешения specular карты используются в игре. Влияние на производительность примерно такое же, что и у ранее рассмотренных настроек размера текстур.

Devlok
27.06.2007, 22:05
В общем, всё как обычно, чем менее мощная видеокарта установлена и меньший объем видеопамяти на ней присутствует, тем ниже должны быть выставлены эти три настройки разрешения текстур, производительность очень сильно зависит от них, причем важны как вычислительные возможности видеочипа, так и объем локальной видеопамяти. Даже если на карте стоит память большого объема, вроде 512 Мб варианта ATI RADEON X800 XL, мощностей видеочипа может не хватить для наложения всех текстур с приемлемой производительностью. А если выставить на карте с 128 Мб видеопамяти все текстурные настройки на максимум, то для значительной части ресурсов будет использоваться системная память, что вызовет неприятные проседания FPS во время игры, так как если в локальную память видеокарты все требуемые текстуры не входят, то при рендеринге каждого кадра их приходится запрашивать из системной памяти. В подобных случаях нужно снизить три настройки разрешения текстур или установить автоматический режим.
Приведу пример на основе одного из типичных уровней игры. При разрешении 1024x768, без использования антиалиасинга, но при прочих максимальных настройках, игрой используется до 250 мегабайт видеопамяти, если значения настроек Texture Resolution, Normal Map Resolution, Specular Map Resolution установлены в значение "Extra". При всех вышеперечисленных настройках, установленных в значение "High" используется уже всего 160 Мб видеопамяти, при настройках "Normal" - примерно 140 Мб, при наименьшем возможном "Low" - около 120 мегабайт. Если включить антиалиасинг уровня 4x, то получается примерно 280, 190, 165 и 140 мегабайт, соответственно для настроек: Extra, High, Normal и Low. Ну а выглядит игра на этих разных настройках качества текстур вот так:
http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_0_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_0.jpg) http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_1_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_1.jpg) http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_2_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_2.jpg) http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_3_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_textures_3.jpg)
Думайте сами, стоит ли прибавление в качестве картинки потерь в производительности для вас лично. А потери в скорости такие, что если среднее количество кадров в секунду в режимах всех текстурных настроек установленных в "Normal" принять за 100%, то в режимах Extra, High, Normal, Low в случае тестовой системы на базе ATI RADEON X1800 XL 256 Mb получается 72%, 97%, 100%, 103% соответственно. То есть, на тестовой системе оптимальными настройками размера текстур оказываются "High", на "Extreme" наблюдается слишком сильное падение производительности, а более низкие настройки ("Normal" и тем более "Low") не обеспечивают серьезного улучшения производительности. Ну а если вы не уверены в том, что правильно можете выставить текстурные настройки в игре, поставьте "Texture Quality" в "Automatic", игра сама подберет настройки под количество свободной видеопамяти, доступной на вашей системе.
Так как движок игры явно имеет отношение к графическому движку Quake, то и консольных команд в ней достаточно много. При помощи этих команд можно побороть интересный баг (проверялось только на версии 1.0) и слегка увеличить производительность. Для этого надо вызвать консоль, посмотреть и запомнить текущий уровень r_picmip. Затем, изменить эту настройку на любое другое значение (например, если r_picmip было равно "0", то поставить "1") и выполнить команду r_applypicmip. Затем выставить r_picmip обратно в нужное значение ("0" в нашем случае) и снова выполнить r_applypicmip. После этих действий количество кадров в секунду на многих системах несколько повышается, а качество изображения остается соответствующим начальным настройкам. Обратите внимание на цифры в левом верхнем углу у первого скриншота (до применения вышеописанных операций) и у второго. Качество текстур при этом, судя по всему, абсолютно одинаковое.
http://www.ixbt.com/video2/images/tech_cod2/cod2_bug_1_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_bug_1.jpg) http://www.ixbt.com/video2/images/tech_cod2/cod2_bug_2_small.jpg (http://www.ixbt.com/video2/images/tech_cod2/cod2_bug_2.jpg)
Относительно производительности остается добавить, что на тестовой системе все максимальные настройки играбельны только в режиме с включенным антиалиасингом уровня 2x и анизотропной фильтрацией 16x в разрешении 1024x768, для больших же разрешений и уровней антиалиасинга нужны более новые и производительные видеокарты: ATI RADEON X1900 XT, ATI RADEON X1800 XT и NVIDIA GeForce 7800GTX. А, к примеру, на средних сейчас системах с видеокартами уровня NVIDIA GeForce 6800GT и ATI RADEON X850 XT придется снизить некоторые настройки, а возможно даже отключить антиалиасинг или перейти в еще более низкое разрешение.

Devlok
27.06.2007, 22:21
не забывайте одну вещь.
у нас в нашем моде экстриме, много добавочных еффектов, так что ссылаца на эту статью от иксбити не совсем нужно но всеже она хоть дает разьяснение что да к чему.
вчера занялся своим конфигом и о боже мой ) теперь на дх9 летает под 60 кадров в мултике, что очень радует, конечно чего то не хватает но сейчас сижу вот и мучаю его доталава, глядиш найду идеальный вариант.

но всеже если играть в турнире то придеца ставить жх7 ) чтобы не тормозило а то все на свете проиграете :)

Devlok
28.06.2007, 01:56
а все таки, дурачки разрабы кода2, зачем было отказываться от openGL и ставить дх?
тупость. у ГЛ намного лучше оптимизация ну и мошнее он однако.

Виктор
28.06.2007, 09:00
нет, на OpenGL не все реализуемо.

F_Off
28.06.2007, 12:22
нифига себе 0_0 сколько инфы интересной! если б еще хоть половину понять написанного... =) хы знали бы вы на коком дравалете я CoD запускаю =)

Archi
28.06.2007, 14:12
athlon 3200, fx 7200, ddr 512.
разрешение 800х600, dx7, все значения на off и low
первые пять минут игры максимум 15-20 fps, возрастает медленно и доходит до максимум 80-90 fps при этом временами (в основном от дыма, взрывов и выстрелов) ощущаються значительные задержки кадров... играть практически невозможно.
о настройках более высокого разрешения и средних или максимальных параметров и речи быть не может!
буду очень признателен если поможете хоть немного улучшить качество игры :)

Devlok
28.06.2007, 21:49
athlon 3200, fx 7200, ddr 512.
разрешение 800х600, dx7, все значения на off и low
первые пять минут игры максимум 15-20 fps, возрастает медленно и доходит до максимум 80-90 fps при этом временами (в основном от дыма, взрывов и выстрелов) ощущаються значительные задержки кадров... играть практически невозможно.
о настройках более высокого разрешения и средних или максимальных параметров и речи быть не может!
буду очень признателен если поможете хоть немного улучшить качество игры :)

у меня 6600 ГТ АГП, 3400 пень, полтора гига памяти.
были аццкие тормоза, бывало даже на дх7
о настройках дх9 приходилось только мечтать.

вчера всетаки добил конфиг ну и сделал следушее, просто напросто удалил конфиги от сюда
H:\Games\Call Of Duty 2\extreme\players удалил эту папку
далее
H:\Games\Call Of Duty 2\main\default.cfg и default_mp.cfg удалил все что было внутри етих конфигов, сами их нельзя удалять иначе игра не запустится, и все запустил, игра нормально
определило железо, и теперь вы не поверите у меня на дх9 на полняках 60 кадров ) я рад что слов нету.
и все это было лиш потомучто когда меняеш железо игра сама не определяет его и приходитя удалять конфиги. чтобы она заново все сделала.
тока разрешения выставил 800 на 600 и вроде все ок :)

FlayedOnce
29.06.2007, 05:47
Гы у вас с такими компами на директ 7 лагает???
Fx 5700
Pentium 4 3.0gh
1g ram
И у меня все нормально без тормозов играет. (а вот при дыме и прочих спецэффектах ппц)

Papay
29.06.2007, 11:03
П4 2800 1ГБ 6800 гт dx7 90-125 fps
почти всегда 125, только когда дым, бывает 70