70 лет за зелёных человечков

8800 над землей

Автор: Роман Косячков
Опубликовано в журнале "Домашний компьютер" №12 от 6 декабря 2006 года.

Джомолунгма (Chomolongma), Эверест, Сагарматха — высочайшая вершина земного шара (8848 м).

Если помните, в своих колонках об операционной системе Windows Vista я неоднократно упоминал некий DirectX 10-й версии, постоянно ссылаясь, что эта тема отдельная и требует особого разговора. А разговор все откладывался и откладывался… Причина тому — довольно проста. С одной стороны, DirectX 10 действительно способен весьма существенно изменить в лучшую сторону прежде всего компьютерные игры1 (хотя и не только их); с другой стороны, те нововведения, что несет в себе новая версия, весьма трудно поддаются описанию, как говорится, «на пальцах». А иного формат «7000 знаков» не подразумевает. Но буквально на днях один из ведущих видеочипмейкеров взял очередную «вершину», и далее тянуть с рассказом о DirectX 10 стало просто неприличным… Так что начну, пожалуй. Как водится, издалека.

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

С той поры довольно много воды утекло. DirectX дорос до версии 9.0с, и большинство игр для ПК пишется с использованием этого API. Если вы на своем ПК из командной строки Windows запустите программку dxdiag, то сможете увидеть, из каких модулей состоит DirectX. Для последней версии это модули: Direct3D/DirectDraw, отвечающий за отрисовку на экране 3D/2D-изображений; DirectSound, осуществляющий взаимодействие между программами и звуковой подсистемой ПК; DirectMusic, в чьи функции входит, в основном, воспроизведение музыкальных MIDI-файлов и микширование всевозможных звуков; DirectInput, управляющий клавиатурами, мышками, игровыми контроллерами и прочим; и, наконец, DirectPlay, предназначенный преимущественно для поддержки сетевых игр. Все просто и изящно, что тут можно существенно улучшить выпуском «десятки»? Попробуем разобраться…

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

Ответ простой: уже сегодня. Или — почти сегодня. В начале ноября компания NVIDIA объявила о начале выпуска новейшего графического процессора GeForce 8800GTX (кодовое наименование G80). Его технические характеристики способны поразить воображение неподготовленного юзера. Технологический процесс — 90 нм; 861 миллион вентилей на кристалле; 384-разрядная шина памяти; 128 скалярных арифметико-логических устройств (ALU), разбитых на 8 блоков; 32 блока обработки текстур; частота ядра — 575 МГц; объем памяти типа GDDR3 — 768 Мбайт. И, наконец, главное — впервые реализована полная поддержка DirectX 10, в том числе новой шейдерной модели (Shader Model 4), геометрических шейдеров, потоковой обработки и прочего. Практически сразу большинство производителей видеокарт анонсировало свои продукты на основе нового графического процессора. Стали известны и цены: около 600 долларов за описанную выше топовую модель, и 450 за GeForce 8800GTS, несколько урезанную по числу ALU (96 вместо 128) и тактовой частоте (500 вместо 575 МГц) версию. Видеокарты весьма велики — 27 сантиметров в длину, и имеют аж 2 разъема на борту для подключения внешнего питания. И не мудрено — при серьезной нагрузке видеокарта на основе GeForce 8800GTX потребляет более 300 Вт, так что потребуется установить в ПК, как минимум, полукиловаттный блок питания. И ради чего это все? Как у новинки с производительностью? Да, очень неплохо. В среднем NVIDIA GeForce 8800GTX производительнее предыдущего лидера ATI X1950XTX на 20–30 процентов, а на высоких разрешениях в некоторых играх разрыв в пользу новинки доходит до заоблачных полутора раз! Прямо-таки «эверест» среди графических процессоров! Впрочем, ATI (точнее, теперь уже AMD) еще не сказала своего слова, а ведь выпуск нового чипа R600 уже не за горами, ориентировочно в феврале…

И напоследок про оговорку, что пощупать «десятку» можно почти сегодня. Здесь объяснение такое: «железо» уже есть (GeForce 8800), но на момент написания этой колонки DirectX 10 еще не был объявлен официально. Более того, корпоративная версия Windows Vista 30 ноября вышла без поддержки этого API. По слухам, есть некоторая вероятность, что мы увидим «десятку» в тех версиях «Висты», что планируются к выпуску на начало следующего года. Так что придется немного подождать, а пока… GeForce 8800 невероятно быстр и с текущей версией DirectX!


1 В чем можно убедиться, взглянув на обложку этого номера журнала.

2 Робастность — устойчивость к сбоям.

3 Direct3D способен выводить 3D-изображение на экран вообще без аппаратной поддержки, только программными средствами. Правда, производительность такого варианта будет катастрофически мала.

4 Да-да — и Intel! Не стоит забывать, что компания Intel благодаря интегрированным решениям владеет почти 40 процентами всего рынка видеоконтроллеров, а на NVIDIA и ATI приходится в среднем по 25.

5 Если упростить, то шейдер — программка (или функция), исполняемая не центральным процессором, а специальным блоком видеокарты. Шейдеры бывают вершинные и пиксельные, а с DirectX 10 — еще и геометрические.



Журнал "Домашний компьютер" №12-2006 Читайте на сайте тему номера DirectX 10. Coming soon! и другие статьи из журнала "Домашний компьютер" №12 (126) от 6 декабря 2006 года.

Версия для печати | Обсудить на форуме


Автор: Роман Косячков.
Рубрика: СЕМЬ ТЫСЯЧ ЗНАКОВ.

Ранее в рубрике "СЕМЬ ТЫСЯЧ ЗНАКОВ"

8800 над землей

Джомолунгма (Chomolongma), Эверест, Сагарматха — высочайшая вершина земного шара (8848 м).


Журнал "ДК"

"Домашний Компьютер" #5 (143)

Журнал "Домашний компьютер" №5-2008 Тема номера: "Цифровые ассистенты"

В розничной продаже с 07 мая 2008 года.

PDF-архив журнала "ДК"


Компьюлента

Подписка на статьи ДК-HiFi
Введите ваш e-mail:

О ЖУРНАЛЕ|О САЙТЕ|КОНТАКТЫ|
© ООО "Компьютерра-онлайн" 2003-2006.
При использовании материалов сайта ссылка на "ДК" обязательна.
При использовании материалов бумажного издания ссылка на источник обязательна.
Техподдержка сайта: websupport@computerra.ru
Работает на <Битрикс: Управление сайтом>
Почта защищена сервером СПАМОРЕЗ

Fatal error: require() [function.require]: Failed opening required 'class.getcpr.php' (include_path='.:/usr/local/lib/php') in /opt/wwwroot/shared/bitrix/php_interface/nd/epilog_main.php on line 447