14 лет назад 15 июня 2004 в 16:00 53

Первые ассоциации, которые вызывает у нормального человека словосочетание профессиональный графический адаптер – монстроподобная железяка стоимостью с хороший автомобиль, нужная для чего-то совершенно немыслимого. Ассоциации, в общем, верные, но несколько старомодные. Сейчас с “неодомашненными” формирователями изображения все обстоит несколько иначе.

Было время, когда все, что касалось профессиональной работы и с двух-, и с трехмерной графикой, стоило безумных денег, и вряд ли у какого-нибудь 3D-дизайнера могла возникнуть мысль прикупить станцию от Silicon Graphics Inc (SGI), чтобы подрабатывать, а то и вовсе работать дома.

Специфическое программное обеспечение, несоизмеримая с домашним компьютером мощь как самой системы, так и графической ее части делали возможности профессиональных систем и систем домашних несравнимыми. Теперь все совсем не так. Нет, с Silicon Graphics все в порядке, станции этой компании по-прежнему одни из лучших, если речь идет о создании сложных трехмерных эффектов или масштабных батальных сцен в свежем голливудском блокбастере.

Только вот мощность настольных систем возросла на порядок, да и графические ускорители, не поспевающие за все новыми и новыми эффектами современных игр, кое в чем умудрились даже обогнать своих профессиональных собратьев.

Для того чтобы понять, что собой представляют профессиональные графические адаптеры, давайте сначала разберемся, в каких областях они применяются.

ТОЧКИ ПРИЛОЖЕНИЯ
У профессиональной графики есть три основные задачи. Первая – 2D высокой четкости, с поддержкой больших разрешений (до 3840×2400) и высоких частот развертки. Область применения – медицина, системы автоматизированного проектирования, научные исследования, графический дизайн и полиграфия.

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

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

В решении первых двух задач преуспела известная канадская компания Matrox Graphics – общепризнанный лидер, производящий широкий спектр графических адаптеров, основным свойством которых является отличное качество двухмерной графики и прекрасно подходящая для указанных задач функциональность.

Над решением третьей задачи работают инженеры многих компаний, но серьезных успехов добились три –ATI Technologies, NVIDIA и 3DLabs. Последняя в настоящее время является собственностью компании Creative и в отличие от двух первых занимается исключительно профессиональными решениями для трехмерного моделирования.

Дикая кошка
Одной из ключевых особенностей карт 3DLabs серии WildCat является поддержка виртуальной видеопамяти. Если возникает ситуация, когда основной памяти адаптера оказывается недостаточно, в оперативной памяти компьютера создается виртуальная страница, которая доступна графическому процессору так, будто это графическая память адаптера. Максимальный объем страницы, которым могут оперировать ускорители серии WildCat, составляет 16 Гб (!). К слову, подобное решение будет в скором времени введено и в архитектуру игровых ускорителей – это произойдет с выходом нового API от Microsoft, известного сейчас под кодовым именем DirectX Next.

Заслуги Matrox в решении задач двухмерной графики очевидны, но относительно трехмерных ускорителей возникает резонный вопрос: чем же таким особенным они отличаются от игровых карт, установленных в наших домашних компьютерах? Оказывается, практически ничем, по крайней мере если говорить о чипах, используемых в решениях NVIDIA и ATI.

ПРОГРАММИРУЕМАЯ АРХИТЕКТУРА
Современные графические процессоры обладают программируемой архитектурой, и от того, какой код заливается в чип, зависит, насколько эффективно он будет выполнять те или иные функции. На физическом уровне профессиональные решения ATI и NVIDIA не отличаются от своих игровых аналогов: Quadro строиться на базе тех же самых чипов, что и GeForce, а FireGL – не что иное, как любимый многими RADEON.

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

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

3D-ЗАДАЧИ
То, что видит 3D-дизайнер на экране монитора в процессе создания модели или сцены, разительно отличается от того, что получается в итоге. Во время моделирования дизайнер видит превью (Preview) – изображение объекта значительно более низкого качества, чем получаемое в конечном итоге, после операции чистового рендеринга. Когда дизайнер завершает свою работу, он производит перерасчет полученной сцены в заданном разрешении и формате, причем задача рендеринга почти полностью перекладывается на центральный процессор или процессоры, если в системе их больше одного.

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

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

Кроме того, в задачах 3D-моделирования в отличие от игр используется не полноэкранное (Full Screen Antialiasing – FSAA), а пограничное сглаживание, при котором обрабатываются только грани объектов. Так что и здесь задачи у игровых и профессиональных ускорителей различаются.
Понятно, что архитектуры, оптимизированные для выполнения двух разных задач, будут значительно отличаться друг от друга.

Оптимизация на лету

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

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

ИЗ ГРЯЗИ В КНЯЗИ
Мы пришли к выводу, что железо у игровых и профессиональных адаптеров практически одно и то же и все решают драйвера устройства. Тогда почему бы не заставить драйверы определять игровые платы как профессиональные? Это вполне возможно, достаточно лишь подменить идентификатор устройства.

У любого устройства имеется свой собственный уникальный идентификатор – DeviceID, по которому система определяет, что это за компонент и какие для него нужны драйверы. В случае с профессиональными и игровыми платами от ATI/NVIDIA, пакет драйверов одинаков как для обыкновенных, так и для профессиональных решений, а исходя из DeviceID, выбирается нужный драйвер и активируются необходимые возможности.

Чтобы “переделать” игровую плату в ее профессиональный аналог, необходимо форсировать чужой DeviceID. Для этого автором легендарной утилиты RivaTuner были созданы патч-скрипты к драйверам, которые устанавливаются непосредственно через RivaTuner. Патч-скрипт особым образом модифицирует определенные файлы дистрибутива драйвера, вследствие чего и форсируется чужой DeviceID. Устанавливая пропатченный драйвер, мы получаем профессиональные возможности на самых обычных игровых платах.

Итак, что же нужно, чтобы пропатчить драйвер? В первую очередь, последняя версия утилиты RivaTuner. Обязательно проверьте, поддерживается ли версия используемого драйвера патч-скриптом. Как правило, при попытке пропатчить неподдерживаемый драйвер, RT выдает ошибку.
Сами патч-скрипты хранятся в подкаталоге PatchScripts, находящемся непосредственно в папке программы RT.

Далее в зависимости от того, какая видеокарта установлена, в соответствующей папке нужно выбрать патч-скрипт SoftFireGL (для ATI) или SoftQuadro (для NVIDIA). Затем в окне патч-скрипта необходимо выбрать нужный файл из дистрибутива драйвера, модифицировать его и уже после этого установить драйвер из измененного дистрибутива.

А поиграть?

Можно ли играть на профессиональных 3D-ускорителях? Можно, но не стоит рассчитывать на то, что это будет очень увлекательно. Лишь некоторые профессиональные карты обеспечивают совместимость с API DirectX 8.1, ставшим сейчас объективным минимумом для всех современных игр.

К примеру, 3Dlabs WildCat VP990 Pro поддерживает только DX8, а многие другие профессиональные 3D-ускорители вообще лишены поддержки этого API. Для профессиональных нужд стандарт де-факто – OpenGL, и вводить поддержку игровых API в данных решениях никто не собирался.

Своеобразным компромиссом в этом вопросе являются решения ATI и NVIDIA: поскольку их профессиональные решения построены на базе тех же самых VPU/GPU, что и потребительские, здесь мы имеем поддержку API DirectX 8.1 и даже 9.0, а также вполне приличную скорость в играх.
/Конец врезки

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

Голливудские спецэффекты

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

Разработкой столь сложных спецэффектов занимаются специализированные студии, например ILM Джорджа Лукаса, известного всем по таким фильмам, как “Звездные войны” и “Мнимая угроза”. Затраты на разработку сложных спецэффектов огромны: к примеру, одна из сцен в “Звездных войнах” обошлась ее создателям в $140 млн! Для разработки применяются колоссальные мощности – рендеринг по так называемой технологии распределенных вычислений выполняют несколько сотен рабочих станций, соединенных в единую сеть.

Особенно ресурсоемки в реализации огонь и взрывы. Для имитации реального взрыва приходится использовать огромное количество динамически накладываемых частиц. Раньше художникам нередко приходилось накладывать помимо динамических частиц монтажные дым и огонь. Сейчас же, с появлением и быстрым распространением программируемых шейдеров, проблема решается полностью программно.

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