3D-Хроника. Часть 1: 1995–1997 годы


2007 год… Появление Microsoft Windows Vista, спустя почти 6 лет после предшествующей Windows XP, было более чем ожидаемым событием. Кардинально переработанная модель взаимодействия с компьютерными устройствами сделала возможным реализовать качественно новый подход и к 3D-графике при участии API DirectX 10. Основным элементом этого подхода стал шаг в сторону унифицированной архитектуры современных графических решений: уже вся линейка дискретных видеокарт AMD и Nvidia переведена на новые продукты с поддержкой DirectX 10, а в самое ближайшее время на рынке появятся и первые интегрированные продукты. Такой шаг, безусловно, способствует тому, что вычислительные ресурсы графического процессора могут быть использованы гораздо более гибко и не только для обсчета графики, однако прежде чем выйти на этот уровень, нынешним гигантам 3D потребовался целый эволюционный путь.

В этом цикле материалов вашему вниманию будет предложен своеобразный экскурс, который позволит проследить эволюцию компаний, которые правили бал на графическом рынке.

Прежде чем начать повествование, давайте обратим внимание на то, почему вдруг появились специализированные устройства для рассчетов, связанных с 3D-графикой. До середины 90х подобные вычисления производились на гигантских вычислительных комплексах — достаточно вспомнить, что обсчетов кадров некоторых мультипликационных картин исчислялся сутками. Естественно, что даже при самых жесткий компромиссах между качеством графики и её скоростью не могло идти и речи о том, чтобы воспроизводить нечто похожее в режиме графики на отдельно взятом компьютере. В определенной степени, этому способствовало как отсутствие подходящей программной среды для эффективного использования ресурсов центрального процессора, так и особенности производимых им операций: мало того, что для игр требовалось считать ещё и звук, физику и т.п., так ещё и сам процессор был спроектирован с рассчетом на более универсальный код, чем трехмерная графика. Последнее обстоятельство привело к тому, что эффективность графических рассчетов силами CPU была настолько низка, что первое поколение достаточно примитивных графических устройств (о них речь пойдет ниже) с легкостью его превосходило не то, что на десятки процентов — счет преимущества шел уже на разы.

Но и на пути таких, казалось бы, перспективных устройств оказалось немало подводных камней, и даже самые перспективные разработки потерпели фиаско, а палитре участников рынка в самое ближайшее время суждено было претерпеть значительные изменения.

Подходы к 3D: такие хорошие и такие разные.

Между тем, с нынешних позиций для нас достаточно очевидно, что есть геометрические примитивы, состоящие из полигонов (тетраэдры), есть текстуры, которые на них натягиваются ( чем-то напоминает процесс сбора походной палатки :), и даже уже есть шейдеры, с помощью которых программист может все это конфигурировать… Но на тот момент эти вопросы стояли остро, а ответы на них были не столь однозначными.




Diamond Edge3D на базе NV1 — первый блин комом


Так, фактически первым ускорителем, ориентированным на массовый рынок, стал Nvidia NV1. Вышедший в 1995 продукт Diamond Edge3D на базе NV1 представлял собой полноценную мультимедийную систему: на одной плате размещались наборы логики, отвечающие за 2D, 3D, видео и звук. 3D компонента представляла собой 200 тысяч транзисторов (у нынешнего Nvidia Geforce 8800 GTX их почти 700 миллионов), которые были ориентированы на геометрическую модель с квадратичными патчи (Quadratic Patches, сплайны второго порядка). Шаг был весьма неоднозначным, учитывая то, что индустрия остановила свой выбор на полигональной графике из треугольников. Кроме того, качество 2D графики не могло конкурировать с соперниками того времени, особенно, в ещё актуальной операционной системе DOS, а звук отличался весьма посредственным качеством. При достаточно высокой цене готового продукта свою нишу завоевать он так и не смог, оставшись по сути музейным экспонатом — первым экспериментов не только в 3D, но и в создании многофункционального мультимедийного устройства.

Снова вернемся в те далекие времена, когда только появлялся новый класс устройств. После провала NV1 1996 год стал гораздо более прогрессивным для 3D-графики. Уже три компании представили свои наработки в неведанной ранее области — PowerVR, Rendition и 3Dfx. Каждый из новоиспеченных продуктов нес в себе собственное видение полигональной трехмерной графики. Например, PowerVR, храня в памяти геометрический образ объекта, разбивал будущее готовое изображение на экране на решетку, состоящую из прямоугольных фрагментов — тайлов. Затем внутри каждого тайла проверялось, какая часть геометрического образа будет видна зрителю, и уже обрабатывалась только она. Это позволяло существенным образом экономить вычислительные ресурсы, не тратя их на обработку невидимых на экране поверхностей. С другой стороны, это же приводило к существенно более сложной разработке соответствующего программного обеспечения, поэтому поддерживать на полноценном уровне свой продукт становилось все труднее и впоследствии поддержка первых продуктов и собственного API была свернута.




Запоздалый Verite 2200 от Rendition


Что касается компании Rendition, то она предложила вместо использования вычислительной мощи центрального процессора осуществлять ряд операций (по расчету транформации и освещения) силами 3D-ускорителя. Это привело к тому, что часть транзисторов Verite 1000 была потрачена на дополнительный блок, а скорость обсчета пикселей составляла 25 миллионов пикселей в секунду, что примерно в 2 раза ниже, чем у его главного врага — 3Dfx Voodoo Graphics, что не преминуло сказаться на производительности. Фатальным для продуктов на базе Verite 1000 стала неординарная работа устройства с шиной PCI: с одной стороны уникальная система кодирования данных, используемая Rendition, позволяла поднять эффективность передачи данных на новый уровень, а, с другой, резко ограничивала совместимость с материнскими платами, которые должны были эту функцию поддерживать. Следующее поколение, Rendition Verite 2x00, было лишено указанных недостатков, но, во-первых, де факто опоздало на рынок, уже занятый 3Dfx, а, во-вторых, вопрос с программным обеспечением оставался открытым. К полноценной работе с Microsoft DirectX решение Rendtion оказалось неготовым, да и собственный API Speedy3D имел крайне ограниченную поддержку среди разработчиков.

Вообще поддержка и развитие своего собственного API была актуальной темой на заре 3D-графики. Это несложно пронаблюдать, если присмотреться к тому, в каком состоянии были в это время универсальные API — Microsoft DirectX и SGI OpenGL. По сути, это лишь зачаточная стадия, на которой предлагаемое было явно недостаточно для того, чтобы удовлетворить амбиции производителей готовых чипов, каждый из которых стремился создать свой собственный знаменатель для всей индустрии трехмерной графики. В какой-то степени, именно это стремление и желание создавать сложные, индивидуальные продукты и стало причиной того, что вполне однозначным победителем вышел как раз весьма незамысловатый 3Dfx Voodoo Graphics.




Первый логотип 3Dfx Interactive: именно этот знак можно было увидеть на коробках с новейшими 3D-играми


Прорыв Voodoo Graphics — прорыв 3D в массы.

3Dfx поступила весьма разумно, увидев что текущие вычислительные ресурсы центральных процессоров вполне могут быть достаточными для того, чтобы брать на себя часть работы, например, по геометрическим вычислениям. Так, Voodoo Graphics, первый набор микросхем 3Dfx, состоящий из двух процессоров — PixelFX и TexelFX, отвечал, прежде всего, за накладывание текстур и их фильтрацию. Основной ацент был сделан именно на это, что позволило безболезненно достичь скорости заполнения, существенно опережающее своих основных конкурентов.

Кроме того, команде программистов 3Dfx удалось создать достаточно простой API Glide для разработчиков, который, несмотря на эту самую простоту, оказался вполне удобным инструментом для создания первых игр, использующих возможности 3D-ускорителя. Закрытость Glide только усиливала позиции 3Dfx, когда она начала свое победоносное шествие по новообразованному рынку: львиная доля игровых блокбастеров на Glide по большей части отрезала пути для подступа конкурентам. Очень грамотно была реализована маркетинговая программа с логотипом 3Dfx на коробках с играми — довольно быстро в головах массового потребителя сформировался прочный ассоциативный ряд «3D-графика — 3Dfx», ставший одним из слагаемых успеха 3Dfx и в гораздо более тяжелые годы.

Нельзя и отметить «ход конем», предпринятый 3Dfx для реализации готовой продукции -набор микросхем был установлен на отдельной карте, которая называлась 3D-ускорителем и сквозным способом подключалась к основной видеоплате, что позволяло гибко конфигурировать полную видеосистему. Да, такой подход не был лишен недостатков — качество сигнала на монитор из-за дочерней платы явно не улучшалось, но, тем не менее, стал вполне разумным компромиссом, обеспечивающим покупателю как совместимость и конфигурируемость, так и отличную на тот момент графику.




Легендарный Diamond Monster 3D — пожалуй, самый популярный 3D-ускоритель 1996-1997. (Изображение взято с en.wikipedia)


Успех 3Dfx в 1996 году отчетливо продемонстрировал неизбежную действительность: полноценный успех ждет компанию только в том случае, если она не просто выполнит некую перспективную разработку, а сможет донести её до покупателя и обеспечить его ожидания. Грамотная и, главное, слаженная работа поздразделений сделали 3Dfx пионером в становлении 3D-графики как неотъемлемой составляющей современного ПК, а Voodoo Graphics первым по-настоящему удачным 3D-скорителем для массовой аудитории.

Не 3Dfx единым…

Несмотря на небывалый успех новичков в лице 3Dfx и Glide, старожилы рынка видеоплат не сидели, сложа руки: тенденция ориентирования массового потребителя на аппаратное ускорение графики не могла быть проигнорирована и стала фактором выживания компаний на ближайшее время. Тем не менее, фактическое опоздание старых грандов привело к тому, что бороться с 3Dfx было весьма непросто — целый ряд факторов серьезно этому мешал.




Бюджетное решение с очень неплохой производительностью для професииональных пакетов 3D-моделирования — Diamond FireGL 1000 на базе чипсета от 3DLabs (ныне компания является собственностью Creative).


Во-первых, получивший широкую поддержку API Glide был закрыт для сторонних производителей графических чипов, как мы уже отмечали ранее.

Во-вторых, достаточно халатное отношение конкурентов 3Dfx к поддержке и продвижению DirectX и OpenGL. Чего стоит только вечная чехарда с драйверами и несовместимостями новоиспеченных карт того времени — разумеется, это не добавляло популярности альтернативным решениям.

И, наконец, в-третьих, аппетиты подчас были явно неадекватны рыночным реалиям: если за Voodoo Graphics просили порядка 200-250 долларов США, а то и меньше, то ATI Rage Pro изначально шел по цене, превышающей отметку в 400. Не правда ли, «скромные» ожидания для достаточно сырого продукта?




ATI Rage II: как всегда, отличное видео, но 3D лишь в зачаточном состоянии


Разумеется, у того же Rage Pro были и сильные стороны — начиная от поддержки высоких разрешений в 3D и 8 мегабайт памяти на борту и заканчивая традиционно сильно для ATI работой с видео, в том числе, и новейший MPEG2. Тем не менее, двойственность подхода Rage Pro, когда за 3D-составляющую приходилось платить немалые деньги, но востребована она была разве что номинально в силу вышеописанных причин, привела к тому, что популярность среди игроков детище ATI так и не сыскало.

Именно поэтому те, кому была важна сильная поддержка видео, предпочитали брать ощутимо более дешевые ATI Rage/II, а за 3D отвечала отдельная плата. Да да, тот самый Voodoo Graphics.




Специальная версия Matrox Millenium 4MB для компании Compaq, которая не так давно вошла в состав Hewlett-Packard


Естественно, никуда не исчезал вопрос с качеством 2D-графики, поэтому новые решения от Matrox, компании которая всегда особое внимание уделяла этому параметру, — Mystique/Millenium II — приняли эстафету в компьютерах профессионалов и также стали выбором владельцев мониторов с солидной диагональю (от 17 дюймов и выше). Карты обладали высококачественным RAMDAC с поддержкой самых высоких разрешений, а также отличались высоким качеством исполнения на собственных мощностях Matrox. Увы, зачаточные функции Mystique/Millenium II по части 3D были скорее номинальны, поэтому судьба работать в тандеме с Voodoo Graphics в игровых компьютерах не обошла и его.




Diamond Stealth3D 3000 4MB с «достраиваемой» памятью — обыденное явление для плат на S3 Virge.


Ровно та же самая участь постигла карты от S3 серии Virge, где красота трехмерных миров поддерживалась лишь для галочки. Нет, на таких картах можно было что-то запускать и даже во что-то играть, если хорошенько разобраться с нестандартным подходом к настройке, но на этом все и заканчивалось. Тем не менее, и это решение нашло свое место под солнцем: в отличие от ATI или Matrox, продукция S3 изготавливалась большим количеством партнеров, что создавало дополнительную конкуренцию и способствовало оперативной реакции на рыночные условия. Именно низкая цена вкупе с вполне достойным видео сделали S3 Virge DX/VX весьма распостраненным продуктом того времени, к которому докупали 3Dfx для того, чтобы обзавестись бюджетной игровой системой.

Nvidia не дремлет.

Особого упоминания заслуживает, пожалуй, самый серьезный соперник, замаячивший на безоблачном небосводе благополучия 3Dfx — RIVA 128, позднее чуть усовершенствованный в RIVA 128zx. Новый продукт Nvidia вышел под звучной аббревиатурой, за которой скрывалось Realtime Interactive Video and Animation (Интерактивное Видео и Анимация в Реальном времени). В отличие от своих конкурентов, 3D-часть была более чем достойной с точки зрения характеристик. 4 или 8 (для RIVA 128zx с RAMDAC 250MHz и AGP 2x) мегабайт быстрой SDRAM / SGRAM памяти помогали интенсифицировать обмен данными с графическим чипом, но ключевая особенность решения была в другом. Главной инновацией стала возможность обсчета сразу двух пикселей за один такт — вполне логичный шаг, учитывая возможность распараллеливания таких вычислений. Это позволило RIVA 128 достичь небывалой для того времени пиковой скорости заполнения в 100 миллионов пикселей в секунду (для сравнения, уже несовременный ATI Radeon X850 XT PE имеет скорость заполнения 9.28 миллиарда пикселей в секунду).




Asus 3DExPlorer V3000 — распространенный вариант RIVA 128 на новейшей шине AGP.


Против 50 миллионов у Voodoo Graphics достижения Nvidia казались шагом в новое измерение, однако, если при продвижении акцент делался на последнюю часть фразы, то ключевым словом в ней было именно «казались». Очень слабый OpenGL драйвер, ограниченная совместимость с приложениями, а то и вовсе некорректная работа сделали свое черное дело — вычислительный потенциал был задушен этими факторами и даже скорость в немногочисленных корректно работающих приложения нередко была ниже, чем у более простого Voodoo. Кроме того, тогда RIVA 128 отличалась большой любовью к мощности центрального процессора: для того, чтобы получить хорошую производительность требовался Intel Pentium II.




Редкий гость на нашем рынке STB Velocity 128.


Подобное положение дел привело к тому, что весьма ограниченное количество производителей готовых плат решились выпустить свои решения на базе новинки от Nvidia. Так, на нашем рынке RIVA 128/128zx были представлены, в основном, платами V3000 от AsusTeK и Viper V330 от Diamond Multimedia.

Таким образом, несмотря на то, что к концу 1997 года Voodoo Graphics не являлся технически самым передовым решением, именно удачная совокупность потребительских свойств и тот же API Glide обеспечили благополучие 3Dfx и в 1997 году, заложив фундамент прочного положения компании на несколько лет вперед. Тем не менее, даже у лидера рынка не получилось сделать полноценный 2D/3D продукт.

Когда блин комом идет вторым.

Voodoo Rush стал первой попыткой для 3Dfx совместить 2D и 3D компоненты в рамках единой платы: на РСВ помимо набора микросхем Voodoo Graphics, был добавлен и отдельный чип, отвечающий за вывод 2D графики. Нетрудно догадаться, что такой подход нес в себе эдакого «троянского коня»: не самая качественная 2D составляющая активно пользовалась ресурсами платы, доступными и Voodoo Graphics, что не преминуло сказать на производительности такого решения, которая оказалась ниже, чем у обычной дочерней платы без сомнительного довеска. Более того, совмещение 2D и 3D части потребовало переработки драйвера, а это вылилось в ограниченную совместимость Voodoo Rush с приложениями, сделанными под Voodoo Graphics. Неудивительно, что популярности продукт так и не снискал, а задача сделать универсальный мультимедийный продукт, отвечающий за вывод изображения на экран, по-прежнему оставалась актуальной.




Неудавшаяся попытка 3Dfx добавить 2D графику от Alliance Semiconductor к набору Voodoo Graphics. Плата произведена компанией InnoVision Multimedia.


Как эта задача была решена и была ли решена в 1998-1999 году, мы поговорим в следующем материале. Там же мы сможем пронаблюдать динамику перипетий 3Dfx, столь удачно стартанувшей в 1996-1997, а также увидеть, каким образом гранды 2D-видеоплат — ATI, Matrox и S3 — адаптировались под условия рынка, активно заполняемого 3D.

Посмотреть полный набор характеристик графических процессоров рассматриваемого периода (и даже немного более позднего) можно по следующей ссылке.

Автор выражает свою благодарность Андрею Воробьеву за идею материала




8 октября 2007 Г.

3D-. 1: 1995-1997

3D-. 1: 1995–1997


2007 … Microsoft Windows Vista, 6 Windows XP, . 3D- API DirectX 10. : AMD Nvidia DirectX 10, . , , , , , 3D .

, , .

, , , 3D-. 90 — , . , , . , , : , , .., , . , CPU , ( ) , — .

, , , , .

3D: .

, , , (), , ( - :), , … , .




Diamond Edge3D NV1 —


, , , Nvidia NV1. 1995 Diamond Edge3D NV1 : , 2D, 3D, . 3D 200 ( Nvidia Geforce 8800 GTX 700 ), (Quadratic Patches, ). , , . , 2D , , DOS, . , — 3D, .

, . NV1 1996 3D-. — PowerVR, Rendition 3Dfx. . , PowerVR, , , — . , , . , . , , API .




Verite 2200 Rendition


Rendition, ( ) 3D-. , Verite 1000 , 25 , 2 , — 3Dfx Voodoo Graphics, . Verite 1000 PCI: , Rendition, , , , , . , Rendition Verite 2x00, , , -, , 3Dfx, , -, . Microsoft DirectX Rendtion , API Speedy3D .

API 3D-. , , API — Microsoft DirectX SGI OpenGL. , , , , . - , , , 3Dfx Voodoo Graphics.




3Dfx Interactive: 3D-


Voodoo Graphics — 3D .

3Dfx , , , , . , Voodoo Graphics, 3Dfx, — PixelFX TexelFX, , , . , , .

, 3Dfx API Glide , , , , 3D-. Glide 3Dfx, : Glide . 3Dfx — «3D- — 3Dfx», 3Dfx .

« », 3Dfx - , 3D- , . , — - , , , , , .




Diamond Monster 3D — , 3D- 1996-1997. ( en.wikipedia)


3Dfx 1996 : , , . , , 3Dfx 3D- , Voodoo Graphics - 3D- .

3Dfx …

3Dfx Glide, , : . , , 3Dfx — .




3D- — Diamond FireGL 1000 3DLabs ( Creative).


-, API Glide , .

-, 3Dfx DirectX OpenGL. — , .

, , -, : Voodoo Graphics 200-250 , , ATI Rage Pro , 400. , «» ?




ATI Rage II: , , 3D


, Rage Pro — 3D 8 ATI , , MPEG2. , Rage Pro, 3D- , , , ATI .

, , ATI Rage/II, 3D . , Voodoo Graphics.




Matrox Millenium 4MB Compaq, Hewlett-Packard


, 2D-, Matrox, , — Mystique/Millenium II — ( 17 ). RAMDAC , Matrox. , Mystique/Millenium II 3D , Voodoo Graphics .




Diamond Stealth3D 3000 4MB «» — S3 Virge.


S3 Virge, . , - - , , . , : ATI Matrox, S3 , . S3 Virge DX/VX , 3Dfx , .

Nvidia .

, , , 3Dfx — RIVA 128, RIVA 128zx. Nvidia , Realtime Interactive Video and Animation ( ). , 3D- . 4 8 ( RIVA 128zx RAMDAC 250MHz AGP 2x) SDRAM / SGRAM , . — , . RIVA 128 100 ( , ATI Radeon X850 XT PE 9.28 ).




Asus 3DExPlorer V3000 — RIVA 128 AGP.


50 Voodoo Graphics Nvidia , , , «». OpenGL , , — , Voodoo. , RIVA 128 : , Intel Pentium II.




STB Velocity 128.


, Nvidia. , RIVA 128/128zx , , V3000 AsusTeK Viper V330 Diamond Multimedia.

, , 1997 Voodoo Graphics , API Glide 3Dfx 1997 , . , 2D/3D .

.

Voodoo Rush 3Dfx 2D 3D : Voodoo Graphics, , 2D . , « »: 2D , Voodoo Graphics, , , . , 2D 3D , Voodoo Rush , Voodoo Graphics. , , , , - .




3Dfx 2D Alliance Semiconductor Voodoo Graphics. InnoVision Multimedia.


1998-1999 , . 3Dfx, 1996-1997, , 2D- — ATI, Matrox S3 — , 3D.

( ) .