`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

По ту сторону OpenGL

0 
 

Статьи, касающиеся профессионального применения компьютерной техники, нередко появляются в СМИ, однако последний материал о стандарте OpenGL в «Компьютерном Обозрении» вышел в середине 2003 г., а тестирование соответствующих ускорителей состоялось еще раньше. Причинами столь редкого обращения к этой теме являются и невысокая актуальность информации для широкой аудитории, и банальное отсутствие данных продуктов в Украине. Сегодня ситуация во многом изменилась, так что снова встречайте OpenGL собственной персоной.

При подготовке статьи я долго размышлял, на какую целевую аудиторию лучше ориентироваться. Обычным домашним пользователям, которые редко используют ПК не для игр и пакета офисных утилит Microsoft, практически невозможно объяснить в двух словах, что такое OpenGL. Чтобы осилить подобную задачу, придется написать не один десяток статей, что, впрочем, тоже может не дать положительного результата, так как очень трудно научить чему-либо человека, который сам к этому не стремится.

В свободной продаже также есть книги с названиями а-ля «OpenGL и 3D-моделирование для "чайников"»; но лично мне кажется, что «чайники» и трехмерное моделирование несовместимы в принципе. И, похоже, я в этом мнении не одинок – первый тест компании SPEC из набора SPECviewperf отображает четырех жонглирующих механических клоунов... с чайниками на головах. Аналогично в Microsoft DirectX SDK основной «персонаж», используемый для демонстрации возможностей API, тоже именно чайник. На этом, пожалуй, шуток достаточно, пора переходить к более серьезной теме.

По ту сторону OpenGL
Maya – по-прежнему стандарт де-факто для создания компьютерной анимации

Как бы там ни было, но попытки некоторых печатных СМИ на пальцах объяснить, что такое OpenGL, все-таки выглядят довольно нелепо. В лучшем случае это просто перевод первой страницы документа «The OpenGL Reference Manual», о худшем не стоит даже вспоминать.

Желающие получить корректную информацию о принципах работы двух основных графических интерфейсов OpenGL и Direct3D могут начинать с сайтов www.opengl.org, www.directx.org и www.direct3d.org. Если речь идет только о первом стандарте, то обязательными для прочтения документами будут «OpenGL 2.0 specification» и «OpenGL Shading Language Specification» – именно в них содержатся ответы на все наиболее часто задаваемые вопросы.

Настоящих же профессионалов в области 3D-моделирования и визуализации CG обычно интересуют либо глобальные вопросы типа «Куда направлен вектор развития OpenGL?», либо же что-то очень узкоспециализированное, к примеру «Полезен ли RAID-массив при рендеринге статических изображений?».

Так что в данном материале остается ориентироваться на третью, наиболее обширную категорию пользователей – тех, кто знает о существовании как OpenGL, так и профессиональных карт-ускорителей, оптимизированных для работы с данным API, при этом они хотя бы раз запускали какой-либо пакет 3D-моделирования, например AutoCAD или 3D Studio Max, однако не задумывались о том, в чем же заключается разница между «игровым 3D» и «профессиональным 3D». Соответственно, поиск подобных отличий и выявление их сути и будет темой нашего сегодняшнего разговора.

Войны стандартов

По ту сторону OpenGL
Тест SPECviewperf: до сих пор никто не знает, при чем же здесь чайники?

Споры вокруг сравнения возможностей OpenGL и Direct3D сейчас не столь популярны, как в конце 90-х. Тогда SGI и Microsoft регулярно находили повод обвинить друг друга либо в предвзятом отношении, либо в сложности и медлительности «чужого» API. В результате как грибы после дождя начали появляться публикации с обязательным латинским словом «versus» в названии, и даже закрепился термин «API Wars», который, впрочем, просуществовал не очень долго. Впоследствии разработчики аппаратного и программного обеспечения, вспомнив, для каких целей изначально создавались оба интерфейса, обнаружили, что цели эти совершенно разные, и сравнивать не пересекающиеся по сфере применения технологии сразу же стало скучно. Для справки – одной из главных причин возникновения таких споров послужил выпуск компанией id Software хитового игрового сериала Quake, который столь разительно отличался от остальных игр того времени во многом благодаря смелому, революционному, но, главное, нетипичному применению интерфейса OpenGL.

Позиционирование

OpenGL появился задолго до Direct3D. Это был первый открытый интерфейс, сделавший создание и визуализацию трехмерной графики доступными для массовой аудитории. Изначально новый API от SGI формировался как простой инструмент, обеспечивающий преимущества аппаратной акселерации в профессиональных задачах моделирования, а его развлекательное применение – скорее «альтернативный» вариант, которым воспользовались прогрессивные игровые студии.

C Direct3D ситуация диаметрально противоположная. Основная цель этого API – стандартизация методов формирования игровой трехмерной графики для платформы Windows с минимальной применимостью его в сложных задачах CG и 3D-графики.

Задачи

Основным и неоспоримым преимуществом OpenGL является его кросс-платформенность. ПО, использующее этот API, значительно легче портируется на другие ОС. Множество рабочих станций функционирует под разными операционными системами (UNIX, Linux, Mac OS), и немало производителей ПО заинтересованы в том, чтобы с минимальными затратами и усилиями их пакеты работали на большинстве распространенных платформ. И, как следствие, чтобы модель, нарисованная, к примеру, на станции с HP-UX, выглядела точно так же в аналогичном продукте, но только под управлением Windows.

Основная же задача Direct3D состоит в том, чтобы ПО, написанное с использованием этого API, максимально быстро и корректно выполнялось под операционной системой Windows, с аппаратным ускорением на видеокартах, управляемых соответствующим драйвером.

Аппаратная часть

Наверное, наиболее интересная и сложная часть данного материала – каким образом вызовы OpenGL и Direct3D «преобразуются» в картинку на экране. Оба API представляют собой библиотеку с наборами функций и процедур, однако с несколько различающимися принципами использования аппаратной части.

По ту сторону OpenGL
Внешний DVI-передатчик – визитная карточка OpenGL-ускорителей класса high end

В первом случае применяются так называемые расширения (Extensions, их полный список с описаниями можно найти по адресу oss.sgi.com/projects/ogl-sample/registry), которых на сегодняшний день более трех сотен. Если драйвер видеокарты «понимает» вызов любого из них, другими словами, поддерживает возможность их выполнения, то результатом становится изображение на экране. Каким путем это сделано, уже другой вопрос – аппаратным (процедура полностью исполняется GPU), аппаратно-программным (к выполнению задачи на некоторых этапах подключается центральный процессор) либо полностью программным (все вычисления производятся CPU, а видеокарта лишь отображает результат).

Обязательность поддержки драйверами наборов таких расширений зависит от версии стандарта OpenGL (1.2, 1.3. 1.4, 1.5, 2.0). Приведем небольшой пример – последняя спецификация появилась в конце прошлого года, а реализация в драйверах ATI и NVIDIA этой версии – только летом, но даже для тех моделей GPU, на время проектирования которых существовал только OpenGL 1.4. В результате сегодня и на GeForce FX 5600, и на 7800 GTX допустимо выполнение приложений, использующих OpenGL 2.0, – с той лишь разницей, что новый GPU от NVIDIA значительно меньше функций переложит на плечи CPU.

Direct3D также допускает некоторые вольности, но в узко заданных рамках. Приложение, написанное из расчета на DirectX 9.0, не сможет выполняться на видеокарте, поддерживающей только седьмую версию этого API, потому что есть четкое разграничение поколений программного интерфейса. Так, соответствие спецификациям 9.0 означает обязательную аппаратную реализацию Shader Model 2.0.

Хорошей иллюстрацией данного тезиса может служить факт запуска DOOM 3 на 3dfx Voodoo2 (!), пусть и с новым драйвером. Это действительно работает (хоть и медленно и, разумеется, не так красиво). А ведь между выходом ускорителя и этой игры – больше пяти лет, что для IT-индустрии огромный срок.

Для сравнения можно попробовать запустить, скажем, Far Cry на Riva TNT. Если вам это удастся, вы наверняка станете знаменитыми. Таким образом, ответить на вопрос, почему нельзя то же самое сделать для Direct3D, просто. Достаточно еще раз вспомнить, для чего предназначен тот и другой API. Поскольку Direct3D рассчитан на развлекательную сферу, где все должно быть «быстро и красиво», то если видеокарта не имеет аппаратных возможностей обеспечить первое и второе, значит, нет никакого смысла реализовывать совместимость нового ПО и старого «железа». Для OpenGL же, наоборот, основными критериями являются функциональность и работоспособность при рендеринге статических изображений – соответственно, и подходы к связке hard–soft совершенно другие.

Теперь рассмотрим, во что выливается разница в быстродействии и функциональности между потребительскими (игровыми) и профессиональными видеокартами.

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

В очередной раз встает вопрос о позиционировании. Так как OpenGL более предпочтителен для CG и 3D-моделирования, следовательно, и высокая производительность (с аппаратным ускорением) необходима в процедурах, часто использующихся при создании 3D-сцен. Главным образом, это ускорение отображения каркасных (WireFrame) моделей и алгоритмов затенения. Например, в CAD-пакетах 90% времени работы над сценой проходит именно в «проволочном» режиме либо в затененном (Shading), без текстурирования. Это, кстати, одно из основных отличий драйверов профессиональных видеокарт ATI и NVIDIA от версий их домашних собратьев.

В Direct3D в первую очередь упор делается на скорость текстурирования (Fillrate) и исполнения шейдеров. Вот, собственно, и ответ на вопрос, почему в играх дорогие OpenGL-ускорители иногда значительно уступают обычным картам. Аналогичным образом производительность при работе с детализированными моделями иногда может отличаться на порядок в пользу «профессионалов».

Стандарты

По определению профессиональные карты должны соответствовать более жестким требованиям, чем их домашние собратья. Причем речь идет как о внутренних, так и внешних стандартах, предъявляемых компаниями, выпускающими ПО.

Внутренние стандарты подразумевают контроль качества на всех стадиях производства. В дорогих OpenGL-акселераторах используется только высококачественная элементная база (предварительно протестированные модули памяти, только японские элементы в цепях питания, VRM с запасом избыточной мощности на 25%). Также в некоторых моделях применяется внешний DVI-передатчик (как правило, от компании Silicon Image) для реализации интерфейса PanelLink. Данная технология позволяет передавать цифровой сигнал на большие расстояния, а при использовании Dual-Link с частотой вплоть до 330 MHz выводить изображение со сверхвысоким расширением (UXGA) при сохранении качества и допустимого уровня электромагнитных помех. Именно поэтому для вывода картинки на видеостены, состоящие из двух и более плазменных панелей, применяются hi-end-видеокарты от 3Dlabs и ATI.

Соответствие внешним стандартам означает проверку производителем программного пакета работоспособности акселератора с последующей выдачей сертификата. Для пользователя присутствие надписи «N-certificated» означает, что в случае возникновения каких либо «графических» проблем он может смело обращаться за необходимой поддержкой к обеим сторонам (производителю ПО и/или видеокарты).

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

Распространенность

Разумеется, объемы продаж профессиональных видеокарт на несколько порядков ниже, чем потребительских видеоакселераторов, но это если смотреть только на сухие цифры. Если взглянуть с другой стороны, то можно заметить, что на сегодняшний день ATI, NVIDIA и 3Dlabs производят более тридцати (!) моделей, при том что в продаже имеются как минимум два предыдущих поколения, т. е. в целом на рынке присутствует около 100 моделей OpenGL-акселераторов. Думается, этот факт, безусловно, подтверждает их востребованность.

Стоимость

Бытует мнение о том, что стоимость профессиональных версий Quadro и FireGL всего на $10 выше, чем аналогичных моделей GeForce и Radeon. Возможно, это и так, если учитывать лишь «конвейерную» цену. Однако, надеюсь, вышеописанные пункты вполне объясняют, почему за оптимизированную под СG карту приходится платить иногда в несколько раз больше, чем за топовый игровой ускоритель. Судите сами: написание единой версии BIOS и драйверов, чтобы видеокарта работала корректно в большом количестве сложного и совершенно разного по своей сути ПО, поиск уникальных настроек (пресетов), проведение всех необходимых мероприятий для соответствия стандартам стоит очень недешево. Не следует забывать и о дилерах, которые по вполне понятным причинам используют другие подходы к ценообразованию, чем при продаже обычных ускорителей. Наценка на подобную продукцию не может находиться в пределах $5–50, особенно с учетом того, что стоимость ПО, в паре с которым будет работать видеокарта, редко меньше тысячи условных единиц.

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

Термин «профессиональная видеокарта», который часто употребляется в материалах сегодняшней темы недели, у кого-то может вызвать легкое недоумение. В самом деле, вы вряд ли встретите словосочетание «профессиональный автомобиль» или «профессиональный холодильник». Однако любые устройства могут быть разделены на классы, например потребительский, промышленный и т. д.

Некоторые считают, что «профессиональным» можно назвать практически любой продукт, если он является рабочим инструментом специалиста, зарабатывающего с его помощью. Но при такой трактовке двусмысленности все равно не избежать. Например, для журналиста основным инструментом является консоль ПК, т. е. клавиатура и дисплей – но разве стоит их при этом называть «профессиональными»?

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

И тем не менее информация о «профессиональных» видеокартах, а точнее OpenGL-ускорителях, нужна не только профессионалам. Темой CG (Computer Graphic) в наше время интересуется огромное количество энтузиастов и просто любопытствующих. Именно для них мы и подготовили материалы этой темы недели.

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT