NEW

DirectX 10: десятый пошел

DirectX 10: десятый пошел

Большинство компьютерных игр разработаны под интерфейс прикладного программирования (другими словами, API) DirectX. Он состоит из многих частей, одна из которых – графика. С приходом системы Windows Vista компания Microsoft объявила о выпуске новой, десятой версии DirectX.

В системе DirectX предусмотрены три направления: видео, звук и устройства ввода. Графикой и видео занимаются API Direct3D и DirectDraw. Первый позволяет обрабатывать трехмерные объекты с помощью аппаратных ускорителей, а второй в более старых версиях DirectX занимался изображениями класса 2D. Если говорить о звуке, то низкоуровневый подынтерфейс DirectSound является связующим звеном между приложениями и звуковой картой. Через него можно осуществлять управление громкостью и позиционированием звучания. Смешивать множество звуковых каналов позволяет DirectMusic. Он же работает с MIDI и звуками с различной степенью громкости. Таким образом, можно сказать, что у десятой версии DirectX имеется несколько новых функций и инструментов, позволяющих более эффективно работать с графикой.

Если говорить конкретно, то Direct3D 10 отличается улучшенными возможностями программирования. В первую очередь введена поддержка геометрических шейдеров и Shader Model 4.0. Также уменьшено число обрабатываемых команд на кадр. Ввод/вывод информации организован потоковым методом, то есть геометрический шейдер теперь может записывать в память. И наконец, нужно отметить наличие унифицированных наборов инструкций (HLSL 10). Ранее разработчики ПО и производители компьютерных комплектующих сетовали на то, что графика все еще сильно зависит от ресурсов центрального процессора. Наиболее серьезным препятствием на пути устранения этой проблемы было несоответствие между элементами системы и самим API. Разработчики DirectX 10 в данном случае перешли от отдельных связей к крупным моделям. В результате преобразований удалось сократить количество вызовов и обращений непосредственно к API. Если сравнивать с девятой версией DirextX, то число вызовов прорисовки было уменьшено в десять раз. В результате сокращения математических операций в процессе обработки освобождаются ресурсы процессора для более серьезных задач, а также снижается зависимость рендеринга от того же ЦП. Фактически теперь процессор может лучше обсчитывать объекты и работать с физикой, а на экран выводить большее число объектов.

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

Недостатки у нового интерфейса тоже имеются. В новой версии API был организован разлом между старым железом и графикой под Direct3D 10. В данном случае невозможно работать с поколениями графических адаптеров эпохи DirectX 7 или DirectX 8. В девятой версии такая поддержка имела место.

Отдельно стоит сказать о нововведении, которое было произведено в ключе Microsoft Instancing 2.0. Эта функция включается в том случае, когда на поле оказывается большое количество одинаковых объектов, как, например, в стратегиях реального времени. В DirectX 9 каждый объект требовал отдельного вызова, используя таким образом ресурсы центрального процессора. В десятой версии вывод одинаковых объектов можно произвести одним обращением. То есть теперь на поле битвы можно вывести тысячи юнитов без лишних опасений.