Софт-Архив

Dx10 img-1

Dx10

Рейтинг: 4.4/5.0 (1915 проголосовавших)

Категория: Windows: Драйверы

Описание

DirectX скачать бесплатно - DirectX 11, 10, для Windows 7, XP

DirectX 11, 10, 9.0c

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

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

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

Установка DirectX

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

Другие статьи, обзоры программ, новости

Скачать DirectX 11, 10

DirectX для Windows

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

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

Как правило, данная технология входит в Windows, но чтобы всё функционировало без проблем, желательно скачать DirectX в последней версии.

Возможности:
  • ускоренный рендеринг визуальных элементов;
  • высокое качество отображения трёхмерной графики;
  • сочетание чёткости и мягкости теней в анимации и играх;
  • объёмность объектов;
  • реалистичность отражений и преломлений света;
  • обеспечение качественного 3D-звука и микширование разных аудиоканалов;
  • скоростная обработка манипуляций с клавиатурой, мышкой, подключенным джойстиком;
  • поддержка всех опций для многопользовательской игры;
  • воспроизведение любых анимационных эффектов на сайтах.
Достоинства:
  • обеспечивает отсутствие «подтормаживаний» при геймплее;
  • гарантирует масштабность и зрелищность в играх и анимациях;
  • реалистичность солнечных лучей, теней, порывов ветра, тумана и других явлений природы;
  • заниженная нагрузка на процессор (за счёт перекладывания некоторых функций на видеокарту);
  • свободное распространение DirectX - скачать для Windows 7, 8 или XP можно бесплатно.
Над чем стоит поработать:
  • требует очень хорошую видеокарту.
Прежде всего, данная технология будет интересна геймерам, а особенно - фанатам самых современных экшенов и MMORPG. В то же время, она не будет лишней для рядовых пользователей, ежедневно посещающих Интернет. Скачать бесплатно Директ Икс можно одним кликом, а установка займёт всего пару минут.

DirectX 10

DirectX 10. Его преимущества

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

DirectX - это то, что мало большинство пользователей компьютеров и любителей компьютерных игр. Часто они не даже не подозревают, что это, пока одна из игр не заявит, что ей нужна более новая версия DirectX. И даже в этом случае необходимая версия DirectX, как правило, поставляется в комплекте с игрой, и весь процесс установки сводится к быстрой процедуре, над которой вообще не нужно задумываться. С появлением новой версии библиотек DirectX 10 ситуация немного отличается, так как они требуют более существенного обновления и скорее приведут массового покупателя к приобретению новых компьютеров. Цель этой статьи предоставить обычным пользователям возможность оценить, чего ожидать от DirectX 10, и что необходимо для запуска игр, использующих эти библиотеки.

Что делает DirectX 10 лучше предыдущих версий?

Ниже вы видите два скриншота, которые нагляднее десятков слов описывают преимущества DirectX 10

Рендеринг с DirectX 9

Рендеринг с DirectX 10

Подробности улучшений относятся уже к техническим деталям, но их можно описать несколькими простыми концепциями с одной общей идеей:

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

Разработчики имеют значительно меньше головной боли при создании игр для существующих игровых приставок(X-Box, PS2, и т.п.). В этом случае четко известно, с чем работаешь, и не может быть никаких вариантов в аппаратной конфигурации.

Более жесткие стандарты упростят разработку игр. Можно будет написать универсальный код, упростив разработку игр и их тестирование, так как отпадет необходимость написания своего кода для каждого вида видеокарты.

Но у более жестких стандартов есть и негативная сторона. В первую очередь для разработчиков видеокарт. Эти стандарты усложняют изготовление карт, совместимых с DirectX 10. Поэтому моделей видеокарт на рынке будет меньше и они будут стоить дороже. Пройдет достаточно много времени, пока мы увидим поддержку DX10 в картах нижнего класса. А пока эта технология будет прерогативой только видеокарт высокого класса

2) Унифицированная архитектура

Одно из больших преимуществ DirectX 10 - принципиально новый способ взаимодействия с видеокартой. Видеокарта рассматривается как реальный процессор. Переход к этой идеологии начался с DirectX 8, в котором была представлена идея программируемых шейдеров. До этого спецэффекты были тесно связаны с возможностями конкретной видеокарты. Программируемые шейдеры позволили создателям игр создавать собственные эффекты. Не смотря на это, в DirectX 9 все еще используются отдельные модули обработки для рисования вершин, пикселей и для теней. Проблемы такого подхода проявляются, например, когда некоторые сцены требуют достаточно много вершинных вычислений, но почти не требуют расчетов теней. В таких сценах часть графического процессора просто простаивает. DirectX 10 пытается это изменить, вводя одну операцию - геометрический шейдер, выполняющую оба действия. Это не только позволяет максимально использовать возможности графического процессора, но и создавать изображения с помощью меньшего набора комманд, облегчая написание программного кода

3) Уменьшение нагрузки на центральный процессор

Это тоже одно из весомых преимуществ DirectX 10. Любое обращение к API DirectX приводит к нагрузке на центральный процессор, а среди основных задач DirectX 10 заложено уменьшение количества таких обращений. С DirectX 9 процессор мог нагружаться почти на 40%. Это значит, что почти половина возможностей компьютера использовалась для выполнения запросов DirectX.

Майкрософт заявляет, что аппетиты DirectX 10 уменьшились в два раза, и новая версия будет нагружать процессор максимум на 20%. Это значит, что игры могут стать "умнее", используя освободившуюся производительность центрального процессора для работы искусственного интеллекта игры

Среди других особенностей DirectX 10 выделяют "instancing" - улучшение механизмов рендеринга копий одного и то го же объекта. Например, теперь одинаковые объекты могут рендериться много раз, не вызывая перегрузки процессоров. До этого момента разработчики игр были ограничены в среднем пятью сотнями объектов на экране. Теперь же появится новая возможность использовать практически не ограниченное количество объектов (ограничения естественно остаются, так как аппаратные ресурсы не безграничны). Для простых пользователей это значит, что в играх появятся более многочисленные армии, увеличится количество деревьев и других объектов в ландшафтах и т.п. Все это должно вывести игры на качественно новый уровень детализации изображений

Что нужно для работы с DX10?

1. Windows Vista.

2. Совместимая с DirectX 10 видеокарта.

3. Игры, поддерживающие DX 10

Современные игры используют DirectX 9. Но DirectX 10 уже увидел свет в комплекте с операционной системой Windows Vista, причем, работая только с этой системой. Пользователи Windows XP не смогут насладиться его преимуществами. Это можно перефразировать и так: "игры следующего поколения не будут работать в Windows XP". Не смотря на то, что в Windows Vista включена отдельная поддержка DirectX 9, Майкрософт красноречиво дала понять, что будущее только за DX 10 и производителям и пользователям пора задумываться о новой операционной системе

Какие видеокарты поддерживают DX 10?

В данный момент DirectX 10 поддерживают все видеокарты Nvidia серии 8000 (8800GTX, 8800GTS) и всё! Это можно считать большим минусом для ATI, но не стоит делать поспешных выводов. Во втором квартале текущего года компания представит графические процессоры R600.

Переломным для графической индустрии моментом этого года должна стать именно весна, когда производители массово обновят свои видеокарты и заявят о поддержке DX 10.

Какие игры готовятся для DirectX 10?

Если у вас есть соответствующая видеокарта и установлена Windows Vista, вы можете считать себя готовым к появлению новых игр, которые уже появились на горизонте, но пока находятся в разработке:

Shadowrun - Игра, объединившая магию и технологии, с интересными идеями, воплощенными в мультиплеерном режиме. Ожидаемая дата релиза: июнь 2007

Crysis - Еще одна динамичная игра, которую уже успели оценить за визуальные эффекты. Ее представят производители Far Cry в июне 2007.

Alan Wake - Разработчики популярной игры Max Payne представят свое новое детище тоже в этом году. Более точная дата пока не известна. Alan Wake - это психологический триллер и экшен - два в одном. Без ложной скромности разработчики заявляют, что игра будет претендовать на место самого большого хита этого года

Unreal Tournament 3 - Продолжение ставшего классическим шутера не нуждается в отдельных представлениях. Ориентировочная дата релиза: второй квартал этого года.

Flight Simulator X - Кульминация 25-летней работы над симуляторами полетов. Игра уже выпущена, а вскоре должно появиться обновление для поддержки DX10

EVE Online - Эта игра тоже обновится для поддержки DirectX 10

Hellgate London - Футуристическая фантазия с демонами, ружьями и магией - все, что нужно, чтобы с толком потратить время. Ориентировочная дата появления в продаже: второй квартал текущего года

Supreme Commander - Стратегия реального времени от создателей Total Annihilation. Доступна уже сейчас, но с поддержкой DX9. Позже обновится для поддержки DX10

Заключение

Многомиллиардная индустрия компьютерных игр получила большой стимул от разработчиков аппаратных и программных компонентов в виде поддержки DirectX 10. Нельзя не отметить, что это действительно важный шаг в развитии технологий разработки игр. Энтузиастам, которые могут себе позволить покупку необходимых аппаратных компонентов, придется немного подождать, пока разработчики игр поспеют за Майкрософт и производителями видеокарт и представят свои очередные игровые шедевры.

Directx 10 скачать для Windows 7 64

Directx 10 скачать для Windows 7 64 / 32 Bit

Одиннадцатая версия DirectX для х64 и х86 является самым новым пакетом интерфейсов разработки приложений Майкрософт Виндовс. Эта версия широко применяется для реализации качественной мультимелиа. Директ Икс 11 позволяет обеспечить эффективное взаимодействие с драйверами ресурсов ПК, открывая при этом широкие возможности последних для высокого качества 3D картинок и звуковых эффектов, которые являются основной составляющей большинства современных компьютерных игр и программ мультимедиа. Что бы убедиться в необходимости этого полезного драйвера стоит лишь Directx 10 скачать для Windows 7. Кроме существенного улучшения всех эффектов мы сможем использовать свой ПК с максимальной эффективностью.

Скачать Директ Икс 11 или Directx 10 скачать для Windows 7?

Если предложение – Directx 11 скачать для Windows 7 64 bit для вас  не актуально, то наверняка вы не относитесь к многочисленной армии геймеров, ведь без установки его на свой ПК, многие игры просто не запустятся. Рассмотрим несколько изменений, которые стали нам доступны с Директ Икс 11. Невооруженным глазом видно, как изменилась прорисовка мелких деталей, к примеру, растительности. Улучшению подверглись текстуры и баланс белого, кроме этого более качественным стало отображение тонов ахроматической гаммы. Кроме визуальных эффектов повысилось быстродействие системы, были исправлены ошибки, которые являлись причиной в неполадках на семерке. Директ Икс 11совместим с драйверами NVidia.

DirectX 11 (10, 9c) для windows 7 и 8 x64

DirectX 11 (10, 9c, 8) для Windows

DirectX - эту программу знают практически все геймеры, которые любят играть на компьютере во всякие шутеры, симуляторы, стратегии реального времени и другие современные и требовательные игры. Сегодня, наверное, уже нет таких игр для настольных ПК, которые бы не требовали скачать и установить последнюю версию DirectX для windows.

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

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

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

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

В противном случае, если не устанавливать DirectX 11 64 bit или 32 bit, то игры могут вообще не запуститься.

Кроме того, рекомендуем постоянно следить за обновлениями DirectX, так как если Вы имеете проблемы с конкретной или несколькими играми (например отстаёт звук или во время игры наблюдается низкий FPS) установите последнюю версию DirectX. Конечно, устанавливать директ икс 11 (7, 8, 9c, 10) для windows имеет смысл только тогда, когда у Вас установлены актуальные версии драйверов (для видеокарты в том числе), ведь без этого никакой директ х не поможет.

Обновить все драйвера в автоматическом режиме можно с помощью программы DriverPack Solution. которая сама найдёт недостающие или не установленные в системе драйвера и обновит их до актуальных версий.

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

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

DirectX 10

DirectX 10.1

DirectX 10.1 (директ икс 10.1) входит в состав Service Pack 1 ОС Windows Server и Windows Vista. Как было заявлено разработчиками, эта версия является финальной в десятой линейке DirectX. И больше нет необходимости соединять в одном пакете последние технологии разных версий, как это было в предшествующей девятой версии.

Преимущества DirectX 10.1

Пакет DirectX 10.1 (директ икс 10.1) содержит такую же модель и структуру для программирования, как и версия DirectX 10, но имеет ещё массу и других новшеств. Если рассматривать наиболее детализировано отличия, то в версии DirectX 10.1 (директ икс 10.1) усовершенствованы до Shader Model 4.1 списки инструкций для вершин, геометрии, в частности для пиксельных шейдеров. Видоизменения DirectX 10.1 (директ икс 10.1) затронули в основном три составляющих:

  • Наиболее четкие требования
  • Построение сложных теней
  • Улучшен эффект сглаживания

DirectX 10.1 (директ икс 10.1) в работе использует существенные улучшения программного интерфейса. Это помогает избавиться от всех ограничений, которые имел Директ Икс (Х) десятой версии и раскрыть огромный потенциал графических решений и новых технологий, позволяющих изменять и в будущем в лучшую сторону 3D графику. Пакет содержит улучшенную технологию бликов, теней и освещения, что позволяет максимально приблизиться к реалистичности, а соблюдение технических требований гарантирует лучшую совместимость, скачать можно по ссыле выше.

Как исправить ошибки в D3dx10_

Как устранить сообщения об ошибках D3dx10_39.dll отсутствует / не найден Обзор D3dx10_39.dll Что такое D3dx10_39.dll?

D3dx10_39.dll представляет собой разновидность файла DLL. связанного с Microsoft® DirectX for Windows®, который разработан Microsoft Corporation для ОС Windows. Последняя известная версия D3dx10_39.dll: 9.24.949.2307, разработана для Windows 7. Данный файл DLL имеет рейтинг популярности 1 звезд и рейтинг безопасности "Неизвестно".

Что из себя представляют файлы DLL?

Файлы DLL ("динамически подключаемая библиотека"), такие как d3dx10_39.dll – это небольшие программы, схожие с файлами EXE ("исполняемыми"), которые позволяют множеству программ использовать одни и те же функции (например, печать) .

Например, когда вы запускаете Windows 7 и редактируете документ в Microsoft Word. Необходимо загружать файл DLL, контролирующий печать, только если его функции востребованы - например, когда вы решили распечатать свой документ. Когда вы выбираете "Печать", Microsoft Word вызывает файл принтера DLL, и он загружается в память (RAM). Если вы хотите распечатать документ в другой программе, например в Adobe Acrobat, будет использоваться тот же самый файл принтера DLL.

Почему у меня наблюдаются ошибки в файлах типа DLL?

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

Проще говоря, если Windows не может корректно загрузить файл d3dx10_39.dll. вы получите сообщение об ошибке. Для получения дополнительной информации см. "Причины ошибок d3dx10_39.dll" ниже.

В каких случаях появляются ошибки в файлах типа DLL?

Ошибки DLL, например, связанные с d3dx10_39.dll, чаще всего появляются во время запуска компьютера, запуска программы или при попытке использования специфических функций в вашей программе (например, печать).

Распространенные сообщения об ошибках в D3dx10_39.dll

Наиболее распространенные ошибки d3dx10_39.dll, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:

  • "D3dx10_39.dll не найден."
  • "Файл d3dx10_39.dll отсутствует."
  • "D3dx10_39.dll нарушение прав доступа."
  • "Файл d3dx10_39.dll не удалось зарегистрировать."
  • "Файл %PROGRAMFILES%\MicroVoltss\bin\d3dx10_39.dll не найден."
  • "Не удалось запустить Microsoft® DirectX for Windows®. Отсутствует необходимый компонент: d3dx10_39.dll. Пожалуйста, установите Microsoft® DirectX for Windows® заново."
  • "Не удалось запустить данное приложение, так как не найден файл d3dx10_39.dll. Повторная установка приложения может решить эту проблему."

Такие сообщения об ошибках DLL могут появляться в процессе установки программы, когда запущена программа, связанная с d3dx10_39.dll (например, Microsoft® DirectX for Windows®), при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки d3dx10_39.dll является важной информацией при устранении проблемы.

Dx10-11 в windows xp!

Автор Тема: Dx10-11 в windows xp! (Прочитано 13520 раз)

Direct3D 10 - набор API функций для взаимодействия с видеокартой; поддерживается аппаратно видеокартами класса NV GeForce 8x00, ATI Radeon 2x00 и выше. Direct3D 10 (D3D10) — компонент интерфейса программирования приложений (англ. API) DirectX 10, 10-я версия Direct3D, преемник Direct3D 9. Direct3D 10 обеспечивает функции для взаимодействия операционной системы и приложений с драйверами видеокарты. Эти функции привязаны к операционной системе в линейке Windows и доступны в Windows Vista и Windows 7. Частично D3D10 работает на видеокартах уровня Direct3D 9.

Новая модель драйвера

В Windows Vista совершенно новая модель драйвера — WDDM (Windows Display Driver Model, ранее называемая LDDM — Longhorn Display Driver Model) — серьезное изменение в модели видео-драйвера со времен появления аппаратного ускорения. В XDDM (Windows XP Display Driver Model) каждый вызов DirectX добавлял указатель команды (токен) в буфер команд в независимом от видеокарты формате. Когда DX Runtime решал, что буфер достаточно заполнен, вызывалась функция драйвера (в режиме ядра), которая получала этот буфер. После этого драйвер разбирал этот буфер и передавал данные видеокарте. То есть никаких функций драйвера в пользовательском режиме не было. Развитие видеокарт и, как следствие, усложнение буфера команд привело к тому, что драйвер стал немыслимо толстым и в случае любой ошибки провоцировал BSOD. Также в XDDM у операционной системы нет способов установления приоритета, управления видеопамятью, планирования вызовов DX, что затрудняет разделение видеокарты между несколькими процессами — причина «потери устройства».

В новой модели драйвера сделано разделение между пользовательской и работающей в режиме ядра частью драйвера. Все вызовы DX напрямую идут в пользовательский драйвер, который готовит сразу буфер с содержимым, зависящим от оборудования. Этот буфер передаёт данные в ядро операционной системы, откуда они идут на видеокарту. Таким образом вся тяжёлая работа выполняется в пользовательской части, а в ядре пересылка собранного буфера в DMA-трансфер видеокарты. Как итог, если пользовательский драйвер упадет, ничего страшного не случится — закроется конкретное приложение (но не BSOD). И у драйвера больше контроля (когда и сколько вызовов функций ядра делать). Также DX Runtime становится совсем тонкий — нет буферов команд, напрямую вызываются функции драйвера. Кроме этого между пользовательскими и ядерными частями есть планировщик заданий, который выбирает какие собранные буфера отправлять видеокарте (разделение GPU на много процессов).

Виртуализация видеопамяти

Теперь если не хватает видеопамяти, то ресурсы переносятся в системную (откуда могут быть отсвоплены). За счёт наличия у Windows Vista контроля выделения видеопамяти (ранее, у драйвера) можно распределять её более эффективно, чем POOL_MANAGED в XDDM. На данном этапе это работает на программном уровне - планировщик GPU перед передачей DMA-пакета карте загружает все нужные текстуры в видеопамять (умеет подгружать их заранее, пока GPU занят другим и свободна шина). Если приложение полноэкранное, все лишнее из видеопамяти будет перенесено в системную память по мере необходимости; если в оконном режиме, то происходит разделение памяти между текущими процессами. Если требуется гарантировать 100% наличие ресурса в видеопамяти, то необходимо использовать полноэкранный режим и контроль над размером выделений.

Отсутствие ситуации "потери устройства" (Device Lost)

В предыдущих версиях по различным причинам мог происходить Device Lost, после чего требовалось загружать все ресурсы в видеопамять заново и производить восстановление объектов. С новой моделью драйвера этой проблемы больше не существует. Возможен только Device Removed, который означает что-то вроде "выдернули видеокарту"/"поставили новую версию драйвера" и встречается очень редко.

Убраны списки возможностей (D3D caps)

В DX10 больше нет капсов, как таковых. Гарантируется наличие всей функциональности, то есть если карта поддерживает DX10, то она обязана поддерживать последнюю версию шейдеров в полном объёме, поддерживать все форматы текстур, все возможные режимы фильтрации, шаблона (stencil) и всего остального. Более того, для DX10 написали спецификацию правил растеризации, то есть теперь картинка на разных видеокартах на одинаковом коде всегда должна быть одинаковой и совпадать с эталонным программным растеризатором. Если это не так, то это баг производителя видеокарты. В будущем новая функциональность будет появляться кусками, типа набор фич DX10.1, DX11 и т. д.

Уменьшена стоимость вызова функций DirectX

Уменьшена стоимость вызова функций (в том числе DIP) на CPU. По данным презентаций Microsoft можно наблюдать 10x уменьшение стоимости. Это существенно, так как тяжёлая игра может проводить около 10+ миллисекунд в вызовах DX. Большую часть времени вызова ранее уходило на Runtime и Driver. теперь driver model фактически ничего не делает, а сразу предоставляет исполнение драйверу.

State Objects и Constant Buffers

Появились State Objects - объекты, которые можно предварительно собрать при создании и потом быстро устанавливать на видеокарте. Добавлены Constant Buffers, позволяющие более эффективно выставлять константы шейдеров.

Использование объектов-состояний

Все Set*State заменены на объекты-состояния (State Objects). Состояния разделены по нескольким группам:

Rasterizer State - fill mode, cull mode, depth bias, multisample, scissor и т. д.

Blend State - alpha blend, color write mask, blend op и т. д.

Depth State - depth func, stencil func и т. д.

SamplerState - tex filtering, clamping и т. д.

Состояния для каждой группы ставятся целиком, а не каждый по отдельности, как в D3D9. Для каждой группы можно создать State Object, которому при создании указывается полный набор состояний группы, и "установить" можно только его. Создание State Object - дорогая и медленная операция и должна вызываться редко. Мотивация этого нововведения - такой API позволяет драйверу сгенерировать набор команд видеокарте заранее (при создании State Object) и не генерировать его каждый раз во время рендера при вызовах Set*State.

Буфера и биндинг

Для основных типов данных (вершин, индексов, констант) введён единый буфер - ID3D10Buffer - набор байтов в памяти. Type safe обеспечивается за счёт указания при создании содержимого буфера. Для ресурсов введены отдельные объекты для биндинга к конвейеру - resource views. То есть сначала создаем текстуру как объект в памяти, а потом её resource view как инпут для шейдера или как render target, и уже с этим view вызываем PSSetShaderResources (вместо SetTexture) и OMSetRenderTargets (вместо SetRenderTarget). Стоит отметить, что у одного ресурса view может быть несколько. Такой принцип позволяет работать обобщенно. Существуют typeless ресурсы, то есть ресурсы, которые не определённого типа (не указан при создании) - например, DXGI_FORMAT_R32G32B32_TYPELESS. Тип таких ресурсов выбирается во время создания view (например, DXGI_FORMAT_R32G32B32_UINT или DXGI_FORMAT_R32G32B32_FLOAT) и выбора элемента/слайса из массива текстур/объмной текстуры.

Использование буферов констант

Set*ShaderConstant заменены на Constant Buffers - группы констант (буфер на n констант), устанавливающихся за раз. Группу можно локать и записывать как обычный буфер. Биндинг к шейдеру производится начиная с некоторого слота. Таким образом использование констант сводится к разделению их на несколько групп по частоте обновления (per-object, per-material, per-pass, per-scene) и созданию для каждой группы Constant Buffer. Помимо дополнительной производительности такой подход даёт драйверу высокоуровневую картину - больше возможностей для оптимизации.

Параметры шейдеров

VertexDeclaration заменён на Input Layout. Он требует при создании Shader Input Signature, то есть список input-параметров шейдера. Созданный объект можно использовать как Vertex Declaration с любым шейдером, имеющим такой же список input-параметров. В D3D9 Vertex Declaration устанавливался независимо от шейдера при рендере и поэтому драйверам приходилось серьёзно модифицировать сетап при смене vdecl. Сейчас vdecl жёстко привязан ко входу шейдера, что позволяет драйверу предвычислять все заранее.

Убраны asm-шейдеры

Шейдеры больше нельзя писать на асме - нужно пользоваться HLSL. Хотя ассемблер для shader model 4.x есть и можно смотреть результат компиляции шейдеров в него, но больше нет возможности получить бинарный код шейдера из текста асма (то что делали psa.exe/vsa.exe). Отреверсинженирить бинарный код, впрочем, никто не мешает.

Компилятор HLSL 4.0

Чтобы было легче портировать код шейдеров, компилятор умеет компилировать HLSL-шейдеры старых версий (SM2.0, SM 3.0) в SM4.0. В новом HLSL добавили атрибуты для хинтов компилятору - размотку циклов и выбор dynamic vs static branching для условных переходов.

Эволюционные изменения в шейдерах

В Shader Model 4 добавлены целочисленные инструкции и битовые операции (можно считать в честном fixed point и передавать булевые флажки), убрано ограничение на количество инструкций (но очень длинный шейдер может упереться в ограничение по времени выполнения пакета на GPU, до 10 сек)

Геометрические шейдеры

Geometry Shader - это дополнительный шейдер между вершинным (Vertex Shader) и пиксельным (Pixel Shader), который может генерировать примитивы. На вход ему подается примитив с информацией о соседях, на выход - можно сгенерировать несколько (не фиксированное число). Основная идея - наконец генерировать геометрию на GPU. Geometry Shaders очень плохо подходят для тесселяции и нужны для всяческой локальной генерации геометрии по мелочи. Например, можно патикл строить по одному вертексу или использовать стрипы геометрии в post-processing (например, в motion blur - из карты скоростей генерировать геометрические линии, по которым блурится картинка (так делает Lost Planet)). Совсем из другой области - например, делать рендер в Cubemap за один проход, GS выясняет в какие стороны cubemap попадает треугольник, и разбивает его на несколько. Основное препятствие использования GS - их скорость на современном железе. Тормозят. Основная причина - "анти-параллельность" GS, то есть так как шейдер может выдавать variable input и GPU обязана сохранять последовательность вывода треугольников, нужно вводить промежуточную стадию, пишушую в память, а потом делать финальный Gather, убивающий дырки.

Это возможность записывать результат работы Vertex Shader/Geometry Shader в память. Например, кешировать обработку геометрии или вообще геометрию, созданную GS. Можно считать итеративные эффекты, типа Cloth/Water. То есть теперь можно напрямую трансформить и записывать геометрию на GPU, не только рисовать пиксели в Render Target. Также есть возможность читать в шейдере из буфера в памяти по индексу, то есть иметь достаточно большую read-only shared memory. NV например предлагает там константы анимации хранить для инстансинга.

Уменьшение количества draw calls и переключений состояний

Появились массивы текстур, то есть контейнер одинаковых по размеру и формату текстур, из которого шейдер может выбирать по индексу (в DX10.1 - можно и cubemap arrays). Это тот самый atlasing done right - раньше когда в одной текстуре хранили несколько разных, приходилось беспокоиться за мип-левелы, оставлять зазор между текстурами и т. д. Теперь не надо. В шейдер приходят primitive/instance id, в зависимости от instance ID можно использовать другой набор текстур/координат/whatever. Ожидается, что dynamic branch в шейдере быстрый (лучше, чем в DX9-hardware), поэтому можно передавать Material ID и бранчиться по материалам в шейдере. То есть, в теории, можно за один вызов генерировать большое количество геометрии с разными параметрами, текстурами и вообще материалами. На практике, больше всего мешает таки стоимость dynamic branch и проблем, с ним связанных (вычисление градиентов текстурных координат). А остальное - вполне можно и нужно использовать.

Multi-sampling antialiasing features

Небольшая фича, ради одной которой можно переходить на DX10. Теперь в шейдере можно читать каждый MSAA-сэмпл отдельно, то есть писать свой собственный AA-фильтр, вменяемо сэмплить при процессинге и вообще использовать MSAA RT как текстуру. Ещё и AlphaToCoverage вместе с этим теперь официально присутствует. В D3D10.1 это можно делать и с depth textures.

Поддержка depth textures

Теперь depth buffer можно использовать как текстуру. Можно сказать, чтобы при сэмплинге сравнивал со значением и делал фильтрацию соседей, можно достать чистый depth value. Можно даже stencil value достать.

Другие интересные возможности

есть рендер в volume texture

в DX10.1 можно скопировать из обычной текстуры в сжатую на GPU

есть настоящий conditional render, то есть возможность выкидывать целый draw call по результатам работы GPU асинхронно (можно делать occlusion culling полноценно)

Дополнительные факты

Операционная система Windows XP не поддерживает DX10. Причина в том, что перенос новой драйверной модели невозможен - требуется слишком много изменений в ядре операционной системы. Если же переносить только набор новых функциональных возможностей DX10, то тоже возникают проблемы: виртуализацию и шедулинг невозможно осуществить в старой модели драйвера, перенос аппаратных возможностей - слишком большой объём работы для Microsoft и IHV.