Итак... оптимизация нужна я думаю для тех, у кого работает хреново:
Основными проблемами пользователей в онлайн-играх типа DoDS являются, разумеется, отсутствие достаточно мощного железа и отсутствие же стабильной высокоскоростной связи (как правило решение этих вопросов также упирается в отсутствие денег smile
вообще dod:s это:
Этап первый - моделирование. Здесь задействованы центральный процессор и оперативная память, изредка используются расчетные возможности видеоускорителя. Все объекты, будь то элементы местности, предметы или фигуры игроков, должны быть привязаны к системе координат и сориентированы в игровом пространстве, проверяется физика (столкновения игроков с предметами и между собой, влияние ветра на подвижные объекты вроде висящих проводов и тд). Все расчеты ведутся в векторном виде (каждый объект как набор ящиков - boxes), без учета перекрытия объектов. То есть если вы стоите и тупо пялитесь в стенку, за которой идет настоящая баталия, процессор все равно просчитывает все, что находится в "поле зрения" (и даже немного больше) как бы просвечивая рентгеном, почему - увидим дальше.
Второй этап - просчет непосредственной видимости объектов (vertex shading). Все векторные объекты обретают объем с помощью треугольников, образующих поверхность - их называют вершинами (от английского термина vertex - угол, вершина). При этом учитывается, видны ли вершины пользователю или перекрываются самим объектом. То есть вершины, расположенные сзади не прорисовываются, вершины, перекрытые частично, разбиваются на более мелкие и прорисовывается только часть из них. Этим занимается как правило видеокарта, если она этого "не умеет", то задача ложится на процессор.
Третий этап - наложение текстур и просчет освещения (rendering, pixel shading). Собственно здесь пиксели изображения и приобретают свой цвет. При этом происходит как бы "натягивание" материи текстур (часто - одновременно наложение нескольких) на каркасы объектов. Кроме того, на данном этапе учитывается глобальное и локальное освещение, влияющее в итоге на яркость каждого пикселя. Важным моментом является предварительный просчет "глубины" - пиксели, находящиеся ближе к зрителю "перекроют" пиксели в глубине. Возвращаясь к нашему примеру со стеной - здесь у нас будет большая экономия времени расчета, поскольку прорисовка "невидимых" пикселей не производится, но при этом мы видим к примеру отсветы вспышек выстрелов и дым пролетающих гранат базуки. "Прорисовывание" пока что происходит только в особой области памяти - фреймовом буфере. Наиболее сложный этап, практически всегда необходимо использование специфических свойств видеоускорителя. Некоторые операции может выполнять центральный процессор, но либо очень упрощенно, либо очень медленно.
Четвертый этап - наложение фильтров и эффектов (pixel shading). Здесь происходит пост-обработка изображения, на уже целиком сформированную картинку накладываются различные эффекты освещения (гамма-коррекция, слепящие блики) или эффекты связанные с геймплеем (размытие при контузии, эффект старого кино после смерти). Используется, аналогично предыдущему этапу, видеоускоритель либо - в редких случаях - процессор.
переходим к оптимизации конфига. Следует твердо уяснить, что волшебных настроек не бывает, повышение комфортности игры непременно ведет к понижению других характеристик, например качества звука или изображения. Поэтом большинство "безопасных" настроек, дает также и минимальный эффект. В какой-то мере "волшебными" можно считать следующие команды-переменные:
r_mmx "1"
r_sse "1"
r_sse2 "1"
r_3dnow "1"
Они активизируют так называемые "мультимедийные" наборы команд центрального процессора и соответственно обеспечивают некоторое ускорение стандартных 3D-функций. Заметного на глаз прироста скорости ожидать правда не приходится (тем более что вполне возможно, что они уже были включены автоматически), но как и последующие команды, они как минимум не помешают.
commentary "0"
//commentary "1"
"0" отключает показ сопроводительного комментария (на тех картах, где он есть).
cl_dynamic_crosshair "0"
//cl_dynamic_crosshair "1"
"0" отключает динамически расширяющийся при стрельбе прицел, который все равно только сбивает с толку (можно также отключить и через меню).
На этом с волшебством, пожалуй, покончено. Займемся прозой жизни. DirectX
Каждый игрок, пусть он хоть какой "чайник" в компьютерных технологиях, хоть краем уха да слышал что вот мол бывают видеокарты с DirectX8, а бывают 9, а то и все 10. Чем больше, тем лучше... Лучше то оно лучше, но чем? Не будем вдаваться в историю трехмерных игр и видеокарт, при желании все можно найти в поисковиках, остановимся сразу на главном. DirectX - это набор стандартных функций, необходимых для просчета трехмерного изображения. С развитием техники, набор этих функций расширялся и соответственно выходили новые версии DirectX. Насколько тот или другой видеочип поддерживает "железное" исполнение этих функций как раз и определяется номером версии DirectX (кроме того существует альтернативный стандарт OpenGL, но он не получил такого широкого распространения и в последние годы практически не поддерживается производителями игр).
Короткий обзор версий DirectX и поддерживающих их видеокарт:
DirectX6 - истинный динозавр, встречается едва ли. Видеокарты на Nvidia TNT2 и Matrox G400.
DirectX7 - версия с минимумом необходимых DoDS функций. Типичные видеокарты - с чипами Nvidia GeForce 256, Nvidia GeForce 2, Nvidia GeForce 2/4MX, ATI Radeon 7000й серии.
DirectX8 - основательно расширен набор функций для работы со светом (тени, отражения, блики). Видеокарты Nvidia GeForce3,GeForce4 Ti и ранние GeForce FX 5000й серии.
DirectX8.1 - более стабильная чем предшествующая версия, добавлены некоторые функции динамических теней. Видеокарты на Nvidia GeForce FX 5700-5900 и серии ATI Radeon 8500, ATI Radeon 9000-9200.
DirectX9 - наиболее продвинутая из стабильных версий, добавлены функции просчета сложных эффектов освещения, продвинутые алгоритмы текстурирования, в том числе и псевдообъемного, улучшена прорисовка воды. Видеокарты на Nvidia GeForce 6600-6800, GeForce 7000й серии, ATI RADEON 9500-9800, X300-X800.
DirectX10/10.1 (не поддерживается графическим движком Source) - последняя версия, упор сделан на увеличение детализации и реалистичности анимированных изображений, доступна только для Windows Vista и видеокарт нового поколения: ATI Radeon HD2000й серии и выше, Nvidia GeForce 8000й серии и выше.
К чести разработчиков надо заметить, что они попытались оптимизировать параметры видео при установке игры - рекомендованные настройки графики, с учетом имеющегося оборудования и драйверов DirectX, будут помечены звездочкой (*). Однако же, если видеокарта поддерживает скажем только функции директ-икс 8, игра не будет автоматически отключать недоступные возможности, а возложит просчет недостающих эффектов на центральный процессор (так называемый программный уровень директ-икс). Как результат - подтормаживания в игре.
Если у вас видеокарта с директ-икс поколения 8 или даже 7, очень полезно задать в конфиге соответствующее ограничение:
mat_dxlevel "81"
//mat_dxlevel "80"
//mat_dxlevel "70"
Параметром, как можно догадаться, служит необходимая версия, умноженная на 10, по умолчанию -"90" (есть также версия "95" для самых последних вариантов DirectX9). Альтернативой может стать добавление соответствующей опции в строку запуска:
<Диск>:\Program Files\Steam\Steam.exe -applaunch 300 -dxlevel 81
Еще один вариант - активировать поддержку OpenGL, в движке Source она есть но только как часть строки запуска:
<Диск>:\Program Files\Steam\Steam.exe -applaunch 300 -gl
Как правило именно эти настройки дают самый ощутимый прирост fps, зачатую возможна также комбинация обоих команд с положительным эффектом.
Для владельцев директ-икс 9 снижение версии как правило особого смысла не имеет. Оправдаться это может только в том случае, если видеокарта поддерживает DirectX9 только номинально, на бумаге, а в действительности с вычислениями расширенных функций лучше справляется достаточно быстрый процессор. В противном случае (поскольку драйвера DirectX в операционной системе как правило версии 9c) процессор будет перегружен, и конечный результат может оказаться прямо противоположным - появятся лаги.
ОСВЕЩЕНИЕ И ТЕКСТУРЫ
Эффекты HDR видны только на тех картах, где включена их поддержка, что может привести к проседанию fps на слабых машинах на картах от Valve и многих "турнирных" картах. Отключить HDR можно либо в меню, либо прописав в конфиге:
mat_hdr_enabled "0"
mat_hdr_level "0"
или оставить только наиболее заметный эффект bloom:
mat_hdr_enabled "1"
mat_hdr_level "1"
//mat_hdr_level "2"
Блум - это эффект очень яркого света, проявляющийся в виде свечения вокруг ярких поверхностей, после применения bloom фильтра такие поверхности не просто получают дополнительную яркость, свет от них (ореол) частично воздействует и на более темные области, соседствующие с яркими поверхностями в кадре. Этот эффект также присутствует и в режиме LDR, хотя и в гораздо меньшей степени. Его можно выключить командой:
mat_bloom "0"
//mat_bloom "1"
Бампмэппинг (bumpmapping) - это техника симуляции неровностей (или моделирования микрорельефа, как больше нравится) на плоской поверхности без больших вычислительных затрат и изменения геометрии. Бликовая (specular) составляющая освещения проявляется в бликах отражения лучей света от поверхности. Используется как правило вместе с бампмэппингом. Эффект красивый, но в принципе без него можно обойтись. Поддерживается начиная с DirectX8, отключение как правило дает некоторую разгрузку ЦПУ.
Отключаем бампмэппинг:
mat_bumpmap "0"
mat_fastnobump "1"
mat_specular "0"
mat_fastspecular "1"
Очень приличную нагрузку обеспечивает графической подсистеме расчет динамических теней. Часто отключение теней, отбрасываемых объектами и моделями приносит хорошие плоды. К тому же, отключение динамических теней не слишком сказывается на качестве картинки:
r_shadows "0"
r_shadowrendertotexture "0"
//r_shadows "1"
//r_shadowrendertotexture "1"
Несколько менее эффективно действует отключение динамического освещения (отсветы от объектов):
r_dynamic "0"
//r_dynamic "1"
и отключение отсветов от выстрелов (но не самих вспышек):
cl_muzzleflash_dlight_1st "0"
cl_muzzleflash_dlight_3rd "0"
muzzleflash_light "0"
//cl_muzzleflash_dlight_1st "1"
//cl_muzzleflash_dlight_3rd "1"
//muzzleflash_light "1"
Команды работы с текстурами:
mat_mipmaptextures "0"
//mat_mipmaptextures "1"
- отключает механизм компенсации качества текстур на удалении от поверхностей.
mat_picmip "2"
//mat_picmip "1"
//mat_picmip "0"
- понижение качества текстур, сильно ухудшающая картинку мера. Параметр "2" переключает качество отображения текстур на низкое (работает также через меню игры), "1" - на среднее, "0" - высшее. Низкое качество оправдывает себя как правило только на видеокартах с маленьким объемом памяти (128, или даже скорее 64 Мб).
Для экономии видеопамяти лучше применять компрессию текстур - тогда они не так искажаются и при этом занимают меньший объем:
mat_compressedtextures "1"
//mat_compressedtextures "0"
данный материал честно спиззжен xD с сайта http://ironrats.clan.su
данный материал с картинками и более полными пояснениями можно посмотреть по ссылке http://ironrats.clan.su/publ/3-1-0-48