3D API или язык акселераторов, Что это такое - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Что это такое
3D-акселератор -- сложная штуковина. Несколько десятков миллионов вентилей в основном кристалле, еще несколько -- в сервисных (DDR, RAMDAC и т. д.) плюс электронные цепи, размещающиеся на самой плате видеокарты. И со всем этим надо как-то управляться. У акселератора есть свой ассемблер (не совсем так, но сравнение хорошее) и специальные команды, адреса и интерфейсы, через которые им можно управлять. У каждого конкретного акселератора (а их сотни) свои особенности, свои дополнительные команды, а иногда и целые блоки. Если написать программную последовательность для одного акселератора, на другом она работать уже не будет. Или будет, но не адекватно. А игры надо выпускать совместимой с разными акселераторами. На практике это означает, что придется писать не один движок, а столько, сколько акселераторов поддерживается. Чтобы этого не делать придумали программно-аппаратные интерфейсы -- 3D API.
Это специальная библиотека, которая позволяет разработчикам не думать о таких мелочах, как адреса видеобуфера или заполнение системных регистров, и сосредоточиться на процессе разработки. Например, чтобы создать точечный источник света, нужно задействовать многие команды акселератора, подумать о перераспределении памяти и еще много о чем. А вот через API это делается всего одной командой (максимум -- двумя). Разработчик пишет эту команду, а все остальное делает 3D API. Примерно так же делаются и другие сложные вещи. Например, в OpenGL такая сложнейшая вещь, как NURBS (которая до сих пор считается признаком технологического шика), создается несколькими простыми командами.
В работе акселератора много рутины. Поэтому многие стандартные действия, вроде подготовки видеообласти (viewport), выполняет тот же 3D API. Не думайте, что он работает только с акселератором. И с процессором, и с памятью, и даже с другими API, например с Windows API, который отвечает за прорисовку окон. Получается, разработчику игр почти ничего делать не надо: задал несколько простых стандартных команд, и готово. Нет, не получается. Зато с поддержкой 3D API остаются время и силы на проработку действительно интересных и сложных вещей, не рутинных, а творческих.
На самом деле взаимодействие 3D API и акселератора несколько сложнее. Ведь между ними стоит еще и драйвер. Но драйвер -- существо подневольное, что ему API скажет, то он и будет делать. Зачем он нужен? Для разных версий акселераторов нет разных 3D API. Один 3D API, по-хорошему, должен понимать все железо, какое только есть на свете. Но если бы он на самом деле умел общаться со всем железом, то весил бы не несколько мегабайт. Поэтому 3D API один на всех, а вот драйверов много -- под каждый акселератор свой. Говоря программистским языком, драйвер предоставляет небольшой, а 3D API -- очень большой уровень абстракции. Некоторые тут возмутятся и воскликнут, что тот же Detonator подходит к нескольким десяткам разных акселераторов. Путаете, господа. Detonator -- это не драйвер, а целый пакет драйверов. А для каждого типа акселераторов "дрова" нужны и вправду уникальные.
Но на свете несколько 3D API от разных компаний. И разные игры также заточены под разные API. И даже те игры, которые формально работают с несколькими API, на самом деле по-настоящему хорошо понимают только один-два API. Или нагло эмулируют (симулируют). Впрочем, даже с родными API нередко возникают проблемы.
Похожие статьи
-
Полигоны и остальное Вот с полигоном сложилась некая путаница. Классики учат, что полигон -- это любой выпуклый многоугольник, а, программисты, которые...
-
Glide, Direct3D - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
В 1995 году на свет появился легендарный 3D-акселератор 3dfx Voodoo. Это был первый массовый акселератор. Но на старых играх, не созданных для Voodoo,...
-
9. Антиалиасинг - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Ну и напоследок о том, о чем мы упомянули в начале, о том красивом слове, которым очень часто любят щегольнуть игроки, причем далеко не всегда понимая...
-
Некоторые хитрости - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Для повышения реалистичности изображения разработчики игр. Сперва эта технология применялась для уменьшения нагрузки на акселератор или процессор (когда...
-
Вместо эпилога: год 2004 - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
NVIDIA GeForce256, GeForce2 В новых драйверах Detonator, серии 5.хх, NVIDIA раньше конкурентов реализовала возможность принудительного включения...
-
Каждый этап конвейера обозначается какой-то буквой. Официально первый этап конвейера называется тесселяция и обозначается буквой "T". Однако программисты...
-
Первый акселератор Сегодня разница между словами видеокарта и видеоакселератор нивелировалась, и эти слова стали синонимами. Так было не всегда. Давайте...
-
Пиксели в 3D - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Как известно, любая двумерная картинка, которая выводится на экран монитора, состоит из пикселей. Само слово pixel происходит от picture element --...
-
Революция в технологии - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Компания 3dfx выпускает карту VooDoo Banshee, в которой 3D-часть от VooDoo2 была дополнена 2D. Скорость нового творения оставалась по-прежнему высокой,...
-
Видеокарта Видеокарта состоит из двух частей. Это графический процессор (самая большая микросхема видеокарты) и память. Практически это такая же память,...
-
Фильтрация и MIP Mapping - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
При работе с текстурами существует немало проблем. У экрана есть свое разрешение и определенное количество пикселей, которые на нем можно отобразить в...
-
OpenGL - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
OpenGL -- это универсальная, аппаратно - независимая библиотека, которая поддерживает разнообразные 3D-объекты и конструкции, начиная с примитивов и...
-
Растеризация - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Последний этап конвейера называется растеризацией и обозначается буквой "R". Это единственный этап конвейера, который даже в старых акселераторах...
-
Как так получается, что на экране оживает почти настоящий, реальный мир, да еще и в 3D? Люди, которые в первый раз встречаются с интерактивным 3D, обычно...
-
Векторная графика - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Если в растровой графике базовым элементом изображения является точка, то в векторной графике - линия. Линия описывается математически как единый объект,...
-
Где не ступала нога Безье... Какими бы безумно-заоблачными не были мощности акселераторов, все равно они смогут обработать только ограниченное число...
-
Текстура как она есть - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
При описании процесса рендеринга не был затронут один важный этап -- текстурирование. Не будь текстур, играли бы мы сейчас с вами в экшены с квадратными...
-
Процедурные текстуры - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Наверняка вы видели так называемые "демки" (речь идет не о демо-версиях игр, а о своеобразных программах очень маленького размера (до 64 кб), которые...
-
Все мы пользуемся продуктами высоких технологий. Прогресс -- вещь замечательная. Не будь прогресса, не было бы новых интересных компьютерных игр, не...
-
Трехмерная графика - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Трехмерная графика нашла широкое применение в таких областях, как научные расчеты, инженерное проектирование, компьютерное моделирование физических...
-
Цвет и цветовые модели - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
В компьютерной графике применяют понятие цветового разрешения (другое название - глубина цвета). Оно определяет метод кодирования цветовой информации для...
-
Компания nVidia - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
NVidia Corporation (американская компания) была основана в январе 1993 года Дженсеном Хуангом, Крисом Малаховски и Куртисом Приэмом. Штаб-квартира...
-
Компания ATI - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Самым старым игроком на рынке видеокарт является компания ATI (Array Technology Industry). Основана она была в 1985 году эмигрантом из Китая Квок-Юэн Хо....
-
Графика в компьютере - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и...
-
В 1920 году была разработана цветовая пространственная модель CIE Lab (Communication Internationale de I'Eclairage - международная комиссия по совещанию....
-
Форматы графических данных В компьютерной графике применяют, по меньшей мере, три десятка форматов файлов для хранения изображений. Но лишь часть из них...
-
Фрактальная графика Фрактальная графика основана на математических вычислениях. Базовым элементом фрактальной графики является сама математическая...
-
Литература - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
1. http://www. worldofpc. ru/vhis. html 2. http://www. izcity. com/data/hard/print_article528.htm 3. http://www. comprice. ru/arch/2005-14.phtml 4....
-
Цветовая модель HSB - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Цветовая модель HSB разработана с максимальным учетом особенностей восприятия цвета человеком. Она построена на основе цветового круга Манселла. Цвет...
-
В работе возникает необходимость выбора предметной области, в которой будет тестироваться каскадный классификатор. Главными вопросами на данном этапе...
-
Что лучше: вектор или растр? - Компьютерная графика
Однозначного ответа на этот вопрос нет. Лучшее качество отображения цветов и текстуры обеспечивают растровые изображения, но вместе с тем они занимают...
-
ПРОЦЕССОР i80286 - Аппаратные средства IBM PC
Презентация IBM персонального компьютера AT в 1984 году сфокусировала все внимание на другой микропроцессор - i80286. Сам по себе микропроцессор был...
-
МОНИТОРЫ - Аппаратные средства IBM PC
До пятидесятых годов компьютеры выводили информацию только на печатающие устройства. Интересно отметить, что достаточно часто компьютеры тех лет...
-
ПРОЦЕССОР i80386 - Аппаратные средства IBM PC
I80386 был создан в 1985 году. i80386 был создан при полной ясности всех требований, предъявляемых к микропроцессорам и компьютерам. i80386 имел все...
-
"WWWSQLDesigner" позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс...
-
Язык программирования R - Технологии больших данных: анализ и выбор решения для реализации проекта
Язык программирования R является универсальным и разработан для применения в следующих областях: разведочный анализ данных, классические статистические...
-
Общение пользователя с системой MathCAD 2000 происходит на уровне так называемого входного языка, максимально приближенного к обычному языку описания...
-
Метод конечных элементов (МКЭ) жесткости возник в аэрокосмической отрасли. Исследователи рассматривали различные подходы к анализу сложных частей...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
-
Реализация клиентской части приложения На языке JavaScript, в соответствии с диаграммой классов, представленной в приложении Б, были разработаны объекты...
3D API или язык акселераторов, Что это такое - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)