Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Видеодрайверы взаимодействуют непосредственно с API (ликбез).

Видеодрайверы взаимодействуют непосредственно с API (ликбез).

Правильная и полнофункциональная работа современного графического адаптера обеспечивается с помощью видеодрайвера — специального программного обеспечения, поставляемого производителем видеокарты и загружаемого в процессе запуска операционной системы. Видеодрайвер выполняет функции интерфейса между системой с запущенными в ней приложениями и видеоадаптером. Так же как и видео-BIOS, видеодрайвер организует и программно контролирует работу всех частей видеоадаптера через специальные регистры управления, доступ к которым происходит через соответствующую шину. Программный драйвер является одним из важнейших элементов видеосистемы, с помощью которого осуществляется связь программного обеспечения с видеокартой. Видеокарта может быть оснащена самым быстрым процессором и наиболее эффективной памятью, но плохой драйвер способен свести на нет все эти преимущества. Видеодрайверы используются для поддержки процессора видеоадаптера. Несмотря на то, что видеокарты поставляются изготовителем вместе с драйверами, иногда используются драйверы, поставляемые вместе с набором микросхем системной логики.

Большинство производителей видеоадаптеров и наборов микросхем системной логики имеют свои Web-серверы, где можно найти информацию о самых последних версиях драйверов. Хотя может пригодиться драйвер, поставляемый вместе с набором микросхем системной логики, желательно использовать драйверы, поставляемые производителем адаптера. API (Application Programming Interface) – графический интерфейс программ - предоставляeт разработчикам аппаратного и программного обеспечения средства создания драйверов и программ, работающих быстрее на большом числе платформ.

Программные драйверы разрабатываются для взаимодействия непосредственно с API, а не с операционной системой и программным обеспечением. В настоящее время существует два основных графических API - OpenGL (компания SGI) и Direct 3D (Microsoft).

Хотя производители видеоадаптеров поддерживают стандарт OpenGL, компания Microsoft предоставляет поддержку Direct3D для более комплексного API, называемого DirectX.

С DirectX 9 и выше, и последними версиями программного интерфейса, значительно расширина поддержка трехмерной графики обеспечившей улучшенные игровые возможности. Для получения дополнительной информации относительно DirectX или загрузки его последней версии можно обратиться на Web-узел DirectX компании Microsoft.

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

3D API позволяет программисту создавать трехмерное программное обеспечение, использующее все возможности 3D-ускорителей не прибегая к низкоуровнему программированию.

3D API делятся на стандартные (универсальные: OpenGL, Direct 3D и др.) и собственые (специализированные: Glide, Rredline и др.). Стандартные API поддерживают широкий спектр 3D-ускорителей и освобождает программистов от низкоуровнего программирования. Собственный 3D API предназначен для одного семейства 3D-ускорителей и ограждает программистов от низкоуровнего программирования. Использование 3D API требует применения драйверов для этого 3D API. Наличие драйверов для Direct 3D и OpenGL для Windows является обязательным требованием ко всем 3D-ускорителям.

В настоящее время существует несколько API - OpenGL (фирма SGI), Direct 3D (фирма Microsoft) и Glide (фирма 3Dfx). Glide поддерживается только набором микросхем, выпускаемым фирмой 3Dfx. Остальные API поддерживаются большинством современных видеоадаптеров.

Direct 3D является частью API, называемого DirectX. Современное программное обеспечение широко использует графические интерфейсы Х Windows и OpenGL. Этот API предназначен для облегчения программирования игровых программ. Direct 3D имеет два режима: RM (Retained mode) – абстрактный и IM (Immediale) – непосредственный.

IM состоит из тонкого уровня, который взаимодействует с аппаратурой и обеспечивает самое высокое быстродействие.

RM является высокоуровневым интерфейсом, обеспечивающим для программиста множество графических операций, включая инициализацию и трансформацию. Большинство 3D-игр используют режим IM.

API OpenGL является открытым 3D API, который поддерживается ассоциацией крупнейших фирм таких как DEC, E&S, IBM, INTEL, INTERGRAPH, Microsoft , SGI. Этот API реализует широкий диапазон функций от вывода точки, линии, полигона до рендеринга кривых поверхностей NURBS, покрытых текстурой.

OpenGL-драйвер может быть реализован в трех вариантах: ICD, MCD и мини порт. ICD (Installable Client Driver) полностью включает все стадии конвейера OpenGL, что обеспечивает максимальное быстродействие, но разработка такого драйвера очень трудоемкий и сложный процесс. MCD (Mini Client Driver) разработан для внесения абстракции в конвейер OpenGL, и поэтому написание драйвера менее трудоемко. Драйвер мини-порт предназначен для одной конкретной игры, обычно для GLQuake и Quake 2. Мини-порт может работать по принципу ICD(Rage Pro), через собственый API (например, Voodoo 2) или через Direct3D (например, Intel 740). В последнем случае он называется враппером.

API Microsoft DirectX - этот программный интерфейс был разработан еще для операционных систем Windows 95, Windows 98 и Windows NT/2000 и др. С помощью этого API увеличивается быстродействие игр, деловой графики, трехмерного звука и т.д. Несмотря на то, что DirectX был предназначен для игр, он также используется в программах NetMeeting, ActiveMovie и NetShow.

Поскольку DirectX относится к уровню аппаратных абстракций (Hardware Abstraction Layer - HAL), разработчикам программного обеспечения необходимо использовать функции DirectX, а не обращаться напрямую к видеоадаптеру, звуковой карте, джойстику и другому аппаратному обеспечению.

DirectX также относится к уровню аппаратной эмуляции (Hardware Emulation Layer - HEL), что позволяет разработчику программно эмулировать те функции, которые не реализованы аппаратным обеспечением. Уровень HEL "медленнее", чем HAL, но лучше иметь нереализованную аппаратно функцию (пусть даже медленную), чем не иметь ничего.

Отношения между аппаратным, программным обеспечением и DirectX можно продемонстрировать следующей схемой:

(Аппаратное обеспечение) -> (Direc+X) -> (Программное обеспечение).

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

Сейчас поколения ускорителей в видеокартах можно считать по версии DirectX, которую они поддерживают. Различают следующие поколения:

- DirectX 7 — карта не поддерживает шейдеры, все картинки рисуются наложением текстур;

- DirectX 8 — поддержка пиксельных шейдеров версий 1.0, 1.1 и 1.2, в DX 8.1 ещё и версию 1.4, поддержка вершинных шейдеров версии 1.0;

- DirectX 9 — поддержка пиксельных шейдеров версий 2.0, 2.0a и 2.0b, 3.0;

- DirectX 10 — поддержка унифицированных шейдеров версии 4.0;

- DirectX 10.1 — поддержка унифицированных шейдеров версии 4.1;

- DirectX 11 — поддержка унифицированных шейдеров версии 5.0;

- DirectX 12 — поддержка унифицированных шейдеров версии 6.0.

С выходом DirectX 11 и появлением модели поддержки API Feature Level (FLxx), видеокарты в большинстве своем перестали быть привязаны к конкретной версии DirectX.

Версия OpenGL обозначает то, какие операции графического ускорения поддерживает данная графическая карта:

- OpenGL 1.1 — Объекты текстур;

- OpenGL 1.2 — 3D-текстуры, форматы BGRA и упакованных пикселей;

- OpenGL 1.3 — Мультитекстурирование, multisampling, сжатие текстур;

- OpenGL 1.4 — Текстуры глубины;

- OpenGL 1.5 — VBO, Occlusion Querys;

- OpenGL 2.0 — GLSL 1.1, MRT, текстуры с размерами, не являющимися степенью двойки, Point Sprites, Two-sided stencil;

- OpenGL 2.1 — GLSL 1.2, Pixel Buffer Object (PBO), текстуры sRGB;

- OpenGL 3.0 — GLSL 1.3, Массивы текстур, условный рендеринг , FBO;

- OpenGL 3.1 — GLSL 1.4, Instancing, Texture Buffer Object, Uniform Buffer Object, Primitive restart;

- OpenGL 3.2 — GLSL 1.5, Geometry Shader, Multi-sampled textures Buffer Object: FBO (Frame), VBO (Vertex), PBO (Pixel), Texture, Uniform;

- OpenGL 4.0 — GLSL 4.00, Тесселяция на GPU, шейдеры с 64-битной точностью.

 


Лицензия