Графические акселераторы для профессионалов в области трехмерной графики и анимации.
Платы трехмерных акселераторов
Пользователи еще не успели по-настоящему насладиться скоростью вывода на экран двухмерной графики и привыкнуть к тому, что графический адаптер можно приобрести по доступной цене, а технологии уже требуют взятия новых высот - речь идет о трехмерном рендеринге. В то время, как рекламные заголовки пестрят предложениями дешевых трехмерных графических акселераторов, позволяющих окунуться в мир современных компьютерных игр, настоящие ценители графики выискивают для себя платы трехмерных ускорителей, спроектированные специально для профессиональной работы с компьютерными изображениями и анимацией. Эти платы стоимостью от 500 до 5000 долл. относятся к устройствам старшего класса и ориентированы на художников и аниматоров (как создающих трехмерные иллюстрации, так и работающих в сфере развлечений), а также на людей, занимающихся компьютерным проектированием (САПР и системы автоматизации производства), научным моделированием и другими видами промышленного использования компьютерной графики. Хотя мы будем рассматривать наиболее мощные и дорогие трехмерные акселераторы, бережливым покупателям стоит обратить внимание еще на две платы с довольно высокой производительностью: Millenium II (299 долл.), разработанную компанией Matrox Electronics, и Imagine 128 (699 долл.), выпущенную фирмой Number 9 Technologies. Обе платы не только прекрасно работают с двумерными изображениями, но и обладают хорошими средствами ускорения трехмерной графики.
Казалось, что это невозможно
Использование компьютера открывает перед вами поистине фантастические возможности. Программное обеспечение для трехмерного моделирования позволит вам быстро создать объемные предметы и разместить их в пространстве. После завершения компоновки объектов можно скорректировать освещение, атмосферу, угол зрения и многие другие параметры, после чего компьютер самостоятельно выполнит все необходимые вычисления, а также рендеринг трехмерного изображения на плоский экран. При желании вы можете оживить сцену анимацией, изменяя точку зрения и положение объектов. И хотя все это выглядит очень эффектно, но, к сожалению, работает слишком медленно. Третье измерение требует огромного количества дополнительных вычислений.
Рендеринг
Плата высокопроизводительного акселератора не предназначена для создания графического образа в памяти компьютера - это работа процессора. Акселератор отвечает за ускорение вывода трехмерного изображения на экран дисплея, причем он должен обеспечивать приемлемые время и качество рендеринга. Без использования возможностей акселератора путь изображения к экрану становится слишком долгим, особенно это касается анимации. Поскольку анимация (при которой одно изображение сменяет другое с частотой 30 кадров в секунду) требует очень интенсивных вычислений, большинство производителей высококлассных трехмерных акселераторов любят акцентировать внимание на совместимости своих плат со специальным программным обеспечением, в частности, с пакетами 3D Studio Max компании Kinetix и Microsoft SoftImage.
Однако ускорение весьма полезно не только при создании анимационных роликов, но и при работе над трехмерными иллюстрациями, занимающими лишь один кадр. Это объясняется тем, что, выполняя интерактивное моделирование и перемещая объекты в процессе подготовки изображения, вы фактически тоже сталкиваетесь с анимацией. Когда вы захватываете границу области и растягиваете ее, выполняете наложение текстур или перемещаете точку зрения, акселератор отображает изменения в реальном масштабе времени (практически мгновенно). Даже если вы намерены всего лишь создать обложку для журнала, то и в этом случае вам придется на какое-то время стать аниматором.
От образа в памяти к пикселам на экране
Отображение на экране трехмерных иллюстраций требует большого объема вычислительных операций. Дело в том, что данные, описывающие объекты, освещение, атмосферу и точки зрения на трехмерную сцену, должны быть преобразованы в плоское изображение с тенями, наложенными текстурами и другими эффектами, придающими картине реалистичность. Эта задача возлагается на специальные наборы микросхем трехмерной обработки, которые с помощью математических преобразований превращают объекты создаваемого изображения в точки, отображаемые на экране. В большинстве включенных в обзор продуктов используется набор микросхем Glint, разработанный компанией 3Dlabs, хотя иногда встречаются и микросхемы других производителей. В дорогих платах может быть установлено более одного процессора, что позволяет существенно ускорить вычисления.
Микросхемы трехмерного рендеринга могут взаимодействовать со специальным препроцессором обработки треугольников (triangle setup preprocessor), который иногда называют также геометрическим препроцессором. Все схемы трехмерного моделирования и анимационные программы представляют объекты в виде совокупности пересекающихся треугольников (или других многоугольников) и в общем случае должны выполнить некоторые вычисления для преобразования этих треугольников в данные, непосредственно отображаемые на экране. Микросхемы, обрабатывающие треугольники, освобождают процессор компьютера от этой работы и таким образом повышают общую производительность вывода трехмерной графики.
Трехмерные акселераторы профессионального уровня используют для ускорения вывода специальную архитектуру памяти, называемую двойной буферизацией. Обычно обрабатываемые данные заполняют буфер памяти (или кадр), содержимое которого адаптер преобразует в видеосигнал, управляющий электронно-лучевой трубкой. При двойной буферизации память состоит из двух кадровых буферов: пока в одном из них идет подготовка изображения, из второго уже готовая картинка пересылается на экран.
Слагаемые реалистичности
Конечно, все аспекты трехмерного рендеринга мы охватить не в состоянии, однако некоторые из них хотелось бы выделить особо. Для имитации структуры поверхности объекта служат специальные двумерные образцы или текстуры. При их наложении учитывается форма объекта, его освещенность и перспектива. Эта часть процедуры рендеринга выполняется намного быстрее, если текстурные данные (схемы) хранятся непосредственно в плате акселератора, а точнее - в специально отведенной для этой цели области памяти.
Сглаживание (antialiasing) выравнивает цвета смежных пикселов, чтобы убрать зазубрины, появляющиеся на кривых и диагоналях. Альфа-смешение (alpha-blending) позволяет придать какому-либо предмету ту или иную степень прозрачности, в результате чего становится виден объект, находящийся за ним. При 24-разрядной глубине цвета многие платы используют дополнительный 8-разрядный альфа-канал, дающий возможность задавать 256 уровней прозрачности. В случае 15-разрядной глубины цвета (32 768 цветов) дополнительный бит задает два уровня прозрачности или затенения. Процесс придания объекту прозрачности иногда называют наложением. При этом 16-разрядная глубина цвета, поддерживаемая платой, превращается в 15-разрядную вследствие использования дополнительного бита для управления прозрачностью. Закраска по методу Гуро (Gouraud shading) позволяет добиться натурального отображения теней в трехмерных иллюстрациях, а также смешения цветов каждого многоугольника для получения эффекта мягкого освещения. Закраска по методу Гуро не позволяет отображать мельчайшие подробности, обеспечиваемые более сложными алгоритмами, например, закраской по методу Фонга (Phong shading), однако объем вычислений для реализации метода Гуро меньше, а качество изображения в большинстве случаев остается вполне приемлемым. Во многих платах аппаратно реализованы эффекты тумана (fog) и других атмосферных явлений. В этом случае пикселы, из которых состоят удаленные объекты, прорисовываются бледнее или модифицируются иным образом.
Другие компоненты трехмерных ускорителей
Третье измерение строится путем обработки Z-буфера, в который заносится информация о перекрывающихся объектах. В простейшем случае плата должна определять момент, когда пиксел, подготовленный к выводу, закрывается более близко расположенным объектом. Если плата распознает такую ситуацию, закрытые пикселы не отображаются. Z-буферы с 24- или 32-разрядной информацией о глубине обеспечивают хорошую точность, в то время как использование 16-разрядного буфера или буфера с еще меньшей разрядностью может в некоторых случаях порождать неопределенность. Недостаточные размеры Z-буфера приводят к отображению тех пикселов, которые не должны отображаться. Например, задняя стена виртуального дома может появляться одновременно с передней.
Еще одним существенным параметром, влияющим на качество изображения (особенно при двойной буферизации), является глубина цвета (16-разрядный или полный 24-разрядный цвет), поддерживаемая платой акселератора в режиме максимального разрешения. Обычно платы с большим объемом памяти или более эффективным ее распределением обеспечивают 24-разрядную глубину цвета в режиме наивысшего разрешения без ее снижения до 16 или 15 разрядов. Все платы за исключением модели AGC-GL500 Pro, выпускаемой компанией MicroStep, включают встроенную видеосхему VGA (или Macintosh), поэтому вам нет необходимости устанавливать отдельный адаптер для стандартного двумерного видео.
Платы на базе микросхем Glint обычно поставляются с банком высокоскоростной видеопамяти (VRAM), в которой хранятся кадровые буферы, и отдельным пулом динамической памяти (DRAM) для размещения текстурных схем, Z-буферизации и выполнения других функций. В других платах, например серии Oxygen компании Dynamic Pictures, имеется один пул высокоскоростной синхронной памяти DRAM или памяти иного типа. Такое решение дает пользователям возможность самостоятельно выбирать конфигурацию памяти. Поэтому, если в большом количестве текстур нет необходимости, для их хранения выделяется меньший объем памяти, а больший резервируется для выполнения других функций.
Естественно, высокое разрешение требует наличия быстрого цифро-аналогового преобразователя, а также других схем, позволяющих выводить на экран достаточное, для обеспечения устойчивого изображения, количество точек в секунду. Обратите внимание на указанную в технических спецификациях частоту регенерации (вертикальной развертки), показывающую, сколько раз в секунду изображение перерисовывается на экране при различных разрешениях. В зависимости от индивидуальных особенностей зрения различных людей, мерцание экрана исчезает при частоте 60 Гц (60 обновлений изображения в секунду), но лучше все же ориентироваться на частоту 75 Гц и выше.
Трехмерный рабочий стол
Роль шлюза между операционной системой и аппаратной частью трехмерного акселератора выполняет драйвер, который обычно обращается к одному из стандартных интерфейсов прикладных программ (application program interfaces, API). Платы, совместимые с Macintosh, осуществляют вывод на экран через интерфейс QuickDraw 3D, разработанный фирмой Apple. Интерфейсы OpenGL и Heidi, выпущенные соответственно компаниями Silicon Graphics и AutoDesk, являются двумя основными API для приложений Windows NT.
Известные фирмы стремятся максимально оптимизировать свои драйверы. В менее дорогих платах треугольники могут обрабатываться лишь частично, это приводит к тому, что драйвер, например, для OpenGL предварительно выполняет необходимые вычисления с помощью центрального процессора компьютера, а затем пересылает полученные линии плате акселератора. (В нашем обзоре представлены только платы, полностью обрабатывающие треугольники собственными средствами.)
Перед приобретением платы трехмерного графического акселератора убедитесь в том, что ваши приложения совместимы с API или с драйвером, поставляемым вместе с платой. Попросите также разработчика используемого вами программного обеспечения дать свои рекомендации. Производители плат тесно сотрудничают с производителями ПО, что позволяет гарантировать высокую производительность и совместимость с конкретным программным обеспечением.
Обозреватель Боб Уэйбел является постоянным автором журнала Publish. В своих статьях он рассматривает вопросы, связанные с аппаратным и программным обеспечением.
Платы трехмерных акселераторов
Компания |
Продукт |
Цена по прейскуранту |
Набор микросхем для обработки трехмерного изображения |
Препроцессор, обрабатывающий треугольники |
Текстурные схемы |
Сглаживание |
Альфа-смешение |
Закраска по методу Гуро |
Туман |
Z-буфер (при разрешении 1280х1024) |
Глубина цвета |
VRAM/DRAM (Мбайт) |
Частота регенерации (Гц) |
Поддерживаемые платформы |
API |
|||||||||
1160x1200 | 1280x1024 | 1152x870 | 1024x768 | 800x600 | 1024x768 | 1280x1024 | 1160x1200 | OPEN GL | HEIDI | QUICK-DRAW 3D | DIRECT 3D | |||||||||||||
AccelGraphics www.accelgraphics.com | AccelPro Mx | 2395 | Glint MX | Glint Delta | + | + | + | + | + | 24 | 15 | 15 | 24 | 24 | 8/16-40 | 85 | 85 | 85 | 85 | Windows NT | + | + | - | - |
AccelEclipse | 3495 | Mitsubishi 3D Pro | Встроенный | + | + | + | + | + | 24 | н/п | 24 | 24 | 24 | 15/4-16 CDRAM | 75 | 75 | 75 | н/п | Windows NT/95 | + | + | - | - | |
AccelStar II | 350 | 3Dlabs Permedia 2 | Встроенный | + | - | + | + | - | 16 | н/п | 16 | 24 | 24 | 8 SGRAM | 85 | 85 | 85 | н/п | Windows NT/95 | + | + | - | - | |
Diamond Multimedia Systems www.diamondmm.com | DiamondFireGL 1000 | 300 | 3Dlabs Permedia | Glint Delta | + | + | + | + | + | 16 | 16 | 16 | 24 | 24 | 8 SGRAM | 120 | 85 | 100 (16 бит) | 75 (16 бит) | Windows NT/95 | + | - | - | - |
Diamond FireGL 3000 | 1299 | Dual Glint 500TX | Glint Delta | + | + | + | + | + | 16 | 16 | 16 | 24 | 24 | 8/32 DRAM | 75 | 100 | 100 (16 бит) | 85 (16 бит) | Windows NT/95 | + | + | - | + | |
Diamond FireGL 4000 | 2995 | Mitsubishi 3D Pro с E&S RealImage | Встроенный | + | - | + | + | + | 32 | н/п | 24 | 24 | 24 | 15 3D RAM/ 4-16 CDRAM | 130 | 120 | 100 | н/п | Windows NT/95 | + | + | - | + | |
Dynamic Pictures www.dypic.com | Oxygen 102 | 995 | Oxygen | Встроенный | + | + | + | + | + | 16 | н/п | 16 | 16 | 16 | 8 SDRAM | 100 | 100 | 85 | н/п | Windows NT/95 | + | + | - | - |
Oxygen 202 | 2095 | Dual Oxygen | Встроенный | + | + | + | + | + | 24 | н/п | 24 | 24 | 24 | 16 SDRAM | 75 | 75 | 75 | н/п | Windows NT/95 | + | + | - | - | |
Oxygen 402 | 3695 | Quad Oxygen | Встроенный | + | + | + | + | + | 24 | н/п | 24 | 24 | 24 | 32 SDRAM | 75 | 75 | 75 | 75 | Windows NT/95 | + | + | - | - | |
ELSA www.elsa.com | Gloria-L | 1099 | Glint 500TX | Glint Delta | + | + | + | + | - | 32 | 15 | 15 | 24 | 24 | 8/8-16 | 160 | 160 | 113 | 80 | Windows NT/95, OS/2 Warp | + | + | - | + |
IX Micro www.ixmicro.com | Ultimate Rez 3D | 699 549 PC | Macintosh IX Micro TwinTurbo 128-3D | Встроенный | + | - | + | + | + | 24 | 16 | 16 | 24 | 24 | 8 VRAM | 150 | 150 | 100 | 90 | Windows NT/95 | + | + | + | + |
Intergraph Computer Systems www.intergraph.com | Intense 3D Pro 1000 GT | 4751 | Intergraph Panther | На второй плате | + | + | + | + | + | 32 | 24 | 24 | 24 | 24 | 20 SDRAM | 85 | 85 | 75 | н/п | Windows NT | + | + | - | - |
MaxVision | 3DmaxPD8 | 575 | 3Dlabs Permedia | Glint Delta | + | + | + | + | + | 16 | н/п | 16 | 16 | 24 | 8 SGRAM | 85 | 85 | 85 | 60 | Windows NT | + | + | - | + |
Glmax88T | 1995 | Glint 500TX | Glint Delta | + | + | + | + | + | 24 | 16 | 16 | 24 | 24 | 8 / 8 | 85 | 85 | 85 | 60 | Windows NT | + | + | - | + | |
MicroStep www.microstep.com | AGC-GL500Pro M1616 | 1650 | Glint 500TX | Glint Delta | + | + | + | + | + | 24 | 32 | 32 | 32 | 32 | 16 / 16 | 85 | 85 | 85 | 85 | Windows NT/95 | + | - | - | + |
Newer Technology www.newertech.com | RenderPix PCI/500 | 1395 | Glint 500TX | Glint Delta | + | + | + | + | - | 24 | 16 | 16 | 32 | 32 | 8 /16 | 72 | 75 | 75 | 75 | Power Macintosh | + | - | + | - |
RenderPix PCI/502 | 2995 | Dual Glint 500TX | Glint Delta | + | + | + | + | - | 24 | 16 | 16 | 32 | 32 | 8 / 32 | 72 | 75 | 75 | 75 | Power Macintosh | + | - | + | - | |
Omnicomp Graphics www.omnicomp.com | 3Demon Pro88 | 1595 | Glint 500TX | Glint Delta | + | + | + | + | + | 32 | 16 | 16 | 32 | 32 | 8 / 8-32 | 85 | 85 | 85 | 60 | Windows NT/95 | + | + | - | + |
3Demon Pro1616 | 2995 | Glint 500TX | Glint Delta | + | + | + | + | + | 32 | 32 | 32 | 32 | 32 | 16 / 8-32 | 85 | 85 | 85 | 60 | Windows NT/95 | + | + | - | + | |
Radius www.radius.com | Thunder 3D | 2199 | Glint 500TX | Glint Delta | + | + | + | + | - | 32 | 16 | 16 | 32 | 32 | 8 / 24 | 75 | 75 | 75 | 75 | Power Macintosh | - | + | + | - |
Symmetric www.symmetric.com | Glyder MX | 1799 | Glint MX | Glint Delta | + | + | + | + | + | 32 | 16 | 16 | 24 | 24 | 8 / 8-32 | 85 | 85 | 75 | 75 | Windows NT/95 | + | + | + | + |
Glyder TX | 1299 | Glint 500TX | Glint Delta | + | + | + | + | + | 32 | 16 | 16 | 24 | 24 | 8 / 8-32 | 85 | 85 | 75 | 75 | Windows NT/95 | + | + | + | + | |
Glyder MP | 2799 | Dual Glint 500TX | Glint Delta | + | + | + | + | + | 32 | 16 | 16 | 24 | 24 | 8 / 32 | 85 | 85 | 75 | 75 | Windows NT/95 | + | + | + | + |