Видеокарта — это одна из самых сложных и дорогих составляющих ПК. Фактически видеокарта представляет собой своеобразный компьютер в компьютере. Более того, как NVIDIA, так и AMD представили SDK (Software Development Kit — набор инструментальных средств разработчика), которые позволяют производить характерные для центрального процессора вычисления, пользуясь исключительно возможностями графических чипов.А если еще вспомнить, что вот-вот в индустрии центральных процессоров произойдет небольшая революция и графическое ядро переместится на кристалл центрального процессора, то в технологическую мощь индустрии GPU (Graphics Processing Unit) уверуют даже самые убежденные скептики. Прежде чем переходить к классификации и описанию современных видеокарт, необходимо познакомиться с рядом специфических терминов и понятий, которые традиционно приводятся в качестве характеристик видеокарт. Однако такие характеристики, как текселы, вершинные и пиксельные шейдеры, скорость заполнения и т. д., неразрывно связаны с пониманием принципов формирования трехмерных объектов и принципов работы современных графических ускорителей. Поэтому прежде мы постараемся в самом общем виде дать представление о том, как устроена видеокарта и как формируется трехмерное изображение. Любая видеокарта включает в себя следующие обязательные компоненты:1. графический процессор;2. микросхему BIOS;3. видеопамять;4. цифроаналоговый преобразователь (RAMDAC);5. контроллер интерфейса. На заре развития персональных компьютеров видеокарты выполняли функцию кадрового буфера. Изображение формировалось центральным процессором компьютера и программным обеспечением, а карта отвечала лишь за хранение (в буфере памяти) и вывод с определенной частотой отдельных кадров на монитор.По мере возрастания требований к качеству и реалистичности формируемого изображения, а также к скорости рендеринга отдельных кадров пришло понимание того факта, что центральный процессор ПК, то есть процессор общего назначения, не в состоянии эффективно решать специфические задачи формирования трехмерного изображения и для этих целей требуется специализированный графический процессор (GPU), который занимался бы исключительно расчетом трехмерного изображения. Собственно, современные графические процессоры по сложности не уступают центральным процессорам (процессорам общего назначения) и разница заключается лишь в их «специализации», благодаря чему они могут более эффективно справляться с задачей формирования изображения, выводимого на экран монитора. Как и центральные процессоры, графические процессоры характеризуются такими параметрами, как микроархитектура, тактовая частота работы графического ядра и технологический процесс производства. Графические процессоры обладают и специфическими характеристиками. К примеру, одна из важнейших характеристик графического процессора — это число пиксельных конвейеров (Pixel Pipelines), которое определяет количество обрабатываемых пикселов за один такт. К примеру, количество пиксельных конвейеров может составлять 12 или даже 16.Забегая вперед, отметим, что для построения трехмерного изображения необходимо выполнить целый ряд операций: принять решение, какие объекты вообще должны присутствовать в сцене (видимые и невидимые), определить местоположение вершины, которое задает каждый из этих объектов, построить по этим вершинам грани, заполнить получившиеся полигоны текстурами в соответствии с освещением, степенью детализации и с учетом перспективных искажений.Чем тщательнее делаются все расчеты, тем реалистичнее получится трехмерное изображение. Повысить производительность этих рутинных операций можно, разбив их по стадиям и распараллелив. Именно такие функции и решают пиксельные конвейеры. На каждой стадии каждый пиксельный конвейер занимается тем, что просчитывает очередной пиксел конечного изображения с учетом многих факторов, включая освещение сцены. А для ускорения процесса расчета используют сразу несколько конвейеров. К примеру, если используется 16 пиксельных конвейеров, то первый конвейер обрабатывает 1-й, затем 17-й, затем 33-й пиксел и т. д.; второй конвейер — 2-й, 18-й и 34-й соответственно.Количество конвейеров позволяет определить пиковую скорость заполнения видеокарты, которая рассчитывается как произведение частоты ядра на количество конвейеров. Если, к примеру, частота ядра составляет 400 МГц, а количество пиксельных конвейеров равно 12, то скорость заполнения будет 4,8 Гпиксел/с.Помимо пиксельных конвейеров, различают также количество текстурных блоков в каждом конвейере. Число текстурных блоков определяет количество накладываемых текстур за один проход. К примеру, два текстурных блока могут накладывать от двух до четырех текстур за проход. Количество текстурных блоков позволяет определить скорость заполнения в мегатекселах (пикселах текстур).Также в графических процессорах присутствуют вершинные конвейеры (Vertex Pipelines), которые отвечают за расчет геометрии трехмерного изображения. Чтобы лучше представить себе структуру современного графического процессора, рассмотрим более детально процесс конвейерного расчета трехмерного изображения.На первом этапе данные о вершинах поступают в вершинные конвейеры, которые занимаются расчетом геометрии сцены. Здесь начинает свою работу так называемый блок T&L (Transform & Lighting), который отвечает за некоторые аспекты работы с геометрией и за освещение и работает в паре с конвейерами. Блок T&L имеет две определяющие характеристики: максимальное количество источников света и количество обрабатываемых полигонов.Обработка данных в вершинном конвейере происходит под управлением специализированной программы, называемой вершинным шейдером (Vertex Shader).На следующем этапе формирования изображения задействуется Z-буфер для отсечения невидимых полигонов и граней каркасной модели трехмерного объекта. Далее происходит текстурирование объектов с фильтрацией самих текстур, для чего задействуются пиксельные конвейеры, работающие под управлением специализированной программы, называемой пиксельным шейдером (Pixel Shader).Необходимо вспомнить о таких программных интерфейсах (Application Programming Interface, API), как OpenGL и Direct3D. В них описаны стандарты для работы с трехмерными изображениями. Приложение вызывает определенную стандартную функцию OpenGL или Direct3D, а шейдеры эту функцию выполняют.Вершинные и пиксельные шейдеры имеет свою версию. На сегодняшний день последней является версия 4.1. И для реализации всех возможностей программ по обработке пикселов и вершин необходимо, чтобы данную версию шейдера поддерживали и видеокарта, и само приложение.На последнем этапе конвейерной обработки данные передаются в буфер кадров. Рассмотренный нами алгоритм формирования изображения является весьма упрощенным. В реальных графических процессорах все обстоит несколько сложнее. Например, для повышения качества изображения используется технология сглаживания, фильтрации текстур и т. д.
Всё о компьютерах
Видеокарта
Видеокарта — это одна из самых сложных и дорогих составляющих ПК. Фактически видеокарта представляет собой своеобразный компьютер в компьютере.
Более того, как NVIDIA, так и AMD представили SDK (Software Development Kit — набор инструментальных средств разработчика), которые позволяют производить характерные для центрального процессора вычисления, пользуясь исключительно возможностями графических чипов.А если еще вспомнить, что вот-вот в индустрии центральных процессоров произойдет небольшая революция и графическое ядро переместится на кристалл центрального процессора, то в технологическую мощь индустрии GPU (Graphics Processing Unit) уверуют даже самые убежденные скептики.
Прежде чем переходить к классификации и описанию современных видеокарт, необходимо познакомиться с рядом специфических терминов и понятий, которые традиционно приводятся в качестве характеристик видеокарт. Однако такие характеристики, как текселы, вершинные и пиксельные шейдеры, скорость заполнения и т. д., неразрывно связаны с пониманием принципов формирования трехмерных объектов и принципов работы современных графических ускорителей. Поэтому прежде мы постараемся в самом общем виде дать представление о том, как устроена видеокарта и как формируется трехмерное изображение.
Любая видеокарта включает в себя следующие обязательные компоненты:1. графический процессор;2. микросхему BIOS;3. видеопамять;4. цифроаналоговый преобразователь (RAMDAC);5. контроллер интерфейса.
На заре развития персональных компьютеров видеокарты выполняли функцию кадрового буфера. Изображение формировалось центральным процессором компьютера и программным обеспечением, а карта отвечала лишь за хранение (в буфере памяти) и вывод с определенной частотой отдельных кадров на монитор.По мере возрастания требований к качеству и реалистичности формируемого изображения, а также к скорости рендеринга отдельных кадров пришло понимание того факта, что центральный процессор ПК, то есть процессор общего назначения, не в состоянии эффективно решать специфические задачи формирования трехмерного изображения и для этих целей требуется специализированный графический процессор (GPU), который занимался бы исключительно расчетом трехмерного изображения. Собственно, современные графические процессоры по сложности не уступают центральным процессорам (процессорам общего назначения) и разница заключается лишь в их «специализации», благодаря чему они могут более эффективно справляться с задачей формирования изображения, выводимого на экран монитора.
Как и центральные процессоры, графические процессоры характеризуются такими параметрами, как микроархитектура, тактовая частота работы графического ядра и технологический процесс производства. Графические процессоры обладают и специфическими характеристиками. К примеру, одна из важнейших характеристик графического процессора — это число пиксельных конвейеров (Pixel Pipelines), которое определяет количество обрабатываемых пикселов за один такт. К примеру, количество пиксельных конвейеров может составлять 12 или даже 16.Забегая вперед, отметим, что для построения трехмерного изображения необходимо выполнить целый ряд операций: принять решение, какие объекты вообще должны присутствовать в сцене (видимые и невидимые), определить местоположение вершины, которое задает каждый из этих объектов, построить по этим вершинам грани, заполнить получившиеся полигоны текстурами в соответствии с освещением, степенью детализации и с учетом перспективных искажений.Чем тщательнее делаются все расчеты, тем реалистичнее получится трехмерное изображение. Повысить производительность этих рутинных операций можно, разбив их по стадиям и распараллелив. Именно такие функции и решают пиксельные конвейеры. На каждой стадии каждый пиксельный конвейер занимается тем, что просчитывает очередной пиксел конечного изображения с учетом многих факторов, включая освещение сцены. А для ускорения процесса расчета используют сразу несколько конвейеров. К примеру, если используется 16 пиксельных конвейеров, то первый конвейер обрабатывает 1-й, затем 17-й, затем 33-й пиксел и т. д.; второй конвейер — 2-й, 18-й и 34-й соответственно.Количество конвейеров позволяет определить пиковую скорость заполнения видеокарты, которая рассчитывается как произведение частоты ядра на количество конвейеров. Если, к примеру, частота ядра составляет 400 МГц, а количество пиксельных конвейеров равно 12, то скорость заполнения будет 4,8 Гпиксел/с.Помимо пиксельных конвейеров, различают также количество текстурных блоков в каждом конвейере. Число текстурных блоков определяет количество накладываемых текстур за один проход. К примеру, два текстурных блока могут накладывать от двух до четырех текстур за проход. Количество текстурных блоков позволяет определить скорость заполнения в мегатекселах (пикселах текстур).Также в графических процессорах присутствуют вершинные конвейеры (Vertex Pipelines), которые отвечают за расчет геометрии трехмерного изображения.
Чтобы лучше представить себе структуру современного графического процессора, рассмотрим более детально процесс конвейерного расчета трехмерного изображения.На первом этапе данные о вершинах поступают в вершинные конвейеры, которые занимаются расчетом геометрии сцены. Здесь начинает свою работу так называемый блок T&L (Transform & Lighting), который отвечает за некоторые аспекты работы с геометрией и за освещение и работает в паре с конвейерами. Блок T&L имеет две определяющие характеристики: максимальное количество источников света и количество обрабатываемых полигонов.Обработка данных в вершинном конвейере происходит под управлением специализированной программы, называемой вершинным шейдером (Vertex Shader).На следующем этапе формирования изображения задействуется Z-буфер для отсечения невидимых полигонов и граней каркасной модели трехмерного объекта. Далее происходит текстурирование объектов с фильтрацией самих текстур, для чего задействуются пиксельные конвейеры, работающие под управлением специализированной программы, называемой пиксельным шейдером (Pixel Shader).Необходимо вспомнить о таких программных интерфейсах (Application Programming Interface, API), как OpenGL и Direct3D. В них описаны стандарты для работы с трехмерными изображениями. Приложение вызывает определенную стандартную функцию OpenGL или Direct3D, а шейдеры эту функцию выполняют.Вершинные и пиксельные шейдеры имеет свою версию. На сегодняшний день последней является версия 4.1. И для реализации всех возможностей программ по обработке пикселов и вершин необходимо, чтобы данную версию шейдера поддерживали и видеокарта, и само приложение.На последнем этапе конвейерной обработки данные передаются в буфер кадров. Рассмотренный нами алгоритм формирования изображения является весьма упрощенным. В реальных графических процессорах все обстоит несколько сложнее. Например, для повышения качества изображения используется технология сглаживания, фильтрации текстур и т. д.