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

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

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


API - графический интерфейс прикладного программирования (ликбез).

API - графический интерфейс прикладного программирования (ликбез).

Графический интерфейс прикладного программирования (Application Programming Interface, API) был разработан для разработчиков игровых программ. Самые первые массовые ускорители использовали Glide — API для трёхмерной графики, разработанный 3dfx Interactive для видеокарт на основе собственных графических процессоров Voodoo Graphics, а затем уже появились API OpenCL, DirectX.

На программном уровне видеопроцессор для своей организации вычислений (расчётов трёхмерной графики) использует тот или иной интерфейс прикладного программирования (API). DirectX (как и OpenGL) - это графический интерфейс прикладного программирования (API). До появления API каждый производитель графических процессоров использовал собственный механизм общения с играми, и разработчикам игр приходилось писать отдельный код для каждого графического процессора, который они хотели поддержать. Поэтому для каждой игры указывалось, какие именно видеокарты она поддерживает. Чтобы решить эту проблему, которая являлась серьезным тормозом для игровой индустрии, и был разработан API, что позволило устранить зависимость между игрой и конкретным графическим процессором. Графические процессоры поддерживали определенные версии API, а разработчики игр писали коды под определенную версию API.

Существует два основных типа API: Microsoft DirectX и OpenGL. При этом нужно отметить, что большинство игр ориентировано именно на Microsoft DirectX.

Стандарт DirectX включает API для звука, музыки, устройств ввода и т.д. За 3D-графику в DirectX отвечает API Direct3D, и когда говорят о видеокартах, то имеют в виду именно его (поэтому понятия DirectX и Direct3D взаимозаменяемы).

Стандарт DirectX постоянно обновляется. Каждая версия DirectX поддерживает определенные версии шейдеров (программ обработки вершин (Vertex Shader) и пикселов (Pixel Shader). Эти версии шейдеров называются Shader Model. К примеру, DirectX 8 поддерживает Pixel Shader от 1.0 до 1.3 и Vertex Shader 1.0, а DirectX 8.1— Pixel Shader 1.4 и Vertex Shader 1.1. В DirectX 9 поддерживаются Pixel Shader 2.0 и Vertex Shader 2.0, а в DirectX 9.0c— Pixel Shader 3.0.

Сейчас поколения ускорителей в видеокартах можно считать по версии 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.

Первый графический процессор с поддержкой API DirectX 10 - это NVIDIA GeForce 8800.

Версия 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-битной точностью.


Лицензия