Обзор профессиональных 3D-ускорителей



Введение

Покупая 3D-ускоритель, каждый из нас ожидает резкого повышения производительности своих любимых 3D-программ, в том числе приложений для 3D-моделирования, VRML-броузеров, трехмерных игр и еще бог знает чего. С 3D-ускорителями, нацеленными на игровой рынок, ситуация достаточно ясная, о них пишут сейчас многие, достаточно пойти и купить хотя бы журнал об играх в соседнем киоске. С появлением второй версии программы 3D Studio MAX от Kinetix, эти 3D-ускорители становятся заманчивой покупкой, отпадает необходимость покупки дорогого 3D-ускорителя. В данном обзоре мы рассмотрим 3D-ускорители, нацеленные на рынок профессиональных приложений. Некоторые рассмотренные OpenGL-ускорители можно купить в Москве, некоторые — нельзя. В последнем случае вы сможете их лишь заказать, при этом вы должны будете сделать предоплату, так как ни один продавец не намерен рисковать своими деньгами. Но можно утверждать, что в России постепенно начинает формироваться рынок профессиональных OpenGL-ускорителей.

Зная информационный голод в России по хорошим статьям, мы решили протестировать несколько OpenGL-ускорителей, исходя из требований российского рынка. Российские покупатели, не обладая большими деньгами, стремятся получить оптимальное решение при покупке или сборке своего будущего компьютера, на котором они в дальнейшем будут создавать свои шедевры компьютерной графики. Стоит сразу сказать, что специализированные рабочие станции от HP и Intergraph превосходят по своим характеристикам рабочие станции, собранные в домашних условиях. В рабочих станциях этих производителей используются 3D-подсистемы на чипах собственной разработки, и 3D-ускорители на этих чипах не продаются отдельно от рабочих станций. Если же вы покупаете рабочую станцию от именитого производителя с использованием стандартных OpenGL-ускорителей, вы переплачиваете немалые деньги. Мы уверены, что есть люди, для которых техническая поддержка и избавление от головной боли о совместимости железа главнее денег.

Почти все из рассмотренных 3D-ускорителей, в основном, предназначены для работы с OpenGL, и именно поэтому они называются OpenGL-ускорителями. OpenGL является межплатформенным стандартом, что существенно облегчает перенос программ, использующих этот API, на другие платформы, в том числе на Wintel. Для платформы Wintel на рынке имеется огромное число OpenGL-ускорителей, и это подталкивает разработчиков к портированию 3D-программ на эту платформу. Также стоит учитывать, что компания Silicon Graphics объявила о поддержке платформы Wintel.

Тестируемые платы

Для тестирования были выбраны четыре 3D-ускорителя:

  • AccelGraphics AccelEclipse II на базе чипсета Mitsubishi 3DPro/2mp
  • ELSA GLoria-L/MX на базе чипсета 3Dlabs Glint DMX 1000
  • Diamond FireGL 3000 на базе чипсета 3Dlabs Glint 500TX Gold
  • Diamond FireGL 1000 Pro на базе чипа 3Dlabs Permedia 2

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

ПлатаЧипсетЗагрузочный VGARAMDACБуфер кадраТекстурная память (локальный буфер)Максимальное 3D-разрешение для truecolor/hicolor
AccelGraphics Eclipse IIMitsubishi 3DPro/2mpCirrus Logic GD5446BVTI TVP302615 MB 3D-RAM16 MB CDRAM1280x1024/NA
ELSA GLoria-L/MX3Dlabs Glint DMXS3 VirgeIBM 37RGB58 MB VRAM16 MB EDORAM1152x864/1920x1080
Diamond FireGL 30003Dlabs Glint 500TX GoldAvance Logic ALG20642 x IBM 37RGB58 MB VRAM32 MB EDORAM1152x870/1600x1200
Diamond FireGL 1000 Pro3Dlabs Permedia 2встроенныйвстроенный 230 MHz8 MB SGRAMобъединена с фреймбуфером1024x768/1280x1024


Что такое OpenGL?

В настоящее время только два трехмерных API получили широкое распространение: OpenGL и Direct3D. И тот и другой имеют свои плюсы и минусы, но до сих пор они находятся каждый в своей нише. Direct3D — общепринятый API для трехмерных игр, OpenGL — API для программ трехмерного моделирования и CAD. Так как профессиональные платы обычно используются в программах моделирования, то именно на OpenGL делается основной упор. OpenGL, созданнный компанией SGI, в настоящее время является открытым стандартом. Стандарт контролируется ассоциацией OpenGL Architecture Review Board, в которую входят DEC, E&S, IBM, Intel, Intergraph, Microsoft и, естественно, SGI.

OpenGL-драйвер может быть реализован в двух вариантах: как ICD и как MCD. ICD (Installable Client Driver) — высокооптимизированный драйвер, который дает максимальное быстродействие. ICD-драйвер довольно сложно программировать, так как создатель драйвера вынужден реализовывать все функции OpenGL. MCD гораздо легче программировать, так как разработчик программирует только те участки кода драйвера, которые он считает нужным оптимизировать для своего чипсета. Однако MCD сильно уступает ICD в быстродействии. Более того, если 3D-программа использует функцию, которая не имеет в MCD-драйвере аппаратной поддержки, то аппаратное ускорение отключается совсем. Все профессиональные платы имеют ICD-драйверы, и причиной высокой цены этих плат не в последнюю очередь является сложность программирования ICD-драйвера.

Платы на 3DPro и Glint допускают настройку различных параметров рендеринга. Причем можно как настраивать плату на работу с определенным приложением (например, Softimage 3D или 3D Studio MAX), так и изменять значения различных параметров. Можно включить или отключить 32-битные текстуры, оверлеи, шаблоны, гамма-коррекцию и т.п.

Как мы тестировали

Мы тестировали платы как синтетическими тестами, так и в реальных приложениях.

Для тестирования мы использовали программы Indy3D 2.2 компании SENSE8. Indy 3D — программа для Windows NT 4.0, предназначенная для тщательного тестирования OpenGL. Indy3D требует аккуратно написанного OpenGL ICD-драйвера и не работает на широком диапазоне дешевых плат с MCD-драйверами, такими, как Matrox Millennium 2 и Number 9 Revolution 3D. Являясь синтетическим тестом, Indy3D отражает поведение 3D-ускорителя в реальных приложениях. Indy3D фокусируется на трех сегментах рынка 3D-графики: MCAD, Анимация (Animation) и Симулятор (Simulation). По мнению создателя Indy3D, компании SENSE8, такие тесты, как Viewperf, не отражают реальных задач, и результаты, полученные в них, не будут адекватными в реальном мире. Однако то же самое можно сказать и про Indy3D. Кроме тестов на производительность, Indy3D самым тщательным образом тестирует качество изображения, на которое влияет наличие в 3D-ускорителе разных функций OpenGL. Более подробно про Indy3D можно прочитать здесь.

Все результаты со знаком "Official SENSE8 Score" соответствуют разрешению 1024x768 при truecolor. Тестирование велось по всем правилам SENSE8, как-то:

  • Аппаратный курсор по умолчанию
  • Закрыты все приложения и окна кроме Indy3D
  • Отключен screen-saver
  • Отсутствие сети
  • Отключен vsync (sync to video retrace) там, где это возможно

Платы тестировались под Windows NT 4.0 на компьютере с процессором Pentium II 266MHz, оперативной памятью 160 MB, материнской платой A-Bit на чипсете LX и жестким диском Quantum Fireball SE, со следующими драйверами:

  • Eclipse II: использовался драйвер AccelGraphics от 13 марта 1998
  • GLoria-L/MX: использовался бета-драйвер 3Dlabs от 17 марта 1998
  • FireGL 3000: использовался бета-драйвер 3Dlabs от 17 марта 1998
  • FireGL 1000 Pro: использовался бета-драйвер 3Dlabs от 17 марта 1998

Mitsubishi 3DPro/2mp

Тестировалась плата AccelEclipse II компании AccelGraphics, имеющая 15 MB 3D-RAM и 16 MB CDRAM.

MCAD4.88
Animation11.76
Simulation16.80

Чипсет 3DPro/2mp базируется на технологии REALimage компании Evans & Sutherland и оптимизирован под архитектуру памяти 3D-RAM/CDRAM компании Mitsubishi. 3DPro — комбинированный 2D+3D ускоритель со встроенным triangle setup. 3DPro обеспечивает полную совместимость с OpenGL 1.1 и является идеальным решением для Windows NT 4.0. 3DPro выполняет высококачественное текстурирование с перспективной коррекцией, би- и трилинейной фильтрацией и субпиксельной точностью.

       

Фрейм-буфер базируется на технологии памяти 3D-RAM, оптимизированной для функциональности фрейм-буфера. 3D-RAM — интеллектуальная двухпортовая мультибанковая синхронная память с кэшированием. Основное преимущество 3D-RAM — одна операция записи там, где другим ускорителям нужно три операции (чтение-запись-чтение). 3D-RAM обеспечивает выполнение шести параллельных операций: растровые операции, альфа-смешение, z-сравнение, тест шаблона, а также маскировка битов и заполнение блоков. Такую функциональность поддерживает встроенные ALU, модуль сравнения и модуль ROP/Blend. 3DPro поддерживает до 15 MB 3D-RAM для получения разрешений от 640x480 до 1280x1024 при 32-битном truecolor с двойной буферизацией.

Текстурная память базируется на технологии памяти CDRAM, оптимизированной для чтения текселей. 3DPro поддерживает 4-16 MB CDRAM. 3DPro поддерживает 32-битные RGBA текстуры размером до 1024x1024 и 16-битные RGBA и RGB текстуры размером до 2048x1024, обрабатываемые с 32-битной точностью.

Нами был протестирован и вариант Eclipse II с интерфейсом AGP. Однако, в связи с отсутствием поддержки AGP под Window NT разницы в полученных результатах практически не наблюдалось. А та разница, которая была, соответствует погрешности вычислений. Поэтому в обзоре речь идет только о PCI-варианте платы на чипсете 3DPro. Вероятно, если появится сервис пак для NT 4.0 с поддержкой AGP или с выходом NT 5.0, мы проведем повторное тестирование. На сегодня же нет абсолютно никакой разницы, с каким интерфейсом использовать плату под NT: с PCI или AGP.

       

Производительность:

  • Throughput 650 тыс. треугольников/сек с 24-битной z-буферизацией, мипмэппингом, прозрачностью, туманом и оверлеем
  • Throughput 1.5 млн линий/сек с антиалиасингом и z-буферизацией
  • Fillrate 60 млн пикселей/сек с билинейной фильтрацией и альфа-смешением
  • Fillrate 30 млн пикселей/сек с трилинейной фильтрацией и альфа-смешением

Функциональные возможности:

  • 32-битный truecolor
  • Билинейная и трилинейная фильтрация с перспективной коррекцией
  • Антиалиасинг точек, линий и отсортированных полигонов
  • 24-битная floating-point z-буферизация
  • Оверлеи (8-битные с двойной буферизацией, 4-битные без двойной буферизации)
  • Шаблоны (4-битные)
  • Цветное освещение с несколькими источниками света
  • Пиксельная дымка, полигонный туман

На 3DPro делают платы всего лишь три производителя: AccelGraphics, Diamond (FireGL 4000) и DEC (PowerStorm 4D30T). Плохая для конечных пользователей маркетинговая политика этих компаний, а также Evans & Sutherland и Mitsubishi (создатели 3DPro) привела к низкой популярности чипсета. Платы на 3DPro заметно дороже своих ближайших конкурентов. Платы стоят очень дорого и поставляются в основном составе компьютеров именитых производителей. Чтобы купить такую плату, покупатель должен заказать плату у Diamond'а или AccelGraphics.

3DPro — неоспоримый лидер в данном обзоре и, возможно, вообще на рынке профессиональных 3D-плат. 3DPro победил в Indy3D, в реальных приложениях 3DPro выглядел заметно лучше других. К цифрам, которые мы получили в Glaze, не смог подобраться ни один другой ускоритель. Со всеми включеными эффектами частота кадров не снижалась ниже 30 fps. Также стоит отметить феноменальную производительность при ускорении векторной графики с антиалиасингом — Glaze показал скорость свыше 80 fps.

       

       

Большое число настроек OpenGL радует глаз. Плату можно сконфигурировать либо под какое-то конкретное приложение, а таких в настройках более 10, либо самому включать или выключать какие-то конкретные опции. Более изощренных настроек мы не увидели ни на одной другой плате.

3DPro без проблем справляется с большими текстурами, и благодаря наличию 16 MB текстурной памяти 3DPro прошел 16 MB-версию Indy3D без какого-либо замедления.

3Dlabs Glint DMX

Тестировалась плата GLoria-L/MX компании ELSA, имеющая 8 MB VRAM и 16 MB EDORAM. Кстати, хочется отметить, что на плате были использованы 2 Мб соджи.

MCAD2.90
Animation5.45
Simulation4.40

Чипсет Glint DMX 1000 объединяет процессор рендеринга Glint MX и triangle setup Glint Delta. Glint MX поддерживает разрешения до 2048x2048, в том числе HDTV 1920x1080. Delta, имеющий производительность 100 MFLOPS, обеспечивает высокоточную предобработку вершин, в том числе субпиксельную коррекцию, нормализацию вершин и преобразование из плавающей точки в фиксированную точку. Glint DMX обеспечивает полную совместимость с OpenGL 1.1, также совместима с Direct3D и Heidi. Glint MX поддерживает 32-битные RGBA и 8-битные палитровые текстуры. Glint DMX поддерживает фреймбуфер до 32 MB VRAM, в котором находятся прямой и обратный буфер, альфа-буфер и оверлейный буфер. Локальный буфер, в котором хранятся текстуры, z-буфер и буфер шаблонов, может быть объемом до 48 MB EDORAM.

       

Производительность:

  • Throughput 1 млн полигонов/сек с z-буферизацией
  • Throughput 1.2 млн линий/сек
  • Fillrate 33 млн пикселей/сек с билинейной фильтрацией и мипмэппингом

Функциональные возможности:

  • 24- и 32-битный truecolor, 15-битный hicolor
  • Билинейная и трилинейная фильтрация с перспективной коррекцией
  • Антиалиасинг 4x4 и 8x8
  • 24-битная и 32-битная z-буферизация
  • Оверлеи
  • Шаблоны (8-битные)
  • Туман

Glint стал промышленным стандартом 3D-систем для платформы Wintel. На чипсетах 3Dlabs делают платы огромное число поставщиков, среди которых AccelGraphics, Densan, ELSA, Leadtek, MaxVision, NeTpower, Omnicorp, Symmetric. Такая популярность объясняется тем, что 3Dlabs сама пишет драйвера для своих чипсетов, и производителям плат нет необходимости писать собственные драйвера.

В тестах Indy3D Glint DMX сильно отстал от лидера — 3DPro, и даже немного от Permedia 2. Но в реальных приложениях Glint MX был гораздо быстрее Permedia 2, и лишь немного уступал 3DPro. К тому же, учитывая некоторые проблемы в работе с Permedia 2, последняя может не подойти в серьезной работе. В такой ситуации Glint MX может похвастаться полной беспроблемностью.

Glint DMX также прошел 16 MB-версию Indy3D без какого-либо замедления.

3Dlabs Glint 500TX

Тестировалась плата FireGL 3000 компании Diamond, имеющая 8 MB VRAM и 32 MB EDORAM.

MCAD2.66
Animation2.96
Simulation2.68

Чипсет Glint 500TX Gold объединяет процессор рендеринга Glint 500TX и triangle setup Glint Delta. Glint 500TX поддерживает разрешения до 2560x2048, в том числе HDTV 1920x1080. Glint 500TX обеспечивает полную совместимость с OpenGL 1.1, также совместима с Direct3D и Heidi. Glint 500TX поддерживает 32-битные RGBA и 8- и 4-битные палитровые текстуры. Glint 500TX поддерживает фреймбуфер до 32 MB VRAM, в котором находятся прямой и обратный буфер, альфа-буфер и оверлейный буфер. Локальный буфер, в котором хранятся текстуры, z-буфер и буфер шаблонов, может быть объемом до 48 MB EDORAM.


Производительность:

  • Throughput 500 тыс полигонов/сек с z-буферизацией
  • Throughput 2 млн линий/сек с z-буферизацией
  • Fillrate 25 млн пикселей/сек

Функциональные возможности:

  • 24- и 32-битный truecolor, 15-битный hicolor
  • Билинейная фильтрация с перспективной коррекцией
  • Антиалиасинг 4x4 и 8x8
  • 24-битная и 32-битная z-буферизация
  • Оверлеи
  • Шаблоны (8-битные)
  • Туман

Glint 500TX также прошел 16 MB-версию Indy3D без какого-либо замедления.

3Dlabs Permedia 2

Тестировалась плата FireGL 1000 Pro PCI компании Diamond, имеющая 8 MB SGRAM.

MCAD3.21
Animation6.20
Simulation5.23

Чипсет Permedia 2 интегрирует полнофункциональный 2D-ускоритель, с поддержкой видео (преобразование YUV и масштабирование по двум осям), 3D-ускоритель со встроенным triangle setup с поддержкой strips/fans, выполненным по технологии Glint Delta, и RAMDAC 230 MHz. Permedia 2 поддерживает 8-, 16-, 24- и 32-битные RGBA, YUV и 8- и 4-битные палитровые текстуры. Permedia 2 поддерживает до 8 MB SGRAM или SDRAM. Permedia 2 поддерживает PCI и AGP 1X с адресацией по боковой полосе.

Permedia 2 представляет собой одно из лучших решений, совмещая высокопроизводительную 3D-графику для работы в OpenGL и Direct3D и быструю 2D-графику. Для Permedia 2, также, как и для чипсетов Glint, раработан OpenGL ICD-драйвер, что делает системы на основе Permedia 2 идеальным решением для профессиональных графических станций начального уровня.

Производительность:

  • Throughput 1 млн полигонов/сек с z-буферизацией
  • Fillrate 83 млн пикселей/сек с билинейной фильтрацией
  • Fillrate 42 млн пикселей/сек с билинейной фильтрацией и z-буферизацией

Функциональные возможности:

  • 24- и 32-битный truecolor, 16-битный hicolor
  • Билинейная фильтрация с перспективной коррекцией, мипмэппинг
  • 16-битная z-буферизация
  • Оверлеи
  • Шаблоны (1-битные)
  • Пиксельный туман
  • Offscreen (для кэширования фонтов и битмэпов)

Несмотря на формальную 16-битную z-буферизацию, Permedia 2 прошла тест на 32-битный z-буфер без появления артефактов, специфических для 16-битного z-буфера. Судя по всему Permedia 2 использует механизмы, повышающие точность z-буферизации.

Permedia 2 не прошла 16 MB-версию Indy3D, так как содержит всего 8 MB видеопамяти.

Другие OpenGL-ускорители

Выбор 3D-ускорителей делался по традиционному российскому принципу "достали, что смогли". Поэтому хотелось бы вкратце отметить те 3D-ускорители, которые присутствуют на рынке сегодня, но не вошли в обзор. Dynamic Pictures Oxygen 402 — плата с четырьмя процессорами Oxygen, оптимизирована под многопроцессорные компьютеры благодаря многопоточному OpenGL-драйверу. Сравнительно распространен в России, хотя о нем ходят диаметрально противоположные мнения. 3Dlabs Glint GMX — самый мощный чипсет от 3Dlabs, содержит 1 или 2 процессора рендеринга Glint MX и геометрический процессор Gamma. GMX 2000 дает throughput 4.5 млн полигонов/сек и fillrate 66 млн пикселей/сек. Intergraph Intense 3D Pro 3410, Realizm II — мощные платы, поставляемые с графическими станциями компании Intergraph. HP Visualize fx4 — мощные платы, поставляемые с графическими станциями Kayak компании Hewlett Packard. Более мощные платы Visualize fx6 предназначены для UNIX-станций HP.

Кроме того, надо учитывать скорое появление плат на новом чипе REALimage 2000 компании Evans&Sutherland. REALimage 2000 даст throughput 1.3 млн треугольников/сек (вдвое больше 3DPro) и fillrate 90 млн пикселей/сек (на 50% больше 3DPro).

Результаты Indy3D

Мы отдельно оценивали работу плат в truecolor и в hicolor. В первую очередь, следует обращать внимание на производительность в truecolor, так как этот режим является рабочим для программ моделирования.

MCAD

Animation

Simulation



ЧипсетПлата32-битные текстурыТрилинейная фильтрацияПрозрачностьАнтиалиасингZ-буферизация
Mitsubishi 3DPro/2mpAccelGraphics AccelEclipse IIOKOKOKПЛОХОOK
3Dlabs Glint DMXELSA GLoria-L/MXOKOKOKПЛОХОOK
3Dlabs Glint 500TX GoldDiamond FireGL 3000OKПЛОХОOKПЛОХОOK
3Dlabs Permedia 2Diamond FireGL 1000 ProOKПЛОХОПЛОХОПЛОХОOK


  • 32-битные текстуры — умение работать с 32-битными RGBA текстурами, обработка текстур также должна выполняться с 32-битной точностью.
  • Трилинейная фильтрация — трилинейную фильтрацию не поддерживают Permedia 2 и Glint 500TX.
  • Прозрачность — поддержка прозрачности для неотсортированных полигонов. Тест не прошли Permedia 2.
  • Антиалиасинг — поддержка антиалиасинга для неотсортированных полигонов. Тест не прошел никто.
  • Z-буферизация — поддержка z-буфера выскокой точности (24-битного или 32-битного). Permedia 2 имеет 16-битный z-буфер, однако Permedia 2 прошла этот тест.

Текстурирование

У Indy3D есть три версии, которые используют разное количество текстурной памяти: 4 MB — официальный тест, 8 MB и 16 MB. В тесте 4 MB используются текстуры размером 128x128, и суммарный объем текстур не превышает 4 MB. В тесте 16 MB используются текстуры размером 1024x1024, а суммарный объем текстур становится чуть менее 16 MB. Мы проверяли работу 3D-плат на 16 MB-версии Indy3D без замеров результатов для того, чтобы выяснить, может ли работать плата с текстурами большого размера.

Тест не прошла только Permedia 2. Это объясняется небольшим объемом видеопамяти — в нее не могут влезть все текстуры.

ЧипсетПлатаРабота с 16 MB-версией Indy3D
Mitsubishi 3DPro/2mpAccelGraphics AccelEclipse IIOK
3Dlabs Glint DMXELSA GLoria-L/MXOK
3Dlabs Glint 500TX GoldDiamond FireGL 3000OK
3Dlabs Permedia 2Diamond FireGL 1000 ProНЕ РАБОТАЕТ

Поддержка текстур большого размера желательна для некоторых 3D-программ, где требуется высокая детализация и где текстуры низкого разрешения будут выглядеть смазанными. Вы можете оценить разницу между текстурами 1024x1024 и 128x128 на картинках внизу. Это текстуры на груди, лице и голове.

Текстуры 128x128Текстуры 1024x1024

Антиалиасинг

Антиалиасинг — самая запутанная черта современных 3D-ускорителей. В первую очередь потому, что существует много видов антиалиасинга, которые не следует путать друг с другом. Сразу скажу, что в программах моделирования, которые мы использовали, антиалиасинг мы включить не смогли.

Антиалиасинг линий

Нужен в программах, где основная работа ведется с каркасными моделями. Такими программами в основном являются CAD. Поэтому в тесте MCAD Indy3D тестируется каркасная модель с включенным антиалиасингом линий. Каркасная модель с антиалиасингом выглядит гораздо приятнее, чем без такового. Антиалиасинг линий тестирует программа Glaze. Вы можете оценить краевой антиалиасинг по картинкам снизу.

        

Краевой антиалиасинг для отсортированных полигонов

Программа, которая должна быть написана должным образом и выводить треугольники в порядке приближения к наблюдателю (то есть, предварительно отсортировав их). Этот вид антиалиасинга поддерживается большинством протестированных 3D-ускорителей, но, судя по всему, в программах моделирования не используется. Едиственная программа, где мы его заметили, — демка от 3Dlabs (картинки снизу).

       

Краевой антиалиасинг для неотсортированных полигонов

Именно этот вид антиалиасинга тестирует Indy3D. Именно его не хватает всем протестированным 3D-ускорителям. И, видимо, именно он требуется программам моделирования.

Операционные системы

На платформе Intel единственной серьезной операционной системой является Microsoft Windows NT 4.0. Все остальные ОС, такие, как UNIX, Windows 95, DOS и т.п., не представляют собой ничего серьезного хотя бы потому, что большинство производителей OpenGL-ускорителей не пишут драйверы для этих ОС.

Если вы очень любите UNIX (имеется в виду: все ее разновидности — Linux, FreeBSD и т.д.), то вам стоит купить себе видеоплату от фирмы Matrox, сконфигурировать правильно X-windows и забыть об аппаратном ускорении OpenGL.

Windows 95 обладает рядом неоспоримых преимуществ, например, Direct3D. На этой платформе у вас будут идти все игрушки, но стоит учитывать, что у многих OpenGL-ускорителей для этой ОС нет драйверов. Также отсутствие поддержки многопроцессорных систем делает Windows 95 неконкурентоспособной. Да и многие графические приложения просто не пойдут под этой ОС. Хотя, если вы купили себе 3D-ускоритель, оптимизированный для работы с Direct3D, а также пиратский диск с 3D Studio MAX 2.x (вместо очередного журнала об играх), вам, возможно, не стоит переходить на Windows NT.

Windows NT 4.0 лишена всех тех недостатков, которые описаны выше. Под NT для всех OpenGL-ускорителей есть драйверы, она поддерживает многопроцессорность, на ней идут все приложения, использующие OpenGL. Под ней нельзя играть, хотя когда человек покупает акселератор за $3000 и программу 3D-анимации за $10000, он вряд ли будет играть в игры на этой рабочей станции.

Нужна ли многопроцессорность?

Мы изучили скорость работы программ моделирования на двух- и однопроцессорной системах. Нас интересовала скорость самого процесса моделирования и работы с анимированными объектами при использовании OpenGL, а также скорость работы модуля визуализации, для получения конечного результата. Ни на одном из протестированных ускорителей мы не заметили разницы в скорости при использовании различного количества процессоров. Отсюда можно сделать вывод, что, в основном, драйвера для OpenGL-ускорителей не являются многопоточными, поэтому мы и не можем получить пользу от второго процессора. Так что, если вы занимаетесь моделированием, вам нет смысла ставить второй процессор в свою рабочую станцию. Исключением являются OpenGL-ускорители серии Oxygen от компании Dynamic Pictures (их мы не тестировали), драйвер которых распараллеливает работу двух процессоров Pentium Pro или Pentium II, что должно давать прирост производительности в OpenGL при использовании двух процессоров.

Мы смотрели скорость окончательной визуализации в 3D Studio Max v1.2 и LightWave v5.5. Как известно, Windows NT является операционной системой с поддержкой многопроцессорности. ОС сама решает как загрузить процессоры, а многопоточная программа получает преимущество в скорости, так как потоки выполняются параллельно на двух процессорах. Обе программы хорошо распараллелены и получают сильный прирост скорости на двух процессорах в окончательном рендеринге. Например, на двух процессорах 3D Studio Max выполнял окончательный рендеринг ровно вдвое быстрее, чем на одном процессоре.

Нам также было интересно, как ведет себя API Heidi от Kinetix, который используется в 3D Studio MAX v1.2. В 3D Studio MAX v2.x используется новый Heidi, не совместимый с Heidi, который использовался в 3D Studio MAX v1.x. Поэтому Heidi-драйвера, написанные для 3D Studio MAX v1.x, не работают с версией 2.0. Поэтому мы использовали версию 1.2. Оказалось, что Heidi сильно заточен под программный рендеринг. Heidi поддерживает многопроцессорность, но слабо поддерживает 3D-ускорители. Скорость ускоренного Heidi была всегда ниже, чем скорость программного Heidi. Например на FireGL 3000 скорости preview у нас упала почти в три раза.

Quake 2

По просьбам общественности мы протестировали платы FireGL 3000, GLoria-L/MX и Eclipse II на предмет их использования в качестве платформы для Quake 2. Все они имеют очень низкую скорость даже на низких разрешениях. Дело в том, что играм требуется от 3D-ускорителя высокая скорость обработки треугольников и текстурирования. Профессиональные платы дают сравнительно низкий throuhput и fillrate, поэтому и показывают низкую скорость в Quake 2. От профессиональной платы требуется высокое качество на высоких разрешениях и стабильная работа с оптимизацией под конкретные приложения. Как мы уже говорили 1024x768 в truecolor, наложение truecolor текстур 1024x1024 и текстурная память 16 MB и выше — обязательные требования, которые совершенно не нужны в играх.

К сожалению, в плане качества рендеринга плата Eclipse на 3DPro оказалось плохо совместимой с Quake 2. Плата GLoria-L/MX на Glint DMX дала качественную картинку, которую смело можно считать эталоном при тестировании игровых плат. Вы можете посмотреть скриншоты ниже: идеальное цветное освещение, 32-битный truecolor с хорошей передачей цветов, трилинейная фильтрация, отсутсвие даже мелких погрешностей — ни одна игровая плата не достигает такого качества изображения в Quake 2.

        

Резюме

Купив любой из рассмотренных 3D-ускорителей, вы получите существенный прирост скорости в OpenGL. Для систем начального уровня имеет смысл присмотреться к 3D-ускорителям на базе Permedia 2. Учитывая низкую стоимость плат на Permedia 2 и качественные драйверы для Windows 95, можно считать Permedia 2 оптимальным решением. Для получения максимальной скорости в любом приложении, использующем OpenGL, вам просто необходимо приобрести 3D-ускоритель на 3DPro. Конечно, он имеет очень высокую цену, но если 3D-графика является вашим куском хлеба, то вам стоит серьезно подумать о покупке этого ускорителя. Два других ускорителя (Glint 500TX и Glint DMX) находятся посередине. С одной стороны, они дешевле AccelEclipse II, но существенно проигрывают ему в скорости. С другой, они дороже Permedia 2, но почти не превосходят Permedia 2 по скорости, хотя имеют более богатые функциональные возможности. В конечном счете, за все приходится платить — невозможно купить полноценный OpenGL-ускоритель, по цене сравнимый с игровыми 3D-ускорителями. Но в то же время нельзя недооценивать производителей игровых 3D-чипов, которые пишут ICD-драйверы OpenGL для своих изделий. Поэтому не исключено, что грань между профессиональными и игровыми ускорителями через некоторое время начнет стираться. А пока перед вами стоит нелегкая задача выбора профессионального 3D-ускорителя.




19 июня 1998 Г.

Обзор профессиональных 3D-ускорителей

Обзор профессиональных 3D-ускорителей



Введение

Покупая 3D-ускоритель, каждый из нас ожидает резкого повышения производительности своих любимых 3D-программ, в том числе приложений для 3D-моделирования, VRML-броузеров, трехмерных игр и еще бог знает чего. С 3D-ускорителями, нацеленными на игровой рынок, ситуация достаточно ясная, о них пишут сейчас многие, достаточно пойти и купить хотя бы журнал об играх в соседнем киоске. С появлением второй версии программы 3D Studio MAX от Kinetix, эти 3D-ускорители становятся заманчивой покупкой, отпадает необходимость покупки дорогого 3D-ускорителя. В данном обзоре мы рассмотрим 3D-ускорители, нацеленные на рынок профессиональных приложений. Некоторые рассмотренные OpenGL-ускорители можно купить в Москве, некоторые — нельзя. В последнем случае вы сможете их лишь заказать, при этом вы должны будете сделать предоплату, так как ни один продавец не намерен рисковать своими деньгами. Но можно утверждать, что в России постепенно начинает формироваться рынок профессиональных OpenGL-ускорителей.

Зная информационный голод в России по хорошим статьям, мы решили протестировать несколько OpenGL-ускорителей, исходя из требований российского рынка. Российские покупатели, не обладая большими деньгами, стремятся получить оптимальное решение при покупке или сборке своего будущего компьютера, на котором они в дальнейшем будут создавать свои шедевры компьютерной графики. Стоит сразу сказать, что специализированные рабочие станции от HP и Intergraph превосходят по своим характеристикам рабочие станции, собранные в домашних условиях. В рабочих станциях этих производителей используются 3D-подсистемы на чипах собственной разработки, и 3D-ускорители на этих чипах не продаются отдельно от рабочих станций. Если же вы покупаете рабочую станцию от именитого производителя с использованием стандартных OpenGL-ускорителей, вы переплачиваете немалые деньги. Мы уверены, что есть люди, для которых техническая поддержка и избавление от головной боли о совместимости железа главнее денег.

Почти все из рассмотренных 3D-ускорителей, в основном, предназначены для работы с OpenGL, и именно поэтому они называются OpenGL-ускорителями. OpenGL является межплатформенным стандартом, что существенно облегчает перенос программ, использующих этот API, на другие платформы, в том числе на Wintel. Для платформы Wintel на рынке имеется огромное число OpenGL-ускорителей, и это подталкивает разработчиков к портированию 3D-программ на эту платформу. Также стоит учитывать, что компания Silicon Graphics объявила о поддержке платформы Wintel.

Тестируемые платы

Для тестирования были выбраны четыре 3D-ускорителя:

  • AccelGraphics AccelEclipse II на базе чипсета Mitsubishi 3DPro/2mp
  • ELSA GLoria-L/MX на базе чипсета 3Dlabs Glint DMX 1000
  • Diamond FireGL 3000 на базе чипсета 3Dlabs Glint 500TX Gold
  • Diamond FireGL 1000 Pro на базе чипа 3Dlabs Permedia 2

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

Плата Чипсет Загрузочный VGA RAMDAC Буфер кадра Текстурная память (локальный буфер) Максимальное 3D-разрешение для truecolor/hicolor
AccelGraphics Eclipse II Mitsubishi 3DPro/2mp Cirrus Logic GD5446BV TI TVP3026 15 MB 3D-RAM 16 MB CDRAM 1280x1024/NA
ELSA GLoria-L/MX 3Dlabs Glint DMX S3 Virge IBM 37RGB5 8 MB VRAM 16 MB EDORAM 1152x864/1920x1080
Diamond FireGL 3000 3Dlabs Glint 500TX Gold Avance Logic ALG2064 2 x IBM 37RGB5 8 MB VRAM 32 MB EDORAM 1152x870/1600x1200
Diamond FireGL 1000 Pro 3Dlabs Permedia 2 встроенный встроенный 230 MHz 8 MB SGRAM объединена с фреймбуфером 1024x768/1280x1024


Что такое OpenGL?

В настоящее время только два трехмерных API получили широкое распространение: OpenGL и Direct3D. И тот и другой имеют свои плюсы и минусы, но до сих пор они находятся каждый в своей нише. Direct3D — общепринятый API для трехмерных игр, OpenGL — API для программ трехмерного моделирования и CAD. Так как профессиональные платы обычно используются в программах моделирования, то именно на OpenGL делается основной упор. OpenGL, созданнный компанией SGI, в настоящее время является открытым стандартом. Стандарт контролируется ассоциацией OpenGL Architecture Review Board, в которую входят DEC, E&S, IBM, Intel, Intergraph, Microsoft и, естественно, SGI.

OpenGL-драйвер может быть реализован в двух вариантах: как ICD и как MCD. ICD (Installable Client Driver) — высокооптимизированный драйвер, который дает максимальное быстродействие. ICD-драйвер довольно сложно программировать, так как создатель драйвера вынужден реализовывать все функции OpenGL. MCD гораздо легче программировать, так как разработчик программирует только те участки кода драйвера, которые он считает нужным оптимизировать для своего чипсета. Однако MCD сильно уступает ICD в быстродействии. Более того, если 3D-программа использует функцию, которая не имеет в MCD-драйвере аппаратной поддержки, то аппаратное ускорение отключается совсем. Все профессиональные платы имеют ICD-драйверы, и причиной высокой цены этих плат не в последнюю очередь является сложность программирования ICD-драйвера.

Платы на 3DPro и Glint допускают настройку различных параметров рендеринга. Причем можно как настраивать плату на работу с определенным приложением (например, Softimage 3D или 3D Studio MAX), так и изменять значения различных параметров. Можно включить или отключить 32-битные текстуры, оверлеи, шаблоны, гамма-коррекцию и т.п.

Как мы тестировали

Мы тестировали платы как синтетическими тестами, так и в реальных приложениях.

Для тестирования мы использовали программы Indy3D 2.2 компании SENSE8. Indy 3D — программа для Windows NT 4.0, предназначенная для тщательного тестирования OpenGL. Indy3D требует аккуратно написанного OpenGL ICD-драйвера и не работает на широком диапазоне дешевых плат с MCD-драйверами, такими, как Matrox Millennium 2 и Number 9 Revolution 3D. Являясь синтетическим тестом, Indy3D отражает поведение 3D-ускорителя в реальных приложениях. Indy3D фокусируется на трех сегментах рынка 3D-графики: MCAD, Анимация (Animation) и Симулятор (Simulation). По мнению создателя Indy3D, компании SENSE8, такие тесты, как Viewperf, не отражают реальных задач, и результаты, полученные в них, не будут адекватными в реальном мире. Однако то же самое можно сказать и про Indy3D. Кроме тестов на производительность, Indy3D самым тщательным образом тестирует качество изображения, на которое влияет наличие в 3D-ускорителе разных функций OpenGL. Более подробно про Indy3D можно прочитать здесь.

Все результаты со знаком "Official SENSE8 Score" соответствуют разрешению 1024x768 при truecolor. Тестирование велось по всем правилам SENSE8, как-то:

  • Аппаратный курсор по умолчанию
  • Закрыты все приложения и окна кроме Indy3D
  • Отключен screen-saver
  • Отсутствие сети
  • Отключен vsync (sync to video retrace) там, где это возможно

Платы тестировались под Windows NT 4.0 на компьютере с процессором Pentium II 266MHz, оперативной памятью 160 MB, материнской платой A-Bit на чипсете LX и жестким диском Quantum Fireball SE, со следующими драйверами:

  • Eclipse II: использовался драйвер AccelGraphics от 13 марта 1998
  • GLoria-L/MX: использовался бета-драйвер 3Dlabs от 17 марта 1998
  • FireGL 3000: использовался бета-драйвер 3Dlabs от 17 марта 1998
  • FireGL 1000 Pro: использовался бета-драйвер 3Dlabs от 17 марта 1998

Mitsubishi 3DPro/2mp

Тестировалась плата AccelEclipse II компании AccelGraphics, имеющая 15 MB 3D-RAM и 16 MB CDRAM.

MCAD4.88
Animation 11.76
Simulation 16.80

Чипсет 3DPro/2mp базируется на технологии REALimage компании Evans & Sutherland и оптимизирован под архитектуру памяти 3D-RAM/CDRAM компании Mitsubishi. 3DPro — комбинированный 2D+3D ускоритель со встроенным triangle setup. 3DPro обеспечивает полную совместимость с OpenGL 1.1 и является идеальным решением для Windows NT 4.0. 3DPro выполняет высококачественное текстурирование с перспективной коррекцией, би- и трилинейной фильтрацией и субпиксельной точностью.

       

Фрейм-буфер базируется на технологии памяти 3D-RAM, оптимизированной для функциональности фрейм-буфера. 3D-RAM — интеллектуальная двухпортовая мультибанковая синхронная память с кэшированием. Основное преимущество 3D-RAM — одна операция записи там, где другим ускорителям нужно три операции (чтение-запись-чтение). 3D-RAM обеспечивает выполнение шести параллельных операций: растровые операции, альфа-смешение, z-сравнение, тест шаблона, а также маскировка битов и заполнение блоков. Такую функциональность поддерживает встроенные ALU, модуль сравнения и модуль ROP/Blend. 3DPro поддерживает до 15 MB 3D-RAM для получения разрешений от 640x480 до 1280x1024 при 32-битном truecolor с двойной буферизацией.

Текстурная память базируется на технологии памяти CDRAM, оптимизированной для чтения текселей. 3DPro поддерживает 4-16 MB CDRAM. 3DPro поддерживает 32-битные RGBA текстуры размером до 1024x1024 и 16-битные RGBA и RGB текстуры размером до 2048x1024, обрабатываемые с 32-битной точностью.

Нами был протестирован и вариант Eclipse II с интерфейсом AGP. Однако, в связи с отсутствием поддержки AGP под Window NT разницы в полученных результатах практически не наблюдалось. А та разница, которая была, соответствует погрешности вычислений. Поэтому в обзоре речь идет только о PCI-варианте платы на чипсете 3DPro. Вероятно, если появится сервис пак для NT 4.0 с поддержкой AGP или с выходом NT 5.0, мы проведем повторное тестирование. На сегодня же нет абсолютно никакой разницы, с каким интерфейсом использовать плату под NT: с PCI или AGP.

       

Производительность:

  • Throughput 650 тыс. треугольников/сек с 24-битной z-буферизацией, мипмэппингом, прозрачностью, туманом и оверлеем
  • Throughput 1.5 млн линий/сек с антиалиасингом и z-буферизацией
  • Fillrate 60 млн пикселей/сек с билинейной фильтрацией и альфа-смешением
  • Fillrate 30 млн пикселей/сек с трилинейной фильтрацией и альфа-смешением

Функциональные возможности:

  • 32-битный truecolor
  • Билинейная и трилинейная фильтрация с перспективной коррекцией
  • Антиалиасинг точек, линий и отсортированных полигонов
  • 24-битная floating-point z-буферизация
  • Оверлеи (8-битные с двойной буферизацией, 4-битные без двойной буферизации)
  • Шаблоны (4-битные)
  • Цветное освещение с несколькими источниками света
  • Пиксельная дымка, полигонный туман

На 3DPro делают платы всего лишь три производителя: AccelGraphics, Diamond (FireGL 4000) и DEC (PowerStorm 4D30T). Плохая для конечных пользователей маркетинговая политика этих компаний, а также Evans & Sutherland и Mitsubishi (создатели 3DPro) привела к низкой популярности чипсета. Платы на 3DPro заметно дороже своих ближайших конкурентов. Платы стоят очень дорого и поставляются в основном составе компьютеров именитых производителей. Чтобы купить такую плату, покупатель должен заказать плату у Diamond'а или AccelGraphics.

3DPro — неоспоримый лидер в данном обзоре и, возможно, вообще на рынке профессиональных 3D-плат. 3DPro победил в Indy3D, в реальных приложениях 3DPro выглядел заметно лучше других. К цифрам, которые мы получили в Glaze, не смог подобраться ни один другой ускоритель. Со всеми включеными эффектами частота кадров не снижалась ниже 30 fps. Также стоит отметить феноменальную производительность при ускорении векторной графики с антиалиасингом — Glaze показал скорость свыше 80 fps.

       

       

Большое число настроек OpenGL радует глаз. Плату можно сконфигурировать либо под какое-то конкретное приложение, а таких в настройках более 10, либо самому включать или выключать какие-то конкретные опции. Более изощренных настроек мы не увидели ни на одной другой плате.

3DPro без проблем справляется с большими текстурами, и благодаря наличию 16 MB текстурной памяти 3DPro прошел 16 MB-версию Indy3D без какого-либо замедления.

3Dlabs Glint DMX

Тестировалась плата GLoria-L/MX компании ELSA, имеющая 8 MB VRAM и 16 MB EDORAM. Кстати, хочется отметить, что на плате были использованы 2 Мб соджи.

MCAD2.90
Animation 5.45
Simulation 4.40

Чипсет Glint DMX 1000 объединяет процессор рендеринга Glint MX и triangle setup Glint Delta. Glint MX поддерживает разрешения до 2048x2048, в том числе HDTV 1920x1080. Delta, имеющий производительность 100 MFLOPS, обеспечивает высокоточную предобработку вершин, в том числе субпиксельную коррекцию, нормализацию вершин и преобразование из плавающей точки в фиксированную точку. Glint DMX обеспечивает полную совместимость с OpenGL 1.1, также совместима с Direct3D и Heidi. Glint MX поддерживает 32-битные RGBA и 8-битные палитровые текстуры. Glint DMX поддерживает фреймбуфер до 32 MB VRAM, в котором находятся прямой и обратный буфер, альфа-буфер и оверлейный буфер. Локальный буфер, в котором хранятся текстуры, z-буфер и буфер шаблонов, может быть объемом до 48 MB EDORAM.

       

Производительность:

  • Throughput 1 млн полигонов/сек с z-буферизацией
  • Throughput 1.2 млн линий/сек
  • Fillrate 33 млн пикселей/сек с билинейной фильтрацией и мипмэппингом

Функциональные возможности:

  • 24- и 32-битный truecolor, 15-битный hicolor
  • Билинейная и трилинейная фильтрация с перспективной коррекцией
  • Антиалиасинг 4x4 и 8x8
  • 24-битная и 32-битная z-буферизация
  • Оверлеи
  • Шаблоны (8-битные)
  • Туман

Glint стал промышленным стандартом 3D-систем для платформы Wintel. На чипсетах 3Dlabs делают платы огромное число поставщиков, среди которых AccelGraphics, Densan, ELSA, Leadtek, MaxVision, NeTpower, Omnicorp, Symmetric. Такая популярность объясняется тем, что 3Dlabs сама пишет драйвера для своих чипсетов, и производителям плат нет необходимости писать собственные драйвера.

В тестах Indy3D Glint DMX сильно отстал от лидера — 3DPro, и даже немного от Permedia 2. Но в реальных приложениях Glint MX был гораздо быстрее Permedia 2, и лишь немного уступал 3DPro. К тому же, учитывая некоторые проблемы в работе с Permedia 2, последняя может не подойти в серьезной работе. В такой ситуации Glint MX может похвастаться полной беспроблемностью.

Glint DMX также прошел 16 MB-версию Indy3D без какого-либо замедления.

3Dlabs Glint 500TX

Тестировалась плата FireGL 3000 компании Diamond, имеющая 8 MB VRAM и 32 MB EDORAM.

MCAD2.66
Animation 2.96
Simulation 2.68

Чипсет Glint 500TX Gold объединяет процессор рендеринга Glint 500TX и triangle setup Glint Delta. Glint 500TX поддерживает разрешения до 2560x2048, в том числе HDTV 1920x1080. Glint 500TX обеспечивает полную совместимость с OpenGL 1.1, также совместима с Direct3D и Heidi. Glint 500TX поддерживает 32-битные RGBA и 8- и 4-битные палитровые текстуры. Glint 500TX поддерживает фреймбуфер до 32 MB VRAM, в котором находятся прямой и обратный буфер, альфа-буфер и оверлейный буфер. Локальный буфер, в котором хранятся текстуры, z-буфер и буфер шаблонов, может быть объемом до 48 MB EDORAM.


Производительность:

  • Throughput 500 тыс полигонов/сек с z-буферизацией
  • Throughput 2 млн линий/сек с z-буферизацией
  • Fillrate 25 млн пикселей/сек

Функциональные возможности:

  • 24- и 32-битный truecolor, 15-битный hicolor
  • Билинейная фильтрация с перспективной коррекцией
  • Антиалиасинг 4x4 и 8x8
  • 24-битная и 32-битная z-буферизация
  • Оверлеи
  • Шаблоны (8-битные)
  • Туман

Glint 500TX также прошел 16 MB-версию Indy3D без какого-либо замедления.

3Dlabs Permedia 2

Тестировалась плата FireGL 1000 Pro PCI компании Diamond, имеющая 8 MB SGRAM.

MCAD3.21
Animation 6.20
Simulation 5.23

Чипсет Permedia 2 интегрирует полнофункциональный 2D-ускоритель, с поддержкой видео (преобразование YUV и масштабирование по двум осям), 3D-ускоритель со встроенным triangle setup с поддержкой strips/fans, выполненным по технологии Glint Delta, и RAMDAC 230 MHz. Permedia 2 поддерживает 8-, 16-, 24- и 32-битные RGBA, YUV и 8- и 4-битные палитровые текстуры. Permedia 2 поддерживает до 8 MB SGRAM или SDRAM. Permedia 2 поддерживает PCI и AGP 1X с адресацией по боковой полосе.

Permedia 2 представляет собой одно из лучших решений, совмещая высокопроизводительную 3D-графику для работы в OpenGL и Direct3D и быструю 2D-графику. Для Permedia 2, также, как и для чипсетов Glint, раработан OpenGL ICD-драйвер, что делает системы на основе Permedia 2 идеальным решением для профессиональных графических станций начального уровня.

Производительность:

  • Throughput 1 млн полигонов/сек с z-буферизацией
  • Fillrate 83 млн пикселей/сек с билинейной фильтрацией
  • Fillrate 42 млн пикселей/сек с билинейной фильтрацией и z-буферизацией

Функциональные возможности:

  • 24- и 32-битный truecolor, 16-битный hicolor
  • Билинейная фильтрация с перспективной коррекцией, мипмэппинг
  • 16-битная z-буферизация
  • Оверлеи
  • Шаблоны (1-битные)
  • Пиксельный туман
  • Offscreen (для кэширования фонтов и битмэпов)

Несмотря на формальную 16-битную z-буферизацию, Permedia 2 прошла тест на 32-битный z-буфер без появления артефактов, специфических для 16-битного z-буфера. Судя по всему Permedia 2 использует механизмы, повышающие точность z-буферизации.

Permedia 2 не прошла 16 MB-версию Indy3D, так как содержит всего 8 MB видеопамяти.

Другие OpenGL-ускорители

Выбор 3D-ускорителей делался по традиционному российскому принципу "достали, что смогли". Поэтому хотелось бы вкратце отметить те 3D-ускорители, которые присутствуют на рынке сегодня, но не вошли в обзор. Dynamic Pictures Oxygen 402 — плата с четырьмя процессорами Oxygen, оптимизирована под многопроцессорные компьютеры благодаря многопоточному OpenGL-драйверу. Сравнительно распространен в России, хотя о нем ходят диаметрально противоположные мнения. 3Dlabs Glint GMX — самый мощный чипсет от 3Dlabs, содержит 1 или 2 процессора рендеринга Glint MX и геометрический процессор Gamma. GMX 2000 дает throughput 4.5 млн полигонов/сек и fillrate 66 млн пикселей/сек. Intergraph Intense 3D Pro 3410, Realizm II — мощные платы, поставляемые с графическими станциями компании Intergraph. HP Visualize fx4 — мощные платы, поставляемые с графическими станциями Kayak компании Hewlett Packard. Более мощные платы Visualize fx6 предназначены для UNIX-станций HP.

Кроме того, надо учитывать скорое появление плат на новом чипе REALimage 2000 компании Evans&Sutherland. REALimage 2000 даст throughput 1.3 млн треугольников/сек (вдвое больше 3DPro) и fillrate 90 млн пикселей/сек (на 50% больше 3DPro).

Результаты Indy3D

Мы отдельно оценивали работу плат в truecolor и в hicolor. В первую очередь, следует обращать внимание на производительность в truecolor, так как этот режим является рабочим для программ моделирования.

MCAD

Animation

Simulation



Чипсет Плата 32-битные текстуры Трилинейная фильтрация Прозрачность Антиалиасинг Z-буферизация
Mitsubishi 3DPro/2mp AccelGraphics AccelEclipse II OK OK OK ПЛОХО OK
3Dlabs Glint DMX ELSA GLoria-L/MX OK OK OK ПЛОХО OK
3Dlabs Glint 500TX Gold Diamond FireGL 3000 OK ПЛОХО OK ПЛОХО OK
3Dlabs Permedia 2 Diamond FireGL 1000 Pro OK ПЛОХО ПЛОХО ПЛОХО OK


  • 32-битные текстуры — умение работать с 32-битными RGBA текстурами, обработка текстур также должна выполняться с 32-битной точностью.
  • Трилинейная фильтрация — трилинейную фильтрацию не поддерживают Permedia 2 и Glint 500TX.
  • Прозрачность — поддержка прозрачности для неотсортированных полигонов. Тест не прошли Permedia 2.
  • Антиалиасинг — поддержка антиалиасинга для неотсортированных полигонов. Тест не прошел никто.
  • Z-буферизация — поддержка z-буфера выскокой точности (24-битного или 32-битного). Permedia 2 имеет 16-битный z-буфер, однако Permedia 2 прошла этот тест.

Текстурирование

У Indy3D есть три версии, которые используют разное количество текстурной памяти: 4 MB — официальный тест, 8 MB и 16 MB. В тесте 4 MB используются текстуры размером 128x128, и суммарный объем текстур не превышает 4 MB. В тесте 16 MB используются текстуры размером 1024x1024, а суммарный объем текстур становится чуть менее 16 MB. Мы проверяли работу 3D-плат на 16 MB-версии Indy3D без замеров результатов для того, чтобы выяснить, может ли работать плата с текстурами большого размера.

Тест не прошла только Permedia 2. Это объясняется небольшим объемом видеопамяти — в нее не могут влезть все текстуры.

Чипсет Плата Работа с 16 MB-версией Indy3D
Mitsubishi 3DPro/2mp AccelGraphics AccelEclipse II OK
3Dlabs Glint DMX ELSA GLoria-L/MX OK
3Dlabs Glint 500TX Gold Diamond FireGL 3000 OK
3Dlabs Permedia 2 Diamond FireGL 1000 Pro НЕ РАБОТАЕТ

Поддержка текстур большого размера желательна для некоторых 3D-программ, где требуется высокая детализация и где текстуры низкого разрешения будут выглядеть смазанными. Вы можете оценить разницу между текстурами 1024x1024 и 128x128 на картинках внизу. Это текстуры на груди, лице и голове.

Текстуры 128x128 Текстуры 1024x1024

Антиалиасинг

Антиалиасинг — самая запутанная черта современных 3D-ускорителей. В первую очередь потому, что существует много видов антиалиасинга, которые не следует путать друг с другом. Сразу скажу, что в программах моделирования, которые мы использовали, антиалиасинг мы включить не смогли.

Антиалиасинг линий

Нужен в программах, где основная работа ведется с каркасными моделями. Такими программами в основном являются CAD. Поэтому в тесте MCAD Indy3D тестируется каркасная модель с включенным антиалиасингом линий. Каркасная модель с антиалиасингом выглядит гораздо приятнее, чем без такового. Антиалиасинг линий тестирует программа Glaze. Вы можете оценить краевой антиалиасинг по картинкам снизу.

        

Краевой антиалиасинг для отсортированных полигонов

Программа, которая должна быть написана должным образом и выводить треугольники в порядке приближения к наблюдателю (то есть, предварительно отсортировав их). Этот вид антиалиасинга поддерживается большинством протестированных 3D-ускорителей, но, судя по всему, в программах моделирования не используется. Едиственная программа, где мы его заметили, — демка от 3Dlabs (картинки снизу).

       

Краевой антиалиасинг для неотсортированных полигонов

Именно этот вид антиалиасинга тестирует Indy3D. Именно его не хватает всем протестированным 3D-ускорителям. И, видимо, именно он требуется программам моделирования.

Операционные системы

На платформе Intel единственной серьезной операционной системой является Microsoft Windows NT 4.0. Все остальные ОС, такие, как UNIX, Windows 95, DOS и т.п., не представляют собой ничего серьезного хотя бы потому, что большинство производителей OpenGL-ускорителей не пишут драйверы для этих ОС.

Если вы очень любите UNIX (имеется в виду: все ее разновидности — Linux, FreeBSD и т.д.), то вам стоит купить себе видеоплату от фирмы Matrox, сконфигурировать правильно X-windows и забыть об аппаратном ускорении OpenGL.

Windows 95 обладает рядом неоспоримых преимуществ, например, Direct3D. На этой платформе у вас будут идти все игрушки, но стоит учитывать, что у многих OpenGL-ускорителей для этой ОС нет драйверов. Также отсутствие поддержки многопроцессорных систем делает Windows 95 неконкурентоспособной. Да и многие графические приложения просто не пойдут под этой ОС. Хотя, если вы купили себе 3D-ускоритель, оптимизированный для работы с Direct3D, а также пиратский диск с 3D Studio MAX 2.x (вместо очередного журнала об играх), вам, возможно, не стоит переходить на Windows NT.

Windows NT 4.0 лишена всех тех недостатков, которые описаны выше. Под NT для всех OpenGL-ускорителей есть драйверы, она поддерживает многопроцессорность, на ней идут все приложения, использующие OpenGL. Под ней нельзя играть, хотя когда человек покупает акселератор за $3000 и программу 3D-анимации за $10000, он вряд ли будет играть в игры на этой рабочей станции.

Нужна ли многопроцессорность?

Мы изучили скорость работы программ моделирования на двух- и однопроцессорной системах. Нас интересовала скорость самого процесса моделирования и работы с анимированными объектами при использовании OpenGL, а также скорость работы модуля визуализации, для получения конечного результата. Ни на одном из протестированных ускорителей мы не заметили разницы в скорости при использовании различного количества процессоров. Отсюда можно сделать вывод, что, в основном, драйвера для OpenGL-ускорителей не являются многопоточными, поэтому мы и не можем получить пользу от второго процессора. Так что, если вы занимаетесь моделированием, вам нет смысла ставить второй процессор в свою рабочую станцию. Исключением являются OpenGL-ускорители серии Oxygen от компании Dynamic Pictures (их мы не тестировали), драйвер которых распараллеливает работу двух процессоров Pentium Pro или Pentium II, что должно давать прирост производительности в OpenGL при использовании двух процессоров.

Мы смотрели скорость окончательной визуализации в 3D Studio Max v1.2 и LightWave v5.5. Как известно, Windows NT является операционной системой с поддержкой многопроцессорности. ОС сама решает как загрузить процессоры, а многопоточная программа получает преимущество в скорости, так как потоки выполняются параллельно на двух процессорах. Обе программы хорошо распараллелены и получают сильный прирост скорости на двух процессорах в окончательном рендеринге. Например, на двух процессорах 3D Studio Max выполнял окончательный рендеринг ровно вдвое быстрее, чем на одном процессоре.

Нам также было интересно, как ведет себя API Heidi от Kinetix, который используется в 3D Studio MAX v1.2. В 3D Studio MAX v2.x используется новый Heidi, не совместимый с Heidi, который использовался в 3D Studio MAX v1.x. Поэтому Heidi-драйвера, написанные для 3D Studio MAX v1.x, не работают с версией 2.0. Поэтому мы использовали версию 1.2. Оказалось, что Heidi сильно заточен под программный рендеринг. Heidi поддерживает многопроцессорность, но слабо поддерживает 3D-ускорители. Скорость ускоренного Heidi была всегда ниже, чем скорость программного Heidi. Например на FireGL 3000 скорости preview у нас упала почти в три раза.

Quake 2

По просьбам общественности мы протестировали платы FireGL 3000, GLoria-L/MX и Eclipse II на предмет их использования в качестве платформы для Quake 2. Все они имеют очень низкую скорость даже на низких разрешениях. Дело в том, что играм требуется от 3D-ускорителя высокая скорость обработки треугольников и текстурирования. Профессиональные платы дают сравнительно низкий throuhput и fillrate, поэтому и показывают низкую скорость в Quake 2. От профессиональной платы требуется высокое качество на высоких разрешениях и стабильная работа с оптимизацией под конкретные приложения. Как мы уже говорили 1024x768 в truecolor, наложение truecolor текстур 1024x1024 и текстурная память 16 MB и выше — обязательные требования, которые совершенно не нужны в играх.

К сожалению, в плане качества рендеринга плата Eclipse на 3DPro оказалось плохо совместимой с Quake 2. Плата GLoria-L/MX на Glint DMX дала качественную картинку, которую смело можно считать эталоном при тестировании игровых плат. Вы можете посмотреть скриншоты ниже: идеальное цветное освещение, 32-битный truecolor с хорошей передачей цветов, трилинейная фильтрация, отсутсвие даже мелких погрешностей — ни одна игровая плата не достигает такого качества изображения в Quake 2.

        

Резюме

Купив любой из рассмотренных 3D-ускорителей, вы получите существенный прирост скорости в OpenGL. Для систем начального уровня имеет смысл присмотреться к 3D-ускорителям на базе Permedia 2. Учитывая низкую стоимость плат на Permedia 2 и качественные драйверы для Windows 95, можно считать Permedia 2 оптимальным решением. Для получения максимальной скорости в любом приложении, использующем OpenGL, вам просто необходимо приобрести 3D-ускоритель на 3DPro. Конечно, он имеет очень высокую цену, но если 3D-графика является вашим куском хлеба, то вам стоит серьезно подумать о покупке этого ускорителя. Два других ускорителя (Glint 500TX и Glint DMX) находятся посередине. С одной стороны, они дешевле AccelEclipse II, но существенно проигрывают ему в скорости. С другой, они дороже Permedia 2, но почти не превосходят Permedia 2 по скорости, хотя имеют более богатые функциональные возможности. В конечном счете, за все приходится платить — невозможно купить полноценный OpenGL-ускоритель, по цене сравнимый с игровыми 3D-ускорителями. Но в то же время нельзя недооценивать производителей игровых 3D-чипов, которые пишут ICD-драйверы OpenGL для своих изделий. Поэтому не исключено, что грань между профессиональными и игровыми ускорителями через некоторое время начнет стираться. А пока перед вами стоит нелегкая задача выбора профессионального 3D-ускорителя.