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% между отключенными динамическими источниками освещения и максимальным их количеством. Возможно, на менее мощных видеокартах разница будет большей, поэтому пользователям лучше самим найти необходимый баланс на их собственной системе.
Графическим движком игры используются шейдерные программы, написанные на 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% между отключенными динамическими источниками освещения и максимальным их количеством. Возможно, на менее мощных видеокартах разница будет большей, поэтому пользователям лучше самим найти необходимый баланс на их собственной системе.