Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Видеоадаптеры, классификация, особенности строения и работы

не будет ускорять все стадии конвейера, и  даже  более
того, стадии  могут  лишь  частично  ускоряться  им.  Далее  мы  рассмотрим
подробнее стадии конвейера в контексте работы  3D-ускорителей.  Традиционно
каждую стадию обозначают буквами.
    Стадия "T". Тесселяция (триангуляция) – процесс  разбиения  поверхности
объектов  на  полигоны  (треугольники  или  четырехугольники).  Эта  стадия
проводится полностью программно вне зависимости от  технического  уровня  и
цены 3D-аппаратуры. Тем не менее тесселятор (программный код, отвечающий за
тесселяцию) должен учитывать особенности того или иного 3D-ускорителя,  так
как они могут иметь разные требования к полигонам-примитивам:
         o произвольные треугольники
         o треугольники с горизонтальной нижней или верхней гранью
         o треугольник или  четырехугольник  с  описанием  уравнений  ребер
           (бесконечные плоскости)
    Также тесселятор должен учитывать, умеет ли работать с сетками (meshes)
разных типов. Если 3D-программа разрабатывается на высокоуровневом  3D-API,
например Direct3D RM или PowerRender, то ей не  надо  заботиться  обо  всех
этих деталях, так как такой API имеет свой тесселятор.
    Стадия "G". Геометрическая обработкаделится на несколько фаз,  и  может
частично ускоряться 3D-ускорителем.
         o  трансформация  (transformation)  –   преобразование   координат
           (вращение, перенос и масштабирование всех объектов)
         o отсечение (clipping),  выполняемое  до  и  после  преобразования
           координат
         o освещение (lighting) – определение цвета каждой вершины с учетом
           всех световых источников (решение уравнения освещенности)
         o проецирование (projection) – преобразование координат в  систему
           координат экрана
         o setup – предварительная  обработка  потока  вершин  (перевод  из
           плавающей точки в фиксированную точку данных о вершинах, а также
           сортировка вершин,  отбрасывание  задних  граней,  субпиксельная
           коррекция)
    Наиболее часто люди путаются именно с  геометрической  обработкой.  Это
усугубляется тем, что сами  производители  путают  терминологию.  (Например
3Dlabs заявляет, что Glint Delta – геометрический сопроцессор,  что  вообще
говоря неверно, Delta – это setup  engine.)  Большинство  существующих  3D-
ускорителей ускоряют только последнюю фазу – setup, при том  делают  это  с
разной степенью полноты. Говорят,  что  3D-ускоритель  имеет  полный  setup
engine, если он  может  переводить  в  фиксированную  точку  все  данные  о
вершине.  В  зависимости  от  типа  примитивов,  с  которыми  работает  3D-
ускоритель, речь ведется о triangle setup или о planar setup.
    Геометрический процессором называется ускоритель, который ускоряет  всю
стадию геометрической обработки, в том  числе  трансформацию  и  освещение.
Реализация геометрического процессора  довольно  дорого,  и  как  уже  было
сказано, он является объектом рекламных спекуляций.  Определить  реализован
ли геометрический процессор довольно легко – надо выяснить, поддерживает ли
3D-ускоритель операции с матрицами. Без такой поддержки не может идти  речь
об ускорении  фазы  трансформации.  Геометрическими  процессорами  являются
например Glint Gamma и Pinolite.
    Стадия  "R".  Растеризация  –  наиболее  интенсивная  операция,  обычно
реализуемая на аппаратном уровне.  Растеризатор  выполняет  непосредственно
рендеринг и является  наиболее  сложной  ступенью  конвейера.  Если  стадия
геометрической обработки работает с  вершинами,  то  растеризация  включает
операции, проводимые на пиксельном и  суб-пиксельном  уровне.  Растеризация
включает в себя  удаление  скрытых  поверхностей,  текстурирование,  альфа-
смешение, z-буферизация, затенение, антиалиасинг, dithering.

    . Текстурирование (Texture mapping)
    Текстурирование – основной метод моделирования поверхностей. Текстура –
изображение, накладываемое на поверхность.  Использование  текстур  требует
гораздо  меньше  ресурсов,  нежели  моделирование  поверхности  с   помощью
полигонов. Текстуры хранятся в текстурной памяти, отдельные тексели  (точки
текстуры) используются для покрытия текстурой  пикселей  перед  записью  во
фрейм-буфер. В зависимости от конкретного  метода  текстурирования,  разное
число текселей требуется для обработки одного пиксела.
                                    [pic]
    Сэмплинг (point-sampling) – простейший метод текстурирования, в котором
для отображения одной точки используется всего один тексел (рисунок  ниже).
Этому методу присущ  серьезный  артефакт:  когда  наблюдатель  приближается
вплотную  к  текстурированной  поверхности,  происходит  пикселизация.  Для
избежания  этого  артефакта  используют  другие   методы   текстурирования,
основанные на фильтрации текстур.
                                    [pic]
    Билинейная  фильтрация  (bi-linear  filtering)  использует  4   смежных
тексела для получения одного пиксела (рисунок ниже). Билинейная  фильтрация
требует четыре операции смешения для каждого результирующего  пиксела:  для
двух верхних текселей, для двух нижних и для двух полученных значений.
                                    [pic]
    Более сложные методы текстурирования основаны на мипмэппинге.
    Когда полигоны текстурируются, необходимо  учитывать  перспективу.  Для
того,  чтобы  текстурированные  объекты  выглядели  правильно,   необходима
перспективная коррекция. Она гарантирует, что текстура правильно  наложится
на разные части объекта. Перспективная коррекция –  ресурсоемкая  процедура
(одна операция деления на  каждый  пиксел),  поэтому  3D-ускорители  должны
реализовывать ее аппаратно. Но разные ускорители достигают разного качества
перспективной коррекции.
                                    [pic]
    Fillrate – скорость текстурирования, измеряемая в пикселах  в  секунду,
является очень  важной  величиной,  и  именно  ее  указывают  как  основную
характеристику 3D-чипсета. Fillrate 100 млн пикселей/сек означает, что  3D-
ускоритель может обработать 100 млн пикселей в секунду, накладывая  на  них
текстуры. На fillrate влияет множество факторов, таких как тип  фильтрации,
глубина цвета, альфа-смешение, туман и антиалиасинг.

    Туман (Fog)
    Туман   используется   для   создания   атмосферных   эффектов.   Туман
используется для создания дымки  и  скрытия  удаленных  объектов.  В  первом
случае  повышается  реалистичность  сцены,  во  втором   –   понижается   ее
сложность.
    С туманом объекты могут рендериться с  разной  степенью  детализации  в
зависимости от расстояния до наблюдателя. Туман работает  по  принципу:  чем
дальше объект,  тем  больше  туман  его  поглощает.  Поэтому  для  удаленных
объектов разумно использовать  меньше  полигонов,  чем  для  близких.  Туман
также скрывает и переходы между уровнями детализации.
    Туман можно разделить на полигонный (per-polygon)  и  пиксельный  (per-
pixel). Полигонный метод линейно интерполирует уровень тумана  по  значениям
в вершинах для получения уровня тумана в каждой точке полигона.  Этот  метод
хорош только для маленьких полигонов. Пиксельный метод рассчитывает  уровень
тумана для каждого пиксела, и для больших полигонов дает более  реалистичное
изображение.
    Туман также можно разделить и по  другому  признаку  –  на  линейный  и
экспоненциальный (или табличный). При  линейном  тумане  степень  поглощения
объекта  туманом  линейно  зависит  от  расстояния  до  наблюдателя,  а  при
экспоненциальном тумане – рассчитывается на основании таблицы.
    [pic]

    Удаление скрытых поверхностей (Hidden Surface Removal)
    Удаление  скрытых  поверхностей  (hidden  surface  removal  –  HSR)   –
комплексный  механизм,  служащий  для  уменьшения   числа   треугольников,
которые будут участвовать в рендеринге,  а  также  правильном  рендеринге  с
точки зрения глубины.
    Прежде всего надо  отбросить  все  треугольники,  которые  заведомо  не
видны.
    Отсечение  (clipping).  Отбрасываются  все  треугольники,  которые  не
попадают  в  объем  отсчечения  (clip  volume),  который  ограничен  шестью
плоскостями  по  трем  координатам.  Это  важнейший  метод   HSR,   который
выполняется всегда.
    Отбрасывание задних граней (backface  culling).  Выполняется  проверка,
куда "смотрит" треугольник. Это возможно, так  как  у  каждой  вершины  есть
нормаль   и   поэтому   все   треугольники   являются   ориентированными   в
пространстве.  Если  треугольник  смотрит  "на  наблюдателя",  он  считается
видимым, а если "от наблюдателя"  –  то  невидимым.  Это  позволяет  снизить
вдвое число видимых треугольников, например для вывода сферы,  состоящей  из
треугольников,  необходимо  срендерить  только  треугольники,   составляющие
полусферу, которую видит наблюдатель.
    BSP-деревья. Программный метод HSR для статической геометрии,  например
уровней в 3D-шутере. Цель BSP-деревьев – упорядочение треугольников  спереди
назад (front-to-back) и определение  тех  треугольников,  которые  полностью
закрываются другими.
    После того, как осталось минимум треугольников,  надо  их  отрендерить,
причем так, чтобы видимые пикселы были видимы, а невидимые – невидимы.
    Z-буферизация (z-buffering).
    Z-сортировка (z-sorting). Z-сортировка – менее  аккуратный  программный
метод удаления скрытых поверхностей по  сравнению  с  z-буферизацией,  также
известный как алгоритм Паинтера. Объекты сортируются сзади наперед (back-to-
front). Более  удаленные  объекты  рендерятся  в  первую  очередь,  за  ними
следуют менее удаленные. Если объекты пересекают друг  друга,  то  ближайший
накладывается на дальнего, то есть происходит z-алиасинг.
    [pic]

    . 3D-программные интерфейсы (3
12345След.
скачать работу

Видеоадаптеры, классификация, особенности строения и работы

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ