2.7.3. Графические ускорители
Современная видеокарта – это не просто устройство, которое хранит в своей памяти экранный образ и формирует сигнал для монитора. Теперь это компьютер в миниатюре со своим микропроцессором, способным производить вычисления и управлять тем, что и как строится на экране. Способность видеокарты выполнять вычисления и построения называют аппаратным видеоускорением (когда видеокарта такими свойствами не обладает, нагрузка ложится на основной процессор, и в этом случае говорят о программном видеоускорении). Для большинства современных компьютерных игр не просто желательно, а даже необходимо наличие у видеоадаптера ускорительных функций. Чтобы видеокарта могла выполнять какие-то вычисления, она, разумеется, должна действовать по заданным алгоритмам. И вся хитрость здесь состоит в том, что программисты, создающие программы, должны об этих алгоритмах знать заранее. Лет пять назад нормальной была ситуация, когда изготовители видеокарт вводили в них ускорительные функции, но программ, которые могли бы их использовать, просто не существовало. Обычно в таких случаях к видеокарте прилагалась на отдельном диске какая-нибудь одна-единственная игра, при взгляде на которую у покупателя захватывало дух, но со всеми другими программами видеокарта работала, как обычная. Так появился термин оптимизация видеоускорения. В подобных случаях говорили, что данная программа оптимизирована для данной видеокарты или, наоборот, видеокарта оптимизирована для данной программы, т. е. создатели видеокарты и создатели программы работали рука об руку.
Пользы потребителю от такого ускорителя не было никакой, ведь никто не будет работать с одной-единственной программой, тем более, если это игра. Она быстро надоест. Тогда производители видеокарт решили найти такую программу, с которой работают большинство пользователей, и оптимизировать свои видеоускорители под нее. Искать долго не пришлось – это всем хорошо знакомая система Windows. Ее окна и элементы этих окон совершенно одинаковы на десятках миллионах компьютеров. Видеокарты, позволяющие ускорить отображение стандартных элементов Windows, получили название 2D-ускорителей (ускорителей двумерной, плоской графики).
2D-ускорители действительно ускорили работу с операционной системой и ее приложениями. А все, что не укладывалось в рамки окошек Windows (в первую очередь это были мультимедийные программы и компьютерные игры), отнесли к области трехмерной (3D) графики. ЗD-ускорителъ занимается построением изображения из огромного количества небольших треугольников, определяет, как они взаимодействуют друг с другом, как они затеняют друг друга, затем закрашивает их или заливает заранее заготовленными текстурами.
Разумеется, все это можно делать множеством разнообразных алгоритмов. Поэтому в этой области долго не было единых стандартов, и производители программ и видеокарт разбились на «кланы». А когда стандарты появились, между кланами началась война.
С «войнами стандартов» в компьютерной технике нам приходится сталкиваться очень часто. Если при покупке изделия мы угадываем, какой стандарт победит, значит, оно будет работать у нас долго и безупречно. Если нет, значит, очень скоро на прилавке появятся компьютерные игры и другие программы, которые у нас работать не будут (или будут работать, но очень медленно), потому что наше оборудование не обеспечивает каких-то функций, на которые рассчитывали разработчики.
В области 3D-графики стандарты назвали библиотеками. Этот термин пришел от программистов. Свои микропрограммы (из которых собираются программы) они стандартизуют путем объединения их в библиотеки. Если видеоускоритель оптимизирован для работы со стандартной графической библиотекой фирмы XYZ, значит, все программы этой фирмы будут использовать функции ускорения.
Этим фирмам либо придется купить стандартную библиотеку графических подпрограмм у компании XYZ и использовать в своих проектах только ее, либо, если она им не нравится, разрабатывать свою библиотеку и убеждать производителей видеокарт, что она лучше и им следовало бы оптимизировать видеоускорители под нее.
В результате длительной «библиотечной войны» сегодня известны три основные библиотеки: Glide, OpenGL и DirectSD.
Библиотеку Glide разработала компания 3dfx, ранее других выступившая на рынок SD-ускорителей со своими картами Voodoo Graphics. Сегодня найти на прилавке новые игры, на которых стоит значок 3dfx, практически невозможно. Пик популярности этой библиотеки прошел. Библиотека Glide была закрытым стандартом, и видеоускорители других фирм так и не начали ее широкую поддержку. Фирма 3dfx не выдержала конкурентной борьбы и сошла со сцены.
Библиотека OpenGL родилась не на платформе IBM PC, а на платформе специальных мощных графических станций. К нам же она пришла благодаря успеху игры Quake, в которой программисты использовали упрощенный вариант этой библиотеки. О том, насколько популярна игра Quake, говорить, наверное, не надо. В годы ее повсеместного распространения многие производители сочли удачным маркетинговым ходом оптимизировать свои видеокарты на работу с этой игрой и, соответственно, на поддержку этой библиотеки. В свою очередь производители новых программ сочли не менее удачным маркетинговым ходом использовать процедуры из библиотеки OpenGL, поскольку на руках у потребителей уже было множество видеоускорителей, их поддерживающих. В то время как библиотека Glide долго и постепенно продвигалась своим создателем, компанией 3dfx, успех к библиотеке OpenGL пришел быстро и бурно. Все современные видеокарты имеют поддержку функций видеоускорения в стандарте библиотеки OpenGL.
Теперь давайте рассмотрим библиотеку DirectSD. Скажем сразу, что ее поддержка не просто желательна, а абсолютно необходима (по состоянию на текущий момент). Эта библиотека входит в состав крупного пакета библиотек DirectX, выпускаемых и распространяемых бесплатно компанией Microsoft в качестве мультимедийной надстройки над операционной системой Windows. Если Вы покупаете готовый компьютер в сборе, и при этом Вам говорят, что в нем установлена дорогая видеокарта, обладающая функциями графического ускорителя, надо проверить, как она поддерживает библиотеку DirectSD.
Устройства ввода информации
Данный текст является ознакомительным фрагментом.