Здавалка
Главная | Обратная связь

Поколения 3D-ускорителей DirectX



До появления DirectX программистам приходилось в коде своих приложений учитывать всю совокупность возможного оборудования у пользователей. Грубо говоря, для каждой «железки», с некоторой вероятностью установленной в ПК, писать свой участок кода, напрямую управляющий ее работой. И такого оборудования (видео- и звуковых карт, клавиатур, мышей и игровых манипуляторов и т.п.) становилось с каждым годом все больше и больше. Но и это еще не все. Появление и широкое распространение Microsoft Windows 95 должно было еще более усложнить жизнь разработчикам софта. В отличие от MS-DOS, бывшей в то время основной программной платформой, Windows 95 функционировала в так называемом защищенном режиме работы процессора, что, конечно, значительно увеличивало устойчивость к сбоям операционной системы, однако и ограничивало возможности программ по прямому управлению устройствами. В общем, заколдованный круг. И в Microsoft придумали, как одним махом решить обе проблемы. Во-первых, всех производителей соответствующего оборудования призвали (фактически, обязали) писать для своих устройств DirectX-совместимые драйверы. Во-вторых, разработчикам программ дали стандартизированный API DirectX, то есть новый инструмент (фактически, язык), используя который, они отныне уже не забивали себе голову вопросом, какие конкретно «железки» могут быть установлены в компьютерах потенциальных пользователей, а писали свои программы для неких идеальных DirectX-совместимых устройств, безотносительно тонкостей их конкретной реализации. В общем, в августе 1995 года на рынке появилась ОС Windows 95, а уже в октябре — и первый API DirectX, носивший изначально название Windows Game SDK. Что недвусмысленно указывает на его назначение: в Microsoft очень хотели, чтобы Windows 95 стала самой популярной игровой платформой, отняв это звание у безнадежно устаревшей DOS.

Поколения ускорителей в видеокартах можно считать по версии DirectX, которую они поддерживают. Различают следующие поколения:

DirectX 7 — карта не поддерживает шейдеры, все картинки рисуются наложением текстур.

DirectX 8 — поддержка пиксельных шейдеров версий 1.0, 1.1 и 1.2.

DirectX 9 — поддержка пиксельных шейдеров версий 2.0, 2.0a и 2.0b, 3.0.

DirectX 10.DirectX в части Direct3D, наиболее востребованного модуля для современных игр, был придуман, чтобы разработчик не задумывался над тем, какая видеокарта и с какими возможностями работы с 3D стоит в компьютере пользователя. И даже будет ли видеокарта вообще поддерживать 3D! (Direct3D способен выводить 3D-изображение на экран вообще без аппаратной поддержки, только программными средствами. Правда, производительность такого варианта будет катастрофически мала.) Однако в последние годы подходы ведущих производителей графических процессоров (прежде всего Intel, NVIDIA и ATI) к проектированию своих чипов настолько разошлись, что программистам вновь пришлось для видео каждого производителя писать в своих приложениях отдельные ветки кода (этим объясняется тот факт, что если программа «дружит» с определенным чипостроителем, и на нем «летает», то под другим запросто может «затормозить»). DirectX 10 призван в значительной степени разрулить эту ситуацию, так как выдвигает значительно более определенные требования к «железу», то есть включает в себя жесткие аппаратные спецификации. Более того, введены новые наборы инструкций (High Level Shader Language — HLSL 10), по большому счету служащие той же цели. Также в Microsoft серьезно переработали принципы отрисовки 3D-картинки, что привело к существенному снижению числа команд, требуемого для формирования каждого кадра и, как следствие, к некоторому повышению производительности. И, наконец, дали разработчикам игр новые возможности программирования через унификацию архитектуры шейдеров и потоковый ввод-вывод.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.