Итак, сегодня мы с вами снова поговорим о видеокартах. А точнее, в основном о графических процессорах. Но поговорим мы не о том, какой из них лучше или чем они отличаются, а о том, что у них общего. Что они делают, что такое потоковые процессоры и что же это за загадочные шейдеры?
Так чем же занимается графический процессор? А занимается он 3D-рендерингом. Т.е. из различных треугольников (так называемых «полигонов») составляет трехмерные объекты, расставляет их по экрану и обтягивает получившееся двухмерными текстурами. Ну это в общих чертах. Для того, чтобы нам с вами было комфортно играть, этот цикл процессор должен повторять несколько десятков раз в секунду. А сейчас моделька одного какого-нибудь человечка которого мы в игре убьем и даже не заметим состоит из нескольких миллионов этих самых полигонов, это уже не квадратные монстры из первого Quake, поэтому процессору приходится трудиться на всю катушку.
 |
Quake был первой полностью трехмерной игрой |
Все текстуры и модели помещаются в память видеокарты. Чем лучше текстуры – тем больше места они занимают. В меню графики игры GTA4 можно наглядно посмотреть зачем нужна память видеокарте. Захотели текстуры получше – будьте добры, выложите лишнюю сотню мегабайт. Хотите видеть подальше – еще отстегните. А если у вас всего 512 Мб, то, извините, но и выглядеть у вас все будет убого и машинок вдалеке вам, увы, не разглядеть.
Ладно, с памятью мы разобрались. Теперь давайте рассмотрим, что же такое шина памяти и на что влияет эта ширина. Конечно же, она влияет на то, как быстро сможет графический процессор брать из памяти модели и текстуры. По дороге с восемью рядами одновременно сможет двигаться в два раза больше машин, чем по дороге с четырьмя рядами. Так же и тут – 256-битная шина памяти в два раза лучше, чем 128-битная и в два раза хуже, чем 512-битная. Следовательно, чем больше шина памяти – тем лучше.
 |
В наше время, продвинутой графикой уже никого не удивить |
А теперь давайте наконец-то узнаем, что же это за загадочные шейдеры. Шейдеры (Shader) – это всего лишь навсего микропрограммы, с помощью которых можно изменять процесс построения графического изображения. Они написаны на специальном языке и заложены в код игры или любого другого 3D-приложения.
Шейдеры бывают вершинными и пиксельными. С помощью первых можно изменять геометрию трехмерных объектов и создавать лица, волны и многое другое, а вторые позволяют изменять цвета пикселей в текстурах, что позволяет делать рябь на воде, отражения на различных поверхностях и тому подобные вещи.
Раньше обработкой вершинных и пиксельных шейдеров занимались разные блоки в графическом процессоре, что было довольно неудобно, потому что неизвестно было точное соотношение вершинных и пиксельных шейдеров в приложениях. Если поставить больше вершинных блоков, а в приложении будет больше пиксельных шейдеров, то процессор не будет справляться с нагрузкой. Так же, как и наоборот. Даже если поставить блоков поровну, в случае преобладания шейдеров какого-то одного типа часть процессора в любом случае будет простаивать. Поэтому не пришлось долго ждать появления универсальных блоков, которые могут обрабатывать и те и другие шейдеры. Вот это и есть те самые потоковые процессоры.
Так как в современной графике без шейдеров уже не обойтись, то количество потоковых процессоров напрямую влияет на производительность графического процессора. Кроме того, в нынешних графических процессорах на шейдерные блоки подается отдельная частота, которая в несколько раз выше, чем частота работы остального процессора.
 |
Использование двух видеокарт одновременно |
Улучшаются и сами шейдеры. Сложность шейдерных программ растет с каждой новой версией DirectX (ну или OpenGL). Поэтому, когда говорится об аппаратной поддержке видеокартой DirectX 10 – это означает, что потоковые процессоры способны обрабатывать шейдеры версии 4.0.
Конечно, кроме потоковых процессоров, в графическом процессоре имеются еще и текстурные конвейеры, которые отвечают за то, чтобы натягивать текстуры на каркасы моделей. Но это во времена DirectX 7 количество «текстурников» определяло скорость видеокарты. Сейчас их даже не упоминают в характеристиках новинок.
На данный момент в видеокартах все происходит примерно таким образом. А что там придумают (а сомневаться не приходится – обязательно придумают) через пару лет – это пока неизвестно. Но как что-нибудь изменится, придется писать новую статью.
P.S. Про то, как подобрать себе видеокарту читайте в статье "Как выбрать видеокарту?"