Приложения, интенсивно использующие трехмерную графику, традиционно считались сферой деятельности рабочих станций Unix. Однако сегодня данная сфера расширилась за счет компьютеров на платформе Intel и Alpha, работающих с ОС Windows NT. Теперь, когда эти системы снабжены графическими ускорителями, поддерживающими аппаратно-графический стандарт OpenGL, их производительность при работе, например, с системой Pro/ ENGINEER вполне можно сравнивать с производительностью графических рабочих станций Unix среднего уровня. С помощью новых ускорителей можно, скажем, работать в системе Pro/ENGINEER под управлением Windows NT, не ощущая задержек при построении достаточно сложного изображения. Сегодня существует огромное количество графических ускорителей. Цель данной статьи - обзор их возможностей на примере работы с одной из популярных систем автоматизации проектирования - Pro/ENGINEER.
Объектами нашего исследования стали девять различных графических ускорителей для NT, используемых в Pro/ENGINEER, соответствующих стандарту OpenGL и не превышающих стоимостную отметку в 3 тыс. долл. Они ускоряют все или почти все графические функции Pro/ENGINEER, а некоторые даже аппаратно поддерживают операции с текстурами. Критерии оценки основаны прежде всего на производительности при работе с твердотельными и каркасными моделями САПР Pro/ENGINEER. Цена, поддержка объектно-ориентированного проектирования, качество вывода на экран, простота установки, качество документации, поддержка пользователей также принимались во внимание.
Из девяти плат шесть являются реализацией графической архитектуры фирмы 3D Labs, использующей новейший процессор рендеринга и текстурирования Glint500TX и сопроцессор Glint Delta. Компания 3D Labs - это автор разработки микросхем и проектирования соответствующих плат для этих ускорителей, а также драйверов для Windows NT 3.51, 4.0 и 95. Платы других фирм на основе процессора Glint также представляют собой стандартную реализацию или разновидность разработки 3D Labs и поставляются с собственными драйверами и усовершенствованными компонентами для увеличения функциональных возможностей и производительности.
Контрольный тест
Графический контрольный тест был проведен при помощи версии 17 системы Pro/ENGINEER, работающей с ОС Windows NT 3.51. Протокольный (trail) файл, использованный для проведения контрольного теста, содержал следующие программы тестирования: отображение в виде каркасной и твердотельной модели, включая прозрачность, с механизмом устранения искажений (anti-aliasing), формирование перспективных видов, функции отсечения и отображение сетки SLA. В ходе тестирования обнаружилось несколько технических ошибок графических операций, возникающих при повышении качества закрашивания. В результате этот процесс убрали из контрольного теста. Тесты строились с расчетом на максимальное сокращение времени работы центрального процессора, дабы убедиться в том, что происходит оценка производительности именно графического ускорителя.
Для проведения обзора были использованы три аппаратные платформы. Первая: ПК MaxVision Symbion Pro 2200, расширяемый до двухпроцессорной системы, с одним процессором Pentium Pro 200 МГц и PCI набором чипов Intel 440FX, который добавляет несколько функций для ускорения графической производительности. Вторая: Alpha-совместимая система с центральным процессором Alpha 21164 EV5 300 МГц. Третья: MaxVision Symbion AXP164 с процессором Alpha 21164 EV56 433 МГц. Все системы были сконфигурированы с жесткими дисками Fast-Wide SCSI-II и 128 Мбайт памяти.
В контрольном тесте использовались две модели. Для тестирования производительности при работе с каркасными моделями применялась деталь с 3600 отверстиями. Для оценки производительности как в твердотельном, так и каркасном режиме работы была взята сборка турбины. В качестве метрики тестов учитывалось время - количество секунд, расходуемых на выполнение операции. Конечный результат складывался из суммарного времени операций в твердотельном и каркасном режимах. Используемые при тестировании протокольный файл и модели доступны на Web-странице http:/www.proe.com вместе со скриптами, применяемыми для получения временных характеристик контрольного теста.
Терминология OpenGL
OpenGL - графический интерфейс прикладного программирования, используемый, в частности, в Pro/ENGINEER для создания трехмерных изображений. Для ускорения работы Pro/ENGINEER под ОС NT необходим ускоритель, совместимый со стандартом OpenGL. Все рассмотренные продукты полностью соответствуют стандарту OpenGL - они ускоряют все OpenGL-функции на аппаратном уровне.
Конвейер OpenGL. Этот конвейер или путь, проходимый при создании трехмерных объектов, состоит из различных этапов графической обработки: преобразование геометрии, расчеты зон освещенности, формирование графических примитивов (векторов и многоугольников), затенение и текстурное наложение. Графический ускоритель OpenGL увеличивает скорость операций на последних этапах этого конвейера.
Мозаичность (tesselation). Функция "разбиения" геометрических поверхностей на маленькие отдельные треугольные элементы. Треугольники закрашиваются при помощи алгоритмов плавного закрашивания для создания гладкой поверхности. Эта функция полностью управляется центральным процессором, графическая плата не играет никакой роли в этом процессе.
Затенение по методу Гуро. Способ гладкого затенения, при котором цвета на вершинах мозаичных и плоско-закрашенных моделей интерполируются для совпадения цветов треугольников по их граням. В результате получается гладко-закрашенное изображение. Для большинства пользователей Pro/ENGINEER очень важна возможность обрабатывать твердотельные изображения в то время, как модель подвергается манипуляциям в режиме реального времени.
Отображение в каркасном режиме. Каркасный режим отображения по-разному использует графические аппаратные средства, а показатели производительности вращения в каркасном и твердотельном режимах могут существенно отличаться в программах и аппаратных платформах.
Текстурное наложение. Наносить изображения на поверхность трехмерных объектов означает оборачивать трехмерные объекты растровыми изображениями. В этом случае необходим буфер памяти для хранения образа текстур. Эта возможность придает реализм твердотельным моделям Pro/ENGINEER.
Двойная буферизация. Особую актуальность в приложениях, работающих в режиме реального времени, приобретает возможность создавать очередное изображение из их последовательности еще в буфере локальной памяти, а не в буфере кадров, и переносить его в буфер кадров до завершения всей последовательности. В результате достигается гладкое немерцающее динамическое вращение модели.
Z-буферизация. Глубина пикселя по Z-координате - нормаль к поверхности монитора, используемая для определения видимости или невидимости каждого пикселя. 16-битная Z-буферизация хуже по качеству, чем 24-битная, и с большей вероятностью создает дефекты в изображениях. 24-битная Z-буферизация требует большего объема видеопамяти.
Устранение искажений (anti-aliasing). Процесс сглаживания граней между объектами, окрашенными в разные цвета, при помощи интерполяции цветов между разноцветными пикселями и создания промежуточного пикселя, получившегося в результате такого смешивания.
Поддерживаемые режимы воспроизведения цветов. Большинство графических ускорителей поддерживают режимы работы с цветом 15 бит на пиксель (32 тыс. цветовых оттенков) или 24 бит на пиксель (16,7 млн.) на разрешении 1280х1024, наиболее предпочтительном для работы в Pro/ENGINEER. Устройства, поддерживающие режим 24 бит на пиксель, выводят изображения в реальном цвете и со значительно более высоким качеством, что обеспечивает вывод гладко закрашенных цветных изображений. Важно отметить, что графические платы, работающие с реальным цветом, пропускают чуть больше информации через свои конвейеры для обработки одних и тех же изображений из-за наличия дополнительной информации о цвете на каждый пиксель.
Видеопамять. Память, используемая для заполнения экрана, - буфер кадров и для буферизации локальных вычислений - локальный буфер. Для этих целей память может быть взята из смежных непрерывных областей или расположенных в разных местах областей памяти. Наличие смежной (непрерывной) области памяти обходится дороже при использовании VRAM, но обеспечивает гибкость при работе с глубиной цвета и распределением памяти для различных вариантов буферизации.
Альфа-плоскости (планы). Каналы, применяемые для создания прозрачности модели. 8-битная альфа-плоскость обеспечивает поддержку, необходимую для достижения прозрачности модели в Pro/ENGINEER. Эту возможность имеют все рассмотренные платы.
Результаты тестирования приведены в таблице 1.
Таблица 1. Результаты тестирования.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Действующие лица
Intergraph: Intense 3D-T. В тестировании принимал участие ускоритель, реализованный на плате полной длины с синхронной динамической памятью 16 Мбайт (Synchronous DRAM - SDRAM) и выделенной текстурной памяти 4 Мбайт. Эта плата выпускается в нескольких вариантах аппаратных и ценовых конфигураций. Геометрический процессор и процессор обработки освещенности (lighting processor), удваивающие производительность и устанавливаемые в отдельный слот PCI, могут быть добавлены к плате дополнительно.
Плата Intense 3D относится к новому поколению продуктов, использующих одну область памяти SDRAM, которая является менее дорогостоящей, чем VRAM, и к тому же обеспечивает хорошую производительность. Ускоритель обеспечивает глубину реального цвета, 24-битную буферизацию и 8 плоскостей перекрытия. Этот продукт также предоставляет некоторые дополнительные возможности работы с видео, но большинство пользователей Pro/ENGINEER пока их не используют. Плата Intense 3D показывает более высокую производительность, чем стандартные продукты на основе процессора Glint на платформе Pentium Pro, за исключением платы AccelPro 2500TX. Эта плата также предоставляет возможности и качество, обеспечивающие поддержку различных режимов работы с реальным цветом и наивысшую скорость текстурного наложения в модуле Pro/PHOTORENDER среди рассмотренных ускорителей. Она, единственная из всех, по-настоящему использует текстурное наложение, благодаря наличию текстурной памяти 4 Мбайт. Если приложению требуется высокопроизводительная поддержка текстурного наложения, то лучшего выбора на платформе Intel, чем вышеуказанная плата, быть не может. Пользователям DEC Alpha не повезло - Intense 3D поддерживает только платформу Intel.
Dynamic Pictures: V192 и Oxygen102. Фирма Dynamic Pictures представляет два продукта, которые поддерживают Pro/ENGINEER. Первым является ускоритель V192, в терминологии Digital известный как ZLXp-L1. V192 - это высокопроизводительная плата полной длины, использующая единый объем 16 Мбайт VRAM и позволяющая выводить изображения в реальном цвете, с 24-битной Z-буферизацией и восьми плоскостями перекрытия. Благодаря его возможностям по работе с реальным цветом созданные им изображения получаются более высокого качества, чем изображения, полученные посредством других плат.
Второй продукт - Oxygen 102, ориентирован на экономного пользователя. Плата создана на основе нового собственного чипа Oxygen с улучшенными показателями производительности, включающего аппаратную поддержку текстурного наложения. Она также содержит единый накопитель памяти, но в отличие от V192 здесь предусмотрена менее дорогостоящая память типа SDRAM. Это позволяет эффективно использовать ресурсы памяти, которые могут быть динамически распределены через панель управления между текстурной памятью, Z-буфером, плоскостями перекрытий и плоскостями шаблонов (stencil planes). Подобно другим платам на основе процессора Glint, этот продукт способен поддерживать разрешение 1280х1024 при 32 тыс. цветовых оттенков, потратив лишь половину объема своей памяти, что дает существенную экономию в цене. Единственной накладкой при работе с Oxygen 102 была ошибка отображения при отсечении.
Оба продукта фирмы Dynamic Pictures сопровождены четкими, хорошо документированными руководствами, в том числе самым удачным руководством по поддержке и установке программных средств для платформ Alpha. Обе платы Dynamic Pictures также очень хорошо работали на Alpha-станциях и прекрасно взаимодействовали с более быстрым процессором Alpha несмотря на то, что их производительность на Pentium Pro была относительно низкой, особенно в режиме каркасного отображения. Производительность платы Oxygen 102 особенно впечатляет. На Alpha-системах она показывает результаты, сравнимые, а зачастую и более высокие (при существенно меньшей стоимости), чем другие ускорители. Oxygen 102 также обеспечивает наиболее высокую производительность в твердотельном режиме на системе Alpha 300 МГц.
И V192, и Oxygen 102 обеспечивают специальные возможности конфигурации для улучшения производительности Pro/ENGINEER. Обе платы продемонстрировали великолепную скорость на тестировавшихся системах Alpha. Хорошее соотношение цена/производительность позволяет рекомендовать Oxygen 102 для экономных пользователей аппаратных платформ Intel и, особенно, Alpha. Несмотря на то что V192 выпущен довольно давно, он вполне подойдет тем, кому нужна плата с богатыми возможностями для работы с реальным цветом.
AccelGraphics. AG300 компании Accel-Graphics был первым графическим ускорителем, сертифицированным компанией PTC для использования с Pro/ENGINEER на рынке NT. Новейшим предложением от AccelGraphics является плата AccelPro 2500TX - собственная реализация на основе процессоров Glint и Delta фирмы 3D Labs. AccelGraphics имеет преимущества перед другими продуктами Glint - дело в том, что компания совместно работает с PTC при тестировании и сертификации своих продуктов, а также использует свои собственные оптимизированные драйверы OpenGL.
Контрольный тест этой платы не был завершен на системах DEC Alpha из-за сбоев на графических операциях в протокольном файле. Проблемой стал конфликт драйвера Accel-Graphics 3.2.1 и 17-й версии Pro/ENGINEER. Однако 16-я версия работала безупречно, а ее показатели отдельно включены в таблицу результатов (таблица 2), из которой следует, что эта плата работает лучше, чем Symmetric GLyder/TX на 16-й версии, особенно на системе с процессором Alpha 433 МГц - здесь при выполнении операций с твердотельными моделями уровень ее быстродействия оказался на 29% выше. Важно отметить, что 17-я версия функционирует примерно на 25% медленнее при выполнении графических операций, чем 16-я. Поэтому нельзя сравнивать производительность этой платы на 16-й с производительностью других плат на 17-й версии Pro/ENGINEER.
Таблица 2. Данные тестирования для ProENGINEER rel.16.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AccelPro 2500TX является сертифицированным продуктом PTC для 17-й версии Pro/ENGINEER. Однако протестировать плату на этой версии для платформы Alpha не удалось, хотя производительность на MaxVision Pentium Pro 200 и с 16-й версией Pro/ENGINEER на станциях Alpha подтверждает, что эта плата является наиболее быстродействующей в своем классе. Несмотря на проблемы, возникающие во время работы на станциях Alpha, и ее довольно высокую стоимость, AccelPro 2500TX можно отнести к самому лучшему решению среди всех рассматриваемых продуктов для ускорения работы Pro/ЕNGINEER в ОС NT.
ELSA: GLoria-M и GLoria-L. Фирма ELSA предложила два продукта, которые являются реализацией архитектуры 3D Labs: GLoria-M, которая использует более старый чип Glint 300SX с сопроцессором Delta и 8 Мбайт памяти, и GLoria-L, применяющую чип 500TX и дополнительно 8 Мбайт памяти. Обе платы имеют разъемы для установки дополнительной памяти. Компания ELSA предлагает свои собственные драйверы для плат, которые помогают пользователям Windows реализовать преимущества двухмерного видеоускорения в дополнение к возможностям работы в объеме. Эти продукты поставляются с полной документацией, однако драйверы Alpha отсутствуют, и в руководстве нет упоминания о Pro/ENGINEER. Завершить контрольный тест с платой GLoria-L удалось только благодаря использованию стандартного Glint-драйвера фирмы 3D Labs для DEC Alpha.
Несмотря на то что представленные платы ELSA снабжены быстрой памятью EDO DRAM и собственными драйверами для повышения производительности, их быстродействие оказалось гораздо хуже, чем у соперников. Действительно, плата GLoria-M действовала в 4 раза медленнее, чем самая медленная плата при выполнении операции вращения твердотельных моделей (из-за этого пришлось убрать результат из диаграммы). А их стоимость гораздо выше, чем у более быстрых конкурентов. Трудно рекомендовать GLoria-M для работы с Pro/ENGINEER на любой платформе. Несмотря на то что GLoria-L показала себя вполне конкурентоспособной на фоне других плат на основе чипа 500TX, неоправданно высокая цена не позволяет нам предлагать ее вниманию пользователей.
Платы на основе процессора Glint. Следующие три продукта являются стандартными реализациями комбинации 500TX/Delta фирмы 3D Labs. Они почти одинаковы по конфигурации и производительности, и проблемы у них общие - они связаны с установкой. Установка плат Glint в системах Alpha - достаточно сложный процесс: инсталляция драйверов Glint требует наличия любой другой платы, которую надо затем вынуть и заменить на плату Glint. Любые ошибки приведут к переустановке всей операционной системы, что происходило дважды во время тестирования. Проблема состоит в том, что драйверы VGA для Alpha в NT 3.51 отсутствуют, и эти платы поставляются без инсталляционного диска для платформы Alpha. Это единственная область, в которой Windows NT 4.0 оказалась серьезным улучшением - сюда включены стандартные драйверы VGA.
Несмотря на аппаратную поддержку текстурного наложения на этих платах, фирмы-производители не смогли обеспечить достаточный объем памяти для соответствующего ускорения текстурного наложения в Pro/ENGINEER для платформы Intel.
Symmetric: GLyder/TX. Symmetric первой представила на рынке свое решение на базе новейших технологий 3D Labs. Их графический ускоритель является стандартной реализацией 3D Labs Glint, использующей драйверы 3D Labs для обеспечения ускорения OpenGL. Поэтому эта плата обеспечивает производительность, почти идентичную с ускорителями MaxVision и OmniComp, при более конкурентной цене. Полная документация для платформы Intel содержит упоминание о Pro/ENGINEER, но документация для Alpha отсутствует. К счастью, продукт безупречно работает и с Alpha. Учитывая высокую производительность в системе Alpha 433 МГц и в Pentium Pro 200, можно рекомендовать эту плату для использования на обеих платформах в качестве лучшего решения для плат среднего класса. Интерес вызывает также новая плата Symmetric GLyder/MP, которая имеет два процессора 500TX с 32 Мбайт дополнительной памяти для увеличения объема Z-буфера, поддержку плоскостей перекрытий и текстурной памяти.
MaxVision: GLmax 88T. С точки зрения конфигурации и производительности, эта плата также относится к стандартной реализации 3D Labs. Она стандартно поставляется вместе с системой MaxVision Alpha 433 МГц, обеспечивая самую быструю графическую производительность под NT среди рассмотренных ускорителей.
OmniComp: 3Demon DTX88. На плате OmniComp 3Demon DTX88 существует дополнительный разъем для увеличения памяти локального буфера, что позволяет работать с большим количеством текстур и битовых плоскостей. Однако, с другой стороны, этот продукт - стандартная разработка на основе процессора Glint. Во время тестирования плат OmniComp возник ряд проблем - произошла ошибка при выводе изображения на экран дисплея, причина которой, скорее всего, в плохом чипе VRAM. Плата была работоспособной, однако отображение выходных данных на экране дисплея оказалось искаженным. Вторая плата, присланная на замену, также работала некорректно с Pentium Pro, "вешая" Pro/ENGINEER и Windows NT во время выполнения операций вращения твердотельных моделей.
OmniCop оказалась одним из самых быстрых продуктов, протестированных на платформе Alpha. Однако несмотря на то, что в ней предусмотрена крайне необходимая в будущем возможность наращивания объема памяти, обнаруженные проблемы с аппаратной частью не позволяют рекомендовать ее к использованию.
Анализ результатов
Итак, в системе Pentium Pro 200 МГц лучшие результаты показала плата AccelPro 2500TX. Она обеспечила производительность в твердотельном режиме, равную MaxVision 433 Alpha, хотя и работала значительно медленнее с изображениями в каркасном режиме. Плата Intergraph Intense 3D также оказалась отличным решением, обеспечивающим высокое качество вывода изображений в реальном цвете, дополнительные возможности для опытных пользователей и самое лучшее текстурное ускорение среди всех рассмотренных плат.
Несмотря на высокую производительность процессора Alpha, все платы на основе процессора Glint показали самые высокие результаты, особенно при работе в твердотельном режиме. Явным лидером среди них могла бы стать одна из плат Dynamic Pictures.
Из всех протестированных плат Symmetric GLyder/TX, MaxVision GLmax 88T и OmniComp 3Demon DTX88 обеспечили наивысшую производительность для системы с процессором Alpha 433 МГц как при работе в каркасном режиме, так и в твердотельном.
Еще один интересный результат - несоответствие в скорости 16-й и 17-й версий Pro/ENGINEER. Сравнительный тест на плате Symmetric GLyder/TX в системе Alpha 300 МГц показал, что 17-я версия снизила свою графическую производительность на 25%. Различия между версиями Pro/ENGINEER могут легко свести на нет преимущества в плане производительности, предоставляемые более быстрыми графическими платами.
Заключение
При выборе графического ускорителя для работы Pro/ENGINEER в системе Windows NT нужно сначала определить, какая платформа нужна и за какую сумму. Пользователь должен расставить приоритеты - это может быть хорошее соотношение цена/производительность, высокая производительность или блестящие функциональные возможности. Самое главное, что эти платы позволяют достичь производительности, близкой аналогичным показателям рабочих станций Unix среднего класса.
Статья подготовлена к изданию фирмой SOLVER (Россия), solver@solver.vrn.ru. Публикуется с разрешения редакции журнала Pro/E: The Magazine (США), http://www.proe.com.