Direct3d Совместимый Графический Акселератор

Direct3d Совместимый Графический Акселератор

Direct3d Совместимый Графический Акселератор Average ratng: 4,2/5 1199votes

Сравнение Open. GL и Direct. D / Хабрахабр. Очень часто встречаются различные заблуждения по поводу этих двух API. Я попытался изложить в этой статье основные факты, которые следует знать как разработчикам, так и конечным пользователям. Так как тема очень холиварная, я старался придерживаться максимально нейтрального тона. Взгляд с высоты птичьего полёта. Оба API предоставляют доступ к функциям аппаратного ускорения 3.

D- графики. Direct. D — проприетарная разработка Microsoft, созданная специально для Windows. В настоящее время используется так же и на Microsoft Xbox. На других платформах недоступен (если не брать в учёт эмуляцию API, предоставляемую Wine, а также виртуализацию).

Open. GL — открытый стандарт, разрабатываемый некоммерческой организацией Khronos Group при участии сообщества. Все крупные производители GPU (n. Vidia, AMD, Intel), так или иначе, влияли на Open. GL. В отличие от Direct. D, доступен на очень большом количестве платформ. В частности, Open.

GL является основным API для взаимодействия с GPU в Linux и Mac OS.«Внешние» технические различия API. Direct. 3D основан на технологии COM. COM — это, по сути, стандарт бинарного представления компонентов.

Как известно, классы на чистом C++ не могут быть использованы из других языков программирования, так как они не имеют стандартизованного бинарного представления. В частности, каждый компилятор использует свой собственный метод декорирования имён. COM же позволяет работать с объектно- ориентированной концепцией из любого языка, его поддерживающего. COM — это тоже Windows- specific технология (использует такие специфичные для Windows вещи, как реестр). В приложении на Direct. D используются указатели на интерфейсы объектов.

Сегодня новые акселераторы трехмерной графики безбожно выворачивают. Драйверы Direct3D, которые входят в состав библиотеки Microsoft DirectX. Mali GPU — это семейство графических процессоров от ARM. Графическое ядро Mali. Эта загрузка устанавливает версию 15.12.75.50.7.64.2230 драйвера графического адаптера Intel

Direct3d Совместимый Графический АкселераторDirect3d Совместимый Графический Акселератор

Работа с объектом осуществляется путём вызова методов его интерфейса. Например, интерфейс так называемого device- а (device в Direct. D — это контекст выполнения для конкретного окна), имеет название (примеры для Direct.

D 9) IDirect. 3DDevice. IDirect. 3DTexture. Создание объектов происходит как вызовы методов интерфейса IDirect. DDevice. 9, например, для текстуры это будет IDirect. DDevice. 9: :Create. Texture. В Direct. D 1. 0 произошло значительное количество изменений. Должностная Инструкция Регистратора.

Direct. 3D 1. 0 не является обратно совместимым с Direct. D 9. Подробнее о Direct. D 1. 0 ниже. Open. GL использует обычные функции языка C.

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

В Open. GL, чтобы получить доступ к конкретному объекту (например, текстуре), нужно сначала выбрать его в качестве текущего функцией gl. Bind. Texture, а затем уже можно влиять на объект, например, задание содержимого текстуры осуществляется вызовом gl. Tex. Image. 2D. Аналогом концепции device- а в Direct. D здесь является контекст. Контекст Open. GL привязан к конкретному окну, так же, как и device в Direct.

D. Общим для двух API является то, что обе не предоставляют чего либо за пределами работы с графикой. А именно, нет функций ни для создания окна, ни для работы с вводом с клавиатуры/мыши, ни для работы со звуком (здесь я не затрагиваю другие части Direct. X, такие как Direct. Input и Direct. Sound). Суть в том, что треугольники можно рисовать очень по- разному (текстуры, освещение, преобразования, и т.

Самое важное различие. Имя ему — расширения (extensions). Direct. 3D по сути фиксирован в пределах одной мажорной версии. Какие- либо изменения/дополнения происходят только при выпуске следующей версии. В Open. GL реально доступное API определяется производителем GPU.

Реализация Open. GL позволяет определять расширения к основной спецификации. Приложение может получить список поддерживаемых расширений во время выполнения, и проверить на доступность те, которые оно желает использовать.

На самом деле практически весь функционал Open. GL — это расширения. Развитие Open. GL идёт так: появляется новая фишка, производитель реализовывает её в своём драйвере и документирует доступное расширение. Приложения могут использовать новые функции прямо сейчас, не дожидаясь включения в официальную спецификацию. Если это расширение специфично для конкретного производителя, то в названии оно несёт его имя (например, вот так: GL. Если расширение реализовано многими вендорами, то в названии используется EXT (например, GL. Такое расширение имеет официальный статус.

Direct3D 10 не является обратно совместимым с Direct3D 9. OpenGL исходно разрабатывался как библиотека 3D графики, которая . Появляется понятие «графический ускоритель» (graphics accelerator). Однако первые видеокарты для IBM PC-совместимых компьютеров с поддержкой аппаратного ускорения 2D- и 3D-графики появились . Звуковое устройство: Звуковая карта DirectX 8.0 > Видеокарта: Direct3D-совместимый графический акселератор. Описание: Второе .

Самые важные расширения со временем становятся частью основной спецификации. Каждая новая версия Open. GL — это по сути старая версия+несколько новых интегрированных расширений. При этом новые функции продолжают быть доступными как расширения.

Главное — какие доступны расширения. Версия Open. GL — это просто способ указать, какой набор расширений гарантированно поддерживается.

Что нового в Direct. D 1. 0/1. 1 и Open. GL 3. x. Microsoft сделали радикальную переработку API в Direct.

D 1. 0. Сейчас оно имеет более унифицированный и современный вид. Были выброшены некоторые устаревшие вещи, такие как fixed function rendering (без использования шейдеров). Ещё был выполнен переход к новой модели работы драйвера.

В частности, реализация Direct. D теперь может иметь не только kernel- space часть, а и user- space. Это позволяет экономить время на переключения user- space/kernel- space.

Однако, из- за новой модели драйвера, Direct. D 1. 0 и выше недоступен на Windows XP. Учитывая всё ещё большую популярность Windows XP, это довольно грустно.

Реализация Open. GL изначально была разделена на user- space и kernel- space части, так что там такой проблемы и не было. Ещё различие в том, что до сих пор не вносилось изменений в Open. GL API, которые не были бы обратно совместимы. Каждое нововведение — это расширение. Функционал, появившийся в Direct. D 1. 0, например, геометрические шейдеры, доступен в Open. GL на любой платформе через расширение, или, начиная с Open.

Vivante Corporation — зарегистрировнный в США fabless-разработчик дизайна микросхем. Первым продуктом компании был DirectX-совместимый графический процессор, устанавливаемый в персональные компьютеры.

Direct3d Совместимый Графический Акселератор

GL 3. 2, как часть основной спецификации. Стоит особо подчеркнуть, это важно, функционал Direct. D 1. 0/1. 1 доступен в Open. GL на любой платформе, в том числе и Windows XP.

Таким образом у многих сложилось впечатление, что Direct. D 1. 0 не доступен на Windows XP исключительно по политическим причинам, а не из- за каких- то реальных технических проблем. Впрочем, я не могу судить здесь, сохраняя нейтральный тон, о том, были ли действительно такие проблемы при введении новой модели видео- драйверов. Теперь о нововведениях в Open.

GL 3. x. Начиная с Open. GL 3. 0 появилась так называемая deprecation model. Часть старой функциональности, относящаяся к fixed function rendering, а также к рендерингу, основанному на gl. Begin/gl. End, и многие другие устаревшие и неактуальные вещи, были объявлены как deprecated, и были впоследствии удалены из основной спецификации Open.

GL 3. 1. Это позволяет сохранять основную спецификацию в актуальной и современной форме. Казалось бы, это должно сломать совместимость со старыми программами. Ведь раньше, когда программа создавала контекст Open. GL, она просто получала контекст версии максимально доступной. Это было ОК, т. к. Чтобы избежать нарушений совместимости, программы, которые хотят получить контект Open. GL 3. x должны использовать новый метод создания контекста, который позволяет указать, какую именно версию Open.

GL нужно получить. Но, как следует из того, что уже было написано раньше про расширения, и это важно, функционал Open. GL 3. x можно получить через расширения, не создавая контекст новым методом.

Direct3d Совместимый Графический Акселератор
© 2017