Что отвечает за расчет геометрии трехмерного изображения в видеокартах
Графический процессор (особенности функционирования и структуры)
Графические процессоры (GPU) по сложности абсолютно не уступают центральным процессорам, но из-за своей узкой специализации, в состоянии более эффективно справляться с задачей обработки графики, построением изображения, с последующим выводом его на монитор.
Если говорить о параметрах, то они у графических процессоров весьма схожи с центральными процессорами. Это уже известные всем параметры, такие как микроархитектура процессора, тактовая частота работы ядра, техпроцесс производства. Но у них имеются и довольно специфические характеристики. Например, немаловажная характеристика графического процессора – это количество пиксельных конвейеров (Pixel Pipelines). Эта характеристика определяет количество обрабатываемых пикселей за один такт роботы GPU. Количество данных конвейеров может различаться, например, в графических чипах серии Radeon HD 6000, их количество может достигать 96.
Пиксельный конвейер занимается тем, что просчитывает каждый последующий пиксель очередного изображения, с учётом его особенностей. Для ускорения процесса просчёта используется несколько параллельно работающих конвейеров, которые просчитывают разные пиксели одного и того же изображения.
Давайте рассчитаем скорость заполнения, к примеру, для видеокарты AMD Radeon HD 6990 (рис.2) Частота ядра GPU этого чипа составляет 830 МГц, а количество пиксельных конвейеров – 96. Нехитрыми математическими вычислениями (830х96), мы приходим к выводу, что скорость заполнения будет равна 57,2 Гпиксель/c.
Рис. 2
Помимо пиксельных конвейеров, различают ещё так называемых текстурные блоки в каждом конвейере. Чем больше текстурных блоков, тем больше текстур может быть наложено за один проход конвейера, что также влияет на общую производительность всей видеосистемы. В вышеупомянутом чипе AMD Radeon HD 6990, количество блоков выборки текстур составляет 32х2.
В графических процессорах, можно выделить и другой вид конвейеров – вершинные, они отвечают за расчёт геометрических параметров трёхмерного изображения.
Сейчас, давайте рассмотрим поэтапный, несколько упрощенный, процесс конвейерного расчёта, с последующим формированием изображения:
1 — й этап. Данные о вершинах текстур поступают в вершинные конвейеры, которые занимаются рассчётом параметров геометрии. На этом этапе подключается блок «T&L» (Transform & Lightning). Этот блок отвечает за освещение и трансформацию изображения в трёхмерных сценах. Обработка данных в вершинном конвейере проходит за счёт программы вершинного шейдера (Vertex Shader).
3–ий этап. В завершающем этапе построения изображения в конвейерной обработке, данные передаются в специальный буфер кадров.
Характеристики видеокарты: что нужно знать для правильного выбора?
Видеокарта – один из ключевых компонентов компьютера, который отвечает за преобразование графической информации в сигнал для вывода на монитор. Представляет собой небольшую плату, которая устанавливается в слот материнской платы. Чтобы самостоятельно выбрать подходящую видеокарту, рядовому пользователю придется изучить элементы комплектующих и определяющие характеристики: объем видеопамяти, чип платы, частота, система охлаждения, принцип работы – знание данных позиций позволит избежать ошибок при совершении покупки.
Устройство видеокарты компьютера
Современное устройство видеокарты вмещает в себя множество различных компонентов: от собственного графического процессора до системы охлаждения. Их формирование и организация взаимодействия выстроены таким образом, чтобы добиться выполнения своей задачи – обработки информации и вывода графических данных.
Графический процессор GPU
Графический процессор считается центральным элементом работы видеокарты, отвечающим за проведение математических расчетов изображения с последующим выводом на экран. Модель процессора определяет все иные характеристики видеокарт.
При выборе GPU нужно учитывать особенности наименования. Фирма NVIDIA называет свои процессоры как GeForce GTX 123, где цифры указывает на параметры используемого графического чипа. Первая уточняет поколение устройства. Две последующие – положение чипа в линейке видеокарт данного поколения. Чем они больше, тем выше производительность видеокарты.
Компания AMD использует аналогичную оценку. Пример: Radeon HD 1234. Первая цифра определяет поколение, три последующих – положение чипа в поколении.
Видеопамять
Чтобы хранить изображения, команды и промежуточные элементы, не отображаемые на экране, требуется некоторое количество памяти. За это в графическом адаптере отвечает видеопамять. Может быть выражена в различных типах, которые могут отличаться по частоте или скорости обработки информации. Здесь же стоит уточнить, что видеокарта задействует не только собственный объем памяти, но также обращается и к ОЗУ на ПК.
Видеоконтроллер
Отвечает за генерацию изображения в памяти путем отправления команды на преобразователь и проведения обработки команды центрального процессора. Состоит из нескольких компонентов: шины данных (внутренняя и внешняя), контроллер памяти. Их функционирование обеспечивается вне зависимости друг от друга, что позволяет вести одновременное управление экранами дисплеев.
Цифро аналоговый преобразователь (RAM DAC)
Видеоконтроллер генерирует картинку, но для вывода в понятном виде на экран изначально потребуется преобразовать изображение в искомый сигнал с заданными параметрами цвета. За это и отвечает Цифро-аналоговый преобразователь. Представляет собой построение из четырех элементов, три из которых формируют данные посредством RGB (система красный-зеленый-синий), а последний отвечает за сведения о последующей коррекции яркости и гаммы.
Постоянное запоминающее устройство
Хранит в себе ряд центральных элементов, сведения с BIOS и отдельные таблицы с информацией о системе. Взаимодействует непосредственно с центральным процессором – видеоконтроллер в этом случае не принимает никакого участия. ПЗУ обеспечивает активацию и функционирование устройства еще до полного запуска операционной системы.
Система охлаждения видеокарты
Работа видеокарты, ее бесперебойность и качество обработки информации – зависит от системы охлаждения. Устройство считается одной из наиболее горячих комплектующих ПК, поэтому для работы при сильных нагрузках монтируется радиатор и несколько кулеров. Таким образом обеспечивается сохранность приемлемой температуры. В мощных карточках используются водяные системы, которые позволяют добиться большего эффекта охлаждения.
Чтобы оценить показатели данной позиции, следует обратить внимание на ряд понятных критериев:
Выбрать карту с мощной системой охлаждения важно для сохранности персонального компьютера. Карта с некачественным охлаждением будет перегреваться, при этом поднимется и температура в самом корпусе, что может сказаться на всех комплектующих компьютера. Систему можно приобрести отдельно. Чтобы добиться должного эффекта, придется потратиться: замена отличается немалой стоимостью – от 50 долларов.
Основные характеристики видеокарты
Для получения ожидаемого эффекта от устройства перед его выбором важно определить главные параметры видеокарты.
Тип видеопамяти (GDDR)
Используется несколько типов видеопамяти. Чем позже был разработан типовой вариант, тем выше скорость обработки информации. Высокими показателями обладает стандарт GDDR5. Однако стоимость приобретения на порядок выше, чем более востребованного, но не столь быстрого типа GDDR3.
Объем видеопамяти
Объем видеопамяти переоцененный неопытными пользователями параметр. Такое отношение обусловлено не слишком честной рекламой, где на данной характеристике делают лишний акцент за счет цепочки «причина-следствия», которая понятна даже рядовым пользователям – чем больше объем памяти, тем быстрее устройство. Более подробно о том как узнать сколько памяти на видеокарте.
На практике же этот показатель играет второстепенную роль. Но все же при наличии достаточного бюджета, рекомендуется отдать предпочтение видеокарте, у которой больше памяти. Однако существуют определенный предел, когда размер уже не имеет значения (у каждой модели свой лимит).
К примеру, следует приобрести карту с памятью GDDR5 в 256 бит и объемом в 1 Гб, чем тип памяти GDDR3 в 128 бит и в три раза большим объемом.
Частота видеопамяти
Важная характеристика видеокарты, которая указывает на сколько быстро процессор обрабатывает информацию, что непосредственно определяет быстродействие самого устройства. Выражается в МГц (мегагерцах) или ГГц (гигагерцах).
Важно уточнить, что один тип графического процессора при различных составляющих может выдавать неодинаковую частоту. Подобное обусловлено наличием в некоторых моделях заводского разгона. Также многое зависит от архитектуры графического ядра, количества и качества шейдерных блоков. К сожалению, эти параметры обычно не указываются в описании товара или на ценниках, поэтому перед покупкой рекомендуется посетить официальный сайт производителя и получить полную информацию по выбранной модели.
О невысокой производительности видеокарты косвенным образом может свидетельствовать отсутствие разъема для подключения дополнительного питания. Стандартная шина от материнской платы PCIe не способна обеспечить необходимое питание для пользования программными продуктами.
Ширина шины видеопамяти
Шина памяти и ее пропускная способность также признаются в качестве основных характеристик видеокарты, так как этот компонент отвечает за прогон информации между графическим процессором и памятью. Шина измеряется в bit: отсчет идет с 64. Чем больше показатель, тем быстрее происходит взаимодействие элементов.
Распространенный вариант – 128 бит шина. Но в игровых и топовых компьютерах устанавливается шина с шириной 256 или 384.
Версия DirectX
Видеокарта – это устройство с рядом конкретных функций, поэтому для взаимодействия с ПК требуется программное обеспечение. В этом качестве выступает Direct X. Чем выше версия ПО, тем больше возможностей доступно пользователю.
Интерфейсы подключения к материнской плате
Интерфейс необходим для соединения элементов и материнской платы. Периферийные компоненты подключаются стандартно через стандартные шины типа PCI. Однако при использовании видеокарт используются другие интерфейсы.
Разработан на основании принципов PCI, но предназначен для карточек. Характеризуется более высокой пропускной способностью, чем стандартная шина. По данным обновления последней версии этот показатель составлял 2,1 Гб/с. Платы не выпускаются с 2006 года, так как был создан другой интерфейс с характеристиками повыше – PCIe.
Если сравнивать с предыдущим вариантом, этот интерфейс обладает большей пропускной способностью, до сих пор обновляется, при этом предусмотрен вариант с обратной совместимостью.
Несмотря на наличие 5 спецификаций интерфейса, в большинстве ПК используется 4 версия. Обусловлено это тем, что последний доступный вариант был введен лишь в мае 2019 года, поэтому еще не столь распространен.
SLI и CrossFire
Продолжительное время обеспечить совместную работу видеокарт было возможно лишь при помощи SLI (для видеокарт NVidia) или с использованием CrossFire (AMD). Однако относительно недавно проблема была решена путем выпуска новой версии DirectX, что позволило использовать сразу несколько видеопроцессоров на уровне API. Но подобные нововведения не стали причиной утраты актуальности указанных технологий. Следует уточнить особенности использования. Вне зависимости от типа используемой карты взаимодействие нескольких плат при обработке одной графической информации осуществляется таким образом:
Недостаток использование двух карт – чрезмерные затраты энергии и большая стоимость. При этом нужно учитывать, что на практике производительность повышается не в 2 раза, как хотелось бы, а на 50-70%.
Чтобы заставить видеокарты фирмы NVidia работать совместно, необходимо наличие материнской платы, которая позволяет использовать несколько комплектующих. Второй важный момент – применение режима SLI возможно лишь в случае с одинаковыми видеопроцессорами. То есть GTX 1060 и GTX 1080 объединить не выйдет.
CrossFire
Использование данной технологии не характеризуется высокими требованиями и допускает некоторые «вольности» в виде разных видеопроцессоров. Однако, они должны быть из одной серии.
Немного про разъемы
Современные версии видеокарт обладают несколькими портами для подключения двух и более экранов. Монитор же может иметь ряд различных типов разъемов, о которых следует знать пользователю.
VGA — Video Graphics Array
Самый старый вариант, используемый до сих пор и предполагающий вывод аналогового сигнала, качество которого могло определяться даже длиной провода. Постепенно вытесняется другими типами, так как не справляется с большим разрешением экрана.
S-Video
Еще один аналоговый разъем с качеством передачи хуже, чем у предыдущего варианта. Преимущество в сохранении хорошего качества изображения даже при длинном кабеле – до 20 метров.
DVI — Digital Visual Interface
Позволяет подключать мониторы с высоким разрешением, что сделало его популярным и среди другого оборудования (проектор и т.п.). Что примечательно, качество выводимой картинки не определяется длиной кабеля.
HDMI — High Definition Multimedia Interface
Также используется для вывода картинки с высоким разрешением, но имеет преимущество перед DVI в виде наличия не только видео, но и аудиоканала. Еще один плюс – компактность и отсутствие креплений.
DP — Displayport
Мало чем отличается от предыдущего варианта, кроме наличия переходников на более популярные типы разъемов. Пропускная способность выше, чем у HDMI, но все же встретить факт его использования среди рядовых пользователей намного меньше.
Thunderbolt
Аппаратный интерфейс для периферийных устройств. Характеризуется разнообразием функционала и большой пропускной способностью. Ранее применялся исключительно для продукции фирмы Apple, но в дальнейшем начал распространяться и на пользователей Windows, и на другие ОС и устройства. Может быть использован для передачи изображения на мониторы с разрешением в 4К.
Существуют и иные параметры видеокарты, будь то количество блоков рендеринга и текстурных блоков, число потоковых процессоров, поддержка шрейдеров. Однако их изучение не считается обязательным, так как они играют второстепенную роль. И все же при необходимости подобрать карту только для определенной цели (игры, работа с графикой), когда даже подобные моменты имеют вес, следует обратить внимание и на данные тонкости. Но для этого придется заняться изучением официального сайта производителя, так как в стандартных прайсах магазина эти характеристики обычно не указываются.
Будь умным!
Работа добавлена на сайт samzan.ru: 2016-03-05
2.1 Видеокарты
2.1.1 Устройство современной видеокарты
2.1.2 Технологии построения трехмерного изображения
2.2 Современные видеокарты
2.2.1 Современные видеокарты на графических процессорах NVIDIA
2.2.2 Современные видеокарты на графических процессорах AMD(ATI)
2.2.3 Технологии объединения видеокарт
2.1 Видеокарты
Современные видеокарты это одна из самых сложных и дорогих составляющих ПК. Фактически видеокарта представляет собой своеобразный компьютер в компьютере. Плата видеокарты превосходит по сложности разводки и количеству слоев материнскую плату. На самой видеокарте имеется свой процессор и своя оперативная память.
Прежде чем переходить к классификации и описанию современных видеокарт, необходимо познакомиться с рядом специфических терминов и понятий, которые традиционно приводятся в качестве характеристик видеокарт. Однако такие характеристики, как текселы, вершинные и пиксельные шейдеры, скорость заполнения и т. д., неразрывно связаны с пониманием принципов формирования трехмерных объектов и принципов работы современных графических ускорителей. Поэтому прежде мы постараемся в самом общем виде дать представление о том, как устроена видеокарта и как формируется трехмерное изображение.
2.1.1 Устройство современной видеокарты
Любая видеокарта включает в себя следующие обязательные компоненты:
Как и центральные процессоры, графические характеризуются такими параметрами, как микроархитектура, тактовая частота работы графического ядра и технологический процесс производства. Графические процессоры обладают и специфическими характеристиками. К примеру, одна из важнейших характеристик графического процессора это число пиксельных конвейеров (Pixel Pipelines), которое определяет количество обрабатываемых пикселов за один такт. К примеру, количество пиксельных конвейеров может составлять 12 или даже 16.
Забегая вперед, отметим, что для построения трехмерного изображения необходимо выполнить целый ряд операций: принять решение, какие объекты вообще должны присутствовать в сцене (видимые и невидимые), определить местоположение вершины, которое задает каждый из этих объектов, построить по этим вершинам грани, заполнить получившиеся полигоны текстурами в соответствии с освещением, степенью детализации и с учетом перспективных искажений. Чем тщательнее делаются все эти расчеты, тем реалистичнее получится трехмерное изображение. Повысить производительность этих рутинных операций можно, разбив их по стадиям и распараллелив. Именно эти функции и решают пиксельные конвейеры. На каждой стадии каждый пиксельный конвейер занимается тем, что просчитывает очередной пиксел конечного изображения с учетом многих факторов, включая освещение сцены. А для ускорения процесса расчета используют сразу несколько конвейеров. К примеру, если используется 16 пиксельных конвейеров, то первый конвейер обрабатывает 1-й, затем 17-й, затем 33-й пиксел и т. д.; второй конвейер 2-й, 18-й и 34-й соответственно.
Для того чтобы лучше представить себе структуру современного графического процессора, рассмотрим более детально процесс конвейерного расчета трехмерного изображения.
На первом этапе данные о вершинах поступают в вершинные конвейеры, которые занимаются расчетом геометрии сцены. Здесь начинает свою работу так называемый блок T&L (Transform & Lighting), который отвечает за некоторые аспекты работы с геометрией и за освещение и работает в паре с конвейерами. Блок T&L имеет две определяющие характеристики: максимальное количество источников света и количество обрабатываемых полигонов.
Обработка данных в вершинном конвейере происходит под управлением специализированной программы, называемой вершинным шейдером ( Vertex Shader ).
На следующем этапе формирования изображения задействуется Z-буфер для отсечения невидимых полигонов и граней каркасной модели трехмерного объекта. Далее происходит текстурирование объектов с фильтрацией самих текстур, для чего задействуются пиксельные конвейеры, работающие под управлением специализированной программы, называемой пиксельным шейдером (Pixel Shader).
Необходимо вспомнить о таких программных интерфейсах (Application Programming Interface, API), как OpenGL и Direct3D. В них описаны стандарты для работы с трехмерными изображениями. Приложение вызывает определенную стандартную функцию OpenGL или Direct3D, а шейдеры эту функцию выполняют.
Вершинные и пиксельные шейдеры имеют свою версию. На сегодняшний день последней является версия 3.0. И для реализации всех возможностей программ по обработке пикселов и вершин необходимо, чтобы данную версию шейдера поддерживала и видеокарта, и само приложение.
Рассмотренный нами алгоритм формирования изображения является весьма упрощенным. В реальных графических процессорах все обстоит несколько сложнее. К примеру, для повышения качества изображения используется технология сглаживания, фильтрации текстур и т. д. О некоторых из этих технологий будет рассказано далее.
Для графического процессора требуется видеопамять, играющая роль кадрового буфера, в который центральный процессор направляет видеоданные, а затем графический процессор считывает оттуда полученную информацию. Кроме того, в видеопамяти располагается Z-буфер и хранятся текстуры. Естественно, для обеспечения эффективной передачи данных важна пропускная способность видеопамяти.
Ширина шины памяти определяет количество бит, передаваемых между GPU и памятью за один такт. Собственно, пропускную способность шины памяти можно найти, если умножить ширину шины на тактовую частоту. К примеру, если ширина шины составляет 128 бит (16 байт), а тактовая частота памяти равна 250 МГц, то пропускная способность шины будет 4 Гбайт/с.
Кроме технических характеристик используемой видеопамяти, не менее важен и ее объем. При недостаточном объеме видеопамяти графический процессор фактически будет простаивать, пока нужные данные подгружаются из оперативной памяти компьютера. Минимальный объем видеопамяти современных видеокарт составляет 128 Мбайт, а максимальный 512 Мбайт.
Главные характеристики RAMDAC это тактовая частота и разрядность. Многие современные видеокарты поддерживают одновременную работу с двумя мониторами, поэтому в такие карты устанавливаются по два RAMDAC и, соответственно, по два разъема для подключения монитора.
Контроллер интерфейса отвечает за сопряжение видеокарты с материнской платой компьютера. До недавнего времени в качестве интерфейса видеокарт использовался специализированный AGP (Accelerated Graphic Port). К примеру, видеокарты подключались по интерфейсу AGP 4х с пропускной способностью 1,06 Гбайт/с или по интерфейсу AGP 8х с пропускной способностью 2,1 Гбайт/с.
Однако на смену интерфейсу AGP пришел более перспективный PCI Express. Для подключения графических карт используется версия PCI Express xl6. Теоретическая пропускная способность такой шины составляет до 4000 Мбайт/с в обоих направлениях. Новая шина с большим запасом перекрывает возможности современных графических процессоров и в перспективе может послужить дополнительным стимулом к их совершенствованию. Отметим, что все новые видеокарты выпускаются именно с интерфейсом PCI Express xl6.
2.1.2 Технологии построения трехмерного изображения
Современные технологии формирования трехмерного изображения и придания ему реалистичности чрезвычайно сложны, и детальное их рассмотрение выходит за рамки данной книги. Поэтому мы лишь вкратце опишем базовые технологии, которые фигурируют в качестве характеристик современных видеокарт.
Основные понятия
Прежде всего, нам предстоит познакомиться с основными понятиями трехмерной графики. К ним относятся:
Любой трехмерный объект, каким бы сложным он ни был, можно представить в виде набора простейших полигонов, которыми являются треугольники.
Поскольку речь идет о трехмерной графике, то любой объект представляется в виде набора точек, называемых вершинами, в трехмерном пространстве. Каждая вершина в трехмерном пространстве характеризуется тремя координатами, а система координат определяется тремя осями: горизонтальной (X), вертикальной ( Y) и глубины (Z). Соединяя вершины между собой, можно любую трехмерную поверхность аппроксимировать набором полигонов (многоугольников), простейшими из которых являются треугольники. Положение этих полигонов и задается вершинами. Понятно, что для формирования изображения полигоны необходимо закрасить. Для этого часто прибегают к текстурам. Текстура это двумерное изображение, которое может «натягиваться» на трехмерные объекты с учетом их формы и положения.
Текстурирование трехмерных поверхностей это самый распространенный метод закрашивания. К примеру, если бы мы попробовали смоделировать кирпичную стену без технологии наложения текстур, нам потребовалось бы прорисовывать множество отдельных граней для моделирования множества кирпичей. Текстура дает больше реализма и требует меньше вычислительных ресурсов, позволяя оперировать со всей стеной как с единой поверхностью. Все текстуры хранятся в памяти, обычно установленной на видеокарте.
Для того чтобы придать реалистичность формируемому изображению, необходимо рассчитать, какие именно объекты должны выводиться на экран, а какие не должны попасть в поле зрения. К примеру, если один объект находится спереди, а второй позади, то часть второго объекта должна быть невидимой.
Для решения этой задачи применяется метод, называемый Z-буферизацией. В так называемом Z-буфере (буфере глубины) хранятся значения глубины всех пикселов (Z-координаты). Когда рассчитывается новый пиксел, его глубина сравнивается со значениями глубин уже рассчитанных пикселов с теми же координатами Xи Y. Если новый пиксел имеет значение глубины больше какого-либо значения в Z-буфере, то новый пиксел не записывается в буфер для отображения, если меньше записывается.
Процесс обработки текстур и информации кадрового буфера называется рендерингом (или процессом закраски).
Аппаратная реализация Z-буферизации значительно увеличивает производительность графической подсистемы. Главная характеристика Z-буфера это его разрешающая способность. Она критична для высококачественного отображения сцен с большой глубиной. Чем выше разрешающая способность, тем выше дискретность Z-координат и точнее выполняется рендеринг удаленных объектов. Если при рендеринге разрешающей способности не хватает, может случиться, что два перекрывающихся объекта получат одну и ту же координату Z, что вызовет искажение изображения. Как правило, видеокарты имеют 32-разрядный Z-буфер.
Кроме буфера глубины, позволяющего отсекать невидимые поверхности, для создания реалистичных трехмерных изображений необходимо учитывать, что объекты могут быть полупрозрачными. Эффект полупрозрачности создается путем объединения цвета исходного пиксела с пикселом, уже находящимся в буфере. В результате цвет точки является комбинацией цветов переднего и заднего плана. Для учета прозрачности объектов используется так называемый alpha-коэффициент прозрачности, который имеет значение от 0 до 1 для каждого цветового пиксела.
Очевидно, что для создания реалистичной картины происходящего на экране необходимо частое обновление его содержимого. При формировании каждого следующего кадра ЗD-акселератор проходит весь путь подсчета заново, поэтому он должен обладать немалым быстродействием. Но в ЗD-графике применяются и другие методы придания плавности движению. Наиболее распространенный метод двойной буферизации (Double Buffering).
Для двойной буферизации требуется наличие двух областей, зарезервированных в буфере кадров. Метод Double Buffering использует два буфера кадров для получения изображения: один для отображения картинки, другой для рендеринга. В то время как отображается содержимое одного буфера, в другом происходит рендеринг. Когда очередной кадр обработан, буферы переключаются (меняются местами). Без применения двойной буферизации изображение не будет иметь требуемой плавности, то есть будет прерывистым.
Технологии повышения реалистичности трехмерного изображения
Для повышения реалистичности отображения наложенных на полигоны текстур используются самые различные технологии: сглаживания (Anti-Aliasing), MIP mapping, текстурной фильтрации и т. д.
Технология сглаживания (Anti-Aliasing)
Anti-Aliasing это технология устранения эффекта ступенчатых краев (Aliasing).
Изображение на экране состоит из множества мелких точек пикселов, которые, как маленькие кирпичики, формируют любое изображение. Однако из-за того, что пикселы имеют конечный размер, на краях трехмерных объектов можно различить так называемую лесницу, или ступенчатые края. Чтобы минимизировать эффект лесницы, проще всего увеличить разрешение экрана (уменьшив тем самым минимальный размер формируемых пикселов). Правда, такой способ минимизации паразитного эффекта подходит не всегда, поскольку это зависит от конкретного монитора, а если речь идет об игре то и от возможности игры переключаться на более высокое разрешение. Если избавиться от ступенчатого эффекта за счет повышения разрешения монитора нельзя, можно использовать технологию Anti-Aliasing, которая позволяет визуально сгладить эффект лестницы. Наиболее часто используемая для этого техника это создание плавного перехода от цвета линии или края к цвету фона. Цвет точки, лежащей на границе объектов, определяется как среднее значение цветов двух граничных точек.
Существует несколько базовых технологий Anti-Aliasing. Первоначально технологии сглаживания применялись лишь к отдельным объектам, однако с повышением производительности графических процессоров получила широкое распространение технология полноэкранного сглаживания, или FSAA (Full’Screen Anti-Aliasing).
Суть данной технологии заключается в том, что графический процессор рассчитывает изображение в гораздо большем разрешении, чем разрешение экрана, а затем сжимает его до установленного значения. Например, при разрешении экрана 800 х 600 и установке режима FSAA 2×2 изображение будет рассчитываться в разрешении 1600 х 1200, а затем сжиматься до 800 х 600 и выводиться на экран.
При сжатии полученное изображение уменьшается на строго установленное количество пикселов, при этом в соответствии с используемым алгоритмом окончательные цвета сглаженных пикселов рассчитываются по значениям нескольких соседних пикселов. В результате при сжатии изображения у всех линий появляются плавные цветовые границы переходов, что визуально устраняет эффект лестницы.
Технология МIР mapping
Одна из самых распространенных технологий, используемых для улучшения качества текстурирования трехмерных объектов, называется MIPmapping.
Дело в том, что для придания реалистичности трехмерному изображению необходимо учитывать глубину сцены. По мере удаления от точки наблюдения накладываемая текстура должна выглядеть все более размыто. Поэтому при текстурировании даже однородной поверхности чаще всего используется не одна и даже не две текстуры, что позволяет корректно учитывать перспективные искажения трехмерного объекта. Представим себе, что нам необходимо изобразить брусчатую мостовую, уходящую в глубь сцены. Если мы попытаемся использовать для этого всего одну текстуру по всей длине, то по мере удаления от точки наблюдения (на заднем плане) может проявиться рябь или просто один сплошной цвет. Дело в том, что в этой ситуации сразу несколько пикселов текстуры (текселов) попадает в один пиксел на мониторе. Возникает вопрос: в пользу какого одного текстела сделать выбор при отображении пиксела?
Для решения подобных проблем используется технология MIP mapping, которая подразумевает возможность применения набора текстур с различной степенью детализации. То есть на базе каждой текстуры создается целый набор текстур с меньшим уровнем детализации. Текстуры такого набора называются МIР-картами (MIP map).
В простейшем случае наложения текстуры для каждого пиксела изображения определяется соответствующая ему MIP-карта согласно таблице детализации (Level Of Detail, LOD). Далее из MIP-карты выбирается только один тексел (пиксел карты), который присваивается пикселу.
Как правило, технология MIP mapping используется в сочетании с технологиями фильтрации, призванными исправить артефакты MIP-текстурирования. Например, при удалении объекта все дальше от точки наблюдения происходит переход от низкого MIP map-уровня к высокому MIP map-уровню. В момент нахождения объекта в переходном состоянии от одного MIP map-уровня к другому появляется особый тип ошибок визуализации явно различимые границы перехода от одного MIP map-уровня к другому.
Смысл фильтрации состоит в том, что цвет пикселов объекта рассчитывается по соседним точкам текстуры (текселам). Существует несколько типов фильтрации, поддерживаемых видеокартами.
2.2 СОВРЕМЕННЫЕ ВИДЕОКАРТЫ
2.2.1 Современные видеокарты на графических процессорах NVIDIA
Несмотря на достаточно большое количество компаний, присутствующих на рынке дискретных видеоускорителей, их продукция совершенно незначительно отличается друг от друга по своей производительности и функциональности. Это объясняется тем, что видеокарты построены на одних и тех же графических процессорах. Более того, если речь заходит о старших (наиболее производительных) моделях, то зачастую они как две капли воды похожи друг на друга и в точности повторяют так называемый референсный (предложенный разработчиком графического процессора) дизайн.
Поэтому для того, чтобы получить представление о присутствующей на рынке продукции, нет смысла описывать видеокарты различных производителей. Вполне достаточно рассмотреть особенности графических процессоров и референсных видеокарт, построенных на них.
Семейство NVIDIA GeForce 8
Революционные изменения в восьмом поколении видеокарт по сравнению с предыдущим, седьмым, обусловлены выходом операционной системы Windows Vista ОТ Microsoft с принципиально новым интерфейсом WGF2.0 (Windows Graphics Foundation), известным также как DirectX 10 API.
В связи с этим архитектура нового графического процессора претерпела существенные изменения. Чтобы понять, насколько мощной спроектировали новую систему, достаточно взглянуть на одну цифру количество транзисторов. В G80 их 681 млн. Это больше, чем в самых современных процессорах Intel. К примеру, Intel Core 2 Е6850 состоит всего из 291 млн полупроводниковых элементов, а самый производительный Intel Core 2 Extreme QX6850 из 582 млн.
Такая сложная структура G80 в совокупности с 90-нанометровым техпроцессом ведет к увеличению энергопотребления. В зависимости от модификации, топовые видеокарты восьмого поколения потребляют от 108 до 175 Вт энергии, что катастрофически много в свете борьбы AMD и Intel за повышение энергоэффективности центральных процессоров.
Производимые по 65-нанометровому техпроцессу, процессоры архитектуры G92 (также относятся к восьмой серии) выигрывают у G80 по энергоэффективности, однако в абсолютных цифрах TDP по-прежнему остается довольно высоким около 130 Вт.
Семейство NVIDIA GeForce 8 (Унифицированные шейдерные процессоры)
Рисунок 1 80 графических ядер с унифицированными шейдерными процессорами
Новое поколение графических процессоров имеет принципиально новую архитектуру, основанную на унифицированных потоковых процессорах (шейдерные процессоры). Если в графических процессорах предыдущего поколения отдельно выделяли пиксельные и вершинные процессоры, которые называли также конвейерами, то в новой архитектуре речь идет именно об унифицированных шейдерных процессорах. Такие процессоры способны выполнять не только вершинные и пиксельные шейдерм, но также геометрические и физические, что не было реализовано в графических чипах предыдущих поколений. Архитектура унифицированных блоков позволяет достичь сбалансированной нагрузки при выполнении различных шейдеров, чего в принципе нельзя было достичь при использовании классической архитектуры графического процессора.
Унифицированные потоковые процессоры (Unified Streaming Processors, USP) представляют собой скалярные процессоры общего назначения для обработки данных с плавающей запятой. При этом необходимо акцентировать внимание на том, что ранее как NVIDIA, так и ATI применяли в своих изделиях векторную архитектуру исполнительных блоков.
Переход к скалярным процессорам вызван тем, что традиционная векторная архитектура менее эффективно использует вычислительные ресурсы, чем скалярный дизайн процессорных модулей, особенно в случае обработки сложных смешанных шейдеров, сочетающих векторные и скалярные инструкции.
Рисунок 2 Структура шейдерного процессора G80
SP = Streaming Processors
TF = Texture Filtering Units
ТА = Texture Address Units
L1/L2 = Caches
Потоковые процессоры обрабатывают сырые данные и передают их блокам текстурирования. На каждые четыре потоковых процессора приходится один модуль адресации текстур и два модуля фильтрации текстур. То есть на каждый функциональный блок в ядре, как видно на рисунке, приходится 16 потоковых процессоров, четыре модуля адресации текстур и восемь модулей фильтрации текстур. Примечательно, что каждому такому блоку выделен кэш первого уровня. При выполнении скалярным унифицированным потоковым процессором векторного программного кода преобразование в скалярные операции производится графическим процессором GeForce 8800.
Coverage Sampling Anti-Aliasing (CSAA)
Новая технология сглаживания основана на так называемых coverage samples и получила название Coverage Sampling Anti-Aliasing (CSAA). При этом поддерживаются четыре режима CSAA: 8х, 8xQ, 16х и 16xQ.
Технология CSAA обеспечивает более высокое качество сглаживания, чем технологии, реализованные в предыдущих версиях графических процессоров NVIDIA. Этот метод во многом похож на подход ATI и также имеет дело с псевдостохастическими паттернами и распространением отсчетов на соседние геометрические зоны (происходит размазывание пиксела, пикселы не имеют резкой границы, а как бы переходят один в другой с точки зрения АА, покрывая некую зону).
Геометрические шейдеры 4.0
Геометрические шейдеры это программы, позволяющие обрабатывать данные на уровне не отдельных вершин, как в вершинных шейдерах, а примитивов, то есть набора вершин (линий, полосок, треугольников и т. д.). Они дают возможность существенно повысить эффективность преобразования сложных трехмерных объектов. Работа с геометрическими шейдерами позволит сократить количество тактов графического процессора для просчета сложных геометрических преобразований, таких как реалистичные волосы и струящиеся сложные ткани. Также геометрические шейдеры помогут увеличить реалистичность изображения воды за счет возможностей тесселяции (разбиения полигонов на более мелкие).
Технология расчета физических эффектов (NVIDIA Quantum Effects) позволяет имитировать и рендерить множество новых физических эффектов, таких как огонь, дым, взрывы, движущиеся волосы, вода и т. д. Разумеется, самые интересные игровые эффекты с эмуляцией физических явлений можно будет наблюдать после выхода игр для DirectX 10.
NVIDIA GeForce 8800 GTX
Логически графический процессор содержит несколько вычислительных блоков: восемь блоков GeForce 8800 GTX. В каждом таком блоке сгруппированы четыре блока TMU (блок наложения текстур) и 16 блоков ALU. Таким образом, мы получаем 128 блоков ALU и 32 блока TMU (таблица).
Сама NVIDIA предпочитает говорить, что GeForce 8800 GTX имеет 128 унифицированных потоковых процессоров. По сути, это утверждение не совсем верно и носит в большей степени маркетинговый характер. Более правильно говорить о восьми унифицированных шейдерных процессорах (вычислительных блоках), поскольку именно вычислительный блок, а не отдельный блок ALU может обрабатывать часть пиксельного, вершинного или геометрического шейдера, а все ветвления, переходы, условия и т. д. обрабатываются именно на уровне всего вычислительного блока.
Рисунок 4 Архитектура графического ядра G92
Таблица 1 Параметры видеокарты NVIDIA GeForce 8800 GTX