GeoSELECT.ru



Программирование / Реферат: Видеоадаптеры (Программирование)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Видеоадаптеры (Программирование)



Видеоадаптер
Видеоподсистема любого компьютера состоит из двух частей -
видеоадаптера, вставляемого в разъем расширения на системной плате и
дисплея, подключаемого к видеоадаптеру.
Видеоадаптер может быть оформлен в виде отдельной платы, вставляемой в
слот расширения компьютера, или может быть расположен непосредственно на
системной плате компьютера.
Видеоадаптер включает в себя видеопамять, в которой хранится
изображение, отображаемое в данный момент на экране дисплея, постоянное
запоминающее устройство, в котором записаны наборы шрифтов, отображаемые
видеоадаптером в текстовых и графических режимах, а также функции BIOS для
работы с видеоадаптером. Кроме того, видеоадаптер содержит сложное
управляющее устройство, обеспечивающее обмен данными с компьютером,
формирование изображения и некоторые другие действия.
Видеоадаптеры могут работать в различных текстовых и графических
режимах, различающихся разрешением, количеством отображаемых цветов и
некоторыми другими характеристиками.
Сам видеоадаптер не отображает данные. Для этого к видеоадаптеру
необходимо подключить дисплей. Изображение, создаваемое компьютером,
формируется видеоадаптером и передается на дисплей для предоставления ее
конечному пользователю.
Видеоадаптер предназначен для хранения видеоинформации и ее отображения
на экране монитора. Он непосредственно управляет монитором, а также
процессом вывода информации на экран с помощью изменения сигналов строчной
и кадровой развертки ЭЛТ монитора, яркости элементов изображения и
параметров смешения цветов. Основными узлами современного видеоадаптера
являются собственно видеоконтроллер (как правило, заказная БИС — ASIC),
видео BIOS, видеопамять, специальный цифроаналоговый преобразователь RAMDAC
(Random Access Memory Digital to Analog Converter), кварцевый генератор
(один или несколько) и микросхемы интерфейса с системной шиной (ISA, VLB,
PCI, AGP или другой). Важным элементом видеоподсистемы является собственная
память. Для этой цели используется память видеоадаптера, которая часто
также называется видеопамятью, или фрейм-буфером, или же часть оперативной
памяти ПК (в архитектуре с разделяемой памятью UMA).
Все современные видеоподсистемы могут работать в одном из двух основных
видеорежимов: текстовом или графическом. В текстовом режиме экран монитора
разбивается на отдельные символьные позиции, в каждой из которых
одновременно может выводиться только один символ. Для преобразования кодов
символов, хранимых в видеопамяти адаптера, в точечные изображения на экране
служит так называемый знакогенератор, который обычно представляет собой
ПЗУ, где хранятся изображения символов, «разложенные» по строкам. При
получении кода символа знакогенератор формирует на своем выходе
соответствующий двоичный код, который затем преобразуется в видеосигнал.
Текстовый режим в современных операционных системах используется только на
этапе начальной загрузки.
Видеопамять.
Тут два вопроса: сколько, и какого типа? Что касается объема, то это –
не менее двух мегабайт. Причем объем требуемой памяти напрямую связан с
разрешением, с которым планируется работать, и глубиной представления
цвета.
Разрешение. Количество пикселей, представленное битами в видеопамяти,
или адресуемое разрешение. Видеопамять может организовываться соотношением
пикселов (битов) по оси x (пикселы на строке) к числу пикселов по оси y
(столбцы) и к размеру отводимой памяти на представление глубины цвета.
Стандартная видеопамять VGA 640 пикселов на 480 пикселов и, обычно, с
глубиной представления цвета 8 бит. Чем выше разрешение, тем более детально
изображение, и тем больше нужно хранить о нем информации. Но не вся
хранимая информация может быть отображена на дисплее.
Пиксель. Комбинированный термин, обозначающий элемент изображения,
который является наименьшим элементом экрана монитора. Другое название -
pel.
Изображение на экране состоит из сотен тысяч пикселей, объединенных для
формирования изображения. Пиксель является минимальным сегментом растровой
строки, которая дискретно управляется системой, образующей изображение. С
другой стороны, это координата, используемая для определения горизонтальной
пространственной позиции пикселя в пределах изображения. Пиксели на
мониторе - это светящиеся точки яркого фосфора, являющиеся минимальным
элементом цифрового изображения. Размер пикселя не может быть меньше точки,
которую монитор может образовать. На цветном мониторе точки состоят из
групп триад. Триады формируются тремя различными фосфорами: красным,
зеленым и синим. Фосфоры располагаются вдоль сторон друг друга. Пиксели
могут отличаться размерами и формой, в зависимости от монитора и
графического режима. Количество точек на экране определяются физическим
соотношением ширины к высоте трубки.


И вот почему:
|Разреш|16 цветов (4-х |256 цветов (8|65К цветов |16.7 млн. цветов |
|. |битный) |бит) |(16 бит) |(24 бит) |
|640х48|512 Kb |512 Kb |1 Mb |1 Mb |
|0 | | | | |
|800х60|512 Kb |1 Mb |2 Mb |2 Mb |
|0 | | | | |
|1024х7|1 Mb |1 Mb |2 Mb |4 Mb |
|68 | | | | |
|1280х1|1 Mb |2 Mb |4 Mb |4 Mb |
|024 | | | | |
|1600х1|2 Mb |2 Mb |4 Mb |8 Mb |
|200 | | | | |
|1800х1|2 Mb |4 Mb |8 Mb |8 Mb |
|440 | | | | |


Что касается типа видеопамяти, то рекомендуется использовать
видеоадаптеры с SGRAM, VRAM, WRAM или MDRAM..

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

Затем, все еще в цифровом формате, данные, образующие образ, передаются в
RAMDAC, где они конвертируются в аналоговый вид, после чего передаются в
монитор, на котором выводится требуемое изображение.



Таким образом, почти на всем пути следования цифровых данных над ними
производятся различные операции преобразования, сжатия и хранения.
Оптимизируя эти операции, можно добиться повышения производительности всей
видеоподсистемы. Лишь последний отрезок пути, от RAMDAC до монитора, когда
данные имеют аналоговый вид, нельзя оптимизировать.
Рассмотрим подробнее этапы следования данных от центрального процессора
системы до монитора.
1. Скорость обмен данными между CPU и графическим процессором напрямую
зависит от частоты, на которой работает шина, через которую передаются
данные. Рабочая частота шины зависит от чипсета материнской платы. Для
видеоадаптеров оптимальными по скорости являются шина PCI и AGP. Чем выше
рабочая частота шины, тем быстрее данные от центрального процессора системы
дойдут до графического процессора видеоадаптера.
2. Ключевой момент, влияющий на производительность видеоподсистемы, вне
зависимости от специфических функций различных графических процессоров -
это передача цифровых данных, обработанных графическим процессором, в
видеопамять, а оттуда в RAMDAC. Самое узкое место любой видеокарты - это
видеопамять, которая непрерывно обслуживает два главных устройства
видеоадаптера: графический процессор и RAMDAC, которые вечно перегружены
работой. В любой момент, когда на экране монитора происходят изменения
(иногда они происходят в непрерывном режиме, например, движение указателя
мыши, мигание курсора в редакторе и т.д.), графический процессор обращается
к видеопамяти. В то же время, RAMDAC должен непрерывно считывать данные из
видеопамяти, чтобы изображение не пропадало с экрана монитора. Поэтому,
чтобы увеличить производительность видеопамяти, производители применяют
различные технические решения. Например, используют различные типы памяти с
улучшенными свойствами и продвинутыми возможностями, например, VRAM, WRAM,
MDRAM, SGRAM, или увеличивают ширину шины данных, по которой графический
процессор или RAMDAC обмениваются информацией с видеопамятью, используя 32-
разрядную, 64-разрядную или 128-разрядную видеошину.
Один из вариантов - использовать двухпортовую видеопамять.

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

Другим методом для увеличения производительности является увеличение
разрядности шины, через которую графический процессор и RAMDAC обмениваются
данными с видеопамятью.
Но самым распространенным на сегодняшний день методом оптимизации
работы видеоадаптеров является применение повышенной тактовой частоты, на
которой работает графический процессор, видеопамять и RAMDAC, что позволяет
увеличить скорость обмена информацией между компонентами платы.
RAMDAC
принципы работы и параметры
RAMDAC имеет два режима работы. В первом режиме чипсет оперирует
данными цветовой гаммы или палитры (palletized data). В этом режиме 8
битные данные конвертируются в RGB цвета. Каждому из 256 возможных значений
цвета соответствует положение в цветовой палитре, которая размещается в DAC
(цифро-аналоговый преобразователь). Цветовая палитра формируется и хранится
в RAM (память с произвольной выборкой) - отсюда и название RAMDAC - и может
быть загружена с любой комбинацией цветов. Каждый раз, когда новый пиксел
передается в DAC для отображения на экране, значение передаваемых данных
используется в качестве указателя на положение в палитре, информация из
палитры, используется в качестве значения цвета для DAC. Палитра,
хранящаяся в RAM, имеет 256 позиций, каждая из которых хранит 24 бита
данных о цвете, по 8 бит для каждого из трех основных составляющих цветов
Red, Green и Blue. Емкость RAM соответстует значению 256 х 24 = 6144 бит
или 768 байт. Для RAM используется стандартная память, изготовленная по
технологии DRAM и интегрированная вместе с графическим контроллером и DAC в
одну микросхему, иначе говоря - в один силикон (кремний).
Кстати, технология включения RAM для DAC в графический чипсет не имеет
никакого отношения к так называемой Embedded RAM (Встраиваемая память).
Последняя используется в качестве локальной памяти (Local Memory), так же
называемой буфером кадра.
Во втором режиме RAMDAC оперирует цветовыми данными. В этом режиме (при
16, 24 или 32 бит представлении цвета) данными является RGB цвет. Например,
при 16 битном представлении цвета, 5 бит определяют красный (Red), 6 бит
зеленый (Green) и 5 бит синий (Blue) цвета. Для зеленого цвета используется
больше бит, так как человечиский глаз более чувствителен к зеленому. При 24
или 32 бит представлении цвета, для каждого из цветов используется по 8 бит
данных. В этом режиме данные, определяющие цвет, передаются непосредственно
в DAC без использования RAM, т.е. не используются загружаемые палитры и
данные передаются напрямую из видеопамяти. Так как RAM не задействована, то
нет и ограничения в 205 MHz для частоты, на которой работает DAC.
Единственным ограничением является максимально возможная скорость работы
DAC.
Выбор режима работы RAMDAC происходит так: операционная система
Windows95/98/NT или приложение сообщает о требуемом режиме драйверу
видеоадаптера, который и переводит RAMDAC в один или другой режим работы.
Утилита управления режимами монитора (Display Control Panel) в Windows
предоставляет возможность выбора между 8, 16 или 24/32 бит представлением
цвета. Это и есть способ, с помощью которого Windows выбирает режим работы
RAMDAC. Приложение, которое запускается на полный экран может устанавливать
любой, требуемый ему режим, главное, чтобы этот режим поддерживался
видеоадаптером.
Операционная система или драйвер делают запрос, чтобы определить
разрешение, глубину цвета и частоту обновления экрана. Драйвер может либо
реализовать полученный ответ, либо вернуть сообщение, о том, что
запрошенный режим не поддерживается или невозможен. В этом случае
операционная система или приложение должны попробовать запросить установки
другого видеорежима.
Выбор режима работы RAMDAC никак не связан с типом используемой
видеопамяти.
Выбор режима, в которм работает RAMDAC, зависит от количества возможных
цветов. DAC имеет разрядность 8*8*8 бит, т.е. по 8 бит на каждый RGB цвет,
что соответствует способности отображать 16777216 (16М) цветов. При 8
битном представлении цвета, для палитры может использоваться 256 из 16
миллионов возможных цветов. При использовании данных цветовой гаммы
(палитры), активными являются только 256 цветов, которые могут отображаться
на экране в любой произвольно выбранный момент времени. Впрочем, палитра
может быть изменена приложением в любой момент. При 8 битной глубине
представления цвета, за загрузку палитры отвечает каждое приложение. При 16
битном цвете, имеется фиксированный набор цветов и для отображения могут
использоваться любые цвета из 65536 (64К) доступных. При 24 или 32 битном
цвете, DAC может отображать любой из 16 миллионов (16М) возможных цветов.
Каждый пользователь может заметить, что при 8 битном цвете любое
графическое изображение смотрится не так хорошо, как при 16 битном
представлении цвета. Однако, большинство пользователей не могут заметить
разницы при просмотре хорошо сделаного графического изображения в режиме 16
битного и 32 битного представления цвета. Фраза "хорошо сделанное
графическое изображение" означает растрирование (dithering - дизеринг) --
процесс смешивания двух соседних цветов, для получения третьего с
одновременным обеспечением плавных переходов между элементами изображения.
В результате использования технологии растрирования получаются изображения,
которые смотрятся практически одинакова в режимах с разной глубиной
представления цвета.
Для 16 битного представления цвета требуется в два раза больше памяти,
чем для 8 битного, а для 32 битного представления цвета требуется в два
раза больше памяти, чем для 16 битного. В связи с тем, что графические
адаптеры имеют ограниченные объемы памяти, экономия этого ресурса
становится одной из приоритетных задач. Ко всему прочему, отображение 32
битных данных зачастую происходит дольше, чем отображение 16 битных данных.
А это уже относится к проблеме производительности, о чем тоже не стоит
забывать. Именно поэтому обычному поьзователю стоит использовать 16 битное
представление цвета в Windows95/98/NT.
Пользователь или приложение выбирают тот режим представления цвета,
который для них наиболее удобен. Текстовый процессор, электронная таблица и
2D игры могут прекрасно работать в режиме 8 битного представления цвета.
Видеофильмы, 3D игры и 3D приложения обычно используют 16 битный режим
представления цвета, в качестве компромисса между качеством изображения и
производительностью. При использовании программ для просмотра
высококачественных фотографий, их редактирования, а так же приложений для
создания графики лучше всего использовать 24/32 битное представление цвета.

Как же узнать, в каком режиме работает RAMDAC? Если Вы используете
Windows, то у Вас есть возможность выбрать глубину представления цвета
между режимами 8, 16 или 24/32 бит. В 8 битном режиме используется палитра,
т.е. RAMDAC работает со скоростью 205 MHz, во всех других режимах, с другой
глубиной представления цвета, палитра не используется и RAMDAC работает со
скоростью 220 MHz. Если запускается на выполнение приложение, работающее в
полноэкранном режиме (например, в таком режиме работают большинство игр),
то тогда само приложение определяет, в каком режиме будет работать RAMDAC.
Иногда приложение выбрав режим работы сообщает эту информацию пользователю.
Но в большинстве случаев такого не происходит.
Пользователь может узнать, в каком режиме работает RAMDAC, проделав
следующие действия: Найдите поверхность, в которой есть плавный переход от
одного цвета к другому (как, например в небе у вас над головой). Если
переход от одного цвета к другому выглядит так, будто состоит из
перемежающихся точек, сильно отличающихся по цвету, значит ваше приложение
работает в 8 битном режиме представления цвета. В противном случае, т.е.
если переход от одного цвета к другому действительно плавный, ваше
приложение работает с другой глубиной представления цвета. При этом, не
лишне еще раз напомнить, что средний пользователь не может с уверенностью
опредилить, с какой глубиной представления цвета он имеет дело, с 16 или
24/32 бит.
Удостовериться, что заявленные значения скорости работы RAMDAC правда -
достаточно просто. Если известно, в каком разрешении вы работаете, например
1024х768, и с какой частотой происходит обновление изображения (refresh
rate), например 75 Hz, значит можно узнать какова скорость работы DAC.
Скорости в 220 MHz вполне достаточно для отображения в режимах 1280х1024
при 85 Hz и 1600х1200 при 75 Hz. Для режима 1600х1200 при 85 Hz требуется
скорость в 250 MHz. Известно, что по Европейским стандартам во всех
разрешениях должна поддерживаться частота обновления экрана в 85 Hz, однако
лишь немногие модели современных мониторов могут работать в режиме
1600х1200 при 85 Hz.
Напомним известные факты: если частота обновления экрана слишком
низкая, то пользователю будет заметно мерцание изображения, в следствии
чего можно испортить зрение. Частота обновления экрана в 75 Hz уже
достаточно быстрая, чтобы глаз человека мог заметить мерцание. Поэтому,
гораздо более разумно сосредоточить внимание на значениях частоты
обновления изображения, а не на скорости работы DAC, тем более, что эти
значения взаимосвязаны.


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

Изображение, которое мы видим на экране монитора, представляет собой
выводимое специальным цифроаналоговым преобразователем RAMDAC (Random
Access Memory Digital to Analog Converter) и устройством развертки
содержимое видеопамяти. Это содержимое может изменяться как центральным
процессором, так и графическим процессором видеокарты — ускорителем
двухмерной графики (синонимы: 2D-ускоритель, 2D-акселератор, Windows-
акселератор или GDI-акселератор). Современные оконные интерфейсы требуют
быстрой (за десятые доли секунды) перерисовки содержимого экрана при
открытии/закрытии окон, их перемещении и т. п., иначе пользователь будет
чувствовать недостаточно быструю реакцию системы на его действия. Для этого
процессор должен был бы обрабатывать данные и передавать их по шине со
скоростью, всего в 2-3 раза меньшей, чем скорость работы RAMDAC, а это
десятки и даже сотни мегабайт в секунду, что практически нереально даже по
современным меркам. В свое время для повышения быстродействия системы были
разработаны локальные шины, а позднее — 2D-ускорители, которые представляют
собой специализированные графические процессоры, способные самостоятельно
рисовать на экране курсор мыши, элементы окон и стандартные геометрические
фигуры, предусмотренные GDI — графической библиотекой Windows. 2D-
ускорители обмениваются данными с видеопамятью по своей собственной шине,
не загружая системную шину процессора. По системной шине 2D-ускоритель
получает только GDI-инструкции от центрального процессора, при этом объем
передаваемых данных и загрузка процессора в сотни раз меньше.

Современные 2D-ускорители имеют 64- или 128-разрядную шину данных,
причем для эффективного использования возможностей этой шины на видеокарте
должно быть установлено 2 или 4 Мбайт видеопамяти соответственно, иначе
данные будут передаваться по вдвое более узкой шине с соответствующей
потерей в быстродействии.

Можно сказать, что к настоящему моменту 2D-ускорители достигли
совершенства. Все они работают столь быстро, что несмотря на то, что их
производительность на специальных тестах может отличаться от модели к
модели на 10-15%, пользователь, скорее всего, не заметит этого различия.
Поэтому при выборе 2D-ускорителя следует обратить внимание на другие
факторы: качество изображения, наличие дополнительных функций, качество и
функциональность драйверов, поддерживаемые частоты кадровой развертки,
совместимость с VESA (для любителей DOS-игр) и т. п. Микросхемы 2D-
ускорителей в настоящее время производят ATI, Cirrus Logic,
Chips&Technologies, Matrox, Number Nine, S3, Trident, Tseng Labs и другие
компании.

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

Прежде всего, это функции по ускорению вывода видео в форматах AVI,
Indeo, MPEG-1 и других. Проблема в том, что видеофильм в формате NTSC идет
со скоростью 30 кадров в секунду, PAL и SECAM — 25 кадр/с. Скорость
смены кадров в цифровом видео перечисленных форматов также меньше или равна
30 кадр/с, однако разрешение изображения редко превышает 320 x
240 пикселов. При этих параметрах скорость поступления информации
составляет порядка 6 Мбайт/с и процессор успевает выполнить ее
декомпрессию и пересылку по шине в видеопамять. Однако такой размер
изображения слишком мал для комфортного просмотра на экране, поэтому его
обычно масштабируют на весь экран. В этом случае скорость потока данных
возрастает до десятков и сотен мегабайт в секунду. Это обстоятельство
привело к появлению видеоакселераторов, которые умеют самостоятельно
масштабировать видео в форматах AVI и MPEG-1 на весь экран, а также
выполнять сглаживание отмасштабированного изображения, чтобы оно не
выглядело, как набор квадратиков. Подавляющее большинство современных 2D-
ускорителей являются в то же время и видеоускорителями, а некоторые,
например ATI Rage128, умеют воспроизводить и видео в формате MPEG-2 (т. е.
с исходным разрешением 720 х 480).

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


Видеоакселераторы

3D-акселераторы

Когда в роли двигателя прогресса выступили компьютерные игры, 2D-
ускорители (см. Видеоакселераторы) почти исчерпали свои возможности, и
эволюция видеокарт пошла по пути наделения их все более мощными средствами
ускорения трехмерной машинной графики. Видеоадаптеры, способные ускорять
операции трехмерной графики, получили название 3D-ускорителей (синонимом
является 3D-акселератор, а также часто встречаемое жаргонное «3Dfx» для
обозначения всех 3D-ускорителей, а не только произведенных компанией 3Dfx
Interactive). Вообще, 3D-ускорители существовали и раньше, но областью их
применения было трехмерное моделирование и САПР, стоили они очень дорого
(от 1 до 15 тыс. долларов) и были практически недоступны массовому
пользователю.

Какие же действия ускоряет 3D-акселератор? В компьютере трехмерные
объекты представляются с помощью геометрических моделей, состоящих из сотен
и тысяч элементарных геометрических фигур, обычно треугольников. Задаются
также пространственное положение источников света, отражательные свойства
материала поверхности объекта, степень его прозрачности и т. п. При этом
некоторые объекты могут частично загораживать друг друга, между ними может
переотражаться свет; пространство может быть не абсолютно прозрачным, а
затянутым туманом или дымкой. Для большего реализма необходимо учесть и
эффект перспективы. Чтобы поверхность смоделированного объекта не выглядела
искусственной, на нее наносится текстура — двухмерная картинка небольшого
размера, передающая цвет и фактуру поверхности. Все перечисленные
трехмерные объекты с учетом примененных к ним эффектов должны в конечном
итоге быть преобразованы в плоское изображение. Эту операцию, называемую
рендерингом, и выполняет 3D-ускоритель.

Перечислим наиболее распространенные операции, которые 3D-ускоритель
выполняет на аппаратном уровне:

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

Закрашивание (Shading) придает треугольникам, составляющим объект,
определенный цвет, зависящий от освещенности. Бывает равномерным (Flat
Shading), когда каждый треугольник закрашивается равномерно, что вызывает
эффект не гладкой поверхности, а многогранника; по Гуро (Gouraud Shading),
когда интерполируются значения цвета вдоль каждой грани, что придает
криволинейным поверхностям более гладкий вид без видимых ребер; по Фонгу
(Phong Shading), когда интерполируются векторы нормали к поверхности, что
позволяет добиться максимальной реалистичности, однако требует больших
вычислительных затрат и в массовых 3D-ускорителях пока не используется.
Большинство 3D-ускорителей умеет выполнять закрашивание по Гуро.

Отсечение (Clipping) определяет часть объекта, видимую на экране, и
обрезает все остальное, чтобы не выполнять лишних расчетов.

Расчет освещения. Для выполнения этой процедуры часто применяют метод
трассировки лучей (Ray Tracing), позволяющий учесть переотражения света
между объектами и их прозрачность. Эту операцию с разным качеством умеют
выполнять все 3D-ускорители.

Наложение текстур (Texture Mapping), или наложение плоского растрового
изображения на трехмерный объект с целью придания его поверхности большей
реалистичности. Например, в результате такого наложения деревянная
поверхность будет выглядеть именно как сделанная из дерева, а не из
неизвестного однородного материала. Качественные текстуры обычно занимают
много места. Для работы с ними применяют 3D-ускорители на шине AGP, которые
поддерживают технологию сжатия текстур. Наиболее совершенные карты
поддерживают мультитекстурирование — одновременное наложение двух текстур.

Фильтрация (Filtering) и сглаживание (Anti-aliasing). Под сглаживанием
понимается уменьшение искажений текстурных изображений с помощью их
интерполяции, особенно на границах, а под фильтрацией понимается способ
уменьшения нежелательной «зернистости» при изменении масштаба текстуры при
приближении к 3D-объекту или при удалении от него. Известна билинейная
фильтрация (Bilinear Filtering), в которой цвет пиксела вычисляется путем
линейной интерполяции цветов соседних пикселов, а также более качественная
трилинейная фильтрация с использованием MIP-карт (Trilinear MIP Mapping).
Под MIP-картами (от лат. Multum in Parvum — «многое в одном») понимается
набор текстур с разными масштабами, что позволяет в процессе трилинейной
фильтрации выполнять усреднение между соседними пикселами и между соседними
MIP-картами. Трилинейная фильтрация дает особенный эффект при наложении
текстур на протяженный объект, удаляющийся от наблюдателя. Современные
платы поддерживают трилинейную фильтрацию.

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

Смешение цветов, или дизеринг (Dithering) применяется при обработке
двух- и трехмерных изображений с большим количеством цветов на устройстве с
меньшим их количеством. Этот прием заключается в рисовании малым
количеством цветов специального узора, создающего при удалении от него
иллюзию использования большего количества цветов. Пример дизеринга —
применяемый в полиграфии способ передачи градаций серого цвета за счет
нанесения мелких черных точек с различной пространственной частотой. В 3D-
ускорителях дизеринг используется для передачи 24-битного цвета в 8- или 16-
битных режимах.

Для поддержки функций 3D-ускорителя в играх и других программах
существует несколько интерфейсов прикладного программирования, или API
(Application Program Interface), позволяющих приложению стандартным образом
использовать возможности 3D-ускорителя. На сегодняшний день существует
множество таких интерфейсов, среди которых наиболее известны Direct3D
(Microsoft), OpenGL (Silicon Graphics), Glide (3Dfx), 3DR (Intel), Heidi
(Autodesk), RenderGL (Intergraph).

Интерфейс Direct3D компании Microsoft стал фактическим стандартом для
большинства компьютерных игр; и большинство 3D-ускорителей укомплектованы
Direct3D-драйверами. Однако стоит иметь в виду, что Direct3D поддерживается
только в среде Windows 95/98, а уже в Windows NT большинство плат не
поддерживает аппаратных функций ускорения.

Разработанный компанией Silicon Graphics для своих графических станций
Iris GL интерфейс прикладного программирования OpenGL стал общепринятым
стандартом для программ трехмерного моделирования и САПР. Используемый в
профессиональных 3D-ускорителях, он позволяет очень точно описывать
параметры сцены. OpenGL в настоящее время является открытым стандартом,
контролируемым ассоциацией OpenGL Architecture Review Board, в которую
помимо Silicon Graphics входят Digital, IBM, Intel, Intergraph, Microsoft и
др. Несмотря на это, существует множество диалектов OpenGL. По
распространенности в области компьютерных игр OpenGL уступает Direct3D.

Драйвер 3D-ускорителя может поддерживать OpenGL в двух режимах:
усеченном MCD (Mini Client Driver) и полном ICD (Installable Client
Driver). Драйвер MCD реализует только базовый набор операций, ICD—
высокооптимизированный драйвер, который обеспечивает максимальное
быстродействие. К сожалению, многие производители 3D-ускорителей, заявив о
своей полной поддержке OpenGL, не обеспечивают ее даже на уровне MCD-
драйвера. Наличием стабильных ICD-драйверов могут похвастаться лишь
немногие 3D-ускорители (в основном на базе чипсетов 3DPro, Glint, Permedia
2 и RivaTNT).

Интерфейс Glide разработан компанией 3Dfx Interactive для производимых
ею ускорителей Voodoo. Glide снискал широкое распространение среди
производителей компьютерных игр, хотя, в отличие от OpenGL, Glide не
является универсальным 3D API и поддерживает только возможности Voodoo.

В настоящее время наиболее известны следующие 3D-ускорители: ATI 3D
Rage Pro и 3D Rage 128; Intel i740; Number Nine Ticket to Ride IV;
Mitsubishi 3DPro/2mp, Matrox G100 и G200; S3 Savage3D; Riva128 и RivaTNT;
Rendition V2100 и V2200; 3Dlabs Permedia 2 и 3; 3Dfx Voodoo, Voodoo2 и
Voodoo Banshee; NEC PowerVR PCX2. На базе этих чипсетов производятся
собственно видеокарты, причем не только перечисленными компаниями, а и
компаниями, не выпускающими собственные графические процесоры, например
ASUSTek, Creative Labs или Diamond Multimedia. Современные 3D-видеокарты
обладают и функциями ускорения двухмерной графики. Исключением являются
ускорители на базе 3Dfx Voodoo и Voodoo2, которые подключаются к выходу
обыкновенной видеокарты перед монитором специальным внешним соединительным
кабелем. Такое решение ухудшает качество 2D-изображения, и к тому же
невозможна работа в оконном режиме. В 3Dfx Voodoo Banshee от этой схемы
отказались, и она представляет собой полноценный 2D/3D-ускоритель.

-----------------------
[pic]






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

Стандартные типы видеоадаптеров
MDA (Monochrome Display Adapter - монохромный адаптер дисплея) -
простейший видеоадаптер, применявшийся в первых IBM PC. Работает в
текстовом режиме с разрешением 80x25 (720x350, матрица символа - 9x14),
поддерживает пять атрибутов текста: обычный, яркий, инверсный, подчеркнутый
и мигающий. Частота строчной развертки - 15 Кгц. Интерфейс с монитором -
цифровой: сигналы синхронизации, основной видеосигнал, дополнительный
сигнал яркости.
HGC (Hercules Graphics Card - графическая карта Hercules) - расширение
MDA с графическим режимом 720x348, разработанное фирмой Hercules.
CGA (Color Graphics Adapter - цветной графический адаптер) - первый
адаптер с графическими возможностями. Работает либо в текстовом режиме с
разрешениями 40x25 и 80x25 (матрица символа - 8x8), либо в графическом с
разрешениями 320x200 или 640x200. В текстовых режимах доступно 256
атрибутов символа - 16 цветов символа и 16 цветов фона (либо 8 цветов фона
и атрибут мигания), в графических режимах доступно четыре палитры по четыре
цвета каждая в режиме 320x200, режим 640x200 - монохромный. Вывод
информации на экран требовал синхронизации с разверткой, в противном случае
возникали конфликты по видеопамяти, проявляющиеся в виде "снега" на экране.
Частота строчной развертки - 15 Кгц. Интерфейс с монитором - цифровой:
сигналы синхронизации, основной видеосигнал (три канала - красный, зеленый,
синий), дополнительный сигнал яркости.
EGA (Enhanced Graphics Adapter - улучшенный графический адаптер) -
дальнейшее развитие CGA, примененное в первых PC AT. Добавлено разрешение
640x350, что в текстовых режимах дает формат 80x25 при матрице символа 8x14
и 80x43 - при матрице 8x8. Количество одновременно отображаемых цветов - по-
прежнему 16, однако палитра расширена до 64 цветов (по два разряда яркости
на каждый цвет). Введен промежуточный буфер для передаваемого на монитор
потока данных, благодаря чему отпала необходимость в синхронизации при
выводе в текстовых режимах. структура видеопамяти сделана на основе так
называемых битовых плоскостей - "слоев", каждый из которых в графическом
режиме содержит биты только своего цвета, а в текстовых режимах по
плоскостям разделяются собственно текст и данные знакогенератора. Совместим
с MDA и CGA. Частоты строчной развертки - 15 и 18 Кгц. Интерфейс с
монитором - цифровой: сигналы синхронизации, видеосигнал (по две линии на
каждый из основных цветов).
MCGA (Multicolor Graphics Adapter - многоцветный графический адаптер) -
введен фирмой IBM в ранних моделях PS/2. Добавлено разрешение 640x400
(текст), что дает формат 80x25 при матрице символа 8x16 и 80x50 - при
матрице 8x8. Количество воспроизводимых цветов увеличено до 262144 (по 64
уровня на каждый из основных цветов). Помимо палитры, введено понятие
таблицы цветов, через которую выполняется преобразование 64-цветного
пространства цветов EGA в пространство цветов MCGA. Введен также видеорежим
320x200x256, в котором вместо битовых плоскостей используется представление
экрана непрерывной областью памяти объемом 64000 байт, где каждый байт
описывает цвет соответствующей ему точки экрана. Совместим с CGA по всем
режимам, а с EGA - по текстовым, за исключением размера матрицы символа.
Частота строчной развертки - 31 Кгц, для эмуляции режимов CGA используется
так называемое двойное сканирование - дублирование каждой строки формата
Nx200 в режиме Nx400. интерфейс с монитором - аналогово-цифpовой: цифровые
сигналы синхронизации, аналоговые сигналы основных цветов, передаваемые
монитору без дискретизации. Поддерживает подключение монохромного монитора
и его автоматическое опознание - при этом в видео-BIOS включается режим
суммирования цветов по так называемой шкале серого (grayscale) для
получения полутонового чеpно-белого изображения. Суммирование выполняется
только при выводе через BIOS - при непосредственной записи в видеопамять на
монитор попадает только сигнал зеленого цвета (если он не имеет встроенного
цветосмесителя).
VGA (Video Graphics Array - множество, или массив, визуальной графики)
- расширение MCGA, совместимое с EGA, введен фирмой IBM в средних моделях
PS/2. Фактический стандарт видеоадаптера с конца 80-х годов. Добавлен
текстовый режим 720x400 для эмуляции MDA и графический режим 640x480 с
доступом через битовые плоскости. В режиме 640x480 используется так
называемая квадратная точка (соотношение количества точек по горизонтали и
вертикали совпадает со стандартным соотношением сторон экрана - 4:3).
Совместим с MDA, CGA и EGA, интерфейс с монитором идентичен MCGA.
IBM 8514/а - специализированный адаптер для работы с высокими
разрешениями (640x480x256 и 1024x768x256), с элементами графического
ускорителя. Не поддерживает видеорежимы VGA. интерфейс с монитором
аналогичен VGA/MCGA.
IBM XGA - следующий специализированный адаптер IBM. расширено цветовое
пространство (режим 640x480x64k), добавлен текстовый режим 132x25
(1056x400). Интерфейс с монитором аналогичен VGA/MCGA.
SVGA (Super VGA - "сверх" VGA) - расширение VGA с добавлением более
высоких разрешений и дополнительного сервиса. Видеорежимы добавляются из
ряда 800x600, 1024x768, 1152x864, 1280x1024, 1600x1200 - все с соотношением
4:3. Цветовое пространство расширено до 65536 (High Color) или 16.7 млн.
(True Color). Также добавляются расширенные текстовые режимы формата
132x25, 132x43, 132x50. Из дополнительного сервиса добавлена поддержка VBE.
Фактический стандарт видеоадаптера примерно с 1992 г.
Устройство типовой видеокарты
Она состоит из четырех основных устройств: памяти, контроллера, ЦАП и
ПЗУ.
Видеопамять служит для хранения изображения. От ее объема зависит
максимально возможное полное разрешение видеокарты – A*B*C, где A -
количество точек по горизонтали, B - по вертикали, и C - количество
возможных цветов каждой точки. Например, для разрешения 640x480x16
достаточно 256 Кб, для 800x600x256 - 512 Кб, для 1024x768x65536 (другое
обозначение - 1024x768x64k) - 2 Мб, и т.д. Поскольку для хранения цветов
отводится целое число разрядов, количество цветов всегда является степенью
двойки (16 цветов - 4 разряда, 256 - 8 разрядов, 64k - 16, и т.д.).
Видеоконтроллер отвечает за вывод изображения из видеопамяти,
регенерацию ее содержимого, формирование сигналов развертки для монитора и
обработку запросов центрального процессора. Для исключения конфликтов при
обращении к памяти со стороны видеоконтроллера и центрального процессора
первый имеет отдельный буфер, который в свободное от обращений ЦП время
заполняется данными из видеопамяти. Если конфликта избежать не удается -
видеоконтроллеру приходится задерживать обращение ЦП к видеопамяти, что
снижает производительность системы; для исключения подобных конфликтов в
ряде карт применялась так называемая двухпортовая память, допускающая
одновременные обращения со стороны двух устройств.
Многие современные видеоконтроллеры является потоковыми - их работа
основана на создании и смешивании воедино нескольких потоков графической
информации. Обычно это основное изображение, на которое накладывается
изображение аппаратного курсора мыши и отдельное изображение в
прямоугольном окне. Видеоконтроллер с потоковой обработкой, а также с
аппаратной поддержкой некоторых типовых функций называется акселератором
или ускорителем, и служит для разгрузки ЦП от рутинных операций по
формированию изображения.
ЦАП (цифроаналоговый преобразователь, DAC) служит для преобразования
результирующего потока данных, формируемого видеоконтроллером, в уровни
интенсивности цвета, подаваемые на монитор. Все современные мониторы
используют аналоговый видеосигнал, поэтому возможный диапазон цветности
изображения определяется только параметрами ЦАП. Большинство ЦАП имеют
разрядность 8x3 - три канала основных цветов (красный, синий, зеленый, RGB)
по 256 уровней яркости на каждый цвет, что в сумме дает 16.7 млн. цветов.
Обычно ЦАП совмещен на одном кристалле с видеоконтроллером.
Видео-ПЗУ - постоянное запоминающее устройство, в которое записаны
видео-BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется
видеоконтроллером напрямую - к нему обращается только центральный
процессор, и в результате выполнения им программ из ПЗУ происходят
обращения к видеоконтроллеру и видеопамяти. ПЗУ необходимо только для
первоначального запуска адаптера и работы в режиме MS DOS; операционные
системы с графическим интерфейсом - Windows или OS/2 - практически не
используют ПЗУ для управления адаптером, хотя и могут иметь проблемы в
работе при ошибках в программе BIOS, не найденных разработчиками.
На карте обычно размещаются один или несколько разъемов для внутреннего
соединения; один из них носит название Feature Connector и служит для
предоставления внешним устройствам доступа к видеопамяти и изображению. К
этому разъему может подключаться телеприемник, аппаратный декодер MPEG,
устройство ввода изображения и т.п. На некоторых картах предусмотрены
отдельные разъемы для подобных устройств.
Видеоускорители (акселераторы)
Ускоритель (accelerator) - набор аппаратных возможностей адаптера,
предназначенный для перекладывания части типовых операций по работе с
изображением на встроенный процессор адаптера. Различаются ускорители
графики (graphics accelerator) с поддержкой изображения отрезков, простых
фигур, заливки цветом, вывода курсора мыши и т.п., и ускорители анимации
(video accelerators) - с поддержкой масштабирования элементов изображения и
преобразования цветового пространства.
Почти сразу после появления SVGA, видеоадаптеры стали оснащать
акселераторами для аппаратного ускорения работы с графическими
операционными системами – прорисовкой и заливкой “окон”, аппаратным
курсором “мыши” и пр., а затем и ускорения некоторых простых, но сильно
загружавших процессор операций работы с цифровым видео – MPEG. Вплоть до
переноса на видеочип полного декодера MPEG.
В последнее время в области 2D-графики наметился некоторый застой –
ничего нового в этой области уже не было придумано, все видеоплаты, вплоть
до самых дешевых, почти выровнялись по скорости и качеству изображения.
Однако рынок видеоплат был прямо таки взорван появлением АКСЕЛЕРАТОРОВ
ТРЕХМЕРНОЙ ГРАФИКИ.
Основные понятия 3D-графики
. Артефакты (Artefacts)
Артефакт – недостаток, побочный эффект, изъян, присутствующий в
изображении. Ниже приводятся названия распространенных артефактов (эти
названия используются в описании понятий), и их английские эквиваленты.
Названия в целом условны – у многих предметов нет стандартного названия.
|Размытость |Blur |смазывание мелких |[pic] |
| | |деталей текстуры | |
|Муар |Moire pattern|текстура с |[pic] |
| | |регулярной | |
| | |структурой получает| |
| | |инородный рисунок | |
|Полосы |Mipmap bands |видны границы между|[pic] |
|мипмэппинга | |текстурами с | |
| | |разными | |
| | |мип-уровнями (на | |
| | |рисунке сверху и | |
| | |снизу) | |
|Пикселизация |Pixelization |образование |[pic] |
| | |"квадратов" при | |
| | |сильном | |
| | |растягивании | |
| | |текстуры и | |
| | |отсутствии | |
| | |билинейной | |
| | |фильтрации | |
|Шум |Noise, |текстура теряет |[pic] |
| |sparkling |свою структуру; при| |
| | |движении текстура | |
| | |не двигается, а | |
| | |"шумит" | |
|Нестыковка | |полигоны не |[pic] |
|текстур | |стыкуются между | |
| | |собой, оставляя | |
| | |тонкие светлые или | |
| | |темные промежутки | |
|Лестничный |Jaggies, |зубчатость краев |[pic] |
|эффект |stair-steppin|полигонов и | |
| |g |диагональных линий | |
|Z-алиасинг |Z-aliasing |неправильный расчет|[pic] |
| | |глубины | |


. Альфа-смешение (Alpha blending)
Альфа-смешение – техника создания эффекта полупрозрачности путем
объединения исходного пиксела с пикселом, уже находящимся во фрейм-буфере.
Каждому пикселу обычно ставится в соответствие значения красного, зеленого
и синего компонентов цвета (R,G,B). Если ставится в соответствие еще альфа-
значение, то говорят что пикселы имеют альфа-канал (компонент A в схеме
RGBA). Альфа-значение определяет степень прозрачности конкретного пиксела.
Объекты могут иметь различную прозрачность, например стекло имеет высокий
уровень прозрачности (и таким образом низкое альфа-значение), а желе –
средний уровень. Альфа-смешение есть процесс комбинирования двух объектов
на экране с учетом их альфа-каналов.
Альфа-смешение используется для: антиалиасинга, прозрачности, создания
теней, зеркал, тумана.

. Антиалиасинг (Anti-aliasing)
Алиасинг – результат сэмплинга, то есть преобразования непрерывного
изображение в дискретное. Алиасинг ухудшает качество изображения, вызывая
разнообразные артефакты: лестничный эффект, муар и шум. Антиалиасинг
призван нейтрализовать подобные артефакты и улучшить качество изображения.
По предназначению антиалиасинг делится на краевой и полный.
Краевой антиалиасинг – механизм борьбы с лестничным эффектом. Краевой
антиалиасинг сглаживает края полигонов и диагональные линии. Краевой
антиалиасинг применяется в 3D-ускорителях Voodoo Graphics, Voodoo 2, Verite
V2000.
[pic]
[pic] [pic]
Для реализации краевого антиалиасинга чаще всего используют технику
усреднения по площади (area averaging). Цвет пиксела определяется на
основании того, насколько каждый полигон перекрывает данный пиксел.
Например, как показано на рисунке ниже, пиксел перекрывают два полигона: A
и B. Метод усреднения по площади определяет видимые области, занимаемые
полигонами, которые "прикасаются" к пикселу, и вычисляет результирующий
цвет на основании видимых площадей перекрытия (то есть принадлежащих и
пикселу, и полигону). Пусть полигон A занимает 40% площади пиксела, а
полигон B – 60%. Результирующий цвет в этом случае определяется цветами A и
B c весовыми коэффициентами 40% и 60% соответственно (то есть проводится
операция альфа-смешения). Для линий и точек метод тот же самый, в данном
случае считается, что линии и точки имеют ненулевую площадь.
[pic]
К сожалению, альфа-смешение в краевом антиалиасинге приводит к
появлению артефакта под названием bleeding (дословно "кровоточение").
Bleeding – окрашивание внутренних ребер в цвет фона, это связано с тем, что
между гранями образуется тонкий просвет. Поэтому программа сама должна
знать, какие ребра и линии нужно сглаживать. Из-за этого краевой
антиалиасинг сложно программировать.
[pic]
Полный антиалиасинг, в отличие от краевого, направлен на полную
нейтрализацию алиасинга. Единственным представителем полного антиалиасинга
является субпиксельный антиалиасинг. Субпиксельный антиалиасинг применяется
в 3D-ускорителях PVNG, Intel740, nVidia Riva128 и TNT, а также во всех
профессиональных OpenGL-ускорителях.
Субпиксельный антиалиасинг в Intel740 и nVidia Riva TNT базируется на
технике суперсэмплинга. Суперсэмплинг означает, что вся сцена рендерится в
каком-то большом виртуальном разрешении, а затем сжимается до фактического
разрешения. В общем случае виртуальное и фактическое разрешения могут быть
некратными. Техника суперсэмплинга возможна из-за того, что эти ускорители
используют tile-based архитектуру. Ускорителю традиционной архитектуры
потребовался бы большой объем памяти (для виртуального разрешения 1600x1200
– более 8 MB). Дело в том, что ускоритель tile-based архитектуры не
работает с целым фреймбуфером, а с отдельными фрагментами (tiles). И все
данные о субпикселах он хранит только для фрагмента, который рендерится в
данный момент.
[pic]
В 3D-ускорителях серии Glint от 3DLabs используется другой метод,
основанный на хранении маски. Рассмотрим случай, когда 1 пиксел разбивается
на 16 (4x4) субпикселов (эта техника называется мультисэмплингом), а
полигоны рендерятся front-to-back (картинка снизу).
[pic]
Когда рендерится полигон не переднем плане, субпикселы 2,3,4,7,8,12
окрашиваются в цвет переднего полигона. Причем запоминается, какие
субпикселы попали в передний полигон, то есть маска. Эта маска проверяется
когда рендерится задний полигон. Субпикселы 1,5,6,9 окрашиваются в цвет
заднего полигона. Субпикселы 2,3, принадлежащие обоим полигонам, не
изменяют цвет и таким образом остаются с цветом переднего полигона. В
результате – никакого bleedingа.
Обратная сторона такого антиалиасинга – это необходимость хранения
маски для каждого пиксела и требование сортировки полигонов front-to-back.
Второе требование можно обойти, сохраняя z-координату для каждого
субпиксела. Однако хранить z-координаты для всех субпикселей на экране
невозможно, так как это требует гигантского объема видеопамяти. Поддержку
субпиксельного антиалиасинга с z-буферизацией реализует техника
аккумулятора. Суть его сводится к тому, что обработка ведется
последовательно для каждого пиксела и при этом используется одна и та же
память. Недостаток: из-за требования последовательной обработки
невозможность аппаратного распараллеливания и как следствие уменьшение
производительности в число раз, равное числу субпикселов в пикселе.
Например субпиксельный антиалиасинг 4x4 снижает производительность в 16
раз, или другими словами увеличивает Fillrate в 16 раз.


. Мипмэппинг (MIP-mapping)
Мипмэппинг (MIP-mapping) использует несколько версий одной текстуры с
разной степенью детализации (LOD – level-of-detail), причем следующая
версия меньше предыдущей в 4 раза (например 128x128, 64x64, 32x32 и т.д.).
Такие версии называются мип-уровнями, а все версии одной текстуры – мип-
каскадом.
Цели мипмэппинга:
o Уменьшение времени обработки – для объектов на далеком
расстоянии обрабатывать текстуру с низким разрешением гораздо
легче
o Избавление от шума и муара - добавление мип-уровней с низким
уровнем детализации
Существует несколько видов мипмэппинга, но все они используют 1 либо 2
соседних мип-уровня. При мипмэппинге, каждый используемый мип-уровень либо
увеличивается, либо уменьшается (соотвествие 1:1 статистически редко).
Увеличение и уменьшение называются соответственно магнификацией
(magnification) и минификацией (minification). И минификация, и
магнификация имеет свои недостатки. Минификация приводит к underfilteringу
(выражающемуся в муаре и шуме), магнификация - к overfilteringу
(выражающемуся в пикселизации или заблюриванию). Чем меньше искажается мип-
уровень, тем лучше выглядит текстура в конечном итоге.
[pic]
Основные виды мипмэппинга:
o Простой мипмэппинг (nearest mipmapping) без билинейной
фильтрации сейчас не используется.
o Простой мипмэппинг с билинейной фильтрацией. Самый применяемый
метод сегодня. Похож на предыдущий метод, но между текселами
выполняется интерполяция. При приближении или удалении объекта
от наблюдателя выбирается подходящий мип-уровень. При
приближении к наблюдателю выбирается мип-уровень с бОльшей
степенью детализации, при удалении – с меньшей. Что же будет с
мип-уровнем в конкретный момент – будет выполняться минификация
или магнификация? Это зависит от конкретной реализации и от
параметра, называемого LOD-bias. Если в рендеринге доминирует
минификация, то на сцене присутствуют шум и муар. Если
доминирует магнификация, то текстуры кажутся более размазанными,
но муара/шума нет. Простому мипмэппингу присущ артефакт,
выражающийся в резких переходах на текстурированной поверхности
(так называемые полосы мипмэппинга). Это происходит при смене
степени детализации, если мип-каскад нарисован некачественно.
o Трилинейная фильтрация (tri-linear filtering). Наиболее
аккуратный способ вычисления цвета пиксела. Трилинейная
фильтрация более сложна, нежели предыдущие методы. В отличие от
простого мипмэппинга, в котором просто выбирается подходящий
уровени детализации, здесь проводится интерполяция между двумя
соседними мип-уровнями. Благодаря этому полосы мипмэппинга не
образуются. При вычислении цвета пиксела используется 8 текселов
(4 при билинейной фильтрации) и требует 7 операций смешения (3
при билинейной фильтрации). Использование трилинейной фильтрации
дает гораздо более высокое качество изображения для движущихся
объектов.
Адаптивная фильтрация частично решает проблему
overfilteringа/underfilteringа. Программа выбирает как обрабатывать мип-
уровни, отдельно верхний и нижний. Например интерполировать нижний мип-
уровень, и не интерполировать верхний мип-уровень, а затем интерполировать
полученные текстуры между собой, как при трилинейной фильтрации.
Мипмэппинг предполагает, что разработчик сам создает мип-каскад. Однако
многие игры имеют лишь текстуры с одним разрешением. Для решения этой
проблемы была придумана техника авто-мипмэппинга. Драйвер 3D-ускорителя сам
вычисляет несколько мип-уровней, используя основную текстуру (она
становится мип-уровнем с максимальной детализацией). Техника авто-
мипмэппинга используется также для увеличения числа мип-уровней, если игра
использует недостаточное их количество (например многие игры используют
всего 3 мип-уровня для экономии текстурной памяти).
Мипмэппинг дает высокое качество для полигонов, преимущественно
обращенных на наблюдателя (т.е. расположенных параллельно плоскости
экрана), так как такие полигоны состоят из квадратных пикселов. Однако
наклоненные полигонов состоят из неквадратных пикселов, и к проблеме
размера пикселов добавляется проблема формы пикселов. При стандартном
подходе фильтр, который хорошо работает с квадратными пикселами, дает
сильный алиасинг на неквадратных. Решением этой проблемы является
анизотропная фильтрация, которая является более сложным фильтром, чем
трилинейная фильтрация. Анизотропная фильтрация работает с пикселами как с
эллипсами и для получения одного пиксела обрабатывает большое количество
текселов (до 32).
[pic]

. Морфинг уровня детализации (LOD morphing)
Морфинг уровня детализации (LOD) весьма полезен в играх с большими
открытыми пространствами. Его главная цель – обеспечение плавного появления
объектов в области видимости игрока. Пример: автомобильный симулятор. Дома,
деревья, которые внезапно появляются в области видимости "ниоткуда",
вызывают неприятное впечатление. В данном случае, при реализации морфинга
уровня детализации дома и деревья появляются полностью прозрачными, а по
мере приближения к игроку приобретают очертания, становятся более плотными,
и в непосредственной близости становятся полностью непрозрачными.
Другое, более сложное применение морфинга уровня детализации –
реализация объектов с разным уровнем детализации. Создается несколько
версий одного объекта с разной степенью детализации: самая низкая
детализация для отображения объекта на очень далеком расстоянии, и самая
высокая детализация для самого близкого расстояния. Чем выше детализация,
тем из большего числа полигонов состоит объект. Это позволяет уменьшить
число полигонов на сцене, и следовательно повысить производительность.
Например, нет смысла отображать автомобиль во всей его красе на расстоянии,
при котором игрок может различить только цвет автомобиля. Переходы между
уровнями детализации осуществляется также варьированием прозрачности: смена
детализации происходит не мгновенно, непрозрачная (старая) версия
становится прозрачной, а прозрачная (новая) – более плотной.
Версии одного объекта для разных уровней детализации могут готовиться
на стадии разработки, а могут просчитываться в реальном времени методом
прогрессивных сеток (progressive meshes). Прогрессивные сетки
поддерживаются Direct3D.
[pic]

. Мультитекстурирование (Multitexturing)
Мультитекстурирование – метод рендеринга с использованием нескольких
текстур за минимальное число проходов. Текстуры накладываются на объект
последовательно, с использованием разного рода арифметических операций.
Мультитекстурирование позволяет конвейеризировать наложение текстур с
использованием нескольких (обычно двух) блоков текстурирования. Рисунок
наглядно демонстрирует выполняемые действия. Первый блок накладывает на
пиксел текстуру Tex0, используя операцию Op0, передает пиксел второму
блоку. Этот пиксел передается второму блоку, который натягивает на него
текстуру Tex1, используя операцию Op1. В это время первый блок не ждет, а
переходит к обраб

Новинки рефератов ::

Реферат: Проектирование судового дизеля (Технология)


Реферат: Агропроизводственная группировка почв (Ботаника)


Реферат: Компьютерное моделирование местной вентиляции (Безопасность жизнедеятельности)


Реферат: Фильтрация газов(баротермический эффект) (Физика)


Реферат: Роль и значение PR и социальной рекламы в практике социальной работы (Социология)


Реферат: Наследственное право (Гражданское право и процесс)


Реферат: Биологические особенности двоякодышащих и кистепёрых рыб (Биология)


Реферат: Природа как средство эстетического воспитания в детском саду (Педагогика)


Реферат: БУДДА: Победить самого себя (Религия)


Реферат: Социальная защита населения (Социология)


Реферат: Анализ финансово-хозяйственной деятельности предприятия (Аудит)


Реферат: "Преступление и наказание" - роман-предупреждение (Литература)


Реферат: Трагедия народа (Литература : русская)


Реферат: Государство Маурьев в Индии (История)


Реферат: Альдегіди (Химия)


Реферат: Видеоконференции в сети INTERNET (Программирование)


Реферат: Китай (История)


Реферат: История технологии художественных отливок. Литье пушек (Металлургия)


Реферат: История развития мирового кино (Искусство и культура)


Реферат: Русская армия от Петра1 до Александра2 (История)



Copyright © GeoRUS, Геологические сайты альтруист