Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


3D-акселераторы видеосистем персональных компьютеров

3D-акселераторы видеосистем персональных компьютеров

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

Изображения трехмерных объектов на экране монитора

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

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

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

Вершины. Задают местоположение объекта в трехмерном пространстве; само их по­ложение задается координатами X, Y и Z.

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

Текстуры. Это двухмерные изображения, или поверхности, налагаемые на примитивы. Точки текстуры называются текселами. 

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

геометризация – это определение размеров, ориентации и расположения примитивов в пространстве и расчет влияния источников света.

растеризация - преобразование примитивов в пиксели на экране с нанесением нужных затенений и текстур.

Функции 3D-акселератора

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

Последовательность этапов создания трехмерных изображений

Геометрическая обработка. Программа хранит местоположение объектов в мировых ко­ординатах, упрощая связи между различными объектами. Большинство вычислений проис­ходит в процессоре.

Преобразование и отображение. Программа преобразует трехмерные координаты в про­странстве (3D-координаты) в координаты на плоскости (2D-координаты) и использует тек­стуры. Работа в основном выполняется аппаратурой.

Описание этапов создания трехмерных изображений

Вычисление координат вершин. Процессор вычисляет позицию каждой вершины для каж­дого объекта в мировой системе координат.

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

Отбрасывание скрытых поверхностей. Изображать невидимые поверхности излишне. Процессор должен распознавать видимые поверхности и отбрасывать невидимые.

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

Закрашивание поверхностей. Как только мы получаем набор двумерных многоугольников, мы можем красить поверхность каждого из них теневой картой текстуры.

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

Большинство современных наборов микросхем 3D-акселераторов  обеспечивают выполнение следующих  функций растеризации:

Растровое преобразование. Определение того, какие пиксели экрана покрываются каждым из примитивов.

Обработка полутонов. Цветовое наполнение пикселей с плавными цветовыми пере­ходами между объектами.

Образование текстуры. Наложение на примитивы двухмерных изображений и по­верхностей.

Определение видимости поверхностей. Определение пикселей, покрываемых бли­жайшими к зрителю объектами.

Анимация. Быстрое и четкое переключение между последовательными кадрами дви­жущегося изображения.

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

Технологии трехмерной графики

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

Мипмэппинг

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

Затуманивание

Затуманивание – это имитация газа или тумана в играх.

Затенение Гуро

Затенение Гуро - интерполяция цветов для сглаживания неровностей окружностей и сфер.

Альфа-смешивание

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

Антиалиасинг

Антиалиасинг (аntialiasing) – метод борьбы с лестничным эффектом за счет сглаживания краев линий, полигонов и точек. Антиалиасинг делится на полный и краевой. Использование краевого антиалиасинга подразумевает, что игровые программы написаны соответствующим образом, и имеют возможность включения краевого антиалиасинга. Полный антиалиасинг может быть включен  в любой игровой программе  независимо от того поддерживает она антиалиасинг или нет.

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

Буфер шаблонов

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

Z-буферизация

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

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

Эту идею можно реализовать аппаратно. Решение, состоит в создании параллельно с памятью дисплея другого массива памяти, называемого  Z-буфером. Каждый раз при записи пикселя вычисляется его значение Z. При этом записываются только пиксели с большими значениями Z и обновляются расстояния в Z-буфере. Все остальные пикселы игнорируются. Таким образом, в каждой ячейке Z-буфера хранится расстояние по оси Z (вглубь экрана) для рисуемого пиксела, поэтому легко проверить, затенен ли новый записываемый пиксель или нет.  К сожалению,  Z-буфер требует дополнительной памяти, и, чем большая точность нужна для значений  Z, тем больше памяти нужно для запоминания значений Z. Если используется разрешающая способность 640х400 и значения Z в виде 16-разрядных (двухбайтовых) чисел, то нужно иметь 0,5 мегабайта памяти только для Z-буфера. С помощью Z-буфера можно легко решить, какие объекты расположены на переднем плане, но при этом понадобится вдвое больший объем видеопамяти. Почти все современные 3D-ускорители имеют 24-х или 32-битную

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

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

Можно сократить работу процессора, проявив небольшую хитрость при упорядочении объектов по их координатам Z.  Если какая-то поверхность полностью скрыта другими или повёрнута от наблюдателя, то ее совсем не нужно рисовать первой. А если мы исключили операцию рисования, то многоугольник не надо заполнять картой текстуры, в связи с этим уменьшается количество работы для процессора.

Улучшенные технологии наложения текстур

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

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

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

 В реальном мире источник света обычно точечный, поэтому освещенность поверхности неравномерна, она увеличивается в направлении источника. Поверхности также имеют различную отражающую способность, что сказывается на используемых текстурах. Блестящая металлическая искривленная поверхность отразит точечный источник света в точке (точка, называется зеркальным отражением точки, в которой находится точечный источник света), местоположение которой определяется законами геометрической оптики. Математический аппарат для  выполнения этой работы хорошо известен, но процессоры  и графические видеоплаты должны иметь для выполнения этих функций достаточную производительность.  Для экранных форматов с более высокой разрешающей способностью вычислений требуется еще больше (для разрешающей способности 640х400 требуется вчетверо больше вычислений, чем для 320х200). Подобные форматы не могли поддерживаться устаревшими моделями процессоров, поэтому они появились только с приходом быстродействующих процессоров типа Pentium. Для обновления экрана при быстром перемеще­нии каркасов и карт текстуры по экрану при высокой частоте кадров требуется не только большая скорость вычислений, но и высокая пропускная способность канала видеоплаты. Вот почему при рисовании трехмерных объектов необходима шина PCI или AGP (главное преимущество интерфейса AGP перед PCI в использовании режима DIME – Direct Memori Execution  или, как говорят,   AGP-текстурировании) на материнской плате и соответствующая видеопла­та с хорошей производительностью.

Рельефное текстурирование или наложение рельефа

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

Билинейная фильтрация

Билинейная фильтрация(bi-linear filtering - метод текстурирования, при котором выполняется интерполяция текстуры). Улучшение качества изображения небольших текстур, помещенных на большие многоугольники (достигается так называемая “размазанность текстур”). Эта технология устраняет эффект "блочности" текстур.

Трилинейная фильтрация

Трилинейная фильтрация(frii-linear filtering – более сложный метод текстурирования, при котором кроме интерполяции текстуры выполняется интерполяция между уровнями детализации текстуры). Комбинация билинейной фильтрации и так называемого наложения mip mapping (текстуры, имеющие разную степень детализации в зави­симости от расстояния до точки наблюдения). Использование трилинейной фильтрации значительно замедляет работу 3D-ускорителей, но формирует более качественное изображение, чем обычная билинейная  с мипмэппингом.

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

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

ЗD-игры, как правило, они показывают отличные ре­зультаты в тестах на трехмерную визуализацию.

Анизотропная фильтрация

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

Однопроходная или мультипроходная визуализация

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

Аппаратное или программное ускорение

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

Программная оптимизация

Для применения всех свойств видеоадаптеров необходимо использовать специальное программное обеспечение, которое может активизировать эти функции. Несмотря на то, что в настоящее время существует несколько программных стандартов трехмерной графики (OpenGL, Glide и Direct 3D), производители видеоадап­теров создают видеодрайверы, которые поддерживают указанные стандарты.

Дизеринг

Дизеринг(dithering) – метод получения изображений в Hi-Color-режимах.

Рендеринг

Рендеринг (конвейер рендеринга). Рендеринг выполняется по многоступенчатому процессу,  называемому  конвейером рендеринга, который состоит из трех этапов обработки: тесселяции, геометрической обработки, растеризации. При аппаратном рендеринге 3D-акселератор берет на себя наиболее вычислительно-емкие функции по растеризации треугольников.

 


Лицензия