API и Rendering Engine

API и Rendering Engine

Играя в игры, вы используете API и rendering engine (рендерин энджин). API (application programming interface или, для краткости, интерфейс) это, по сути, просто набор команд, используемых разработчиком при написании игры -- это не технология 3D звука или чего-то другого.Rendering engine или механизм воспроизведения звука (далее просто звуковой движок) представляет собой процесс взаимодействия алгоритмов 3D звука со звуковыми потоками с целью расположения источников акустики в пространстве. Если API (например, DS3D или наш QMDX) поддерживает множество звуковых движков, тогда в одном и том же приложении будет воспроизводиться звук немного отличающийся при использовании разных звуковых движков, почти так же, как и звуковая дорожка MIDI (другой набор команд) будет звучать немного иначе на разных аппаратных синтезаторах от различных производителей.

Так как различные звуковые движки и схемы реализации имеют разную степень эффективности соответствующий интерфейс позиционирования не должен ограничиваться возможностями какого-то одного звукового движка. В действительности, API говорит: "поместите этот звук здесь" и звуковой движок делает эту работу наилучшим способом, помещая звук в нужное место. При этом звуковой движок использует свои алгоритмы и имеющуюся конфигурацию воспроизведения звука (наушники, две колонки, 15 колонок, что угодно). Люди, которые делаю заявления типа "эта игра поддерживает только DS3D" совершенно не понимают сути вещей. Если игра написана под интерфейс DS3D - это отлично! Она будет работать со всеми 3D звуковыми картами в любой последовательности. На каждой звуковой карте, игра будет использовать имеющийся звуковой движок, неважно, кем он сделан QSound, EMU, Aureal или кем-то еще. Существует масса звуковых интерфейсов, таких, как DS3D, QMDX, QMixer, A3D 1.x и 2.0 и звуковые API третьих фирм, таких как HMI, EAR, Diamondware и другие. Если программист выбрал для использования интерфейс "Фирмы Х" (при этом он может также использовать более чем один API для конкретного приложения) это совсем не означает, что вы должны обязательно использовать аппаратное обеспечение "Фирмы Х" что бы все работало. Что сбивает с толку, так это знание того, какой звуковой движок поддерживает данный API.

Лишь немногие API созданы для поддержки специфичных аппаратных возможностей, которые могут быть недоступны при использовании звуковых карт других производителей или они могут быть неспособными поддерживать основные функциональные возможности конкурирующих продуктов.Хороший API должен поддерживать как можно больше аппаратного обеспечения и так много функциональных особенностей, насколько это возможно, так, чтобы разработчик игры мог использовать один интерфейс и получить хороший результат на всех звуковых платах. Например, если кто-то купит игру, которая была написана в расчете на новейшую версию интерфейса QMixer, эта игра будет иметь отличные 3D звуковые эффекты даже на звуковой карте с поддержкой только обычного стерео звука. Если та же игра будет запущена на системе оснащенной 3D картой на чипсете от Aureal, игра все равно будет использовать чипсет Aureal для воспроизведения 3D звука, в итоге пользователь услышит то, за что он заплатил.