- Управление шиной (bus mastering)
- Наложение текстур с коррекцией перспективы (perspective-correct texture mapping)
- Освещение (lighting) и затенение (shading)
- Прозрачность текстур (texture transparency)
- Аппаратный Z-буфер
- Оптимизированные текстуры (Palletized textures)
- Многоуровневые текстуры (MIP mapping)
- Использование "тумана" (Fogging)
- Смешивание текстур (Blending)
Современные трехмерные графические процессоры и акселераторы
Трехмерная графика и виртуальная реальность всегда притягивали пользователей персональных компьютеров. Даже первые авиасимуляторы, созданные с использованием простейшей векторной графики, подстегивали нашу фантазию. В них из "кабины" F-117 открывался вид не на трехгранные холмы среди бескрайней одноцветной равнины, а на реалистические пейзажи неведомых стран. И лишь "милитаристская окраска" происходящего мешала испытывать эстетическое наслаждение.
В последнее время появилась возможность воплотить самые смелые замыслы. Первые примеры применения новых аппаратных технологий и программных средств (DirectX для Windows 95, технологии MMX) демонстрируют очень обнадеживающие результаты. Не секрет, что потребность во все возрастающей мощности ПК диктуется не базами данных, электронными таблицами и текстовыми процессорами, а объектами совсем иной природы - играми. Известно, что производительность компьютера определяет самый медленный его компонент. Поэтому, если говорить о конфигурации "компьютера мечты", то кроме Pentium MMX, соответствующего объема ОЗУ (минимум 32 Мбайт), быстрого жесткого диска и 8Х-дисковода CD-ROM (большая скорость является пока, на мой взгляд, излишней), необходимы как минимум три важных компонента. О первых двух догадаться легко - это звуковая плата и графический адаптер. А вот манипуляторы (джойстики) многие считают недостойными упоминания, хотя зря. В журнале "Мир ПК" #1/97 мы рассказывали о новых звуковых платах, теперь пришел черед графических адаптеров, а позже мы поговорим и про современные манипуляторы.
Основные требования к графическому адаптеру
Если вы захотите купить новый графический адаптер и посетите компьютерный магазин, то с удивлением обнаружите, что с той поры, когда магических слов "SVGA 512 Кбайт" или "SVGA 1 Мбайт" было достаточно для принятия решения, многое изменилось. И первое, что вам бросится в глаза на красочных коробках новых графических плат, - это неизменное упоминание о трехмерной графике и символы "3D". Попробуем разобраться, для чего нужны трехмерные акселераторы, оправдана ли их цена и какой в конце концов выбрать.
Первое и самое главное, что необходимо определить, - это назначение нового графического акселератора. Профессиональные системы для создания трехмерной анимации и графики мы обсудим по итогам выставки "Аниграф'97", а сегодня поговорим о домашних мультимедиа-системах. Здесь необходимо учесть следующие критерии:
1. Достаточна ли скорость акселератора и насколько хорошо он работает в DOS и Windows 95?
2. Какие разрешения он поддерживает, какова его цветовая палитра и частота регенерации изображения?
3. Если речь идет о работе в среде DOS, то имеется ли поддержка стандарта VESA, а лучше VESA 2.0?
4. Если речь идет о работе в среде Windows 95, то имеются ли драйверы, поддерживающие стандарт DirectX, с качественным ускорением воспроизведения AVI- и MPEG-видео?
5. Имеются ли аппаратные функции ускорения трехмерной анимации? Каковы качество и скорость прорисовки текстур и трехмерных объектов?
На первый вопрос трудно ответить однозначно. До сих пор не существует общепринятого теста на оценку производительности и функциональных возможностей графических адаптеров. Наибольшее распространение получила программа WinBench, ссылки на которую чаще всего приводятся в рекламных материалах и различных статьях. Но даже ей нельзя полностью доверять, так как разные версии программы выдают разные результаты. К тому же многое зависит от конфигурации компьютера, операционной среды, самого графического адаптера (объема памяти, его RAMDAC) и драйверов. Оперируя этими переменными, легко получить неверные показатели. Поэтому имеет смысл внимательно изучить техническую документацию на графическую плату, узнать у других пользователей их впечатления и проконсультироваться у специалистов. Очень важна репутация фирмы-изготовителя - всегда лучше выбирать графический адаптер с утвердившимся brand-name (см. обзор современных графических акселераторов в журнале "Мир ПК", #11-12/96).
Относительно поддерживаемых разрешений надо иметь в виду следующее. Практически все современные акселераторы работают в графических режимах до 1600x1200 (хотя столь высокие разрешения не нужны для домашних мультимедиа-систем и требуются в основном для работы с профессиональной графикой). Что касается цветовой палитры (разрядность цвета) и частоты регенерации изображения (развертка), то они зависят в первую очередь от объема памяти, а также от разрешения и возможностей RAMDAC. Минимум для современных условий - 2-Мбайт ОЗУ, но если вы хотите реально использовать функции трехмерного ускорения, то лучше сразу ориентироваться на 4 Мбайт, благо микросхемы памяти сейчас сильно упали в цене.
Другое простое, но важное правило заключается в том, что графическая плата должна соответствовать вашему монитору. Необходимо учитывать спецификации на поддерживаемое максимальное разрешение и частоту развертки. Не покупайте графический адаптер профессионального уровня, если ваш монитор не обеспечивает разрешение хотя бы 1280x1024 при частоте регенерации 75 Гц. В наши дни задача несколько упростилась, так как введены новые спецификации DDC (VESA Display Data Channel), позволяющие совместимым устройствам (монитору и графическому адаптеру) автоматически подстраиваться друг к другу и работать при наилучших комбинациях разрешения и частоты развертки. Но подбор оптимальной пары "монитор-адаптер" все равно остается за вами.
Современные мониторы могут работать при разрешении 1600x1200 с частотой регенерации до 85 Гц. Для большинства пользователей 15-дюймовых мониторов достаточно, чтобы система поддерживала режимы 800x600 и 1024x768 при 24-разрядной глубине цвета (16 млн. цветов) с частотой регенерации в 75-85 Гц. Это даст некоторую гарантию, что вы не испортите зрение, проводя долгие часы перед компьютером. Безусловно, современный монитор просто обязан иметь цифровые настройки. И позаботьтесь о том, чтобы дисплей соответствовал стандарту MPR-II, а еще лучше рекомендациям TCO-95.
Что касается поддержки графическим адаптером стандарта VESA, то здесь бывает несколько вариантов. Обычно VESA реализуется аппаратно в BIOS графической платы, хотя, к сожалению, большинство производителей до сих пор используют VESA-спецификации версии 1.2, несмотря на то, что уже давно вышла версия 2.0, работающая быстрее и поддерживающая больший выбор SVGA-режимов. Правда, всегда остается возможность загрузить соответствующий программный драйвер (UniVBE), но это может привести к несовместимости с некоторыми программами, пытающимися работать напрямую с графическим процессором. Поэтому, выбирая графический акселератор, особенно если в нем используется какой-нибудь новый тип графических процессоров, обязательно убедитесь, что он полностью аппаратно совместим со спецификациями VESA. Простейший тест для проверки совместимости - запустить игру Quake в среде DOS и посмотреть в разделе Video Modes, какие SVGA-режимы там задействуются. Если ваш компьютер имеет процессор Pentium, то проверьте, есть ли в игре режимы 800x600, 1024x768 и 1280x1024. Их наличие во многом зависит от производительности графического адаптера.
Вряд ли кто-то сомневается в том, что Windows 95 становится основной платформой для мультимедиа и игр. Поэтому любой современный графический акселератор должен быть оптимизирован для работы с Windows 95, т. е. не просто иметь в комплекте соответствующие драйверы, а гарантировать их высокую производительность при выполнении таких функций, как воспроизведение AVI- и MPEG-видео, прорисовка двухмерной и трехмерной анимации и графики, рендеринг трехмерных объектов и наложение на них текстур, совместимость со стандартом DirectX и ускорение его работы. Следует иметь в виду, что большинство производителей из стран Юго-Восточной Азии используют со своими платами базовые драйверы, разработанные производителем графического процессора, на котором построен акселератор. Неудивительно, что в итоге графические платы, одинаковые по набору используемых компонентов, значительно разнятся по производительности и стабильности работы драйверов (сравните, к примеру, рядовой графический акселератор, произведенный где-нибудь на Тайване и плату Crystal 3D компании miro, использующие один и тот же графический процессор - S3-Virge). К тому же через год вам могут понадобиться драйверы для новой версии ОС Windows 95 или Windows NT, и нет никакой гарантии, что вы к тому времени найдете производителя или хотя бы его узел в Internet.
Наконец последнее и самое важное требование - наличие в графическом акселераторе аппаратных функций ускорения трехмерной анимации. На этой проблеме следует остановиться подробнее.
Анатомия трехмерного мультимедиа-акселератора
Когда говорят о трехмерной графике, то имеют в виду графическое представление сцены или объекта относительно трех осей (высота, ширина и глубина). Подобная техника позволяет передать трехмерное изображение на плоском дисплее, внося реализм и интерактивность в графические приложения. Для отображения трехмерной анимации объект сперва изображается векторными линиями и опорными точками в трехмерной системе координат. Векторный остов объекта - будь то машина, самолет или целый виртуальный мир - хранится в системной памяти. Затем производится рендеринг объекта, т. е. определяется физическое состояние каждого пиксела относительно избранной точки зрения, учитывается освещение, и уже в рамках видимых границ прорисовывается изображение, состоящее из закрашенных полигонов с наложенными тенями.
Важнейшие параметры современной графической подсистемы - производительность, качество изображения и цена. Хороший трехмерный акселератор, ориентированный на домашний и мультимедиа-рынок, должен в первую очередь обеспечивать высокую скорость прорисовки анимации (применительно к подобным приложениям речь идет о высокой частоте кадров), значительно улучшать качество и повышать реалистичность визуализации по сравнению с обычными SVGA-платами. Так как пользователю быстрая графическая система требуется в первую очередь для современных компьютерных игр, то здесь вряд ли напрямую применимы технологии, используемые в профессиональных графических станциях. Еще бы, кто захочет даже ради новой версии игры Quake с поддержкой стандарта Open-GL выложить 2-3 тыс. долл. за соответствующий графический процессор, геометрический сопроцессор и большой объем ОЗУ (8-32 Мбайт) для хранения текстур, осуществления Z-буферизации, фильтрации и сглаживания. Поэтому основной задачей, стоящей перед всеми разработчиками трехмерных мультимедиа-акселераторов, является интеграция в них как можно большего количества трехмерных функций при использовании минимального объема дорогостоящих ресурсов (ОЗУ, специализированных сопроцессоров). Рассмотрим основные функции, которые необходимы для современных трехмерных приложений.
Управление шиной (bus mastering)
Эта функция необходима для достижения высокой частоты кадров. Существует два режима управления шиной. В первом режиме графический процессор запрашивает текстурные карты напрямую из системной памяти, не обращаясь к центральному процессору. Второй режим позволяет графическому процессору обрабатывать команды синхронно с центральным процессором. При этом информация о полигонах, из которых состоит объект, может быть просчитана центральным процессором и передана на обработку графическому процессору, а тем временем центральный процессор начнет обсчет нового кадра. Наличие этих режимов существенно повышает производительность акселератора.
Наложение текстур с коррекцией перспективы (perspective-correct texture mapping)
Трехмерные объекты строятся на основе полигонов, и, чтобы придать им реалистичность, необходимо накладывать на них текстуры - двухмерные графические фрагменты, имитирующие сложную структуру поверхности. Благодаря этой технологии можно создать не только каменные лабиринты замка, мраморные покои дворца или фактуру висящих на стенах гобеленов, но даже "оживить" полигональную модель человека (как это сделано в игре Virtual Fighter). В реальном мире при перемещении человека его точка зрения по отношению к конкретным объектам постоянно меняется. Чтобы успешно имитировать этот процесс в трехмерном мире, необходимо все время корректировать расположение текстур на поверхности объектов в зависимости от изменения точки зрения. В противном случае текстуры будут постоянно "сползать" или прорисовываться под неправильным углом, нарушая целостность изображения.
Освещение (lighting) и затенение (shading)
Освещение играет очень большую роль в визуальном восприятии трехмерного мира. Умело пользуясь светом и тенями, можно оптически сгладить угловатость трехмерных моделей, акцентировать внимание на определенных деталях и спрятать ненужные фрагменты. Поэтому аппаратная реализация функций освещения и затенения позволяет добиться более высокого качества изображения без участия центрального процессора.
Прозрачность текстур (texture transparency)
Технология, используемая для обеспечения прозрачности текстур, во многом похожа на технологию Chroma Key, применяемую в видео. Чаще всего она используется при отображении сложных объектов. Возьмем, к примеру, дерево, в котором множество векторных полигонов с наложенными текстурами формируют ствол, ветви и листья. Чтобы картинка смотрелась естественно, мы должны иметь возможность видеть сквозь его крону фрагменты заднего плана. Поэтому графическому акселератору приходится просчитывать, какой элемент текстуры несет на себе рисунок, а какой остается прозрачным.
Аппаратный Z-буфер
Использование Z-буфера (выделенного буфера в ОЗУ графической платы для хранения данных о трехмерных объектах) необходимо, когда два объекта в трехмерном мире пересекаются относительно вашей точки зрения. Эта функция позволяет определить, какая часть одного объекта заслонена другим, и соответственно как именно необходимо прорисовывать изображение. Для Z-буфера требуется определенный объем памяти в кадровом буфере, поэтому его применение даже при базовых разрешениях (320Ё240, 640Ё480) возможно только при наличии как минимум 4-Мбайт ОЗУ. Однако расходы на дополнительную память оправдывают себя, так как все больше игр используют Z-буфер (например, Quake, US Navy Fighters`97) и без него производительность существенно снижается (в отсутствие Z-буфера обсчет изображений осуществляется программно, через центральный процессор).
Оптимизированные текстуры (Palletized textures)
Каждый раз, когда прорисовывается новая сцена, все необходимые для нее текстуры загружаются из системной памяти в кадровый буфер для последующего использования графическим процессором. Этот процесс предъявляет наибольшие требования к системным ресурсам компьютера и графического акселератора. Разработчикам игр приходится ориентироваться на минимальную пользовательскую конфигурацию. Сегодня стандартный графический адаптер имеет 2-Мбайт ОЗУ. Исходя из этого рассчитывается объем используемых текстур, что приводит к снижению детальности и качества изображения. Однако есть метод оптимизации текстур, когда для каждой из них определяется специальная таблица преобразований цветовой палитры (Color Look-Up Table - CLUT). Эта технология позволяет разработчику использовать не обычное 16-разрядное представление (65 тыс. цветов), а 4- или 8-разрядное, благодаря чему удается сэкономить место и время, необходимые на загрузку текстур. Режим CLUT-4 (16 цветов) применяется для простейших текстур, таких как кирпичи или камни; режим CLUT-8 (256 цветов) - для более сложных. На сегодняшний день только графический акселератор Mystique компании Matrox (графический процессор MGA-1064SG) поддерживает оба формата и может хранить уникальные параметры CLUT для каждой текстуры.
Многоуровневые текстуры (MIP mapping)
При нанесении текстур на полигоны их часто приходится растягивать или, наоборот, сжимать в зависимости от того, приближается объект или удаляется. Чтобы улучшить детализацию и качество изображения подобных масштабируемых объектов, используется метод создания многоуровневых текстур - MIP mapping. В этом случае каждая текстура состоит из трех фрагментов (или MIP-уровней) разного размера. MIP-уровень текстуры определяется размером полигона. Эта функция может быть программная или аппаратная, причем второй вариант реализутся с помощью разных алгоритмов и требует очень высокой производительности графической подсистемы, что в конечном счете сказывается на цене.
Использование "тумана" (Fogging)
Стараясь по возможности не загружать процессор, разработчики часто идут на некоторые уловки с целью снизить объем данных, необходимых для рендеринга определенных сцен. Один из наиболее распространенных приемов - это "напустить туману", т. е. "спрятать" часть изображения за пеленой (и, естественно, не прорисовывать ее). Этот эффект создается за счет смешения цветовых значений текстур с белым цветом. Такой трюк чаще всего используется при построении ландшафтов в авиасимуляторах. Аппаратная реализация этой функции может сэкономить до 10-15% ресурсов системы.
Смешивание текстур (Blending)
Смешивание - это визуальный эффект, который позволяет разработчику "комбинировать" текстуры перед нанесением их на объект, благодаря чему можно добиться очень интересных результатов и спецэффектов. Проще всего реализовывать эту функцию, задав степень прозрачности верхней текстуры и прорисовав только часть пикселов, составляющих ее изображение. Такой метод обычно используется в недорогих графических акселераторах. В профессиональных системах применяется процесс альфа-смешение (alpha blending), при котором считываются и обсчитываются с учетом перспективы значения обеих исходных текстур, что требует от графической подсистемы очень высокой производительности.
Итоги
Можно еще долго перечислять разнообразные трехмерные функции и технологии, но большинство из них встречаются только в профессиональных графических системах, поэтому здесь мы их касаться не будем. Чтобы помочь читателю сориентироваться в этом разнообразии графических плат, представленных на современном рынке, мы приводим таблицу, где перечислены практически все новейшие разработки в области трехмерных графических процессоров и новые продукты на их основе.
Акселераторы можно разделить на две группы: использующие собственные оригинальные технологии ускорения трехмерной графики и оптимизированные для стандартных программных интерфейсов (API). Такая ситуация сложилась из-за отсутствия единого стандарта, и если в Windows 95 доминирующее положение теперь занимает Microsoft Direct3D, то в DOS эта проблема до сих пор не решена. Каждый производитель пишет собственные программные интерфейсы для реализации возможностей своего акселератора. Это значит, что если игра не написана специально для данного графического процессора, то она не сможет использовать встроенные в него специальные функции. Наибольшую поддержку со стороны создателей программного обеспечения получили следующие графические процессоры: 3Dfx Voodoo (компании 3Dfx Interactive), 3D Rage II (ATI Technologies), MGA-1064SG (Matrox), Verite (Rendition) и семейство Virge (S3). Имеется примерно два десятка игр для среды DOS, которые используют возможности данных акселераторов (специальные версии Mech Warrior II, Descent II, Quake, Destruction Derby II, Tomb Rider и др.). Но скорее всего, поддержка трехмерной акселерации в DOS так и не получит широкого распространения, потому что большинству разработчиков проще делать программы для Windows, ориентируясь на утвердившийся стандарт Direct3D и совместимое с ним оборудование. В таком случае акселераторы, использующие нестандартные трехмерные функции (такие как Nvidia NV1 и NV3, NEC PowerVR), вряд ли смогут реализовать их в Direct3D-играх. Наибольшего внимания заслуживают следующие платы.
Matrox Mystique. Прекрасно сбалансированный акселератор. Одинаково быстро работает и в Windows, и в DOS. Сделан на основе технологии своего знаменитого предшественника - MGA Millennium, поддерживает практически все перечисленные трехмерные функции, оптимизирован для DirectX. Отличные драйверы. Использует быструю SGRAM-память (2-4 Мбайт). Один из лучших продуктов по соотношению цена - качество.
ATI 3D Pro Turbo PC2TV. Наиболее сильный конкурент Matrox. Эта плата имеет лучшее качество воспроизведения MPEG-видео. Поставляется с 4- или 8-Мбайт ОЗУ (SGRAM). У 3D Pro Turbo самый полный среди всех протестированных акселераторов набор трехмерных функций, драйверы хорошо оптимизированы для DirectX. Следует отметить наличие встроенного видеовыхода (S-Video и VHS), позволяющего демонстрировать компьютерное изображение (с разрешением до 1600x1200) на телеэкране и записывать его на видеомагнитофон.
miro Crystal 3D (Media 3D) и miro Crystal VR4000. Crystal 3D сделан на основе S3-Virge, поставляется с 2-Мбайт ОЗУ и является одним из самых недорогих трехмерных акселераторов. Crystal VR4000 использует более мощный процессор S3-Virge/VX и 4-Мбайт EDO VRAM. Функционально практически во всем совпадает с Diamond Stealth 3D 3000 и STB Velocity 3D, но, кроме того, подобно ATI 3D Pro Turbo PC2TV имеет встроенный преобразователь VGA-сигнала в телевизионный. При этом графические платы серии Crystal демонстрируют достаточно высокую производительность и стабильную работу драйверов.
Diamond Monster 3D. Использует графический процессор 3Dfx Voodoo Graphics, 4-Мбайт ОЗУ. Интересен в первую очередь тем, что не является самостоятельным графическим акселератором, а устанавливается вместе с любым SVGA-адаптером. Оптимизирован для трехмерных игр, поэтому по некоторым показателям существенно опережает своих "универсальных" коллег. В первую очередь это заслуга технологии 3Dfx Voodoo, которая является одной из наиболее перспективных и широко поддерживается производителями игр.
Александр Курило - ведущий раздела "Мультимедиа", тел.: (095) 943-92-90, 943-92-93, E-Mail: Azazello@online.ru
Современные трехмерные графические процессоры и акселераторы
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|||
|
|
|||
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
3D Rage II |
|
3D Pro Turbo PC2TV* 3D Xpression+ PC2TV* |
В продаже |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MGA-1064SG |
|
MGA Mystique* |
В продаже |
|
|
|
|
|
|
|
Diamond Multimedia Jazz Multimedia Leadtek NV3 |
Edge 3D* 3D Magic WinFast GD400 - |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Creative Labs Intergrpah Computer Systems Sierra On-Line |
3D Blaster PCI* Intense 3D 100* Screamin' 3D |
|
|
Virge/VX Virge/DX Virge/GX |
ELSA Genoa Systems Hercules Jazz Multimedia Leadtek miro Computer Products Number Nine Orchid Technology STB Systems Diamond Multimedia ELSA Inc. Leadtek miro Number Nine STB Systems - - |
Victory 3D* Phantom 3D Terminator 64/3D G-Force 3D WinFast 3D S600 miro Media 3D* 9FX Reality 332 Fahrenheit Video 3D Powergraph 64 3D* Stealth 3D 3000* Winner 2000AVI/3D Winner 3000 WinFast 3D S1000 miro Crystal VR2000* miro Crystal VR4000* 9FX Reality 772 Velocity 3D* - - |
В продаже В продаже II квартал 1997 г. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ProVidia 9685* ProVidia 9692 |
- - |
- - |
В продаже В продаже |
|
|
|
|
|
|
|
|
|
|