Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Системы вывода видеоинформации




 

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

Первые из них представляют для оператора поле деятельности, размер которого обычно соответствует размеру графического экрана, при этом динамика всех событий отображается в двух измерениях. По экрану монитора перемещаются спрайты (совокупности одноцветных прямоугольников или многоугольников, цвета и взаимное положение которых формируют объект) долженствующих двигаться объектов. Ко второму типу или векторным видеопрограммам относятся трехмерная (объемная) графика, мультимедиа-презентации и анимация. В них информация выводится на экран в виде трехмерного виртуального изображения, построенного из линий и многоугольников, координаты которых обсчитываются параллельно с изменением графической ситуации.

Появление “защищенного” режима работы микропроцессоров обеспечило доступ к объемам памяти, лежащей выше 640 Кб. В связи с этим появилась возможность создавать более сложные виртуальные изображения. Главным элементом нового способа изображения виртуальности является текстурирование. При нем видимое изображение объекта, имеющего протяженные размеры в трех измерениях, представляет собой не просто набор одноцветных прямоугольники, а набор растровых картинок, то есть состоит из точек. Такое представление изображения получило название растрового изображения.

При работе с видеопрограммами, будь то игровые, анимационные или, наконец, художественной графики, важным звеном является эффект присутствия оператора. Чем реальнее происходящие на экране события, тем лучше проявляется данный эффект. Он создается благодаря масштабированию реального объекта: при уменьшении условного расстояния, под которым подразумевается степень удаленности объекта от воображаемой плоскости, проходящей через плоскость экрана монитора, от плоскости экрана до выводимого объекта размеры изображения этого объекта увеличиваются, а при увеличении этого расстояния – уменьшаются. Соответствующим образом масштабируется и рисунок наложенной на объект текстуры, то есть элементы объекта изменяют свои размеры при изменении масштаба проецирования его на экран.

Введение в систему отображения информации масштабирования ведет к нежелательному явлению - искажению текстуры объекта. Это объясняется тем, что при приближении объекта к плоскости экрана, точки его текстуры “увеличиваются”, то есть текстура начинает занимать уже больший квадрат, в котором одна и та же точка прорисовывается несколько раз. И если, наконец, объект приблизить вплотную к плоскости экрана, то на экране он будет изображен в виде крупной и бесформенной мозаики из разноцветных квадратов. Такое искаженное отображение объекта в большинстве случаев не дает никакого представления о форме и цвете объекта.

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

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

Более эффективным является метод удаления невидимых поверхностей при изображении сложных трехмерных объектов, получивший название “z-buffer”. Основным достоинством этого метода является то, что из совокупности объектов на экране воспроизводятся только те, которые располагаются ближе к плоскости экрана. При этом объекты, по сценарию находящиеся за ними, не воспроизводятся и оператору не видны.

Программная реализация этого метода заключается в том, что в памяти компьютера есть два массива данных. Один массив (буфер кадра) содержит данные, формирующие изображение, выводимое на экран, а другой (буфер глубины) – данные, формирующие условное расстояние от объекта до наблюдаемой оператором плоскости экрана. Каждая частица объекта или предмета разлагаются в растр, то есть представляются в виде набора точек, и для каждой точки рассчитывается расстояние от нее до экрана. Те точки, расстояние до которых минимально, то есть те точки, по сценарию которые должны быть видны на экране, заносятся в буфер кадра. Затем буфер кадра выводится на экран, и цикл повторяется столько раз, сколько времени изображение объекта выводится на экран.

Несмотря на высокое быстродействие современных процессоров (до десятка миллионов треугольников в секунду), программный вывод видеоизображения все-таки приводит к некоторой задержке при формировании полной картинки на экране монитора. Эта неприятность особенно проявляется при отображении динамически изменяющихся объектов или их параметров (перемещении, изменении формы, цвета и т.д.). Поэтому на практике используется аппаратный способ вывода изображения с использованием видеоускорителей, который является более быстродействующим по сравнению с программными методами вывода видеоинформации.

В рамках программной и аппаратной обработки графической информации существует несколько основных способов повышения производительность ее вывода:

- ускорение передачи данных из основной памяти,

- передача большего числа функций генерации изображения видеоускорителю,

- повышение тактовой частоты видеоускорителя,

- увеличение разрядности локальной шины между видеоускорителем и видеопамятью,

- применение объемной и быстродействующей видеопамяти.

- использование интерфейса AGP.

Из всех перечисленных способов наибольшее внимание уделяется разработке и совершенствованию видеоускорителей, а также использованию интерфейса AGP.

 

Видеоускорители Необходимость реализации

функции аппаратной обработки и наложения текстур при работе с программами трехмерной графики привело к появлению видеоускорителей. Первые видеоускорители появились во времена использования компьютеров на 386-х и 486-х процессорах фирмы Intel, объединенных с другими устройствами шиной VLB. Они работали под управлением оболочки Windows 3.1, за что получили название “Windows-ускорители”. Суть их работы заключалась в том, что графический адаптер выделял часть своей памяти под хранение иконок Windows. Каждый раз при переключении в Windows на Program Manager графический адаптер не перерисовывал экран полностью, а считывал данные из своей памяти, что сильно ускоряло процесс переключения с задачи на задачу.

На рис. 15 показан алгоритм обработки видеопрограмм, который содержит два основных этапа:

- построение геометрической фигуры,

- рендеринг.

 

 
 

Рис. 15. Алгоритм обработки видеопрограмм

 

На первом этапе все просчеты координат полигонов и освещение возлагаются на центральный процессор. Современные видеоускорители осуществляют рендеринг – наложение текстур и затенение. Каждый видеоускоритель содержит один или несколько графических процессоров, по своим техническим характеристикам (тактовой частоте, длине обрабатываемых слов, возможности распараллеливания операций, наличию кэш-памяти, быстродействию шины видеопамяти и т.д.) не уступающим центральному процессору.

Видеоускоритель имеет следующие параметры:

- производительность вывода информации,

- количество отображаемых цветов,

- разрешающая способность,

- объем и тип используемой памяти.

Производительность вывода информации определяется в основном типом микросхем, входящих в состав схемы видеоускорителя. Первые разработки содержали один или два процессора графики, которые позволяли обрабатывать данные с производительностью до 100 Мб/с. Последние разработки содержат до трех и более процессоров и позволяют повысить производительность более чем в три раза.

Цвет во многом определяет реалистичность объекта. Для вывода черно-белого изображения используются два цвета – черный и белый. Сочетания этих цветов позволяют получить различные оттенки серого цвета, формирующие двухцветное изображение на экране монитора. Для передачи цветного изображения используется палитра из 256, 65536 или 16 млн. цветов. При этом, чем больше палитра цветов, тем естественнее наблюдаемый объект.

Однако увеличение палитры цветов ведет к увеличению формата данного, несущего информацию о цвете. Так для вывода 256-цветного изображения, необходимо использовать 8-битный, 65536-цветного – 16-битный и 16 млн. - цветного – 24-битный код. Очевидно, что с увеличением палитры цветов растут требования к вычислительной мощности видеоускорителей.

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

Увеличение разрешающей способности, в первую очередь, требует использования значительных объемов видеопамяти. Так, если объект представлен палитрой из 256 цветов, то цвет каждого пикселя занимает 8 бит или 1 байт, 65536 цветов – 2 байта. Поэтому память должна иметь объем не менее 2621440 байт или 2 Мб. Наконец, для отображения 16 млн. цветов, при котором цвет пикселя занимает 3 байта – объем памяти составляет не менее 4 Мб.

Другим направлением развития систем ускоренного вывода видеоинформации было появление стандартов MPEG и их дальнейшей модификации CD-1. С появлением данных стандартов компрессии видеоинформации появилось множество аппаратных MPEG-распаковщиков или интегрированных графических адаптеров с MPEG.

MPEG – система стандартов цифрового кодирования изображения, включающая следующие стандарты: - MPEG-1 - стандарт цифрового кодирования изображения, в котором не применяется чересстрочная развертка со Производительностью 1,5 Мбит/с, -MPEG-2– стандарт на цифровое кодирование телеизображений с чересстрочной разверткой, сопровождающееся сжатием данных, - MPEG-4– стандарт на кодирование изображений, передаваемых на низкой производительность по сетям Internet, - MPEG-7 – стандарт на кодирование изображений, формируемых и передаваемых средствами мультимедиа.

 

Разработка процессоров с ММХ - технологией, имеющих широкие возможности по распаковке MPEG, привело к появлению программных средств вывода видеоинформации, не уступающих по качеству аппаратным средствам. В результате интерес к дорогостоящим аппаратным средствам стал резко снижаться.

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

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

Второй способ, часто применяемый совместно с ранее описанным, заключается в том, что в память адаптера помещаются трехмерные модели объектов. Представим, например, вращающийся в пространстве круг со спицами, подобный колесу велосипеда. Он имеет постоянную круглую форму, а меняются лишь координаты его частей. В этом случае достаточно сохранить в видеопамяти его трехмерную модель и вывод графики становится значительно быстрее. Аппаратная реализация этого способа подразумевает использование графических ускорителей.

Вот те два основных принципа, на которых основана любая система ускоренного вывода трехмерной графики. Эти принципы используются во все типах компьютеров от IBM PC до Silicon Grafics. Эта возможность имеется за счет того, что графический адаптер является довольно стандартным устройством и может программироваться. Для этих целей существует ряд стандартов, например, VGA, SVGA, VESA. Все эти стандарты совместимы между собой, что существенно облегчает процесс выбора и настройки компьютеров. Все графические адаптеры в общем-то соответствуют этим стандартам, а значит обладают обязательным набором из пяти команд, с помощью которые осуществляется вывод информации.

Первыми к разработке трехмерных ускорителей приступила фирма 3Dfx, разработавшая не только процессор вывода информации, но и среду, в которой этот процессор может работать. Аппаратный принцип вывода видеоинформации с использованием 3Dfx графических ускорителей подразумевает использование всего одной команды. Что, естественно, ускоряет процесс ее вывода. Появление операционных систем Windows 95/NT и их расширений для вывода трехмерной графики способствовало дальнейшему росту качественных характеристик процесса вывода видеоинформации.

Условно процесс формирования 3D-графики можно разделить на два больших этапа: “геометрический”, где программа по своим алгоритмам просчитывает и формирует полигональные фигуры, и этап рендеринга, на котором на полигонную модель накладываются текстуры и все это выводится на экран монитора. 3Dfx графические ускорители, как и все существующие на сегодняшний день видеоускорители, по сути предназначены для выполнения второго этапа. Все дальнейшие операции по просчету геометрии выполняются центральным процессором. Принцип их работы заключается в следующем. При обработке и выводе обычного изображения 3Dfx графический ускоритель бездействует. В тот момент, когда программа посылает команду 3Dfx графическому ускорителю на включение, обычная видеокарта просто сохраняет в своей памяти последние данные, содержащие экранную информацию, то есть те данные, которые были получены перед включением 3Dfx. Ввод этой команды заставляет в дальнейшем вывод основного изображения осуществлять с помощью 3Dfx ускорителя. Для этого у нее есть два процессора, обрабатывающих изображение, и своя собственная оперативная память.

Первый процессор 3Dfx графического ускорителя занят процедурой z-buffer, второй – наложением текстур (обычной картинки, накладываемой на полигонную модель). Полученная картинка выводится на экран. Видеоускоритель имеет память для хранения двух буферов кадра; один буфер для хранения данных текущей страницы экрана, другой – для пересчета данных другой страницы экрана. Следовательно, на каждый пиксель необходимо использовать 4 байта памяти. Кроме того, 16-битный буфер глубины требует 2 байт. Следовательно, на каждый пикселе остается 2 Мб памяти. Этого вполне достаточно для надежной работы 3Dfx карты.

Использование 3Dfx карты существенно ускоряет процесс вывода изображения, не ухудшая при этом его качество. В первую очередь это проявляется в том, что при приближении объекта к плоскости экрана не видны отдельные квадраты пикселей изображения; цвета одной части объекта плавно переходят в цвета его другой части. При удалении объект не теряет своей формы и пропорций, сохраняет свои цвета при довольно значительном масштабировании.

Кроме перечисленного, 3Dfx карта берет на себя следующие функции:

- придание текстурам различной степени их яркости (освещение текстур). Освещение текстур во многом определяет объем объекта или его части. 3Dfx карты способны формировать три категории освещения текстур:

а) рассеянный свет, при котором учитывается только общая освещенность объекта. Визуально это проявляется в плавном изменении яркости объекта в целом;

б) свет матового отражения, при котором к основному источнику, освещающему объект, как бы добавляются дополнительные источники, разнесенные в пространстве;

в) свет зеркального отображения, при котором осуществляется расчет отражения света от объекта, на поверхности которого возможны блики и светоотражающие участки.

- быстрая анимация текстур,

- сглаживание изображения,

- “размазывание” текстур,

- специальные световые эффекты (эффекты Гуро – обработка трех соседних пикселей с усреднением их цвета),

- пиксельное альфа-смешивание (эффект полупрозрачности, используемый, например, для отображения стекла, воды, дымки и т.д.).

Для реализации перечисленных функций фирмой 3Dfx была впервые разработан интерфейс, получившей название Glide - низкоуровневая библиотека команд обработки трехмерной графики. Построенные на ее основе аппаратные средства обработки видеоинформации – ускорители Voodoo 1, Voodoo 2, Voodoo 3 и Banshee (все 3Dfx), позволяют значительно повысить быстродействие видеосистем при выводе информации.

Другим направлением является разработка фирмой Silicon Ggraphics новой и более доступного интерфейса OpenGL, принятого на вооружение не только производителями видеопроцессоров, но и многими разработчиками, в частности, игровых программ. Главным достоинством его технологии являются возможность переноса на любую платформу – Unix, Macintosh, Amiga и т.д., а также возможность поддержки его инструкций основным процессором системы.

Одновременно с этим фирма Microsoft разработала библиотеку Direct3D (или D3D), входящую в API DirectX, претендующую на лидирующее положение среди систем ускоренного вывода видеоинформации, работающих в операционной системе Windows 95/NT.

Большую роль в ускорении вывода изображений играет принятая идеология формирования изображения, получившая название “engine” (движок). В общем случае под движком понимается математическая модель, предназначенная для вычислительного решения ряда задач, связанных с имитированием реально происходящих событий и явлений. Например, движение автомобиля по заданной траектории может быть математически описано с определенной степенью точностью. И чем точнее описание, тем реалистичнее воспринимается движение виртуального автомобиля на экране. При этом степень достоверности изображения с реальным объектом определяется не только формой и цветом автомобиля, но и соответствием угла поворота колес и траекторией движения, Производительностью изменения окружающего пейзажа и т.д.

Движки делятся на два типа: полигонные и воксельные.

Полигонные движки, наиболее часто встречающиеся на практике, получили свое название от понятия “полигон” - пространственного многоугольника, имеющего неограниченное число вершин, из которого строятся объекты. Чаще всего в качестве многоугольника в компьютерной графике используется простейший вариант многоугольника – треугольник. При этом все изображение объекта строится из плоскостей, поэтому иногда такую графику называют плоскостной.

Воксельные движки получили название от слова “воксель” - объемная точка. Они отличаются от полигонных движков тем, что с их помощью имеется возможность создания более гладких кривых (или округленных) поверхностей, чем это было бы возможно при построении объекта с использованием даже самого большого количестве полигонов.

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

В процессе обработки информации в памяти компьютера создается несколько карт, хранящих различную информацию. К таким картам можно отнести:

- карту цветов, хранящую данные о цвете вокселя,

- карту расстояний, предназначенную для хранения данных о расстоянии, на котором находится воксель, формирующий объект, относительно какой либо отметки, например, уровня земли. Изменение карты расстояний приводит к изменению пространственных размеров объекта,

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

При изменении расстояния от объекта до плоскости экрана осуществляется сглаживание поверхностей объекта, то есть происходит корректировка значений карт расстояний, цветов и освещенности. При этом процесс построения поверхности объекта заключается в том, что весь экран разбивается на вертикальные линии. Внутри каждой линии производится расчет (но уже в плоскости) видимости участка поверхности, а затем происходит его прорисовка.

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

В настоящее время освоен выпуск большого числа видеоускорителей для ускоренного вывода информации, использующих воксельную технологию вывода информации (см. табл. 3).

Таблица 3

Характеристики Фирма и тип ускорителя
Ускорителя 3Dfx Voodoo3 Nvidia Riva TNT Matrox G200 S3 Savage 4 3Dfx Banshee
Технология, мкм 0,25 0,35 - 0,25 0,35 0,25 0,35-0,25
Шина AGP, PCI AGP, PCI AGP, PCI AGP AGP, PCI
Частота процессора, МГц          
Производительность, млн. треугольников/с     1,5    
Объем памяти, Мбайт     8-16   8-16
Разрядность, бит          
Максимальное разрешение 2048 x 1920 x 1900 x 1920 x 1440 1600 x 1200
Используемый интерфейс Glide, OpenGL, DirectX OpenGL, DirectX OpenGL, DirectX OpenGL, DirectX Glide, OpenGL, DirectX

 

В процессе работы ускорители выполняют следующие функции:

- перспективную коррекцию текстур (коррекцию цвета каждого текселя (элемента объекта), который изменяется по мере удаления объекта и соответствующего изменении его пространственных размеров),

- билинейную или трилинейную фильтрацию (сглаживание нанесенных на полигон текстуры путем определения цвета пикселя по цветам пяти (или девяти) ближайших текселов (одного элемента текстуры), позволяющее осуществлять плавный цветовой переход от одного участка объекта к другому),

- мип-мэппинг (замена текстуры при приближении и удалении к полигону, на который она нанесена, позволяющая корректировать качество изображения при различных степенях его удаления от плоскости экрана), - туман (формирование слабо видимых и, в большинстве случаев, белесых участков объекта, удаленных на некоторое расстояние от плоскости экрана),

- прозрачность (альфа смешение) (наложение одной, как правило, полупрозрачной структуры на непрозрачную структуру),

- анимацию структур (приведение объектов в движение),

- z – буферизацию,

- затенение объектов (формирование участков объекта, степень видимости которых определяется типом, числом и направлением источников освещения).

Растущие требования по качеству видеоизображений привели к разработке видеоускорителей (NVIDIA GeForce 256, S3 Savage 2000, 3Dfx Voodoo4 Napalm, ATI Rage Fury MAXX Aurora), обеспечивающих не только проведение расчетов по рендерингу (рис. 15), но и просчет геометрии. Это позволило освободить центральный процессор от вычислений, связанных с обработкой программ трехмерной графики, и переложить практически всю работу на видеоускоритель. Передача информации между видеоускорителем и центральным процессором осуществляется по шинам PCI или AGP.

Главной особенностью видеоускорителей является использование 32-битного цвета. Их тактовая частота - до 200 МГц, что составляет при объеме видеопамяти от 64 Мб более 480 млн. пикселей в секунду.

Необходимо отметить, что единого подхода по оценке быстродействия видеоускорителей пока нет. Связано это с тем, что, во-первых, разные видеоускорители на аппаратном уровне реализуют очень разные наборы функций, а, во-вторых, различные видеопрограммы используют разные функции. Большое разнообразие функций является главной единственной причиной, не позволяющей однозначно определить их быстродействие. Однако проведенные приближенные оценки показывают, что для большинства программ быстродействие микропроцессорных систем вывода видеоинформации с использованием видеоускорителей, использующих шину PCI, и систем с использование интерфейса AGP приблизительно одинаково. Однако предельные возможности видеоускорителей могут быть ограничены шиной, связывающей его с центральным процессором. До недавнего времени в качестве таковой применялась шина PCI. Указанное ограничение с использованием этой шины в наибольшей степени начало проявляться с появлением программ трехмерной графики. Это объясняется тем, что все поверхности объектов, как указывалось ранее, покрыты текстурами - растровыми изображениями. Учитывая то, что для большей реалистичности движущихся объектов генерируется не только кадр видимого, но и невидимого в данный момент времени изображения, то для хранения этих текстур требуется использования более емкой оперативной, а не локальной, памяти. Однако оперативная память, связанная с видеоускорителем относительно медленной шиной PCI, приводит к сдерживанию производительность вывода информации.




Поделиться с друзьями:


Дата добавления: 2015-06-04; Просмотров: 1167; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.043 сек.