[an error occurred while processing this directive]
[an error occurred while processing this directive]


Справочник по настройке 3D-акселератора
Максим Потапов, Сергей Светличный
Домашний ПК #4, Апрель 2000

Этот краткий путеводитель по дебрям "трехмерной" терми нологии предназначен для максималистов, желающих выжать из своих компьютеров все, на что он способен. Приобретая сегодня видеоадаптер, любой пользователь сталкивается с большим количеством новых терминов. Сразу бросаются в глаза рекламные надписи на коробке, которые изобилуют загадочными словами вроде Texel, Z-buffer, Trilinear Filtering, Anti-Aliasing и т. п. Одна мысль о том, что во всем этом надо будет разбираться, противоречит самой идее приобретения 3D-акселератора -- для отдыха, развлечения. Вновь обратить внимание на инженерные тонкости нам приходится уже в процессе эксплуатации, когда мы из любопытства добираемся до дополнительных настроек драйвера видеоплаты или заходим в меню Options большинства трехмерных игр. Можно, конечно, попробовать разобраться во всех этих функциях методом "тыка" -- включать, выключать и тут же проверять, как это отразилось на производительности либо на качестве изображения. Но такой метод неприемлем для большинства пользователей, да и, в конечном счете, не раскрывает сущности настроек.

Производители делают все возможное, чтобы игры и компьютер "дружили по умолчанию", т. е. без нашего вмешательства. Но если этого не происходит (либо мы хотим сами отрегулировать качество и производительность), -- тогда добро пожаловать в мир advanced users, а точнее, подготовленных пользователей. А что, собственно, подразумевается под понятием подготовленности? Понимание специфик 3D-акселерации и умение управлять адаптером и "выжимать" из него максимальное качество изображения, либо максимальную производительность, либо же находить оптимальный баланс первого и второго.

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

В основной части нашего справочника рассказывается о том, как влияет активизация различных опций на качество изображения и производительность. Под производительностью, или быстродействием, мы подразумеваем в данном случае количество кадров в секунду (fps -- frames per second). Если в названии настройки либо в комментарии к ней встречаются незнакомые вам термины, обращайтесь ко второй части материала, где дан толковый словарь с иллюстрациями. Для пользователей, особо остро ощущающих нехватку производительности в играх жанра 3D-action, мы привели небольшие рекомендации по настройкам Unreal Tournament и Quake III Arena.

Для доступа к перечисленным далее настройкам необходимо воспользоваться специальной пиктограммой в system tray или же открыть раздел Advanced Options по адресу Start/Settings/Control Panel/Display/Settings (Пуск/Настройка/Панель управления/Экран/Настройка). Драйверы большинства видеоплат дают возможность сохранять индивидуальные профили устройства для любой игры (с помощью опции Custom Settings), так что, в конечном счете, для каждого конкретного случая вы сможете задать те параметры, которые позволяют добиться желаемого соотношения качества/производительности.


NVidia Riva TNT/Riva
TNT2/GeForce 256


Драйверы для всех видеокарт с чипсетами от NVidia поставляются в одном "флаконе". Но здесь есть один нюанс -- для видеоплат на базе TNT/TNT2 самой удачной их версией считается Detonator 2.17 -- во всех последних его релизах (Detonator 3.x) работы велись только над поддержкой GeForce 256.


Раздел OpenGL

Enable Buffer Region Extension -- включение режима, увеличивающего производительность приложений трехмерного моделирования (например, Kinetix 3D Studio MAX); для игр эта функция значения не имеет.

Allow the dual planes extension to use local video memory -- активизируется лишь при задействованном Buffer Region Extension.

Use fast linear-mipmap-linear filtering -- включение этой функции ведет к увеличению fps и некоторому ухудшению качества изображения.

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

Enable alternate depth buffering technique -- переключение на более детальную, но медленную технику Z-буферизации при 16-битовой глубине изображения. Так как ощутимых визуальных эффектов это не дает, опцию лучше оставить выключенной.

Disable support for enhanced CPU instruction sets -- отключение поддержки расширенных инструкций процессоров -- 3DNow! и SSE. Имеет смысл лишь для проведения тестов и поиска причины некорректной работы видеоплаты.

Default color depth for textures -- при выборе Use desktop color depth акселератор всегда будет использовать ту глубину цветности, которая установлена для Рабочего стола Windows. Варианты Always use 16 bpp и Always use 32 bpp заставят приложения работать в 16- или 32-битовом режиме соответственно. 16-битовый цвет проигрывает по качеству изображения, но дает выигрыш в производительности (иногда весьма ощутимый).

Buffer flipping mode -- выбор режима переключения буферов кадров для полноэкранных приложений под OpenGL. Здесь можно выбрать методы Block transfer, Page flip или Auto-select. Последний позволяет драйверу самому определять наилучший режим работы и является, на наш взгляд, оптимальным.

Vertical sync -- указывает, как будет осуществляться вертикальная синхронизация при запуске приложения под OpenGL: Always off -- во всех приложениях вертикальная синхронизация отключена; Off by default -- выключено по умолчанию, но может изменяться из приложения; On by default -- включено по умолчанию с возможностью отключения средствами приложения.

Use up to 1--6 MB of system memory for textures in PCI mode -- эта опция позволяет графическому процессору использовать системную память для хранения текстур -- если у вас PCI-адаптер (или AGP-плата, работающая в режиме PCI), то в зависимости от объема оперативной памяти вы можете установить больший или меньший ее размер, доступный акселератору.



Раздел Direct3D

Enable fog table emulation -- этот режим обеспечивает совместимость с некоторыми старыми играми, его активизация существенных потерь в быстродействии не влечет.

Adjust Z-buffer depth to rendering depth if unequal -- вынуждает акселератор автоматически устанавливать разрядность Z-буфера равной используемой глубине цвета. Эту опцию лучше оставить включенной.

Enable alternative depth buffering technique -- применение альтернативного механизма буферизации в 16-битовых приложениях приводит к незначительному улучшению качества изображения и снижению fps, в связи с чем эту опцию включать не стоит.

Automatically generate 1--12 mipmap levels -- графический процессор может автоматически генерировать mipmap-уровни, что приводит к росту быстродействия. Если в изображении не возникают дефекты, это значение следует установить на максимум.

Auto-mipmap method -- из двух имеющихся методов 8-tap anisotropic mipmapping дает лучшее качество изображения, в то время как bilinear увеличивает производительность.

Mipmap detail level -- эта опция позволяет установить детальность mipmap-уровней. Можно выбрать из пяти вариантов: от наилучшего качества -- Best Image Quality, до наивысшей производительности -- Best Performance.

Texel Alignment -- регулировка местоположения тексела дает возможность избавиться от таких дефектов, как "швы" между текстурами.



ATI Rage Fury/128 Pro/MAXX
Раздел OpenGL

Для облегчения настройки в разделе OpenGL имеются две кнопки: Quality и Performance. Выбор одной из них вызовет оптимальный набор установок для повышения качества или быстродействия приложений.

Convert 32-bit textures to 16-bit -- преобразование 32-битовых текстур в 16-битовые может увеличить производительность некоторых игр, но снизить при этом качество изображения.

Enable KTX buffer region extension -- активация данного режима увеличивает быстродействие приложений трехмерного моделирования.

Enable page flipping -- включение этой опции дает прирост быстродействия в полноэкранных играх.

Force 16-bit Z-buffer -- установка 16-битовой разрядности Z-буфера для всех приложений незначительно ухудшит качество картинки, но увеличит быстродействие.

Disable dithering when alpha blending -- опция полезна для устранения некоторых дефектов изображения, возникающих в случае одновременного использования dithering и alpha blending.

Subpixel Precision -- выбор больших значений приводит к повышению качества картинки, но может повлечь за собой небольшое снижение производительности.

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

Wait for vertical sync -- включение вертикальной синхронизации снизит fps, но и предотвратит возможные разрывы в изображении.

Level of Detail -- установка Sharp (в противовес Fuzzy) повысит детализацию изображения.



Раздел Direct3D

Enable anti-aliasing -- включение этой функции приведет к сглаживанию границ объектов, но значительно снизит производительность.

Use Palette based textures -- вследствие снижения скорости включать этот режим следует лишь в том случае, если игра не может использовать другие форматы текстур.

Supported Z-buffer bit depths -- рекомендованная величина -- 32 бита. Если при такой разрядности приложение не будет работать нормально, следует уменьшить это значение.


Voodoo3 2000/3000/3500

Установки качества изображения Image Quality Settings влияют на режимы Desktop, Direct3D, Glide/OpenGL, Video Overlay и позволяют настроить следующие параметры:

Alpha-blending -- установки для графики, использующей alpha-blending: Smoother -- "сглаживание" изображения; Sharper -- увеличение детальности; Automatic -- автоматический режим для достижения высокого качества изображения.

Video Display -- вы можете установить требуемое соотношение качество/производительность видеоподсистемы в целом: Normal -- максимальная скорость рендеринга; High -- лучшее качество изображения; Automatic -- автоматический режим.


Раздел Glide/OpenGL

Disable the splash screen -- отключение логотипа 3dfx, показываемого перед запуском игры.

Force mipmap dithering -- включение этой опции приведет к улучшению визуального качества вместе с незначительным снижением скорости рендеринга.

Limit texture memory to 2 MB -- резервирование 2 MB текстурной памяти, что необходимо для нормальной работы старых игр. Если ошибок в играх не наблюдается, опцию рекомендуется не включать.

Force triple buffering -- тройная буферизация в некоторых случаях приводит к увеличению производительности. В играх, не совместимых с данным режимом, могут появиться визуальные дефекты.

Для пользователей 3dfx Velocity 100: следующая настройка позволяет добиться повышения быстродействия видеоплаты до 50% в режимах Glide и OpenGL.

Запустите редактор системного реестра (для этого в окне Start/Run следует набрать regedit и нажать OK). Затем в левом окне найдите раздел HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\ Class\Display\0000\Glide, где 0000 соответствует адаптеру Velocity 100 (т. е. может быть 0001, 0002 и т. д.). Далее создайте в указанном разделе строковый параметр (String value) с именем FX_GLIDE_ NUM_TMU, для чего необходимо щелкнуть правой кнопкой мыши по правому полю редактора и выбрать New\String value. Затем щелкните уже по этому параметру и выберите Modify. В появившемся окне наберите "2" (без кавычек) и нажмите OK, после чего закройте редактор и перезагрузите систему.



Matrox G400/G400MAX

Драйверы этой видеоплаты содержат весьма ограниченное число настроек:

Use polygon acceleration -- включение аппаратного ускорения для прорисовки сложных полигональных объектов. Если графическое приложение сбоит, отключите эту опцию.

Use device bitmaps caching -- аппаратное ускорение кэширования bitmap-изображений в графической памяти.

Use bus mastering -- включение режима приводит к повышению производительности большинства приложений. Если вы используете аналоговый джойстик и в программах под DirectX появляются искажения изображения, эту опцию следует отключить.

Use 32-bit Z-buffering -- в сравнении с традиционным 16-битовым Z-буфером 32-битовый повышает точность вычисления расстояний до объектов, но снижает fps.

Enlarge mouse pointer -- увеличивает размер курсора мыши в два раза.

Use hardware to draw color mouse pointer -- включение аппаратной поддержки курсора мыши.

Для доступа к другим установкам придется воспользоваться специальной утилитой, например G400 Tweak, которую можно загрузить по адресу home.thezone.net/~bm/myfiles.html. С ее помощью настраиваются следующие параметры.

Anisotropic Filtering -- улучшает качество изображения, но снижает производительность.

Anti-aliasing -- эффект сглаживания границ объектов с некоторым падением быстродействия.

Bump Mapping -- включение bump mapping позволяет видеть особые спецэффекты ("объемные" текстуры, такие, как рябь на воде) в играх, поддерживающих эту функцию. Однако это весьма дорогое удовольствие в смысле снижения скорости.

D3D Vsync -- включение/отключение вертикальной синхронизации в Direct3D-играх.

Palletized Textures -- использование палетизированных тестур.

Sub Pixel Accuracy -- увеличение точности прорисовки объектов с небольшим падением производительности.

Triple Buffering -- режим тройной буферизации может привести не только к повышению производительности, но и к визуальным дефектам в некоторых играх.

Write Combining -- увеличивает скорость обмена данными с видеоплатой за счет использования специальных функций процессора.

Use 3DNow! -- поддержка специальных инструкций процессоров от AMD для повышения производительности.



Терминологический словарь

Alpha Blending (альфа-смешивание) -- используется для создания прозрачных объектов (стекла, воды и т. д.).

Anti-Aliasing -- сглаживание. Пикселы имеют довольно большие линейные размеры, поэтому наклонные линии отображаются в виде "лесенок", где ступеньками выступают эти самые пикселы. Для борьбы с таким неприятным эффектом и используется Anti-Aliasing, который изменяет цвет близлежащих точек, -- например, для черной линии на белом фоне граница окрашивается в "усредненный" серый цвет (обратите внимание на "ступенчатую" мачту при отключенном Anti-Aliasing (рис. 1, а, б).

Рис. 1, а. Cглаживание выключено
Рис. 1, б. Cглаживание включено

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

Bilinear Filtering -- билинейная фильтрация. Метод фильтрации текстур, когда для определения характеристик пиксела применяются значения четырех текселов, взятых "крестом" из овала, образующего световое пятно. Недостатком данного метода можно назвать появление четкой границы между двумя уровнями MIP-текстуры (рис. 2, а).

Buffer Flipping -- переключение между передним и задним буферами кадров (см. Double Buffer). В настройках драйверов под этим термином подразумевают способ передачи -- страницами (page flipping, при котором буферы просто меняются местами) или побитовыми блоками (blitting -- bit-block transfer, когда данные передаются из back buffer во front buffer). Первый вариант дает большую производительность, но при отключенном VSync может привести к ухудшению изображения.

Рис. 2, а. Билинейная фильтрация
Рис. 2, б. Трилинейная фильтрация
Buffer Region Extension -- область памяти, выделяемая при работе с OpenGL-приложением (обычно САПР) для хранения данных об объектах, отображаемых в окнах просмотра проекций, и используемая для обновления изображения при изменении сцены. На игры никакого влияния не оказывает.

Dithering -- сглаживание переходов. Способ увеличения глубины цвета (при 16-битовом рендеринге), при котором недостающие цвета получаются путем смешения имеющихся в палитре. Таким образом удается сгладить переходы между полутонами, однако в итоге некоторые спецэффекты (туман, дым) приобретают неприятную зернистость (рис. 3, а, б).

Double Buffering -- двойная буферизация кадра. Используется для придания движущемуся изображению плавности. При двойной буферизации в видеопамяти для хранения изображения отводятся две области -- пока картинка из первой (Front Buffer) выводится на экран, во второй (Back Buffer) тем временем происходит рендеринг следующего кадра.

Dual-Planes Extensions -- в САПР позволяет манипулировать объектом в сложной сцене так, будто он является единственным в этой сцене.

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

Fog Table Emulation -- эмуляция табличного тумана. В отличие от вертексного, при котором рассчитываются значения только для вершин треугольников (вертексов) с последующей интерполяцией полученных данных по всем пикселам, использование Fog Table подразумевает вычисление значения тумана для каждого пиксела отдельно. Этот эффект одними производителями 3D-чипсетов поддерживается на аппаратном уровне, а остальными -- программно, и из-за такой "путаницы" некоторые старые игры могут выполняться неправильно. Для исправления подобной ситуации и применяется принудительная эмуляция табличного тумана.

Linear-Mipmap-Linear Filtering (Trilinear Filtering) -- трилинейная фильтрация. Метод фильтрации текстур, когда для определения характеристик текущего пиксела используется усредненное значение восьми текселов -- по четыре из двух соседних MIP-уровней. Таким образом удается избавиться от резкой границы между двумя текстурами различной степени детализации (рис. 2, б).

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

Рис. 3, а. 32-битовая глубина цвета
Рис. 3, б. 16-битовая глубина цвета (dithering вкл.)
Palette based textures -- палетизированные текстуры, представленные, как правило, в 8-битовом формате вместо 16- или 32-битового, благодаря чему удается уменьшить используемый объем видеопамяти. Однако применение Palette based textures приводит к ухудшению качества изображения и падению производительности -- акселератору приходится "на лету" обрабатывать текстуры.

Pixel -- пиксел. Наименьший элемент экрана, с помощью которого и формируется изображение.

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

Texel -- тексел. Минимальный элемент текстуры (рисунка, накладываемого на полигон), точка на ее поверхности.

Triple Buffering -- тройная буферизация кадра. Этот режим аналогичен Double Buffering, с одной лишь разницей -- в нем используются не два буфера, а три.

VSync, Vertical Sync -- синхронизация обновления экрана с частотой кадровой развертки монитора. При включении этого режима 3D-акселератор начнет выводить очередной кадр только при обратном ходе луча, что позволит избежать разрывов в изображении. Если этот параметр отключить, то на экране одновременно могут отображаться части различных кадров, из-за чего при быстром перемещении игрока картинка становится "слоистой". Раньше выключение VSync приводило к заметному росту производительности, однако сейчас, с использованием тройной буферизации кадров, выигрыш в скорости оказывается минимальным.

Z-buffer -- часть видеопамяти, в которой хранятся расстояния до всех видимых пикселов, находящихся в кадре. С его помощью определяется, какая из перекрывающихся точек находится ближе всего к наблюдателю. Разрядность Z-буфера сказывается на качестве изображения.


Оптимизация Quake III Arena

Во-первых, установите переключатель Graphic Settings, находящийся в меню Setup -- System, в положение Fastest -- игра сама выставит необходимые опции.

Если этого недостаточно, придется перейти к ручной правке. Следующим параметрам присвойте соответствующие значения:


Меню System:

Texture Detail -- крайнее левое положение;
Texture Quality -- 16 bit;
Lighting -- Vertex (сильное ухудшение качества, но прирост производительности достаточно высок).


Меню Game Options:

Marks On Wall = off (следы от выстрелов на стенах);
Ejecting Brass = off (выброс гильз);
Dynamic Lights = off (отсветы от взрывов и других светящихся движущихся объектов);
High Quality Sky = off;
Sync Every Frame = off.


Следующая стадия -- правка файла настроек. Для этого необходимо открыть файл q3config.cfg и исправить там следующие строки:

seta cg_shadows “0”;
seta cg_gibs “0”;
seta r_drawSun “0”.


Конечно, в итоге по качеству изображения игра будет больше походить на Quake II, однако скорость вырастет на порядок.


Оптимизация Unreal Tournament

Для ускорения запуска игры следует открыть файл Unreal Tournament.ini, найти в нем строку LocalMap=CityIntro.unr и заменить ее на LocalMap=UT-Logo-Map.unr.

Основные настройки игры находятся в меню Advanced Options, для вызова которого необходимо в консоли ввести команду Preferences.


Раздел Display:

CurvedSurfaces = False;
Decals = False (эффект незначительный);
NoDynamicLighting = True (эффект незначительный);
NoFractalAnim = False (актуально для OpenGL и в меньшей степени для Direct3D);
NoLighting = True (очень сильное увеличение производительности, однако качество при этом также серьезно ухудшается);
SlowVideoBuffering = False (True при использовании программного рендеринга);
TextureDetail = Low.


Раздел Direct3D:

Coronas = False;
Detail textures = False;
Shiny surfaces = False;
UsePreCache = False (ускоряет загрузку уровня);
UseTrilinear = False (особенно для карт с памятью меньше 16 MB);
VolumetricLighting = False (сильный эффект).

[an error occurred while processing this directive]

[an error occurred while processing this directive]