Мои видеокарты. Часть 1.

Недавний апгрейд компьютера подвигнул меня к началу этой эпопеи. Я вдруг понял, что не могу упомнить все системные платы побывавшие в моих компьютерах, не вспомню и многие процессоры, которые в них стояли, не говоря уж об остальных компонентах. Но я четко помню каждую свою видеокарту, которая у меня была, начиная с конца 90-х годов прошлого века. Причем, способен назвать не только наименование чипа, но производителя карты и даже модель. Их не было много. Они не были сильно крутые. Я никогда не тратил большие деньги на флагманские устройства. Но игровое 3D родилось и развилось у меня на глазах, а значит я имею право написать такую вот ретроспективу, где хочу упомянуть каждую из своих видеокарт, поместить на свое место в истории игрового железа, а заодно и пройтись по некоторым эпизодам из этой истории.
Итак, первой моей видеокартой следует считать ту микросхему SiS, которая была интегрирована в материнскую плату Abit моего первого PC. Она откусывала 2 Мб от 32 Мб имеющейся на борту оперативной памяти, оставляя системе жалкие 30. Компьютер был куплен то ли в 1997, то ли в 1998 году, точно не помню. Насколько я сейчас понимаю, интегрированное видео в системной плате под Socket 7 в те времена считалось крутяком и было нечастым явлением. Не надо было тратить дополнительные деньги на дискретную видеокарту. Компьютер обходился существенно дешевле, а ведь доллар тогда был, так сказать, на вес золота. Да и работала встроенная видюха для тех лет прекрасно - 1024х768 16-битная картинка , 800х600 32-битная, Windows 98SE летала, куча 2D игр, а также Doom II, Duke Nukem 3D, Redneck Rampage и тому подобное недо-3D не переставали радовать. Но вот Quake я первый раз прошел в разрешении 320х240 с программным рендерингом. Любые другие варианты тормозили. Процессором меня наделили не самым игровым - Cyrix MII-300GP.

Этот каменюка давал просраться в офисных программах решениям от Intel, но как только дело доходило до расчетов с плавающей точкой, жизненно необходимых для 3D игр, сразу пасовал и работал медленней оригинального Pentium MMX равной частоты. А так как был ваш покорный слуга отнюдь не инженером, то и систему ему всучили заточенную под барыг-предпринимателей. Понятное же дело - пришел, баксов отмусолил, ну явно же не задрот какой-нибудь с АСУПа. Те довольствовались рабочими компами и имели такую нищенскую зарплату, что и на флоповод не хватит.
Где-то через пол годика, по итогам самообразования, была увеличена до 64 Мб оперативная память, а также приобретен ускоритель Diamond Monster 3D, построенный на революционном чипсете Voodoo Graphics от ныне почившей, а в прошлом культовой, компании 3dfx. Quake II я уже проходил в 640х480 30 к/с и со всеми красотами.
Diamond Monster 3D

- тактовая частота до 60 MHz;
- память – EDO 4 Мб (2 Мб буфер текстур, 2 Мб кадровый буфер) 50 MHz, 128 бит;
- RAMDAC – 135 MHz;
- пиксельных конвейеров -1
- TMU на конвейер – 1
- текстур за такт - 1
- скорость заполнения - 50 мегапикселей в секунду
- шина PCI
- техпроцесс 500 нм
- разрешение 640х480, при глубине цвета 16 бит.
Все говорят и пишут, что Voodoo Graphics был революцией в 3D играх для PC, и это действительно так, но вот почему этот набор микросхем был таким революционным понимает далеко не каждый. Ведь Voodoo Graphics не первый 3D ускоритель, продаваемый с расчетом на игры. До него уже были S3 ViRGE, Nvidia NV1, ATI Rage и Rage II, Rendition Vérité V1000 и другие. (Заметьте, оба главных игрока на теперешнем рынке видеоускорителей дали о себе знать еще в середине 90-х годов прошлого века).
Так в чем же была магия Voodoo? Ведь акселераторы для PC, построенные на чипах 3dfx, массово появились в продаже только в конце 1996 года. Они не были первыми. Мало того, это были даже не полноценные видеоадаптеры, а отдельные 3D ускорители, подсоединяющиеся к уже имеющейся 2D видеокарте компьютера.
Я не буду здесь рассказывать о принципах работы 3D конвейера, так как предлагаемый текст в первую очередь является гуманитарным – историей собственных апгрейдов, интегрированной в контекст глобальных событий, и пишется с намерением чаще оперировать историческими фактами, тенденциями и логикой, чем техническими разъяснениями. Разумеется, здесь найдется место и специальным терминам, но в минимальных количествах, а также предполагается, что читатель или немного подкован в компьютерном железе, или же может в любой момент обратиться к энциклопедическим данным.
Следует понимать, что компьютер способен просчитывать все стадии 3D конвейера программно, с помощью ресурсов центрального процессора и без аппаратного ускорения. Всяческие пакеты для 3D моделирования десятилетиями выполняли финальный просчет на ЦП. Сделать это в 3D игре, в реальном времени, обеспечивая моментальную реакцию на действия играющего, уже сложнее, но тоже можно. Первый Quake, да и Quake II тоже, вполне приемлемо работали с программным рендерингом. Но картинка игры представляла собой очень серьезный компромисс между красотой и скоростью. Она не была такой уж уродливой, как кто-то может подумать, и выглядела неплохо, ведь создатели игр понимали, что не у каждого есть дорогой ускоритель. Но красотами управляла её величество Стилизация, которая всегда берет власть, когда больше некому править.
То есть, с геймплеем было все в порядке, а движущаяся сила прогресса была та же самая, что и сейчас - графон. Для того чтобы его дать, необходимо было организовать в железе вычисление нужных для повышения красоты и реалистичности картинки эффектов, потому что именно на них и приходилось в первую очередь экономить при программной визуализации. Понятно, что для этого ускоритель должен забрать себе расчет той части 3D конвейера, которая относится к отрисовке кадра, начиная с наложения текстур. Именно это, оставаясь в рамках приемлемой цены на свои видеоадаптеры, пытались сделать предшественники Voodoo Graphics. Но из-за проблем с производительностью и качеством картинки, революции в 3D играх не наступало. А между тем, на пятки наступала Sony PlayStation.
Что же сделала 3dfx? Каковы слагаемые успеха?
1. Взяла к себе на борт Setup Engine - установку треугольников и обрезку невидимой геометрии (удаление не попадающих в поле зрения частей будущей картинки, а также полигонов, находящихся с обратной стороны моделей). Железная реализация Setup явилась одной из главных причин бешеной скорости Voodoo Graphics. Это был не меньший прорыв, чем аппаратные трансформация и освещение (T&L), реализованные Nvidia несколькими годами позже в GeForce 265. Рассказывая об успехе Voodoo, почему-то мало кто упоминает об этом факте. Вполне вероятно, что большинство о нем просто не знает. Но уверяю, что в проприетарной документации 3dfx на Voodoo Graphics черным по белому написано – triangle setup engine. Так что, одну половину геометрической части конвейера перетянула в игровые ускорители именно 3dfx, а Nvidia втащила на борт оставшуюся. То есть, первое действие было не менее революционным, чем второе, просто 3dfx не трубила об этом на всех углах. Кстати, аппаратный Setup и аппаратные T&L уже существовали в профессиональных видеоускорителях. Так что, 3dfx и Nvidia принесли их только в игровую сферу.
2. Разработала собственный API – Glide. Конкуренты настраивали своё железо под уже существующие библиотеки – профессиональную OpenGL и весьма сырую в то время Direct3D. То есть, уровень аппаратной абстракции был в этих случаях довольно высоким. Любая игра, написанная под OpenGL, при таком подходе, могла работать на ускорителях разных компаний, с разным оборудованием. Те функции, организовать работу которых на каком-то конкретном ускорителе было непросто, реализовывались через задницу, но их наличие было важно, так как при обращении игры к ним, устройство обязано было их выполнить. Примерно так работают видеокарты и сейчас – уровень аппаратной абстракции очень высок, несмотря на то, что игроков на рынке ускорителей всего два. Но 3dfx поступила радикально и сделала всё с точностью до наоборот – не железо заточила под OpenGL, а OpenGL под своё железо. Glide – это производное от OpenGL. Только оттуда выбросили всё, что не надо для игр, и всё, что не умеет делать чипсет Voodoo, а оставшееся перекроили так, чтобы обращение шло напрямую к устройству. Получилось, ну не то чтобы как на консолях, но что-то вроде того. Нечто похожее сейчас происходит с API Vulkan и Direct3D 12, но об этом позже. Сейчас вернемся к 3dfx. Её Glide был супербыстрым, но работал только с Voodoo и никакие сторонние ускорители к себе не подпускал.
3. К чертовой матери выбросила 2D часть, тем самым избавившись от проблем взаимодействия и удешевив устройство. В более поздних ускорителях 3dfx её вернула, но тогда и время уже было другое.
4. Активно взаимодействовала с разработчиками, помогая в адаптации игр под свой чипсет. Здесь всё просто. Лобби есть лобби. Знакомства, связи и толстый блокнот с номерами телефонов важнейшие из составляющих успеха. Где-то я читал, что 3dfx сначала работала на производителей аркадных автоматов и на оборонку, а уж потом, к концу 1996 года обратила внимание на PC. На самом деле, все было не так. Voodoo Graphics изначально разрабатывался в первую очередь как игровой акселератор для PC. Уже к ноябрю 1995 года было представлено первое устройство для шины PCI с этим ускорителем - Righteous 3D от компании Orchid Technology.

Эта карта поразила всех на выставке COMDEX в Лас-Вегасе красотой картинки и скоростью, и порвала за два месяца до этого вышедшую на Западе Sony PlayStation как Тузик грелку. Но EDO память в конце 1995 года была слишком дорогой, чтобы выставлять приемлемую цену на ускорители, поэтому 3dfx и OEM производители целый год ждали снижения цен на память, а карточек Voodoo все это время не было в широкой продаже. Но сама 3dfx времени не теряла, сотрудничала с производителями игровых автоматов, и наработала себе связи среди разработчиков игр. В дальнейшем, производство ускорителей для аркад, а также профессиональных, в том числе и для военных, было выделено в отдельную компанию – Quantum3D, которая, в числе прочего, изготавливала вот таких чудовищ.

Эта вундервафля построена уже на следующем наборе микросхем 3dfx – Voodoo 2. Каждая из 4-х плат представляет собой два Voodoo 2 в режиме SLI. Одна такая плата способна обрабатывать 180 млн пискелей в секунду или же 360 млн в режиме мультитекстурирования. Простым умножением получаем общую производительность связки – 720 млн п/сек или же 1 млрд 440 млн п/сек при мультитекстурировании. Да это же уровень GeForce 4. В 1998 году!
Вернемся к первому Voodoo Graphics. Что он умел? Да, в общем-то немного.

Но всё, что умел этот акселератор, он делал очень быстро и очень красиво, особенно если учитывать год его появления. А разницу между программным рендерингом и работой этого ускорителя можно почувствовать просто взглянув на скриншоты.
Quake II Software:

Quake II Glide:

Интересно, что Glide всегда выдавал свою фирменную, отличающуюся от других, картинку, с этаким притягательным цветовым колоритом, который никуда не делся и на более поздних адаптерах. Не в последнюю очередь из-за этой картинки, ускорители от 3dfx находят своих почитателей и сейчас. Ну и конечно же, игры, которые изначально были написаны под Glide даже сейчас смотрятся лучше всего именно на Voodoo. Например, первые части серии Need for Speed или же Unreal.

Продолжение
Всего комментариев 2
Комментарии
-
у меня был 3dfx Voodoo - там Турок выглядел потрясающе просто. Позже покупал Вуду велосити и Вуду 3000.
Запись от Infinity размещена 05.09.2017 в 14:14 -
Запись от Leonis размещена 16.09.2017 в 15:42