Показать сообщение отдельно
Старый 27.02.2007, 20:05     # 941
medwed
Учаснег кросавчег
 
Аватар для medwed
 
Регистрация: 26.04.2006
Адрес: Родом из СССР
Сообщения: 436

medwed Популярный человек на этом форумеmedwed Популярный человек на этом форумеmedwed Популярный человек на этом форумеmedwed Популярный человек на этом форумеmedwed Популярный человек на этом форумеmedwed Популярный человек на этом форумеmedwed Популярный человек на этом форуме
DirectX 10 – десятый шаг навстречу виртуальному миру

DirectХ 10 только в Windows Vista

Возможно, эта новость кому-то покажется порядком устаревшей, но начинать описание данного API, думаем, стоит именно с нее. Действительно, Microsoft не будет обеспечивать совместимость нового API с предыдущими версиями своей ОС. Причем в официальном заявлении компании отказ от поддержки DirectХ 10 в Windows XP звучит как невозможность обеспечения полноценной функциональности из-за устаревшего подхода к использованию драйверов и управлению аппаратными ресурсами графической подсистемы. Может возникнуть резонный вопрос: «Каково соотношение технических и маркетинговых предпосылок к такому заявлению?» Однако это не тема нашего сегодняшнего материала.

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

Необходимые нововведения – графический чип с поддержкой нового API в обязательном порядке должен быть мультизадачным, а графическая память соответственно виртуализированной. Так, обращение любого приложения к аппаратным ресурсам графической карты теперь выполняется в четыре стадии – в отличие от трех в предыдущей версии ОС. Теперь любое обращение формируется через интерфейс Direct3D, затем на более низком уровне ядра проходит через виртуальный планировщик работы GPU и менеджер видеопамяти, а далее через низкоуровневый Kernel-Mode Driver (KMD) происходит общение уже с аппаратной частью.
Разделения на Direct3D 9 и Direct3D 10

Опять-таки в отличие от Windows XP в Vista будут применяться три графических конвейера. Старый DirectХ-конвейер, оставленный для сохранения совместимости с ПО, разработанным для предыдущей версии ОС, будет выполнять следующий набор действий: аппаратное ускорение видеоконтента вплоть до HDTV (разумеется, с поддержкой HDCP), обработку графики Direct3D 9 (через старую часть драйвера, написанную для XP) и трансформацию вызовов более старых версий Direct3D (5, 6, 7, 8) в код Direct3D 9 с соответствующей заменой стандартных (фиксированных) функций формирования и обработки 3D-объектов шейдером из набора SM 3.0.

Второй конвейер также стандартный – это ICD для обеспечения работоспособности OpenGL-приложений. И наконец, третий – тот самый Direct3D 10, который сможет работать только под Windows Vista и не имеет обратной совместимости с предыдущими API DirectX. На нем остановимся подробнее.
Новый конвейер Direct3D 10

Пожалуй, главное новшество, положенное в основу Direct3D 10, – максимальное недопущение «вольностей» со стороны производителей GPU из-за специфики структуры нового набора шейдеров SM 4.0. В результате многочисленные надстройки, придуманные производителями, теперь уйдут в прошлое. Вспомните чехарду с Direct3D 9, когда для соответствия спецификациям требовалась лишь поддержка SM 2.0, а уже сами разработчики за три года «додумали» столько, что версии 9.0с и 9.0а отличались такими «мелочами», как SM 3.0, HDR, новые типы фильтрации, использование геометрических шаблонов и т. д. И все это кардинальным образом смогло изменить реализм трехмерной графики. Однако отсутствие жесткой стандартизации на уровне API привело к тому, что многие возможности пришлось снова поддерживать на уровне приложений (читай – игр), а это вылилось в проблемы с совместимостью, потери производительности и др. Теперь только 100%-ное соответствие требованиям нового API позволит карте называться DirectX 10-совместимой, а выход за эти рамки станет бессмысленным. В результате получается, что по 3D-возможностям все новые видеокарты от ATI/AMD и NVIDIA, рассчитанные на Direct3D 10, будут архитектурно идентичными, разница лишь в быстродействии.
__________________
Если хочешь иметь то, чего никогда не имел, то должен делать то, чего никогда не делал...
medwed вне форума