Оригинал материала: https://3dnews.kz/173302

GeForce 256. SDR против DDR

Автор: Антон Чернышов

Вот если сейчас вспомнить, сколько же воды утекло уже с тех пор, когда появились первые 3D-акселераторы? Очень много! А ведь тогда, года 3 назад, многие люди (в том числе и ваш покорный слуга) возмущались, что за такую "железку", которая что-то там где-то лишь улучшает, надо отдавать более 250$ ! Как сейчас помню фразу: "Да пропади оно пропадом это "три-дэ", чтобы на него так тратиться!". И зарекания в том, что лучше памяти поставить побольше, винчестер купить по-больше, нежели эту "безделушку".

Да, можно теперь посмеяться, как я потом ведь купился все же на становившееся все модным течение. Не выдержала душа поэта, и очень странная для тех времен видеокарта Diamond Monster 3D появилась у меня. Почему странная? Да потому что в диковинку видеть "дополнение" к обычной видеоплате, соединяющееся с ней черным толстым кабелем. Я вам скажу сразу, что привело это к настоящей "болезни". Как многие, возящиеся с компьютером, заболевают "болезнью апгрейда", так и тут примерно схоже, но в плане поиска игр, где на обложке красовался бы знакомый многим логотип "3Dfx" (я намеренно букву "D" написал заглавной, поскольку именно в то время, когда фирма носила имя "3Dfx", а не "3dfx", ее популярность просто была ошеломляющей).

В те времена даже не надо было себя ощущать каким-то скованным одним лишь разрешением 640х480 в 3D-графике и 16-битным цветом. И этого было более, чем достаточно! Даже появившийся к лету 1998 года знаменитый Unreal многие, в том числе и я, смотрели еще на этих, первых акселераторах, хотя уже в продаже появились и Voodoo2, которые имели такую цену, какая сегодняшним Geforce256 с DDR-памятью и не снилась даже! Имя "3Dfx" гремело просто по всему компьютерному миру и стало даже нарицательным. До сих пор можно слышать что-то вроде: "Продам 3dfx...".

Конечно, не надо забывать и о том, что осенью 1997 года на рынке появились и видеокарты на базе NVIDIA Riva128, которые обещали и достаточно мощную 3D-графику для тех времен, и содержали уже 2D-движок. Да, по сути это была первая настоящая попытка выйти на рынок с автономной видеокартой, где были оба движка. Конечно были до того и платы на 3dfx Voodoo Rush, однако они мало завоевали популярности. Учитывая то, что за Riva128 взялись тогдашние уже "монстры" компьютерной индустрии - ASUSTeK Computer и Diamond Multimedia, популярность видекарт на этом чипе стала расти. Вместе с тем и росло недовольство качеством предоставляемых 3D-функций. Фирму NVIDIA ругали на чем свет стоит за недоделанные драйвера, а та выкручивалась как могла и выпускала все новые и новые альфа, бета, пререлиз и т.п. версии. Собственно, NVIDIA и положила почин тому безобразию, которое сейчас стало иметь просто катастрофический размах - выпускать видеокарты с недоделанными драйверами. Меня этот факт возмущал всегда, волнует он и сейчас. Прежде всего из-за того, что фирмы-производители считают, что у каждого, купившего их продукт уже априори есть доступ в Интернет, и скачать оттуда новую версию драйверов не составит труда. Им даже в голову не приходит то, что есть много пользователей, которые потом вынуждены бывают правдами и неправдами добывать новые драйвера через друзей и знакомых. Это не только к нашей стране относится, где львиная доля компьютерщиков не имеет выхода в Интернет как по причине дороговизны этой услуги, так и по причине отвратительного качества наших телефонных линий.

Однако, вернемся к нашей теме. Прошло время, NVIDIA выпустила принципиально новый чипсет Riva TNT, который уже снабдила качественно переработанными драйверами. Крики о глюках в OpenGL пропали почти моментально! И все из-за того, что фирма смогла преодолеть гордыню и наняла программистов из SGI, которые в краткие сроки написали полноценный ICD OpenGL драйвер (это может послужить просто упреком в адрес Matrox, которая до сих не может написать полноценный OpenGL-драйвер для своих чипсетов G200/G400). Чипсет Riva TNT отличался прежде всего своей более новой архитектурой - наличием двух конвейеров рендеринга трехмерных сцен. Я напомню, что у линии 3dfx Voodoo 2,3 имеется одноконвейерная схема, но с двумя текстурными модулями. То есть, при режиме мультитекстурирования скорость наложения текстур удваивалась, когда при обычном режиме работы второй текстурный модуль простаивал.

У чипсетов от NVIDIA - Riva TNT, а в последствии и более быстрого Riva TNT2 оба текстурных модуля работают постоянно. При обычном режиме за такт накладывается одна текстура на пиксель, но раз конвейеров два - то за тот же такт готовых пикселей получается уже в два раза больше. Однако, при работе в режиме мультитекстурирования - схема очень напоминает Voodoo2: обрабатывается за такт всего один пиксель, но скорость текстурирования удваивается. Поэтому мы можем говорить, что у чипсетов 3dfx Voodoo2, 3 - бесплатное мультитекстурирование (и в том, и в другом режиме все равно обрабатывается один пиксель за такт, но за то скорость текстурирования меняется), а у RivaTNT/TNT2 - платное, за которое приходится расплачиваться потерей в скорости заполнения сцены (fillrate). Я не буду сейчас подробно останавливаться на этих чипсетах, о них уже написано много десятков статей и обзоров.

Наш объект внимания, до которого мы наконец-то добрались - NVIDIA Geforce256. Почему я начал так далеко? Да просто потому, что хотелось показать некоторый образ того развития, которое претерпел этот раздел компьютерной индустрии: от одноконвейерного 3dfx Voodoo Graphics, имеющего всего один текстурный модуль и, естественно, знать не знающего о режиме мультитекстурирования, до четырехконвейерного NVIDIA Geforce256.

Да, осень 1999 года дала старт такой новации в трехмерной компьютерной графике игрового класса. Я подчеркну, что именно игрового класса, поскольку львиная доля выпускаемых в последние годы видеокарт с усиленным блоком 3D предназначена для игроков на компьютерах. Безусловно, мощь некоторых представителей этого класса видеоплат достигла таких величин, что может поспорить и с супердорогими 3D-профессиональными платами, предназначенными для моделирования и создания сложнейших трехмерных сцен. Однако, изюминка, появившаяся у новых чипов типа Geforce256, состоит не сколько в мощи, а в другом.

По сути, NVIDIA Geforce256 - первый чипсет, имеющий и полноценно использующий геометрический сопроцессор (GPU). Справедливости ради надо отметить, что все же первой фирмой, анонсировавшей новый чипсет со встроенным GPU, стала S3, объявившая о Savage2000, однако в ныне существующих драйверах пока этот блок не задействован, поэтому о полноценном GPU пока можно говорить только в отношении NVIDIA Geforce256. Что же дает этот GPU?

Многим известно, что построение трехмерной сцены состоит из нескольких этапов. Одними из первых и наиболее загружающих центральный процессор этапов являются трансформация координат и расчет освещения. Все трехмерные объекты строятся, исходя из своих, локальных систем координат, затем координаты вершин полигонов надо перевести в единую систему отсчета, и в завершении этой операции - выполнить трансформацию 3-х мерных координат в 2-мерные, поскольку мы видим все изображение на плоском двумерном экране. Ну а надобность в расчете освещения, думаю, не вызывает ни у кого сомнений. Конечно, есть способ имитации света через карты освещения (lightmap), когда блики, бросаемые источником света, воспроизводятся путем наложения этих карт на определенные участки текстур. Однако, при этом получаются лишь круги света, не учитывающие динамику изменения самого источника освещения, например, горящий факел, который по идее, должен бросать не только постоянный свет, но меняющиеся блики. Поэтому только вершинное (vertex) освещение может дать наиболее полноценный эффект воспроизводства освещенности. И именно этот, наиболее трудоемкий способ расчета освещения, и может взять на себя GPU видеокарты. Должен отметить, что для правильного внедрения этого вида освещения от разработчиков игр требуется немало умения и трудозатрат, поэтому, к сожалению, почти все авторы игр используют более легкий способ изображения освещенности - lightmap. Из ныне вышедших игр последнего поколения только Quake3 Arena использует вершинное освещение. Расчет освещенности идет вторым этапом после трансформаций координат. Почему я это подчеркнул? Да потому что, от того, кто занимается этим расчетом - GPU или CPU, зависит и весь расчет T&L в целом. Если GPU взял на себя расчет трансформаций, то он не может потом расчет освещения передать центральному процессору. Возможно ли обратное: если трансформации расчитывает процессор, то расчет освещенности может быть произведен или GPU, или CPU. Таким образом, на GPU может быть возложен либо полный расчет T&L в целом, либо расчет только освещения. Поэтому наиболее важным становится переход трехмерных игр на использование вершинного освещения, чтобы уже можно было этот процесс передать GPU видеокарты. Впоследствии, возможен и перевод трансформаций также на геометрический сопроцессор. К сожалению, такой гибкостью может обладать только API OpenGL, но не Direct3D. А игр, выполненных под OpenGL - "кот наплакал". Вот почему, Quake3 и может стать практически одной из первых игр, полноценно использующих GPU видеокарт при внесении лишь изменений в ныне существующий код игры, не переделывая игру в целом. Игры, выполненные под Direct3D, потребуют полной переделки движка. Поэтому такого рода игры уже должны с самого начала поддерживать расчет T&L через GPU. И такие "пионеры" уже есть. Пример - Test Drive 6 от Accolade, на подходе еще почти десяток подобных игр. Важно отметить, что при перекладывании трансформаций координат на GPU, станет возможным разбиение объектов на огромное число полигонов, что придаст им более реалистичные формы (например, такой сложный объект, как фигура человека требует огромного числа полигонов и для плавного движения этого объекта и перерисовок потребуется супермощный процессор). Игра будет более популярна, если в ней заложена динамическая тесселяция, иными словами, в зависимости от того, какой видеоакселератор используется, будет проводиться разбиение на большее или меньшее число полигонов, поэтому игра сможет выдавать приличную производительность на большом числе видеокарт.

Однако, вернемся к NVIDIA Geforce256. Напомню вкратце, какими характеристиками обладает этот чипсет, кроме уже вышеупомянутого GPU:

  • Частота ядра: 120 МГц
  • Частота работы шины памяти: до 200 МГц
  • Скорость обработки треугольников: 15 млн. треугольников в секунду, sustained DMA, transform/clip/light, setup, rasterize and render rate.
  • Разрядность шины памяти: 128 бит при SDR SDRAM/SGRAM, 256-бит при DDR SDRAM/SGRAM
  • Ширина полосы пропускания шины памяти: до 6.4 Гб/сек
  • Поддерживаемые типы памяти: SDRAM/SGRAM (с поддержкой режима блочной записи) и DDR SDRAM/DDR SGRAM
  • Объем локальной видеопамяти: до 128 Мб
  • RAMDAC: интегрированный, частота 350 МГц с поддержкой коррекции гаммы
  • Поддерживаемые разрешения: вплоть до 2048x1536@75Hz
  • Технологический процесс: 0.22 мкм
  • Число транзисторов: 23 млн.
  • 256 разрядный процессор рендеринга
  • Интегрированный геометрический процессор преобразования координат и установки освещения (T&L)
  • 4 конвейера рендеринга (вывод 4 пикселей за такт)
  • Аппаратная установка 8 источников света для всей сцены
  • Геометрический движок выполняющий операции над вещественными числами и занимающийся расположением полигонов в пространстве
  • Fillrate: 480 млн. пикселей в секунду
  • Скорость текстурирования: 480 млн. текселей в секунду и 240 млн. текселей в секунду в режиме мультитекстурирования
  • Для формирования текселя используется 8 текстурных семплов
  • Полная поддержка OpenGL и DX7 - Tranform & Lighting, Cube environment mapping (кубического текстурирования картами окружения), projective textures (проекция текстур) и компрессия текстур
  • Поддерживаются все пять форматов компрессии текстур DX6
  • Аппаратная поддержка рельефного текстурирования. Поддерживаются методы Embossing (выдавливания) и Dot Product (скалярное рельефное текстурирование)
  • Рендеринг при 32-битном представлении глубины цвета
  • Однопроходная трилинейная фильтрация (она же названа как 8-точечная анизотропная)
  • Поддерживается 8-битный стенсель буфер (буфер шаблонов)
  • Поддерживается 16/24/32-битная Z-буферизация
  • Поддержка текстур размером 2048х2048 текселей с точностью 32 бита
Вернемся к нашей главной теме. В данном материале я хотел показать не сколько сами достоинства и недостатки чипсета, а те отличия, которые заложены в использовании разного типа памяти. Обратите внимание на строчку в списке особенности NVIDIA Geforce256, где указывается о разной разрядности шины памяти: 128 бит при использовании обычной SDRAM/SGRAM памяти, и 256 бит, если на плате установлена DDR-память. Я напомню, что даже при самой большой частоте в 200 МГц, какая имеется у видеокарты Hercules Dynamite TNT2 Ultra (на чипсете NVIDIA Riva TNT2 Ultra), мы можем наблюдать резкое падение производительности видеокарты в 32-битном цвете, который подразумевает очень большой объем данных при обмене между чипсетом и видеопамятью. Это падение вызвано тем, что пропускная способность обычной SDR-памяти крайне недостаточна даже на высоких частотах. Именно для того, чтобы продемонстрировать отличие DDR от SDR-памяти, я и взял для примера две карты.

1. ASUS AGP-V6600 SGRAM.

Плата имеет AGP 2x/4x интерфейс, снабжена 32-ю мегабайтами SGRAM 5 ns памяти. На чипсете установлен активный кулер, имеющий тахометр, а с видеокартой поставляется специальная утилита SmartDoctor, позволяющая контролировать не только частоту вращения вентилятора, но и температуру чипсета, для чего на карты имеются специальные термодатчики. Эта утилита сообщит пользователю о превышении температуры выше критической (75-80 градусов), а также принудительно снизит частоту чипсета при подобных ситуациях. Как можно догадаться, данная видеокарта относится к классу плат с SDR-памятью.
Да, еще должен отметить, что эта карта неплохо разгоняется, поэтому в диаграммах я приведу еще и данные, снятые при работе платы на частотах 160/200 МГц (первое число - частота чипсета, второе - памяти).

2. Creative 3D Blaster Geforce 256 Annihilator Pro.

Как и предыдущая, эта плата базируется на AGP 2x/4x интерфейсе, и имеет 32 мегабайта 6 ns памяти, но DDR-класса. Эта память как раз и позволяет снять то ограничение, которое накладывает SDR-тип памяти на работу в 32-битном цвете. Данные модули DDR SGRAM предназначены для работы на 166 МГц (при пересчете на SDR-тип - 333 МГц), однако тактуются на 150 МГц (300 МГц). В дальнейшем я буду использовать значения частоты работы DDR-памяти в пересчете на SDR.
Уже по традиции фирмы Creative на чипсете приклеен активный кулер, сама же печатная плата выполнена полностью на основе reference card от NVIDIA. Данный экземпляр смог разогнаться до 150/350 МГц, поэтому в наших диаграммах будут и результаты работы платы на этих частотах. Напомню, что все видеоплаты на чипсете NVIDIA Geforce256 работают по умолчанию на частотах 120/166 МГц (SDR) и 120/300 МГц (DDR).

А теперь перейдем к результатам тестирования производительности наших подопечных. Перед этим я приведу условия, в которых проводились исследования:

На испытательном стенде была установлена системная плата ABIT BX6 rev.2.0, 128MB оперативной памяти, использовались процессоры Intel Pentium III 600 MHz и Celeron 550 MHz (разогнанный 366 МГц). Тестирование проводилось на драйверах версии 3.62 от NVIDIA, Vsync был выключен. Для сравнения я провожу также результаты по видеокарте на базе NVIDIA Riva TNT2 Ultra - Creative 3D Blaster Riva TNT2 Ultra.

1. Quake3

Для оценки работы видеокарт в этом тесте я использовал два стандартных режима - Normal и High Quality, которые дают нам представление о производительности акселераторов в OpenGL при 16- и 32-битной глубине цвета. Встроенное демо - demo001.dm3

Normal.

Что сразу бросается в глаза? Это то, что в данном режиме частота работы чипсета NVIDIA Geforce256 играет доминирующую роль. Посмотрите на достаточно резкий прирост по скорости, который получился у ASUS AGP-V6600 при разгоне, можно видеть, что при этих частотах эта видеокарта обогнала соперника. Даже столь высокая частота памяти DDR не смогла помочь Creative 3D Blaster Geforce 256 Annihilator Pro получить лидерство в данном случае. Тем не менее, разгон последней карты вывел ее в беспрекословные лидеры. Как можно видеть, фаворит весны-лета 1999 года, карта на базе NVIDIA Riva TNT2 Ultra выглядит тут просто весьма и весьма скромно.

Вывод по данному тесту:

  • при 16-битном цвете более главенствующую роль играет частота работы чипсета, а не памяти, можно увидеть, что плата, работающая на частоте 160/200 догоняет и обгоняет плату, работающую на частоте 120/300 МГц. Тем не менее, недостаток в пропускной способности памяти существует и здесь, поскольку иначе разогнанная карта с SDR-памятью сильно обогнала бы неразогнанную карту с DDR-памятью.
  • Наличие SSE у процессора Pentium III не дает практически никакого эффекта. И более того, показатели работы обеих плат на Celeron 550 MHz оказались даже чуть повыше, чем на Pentium III 600 MHz (!)

High Quality

Прямо все столбики выстроились по росту! :-) Да, 32-битный цвет - это безоговорочная победа видеокарты с DDR-памятью! И никакой разгон карты с SDR-памятью не позволил догнать соперника (кроме самого высокого разрешения при тесте с процессором Pentium III). Также здесь мы можем наблюдать упирание в частоту центрального процессора на разрешении 800х600, когда разгон практически ничего не дает. Любопытно, что уже в данном случае Creative 3D Blaster Riva TNT2 Ultra не выглядит "дохляком" по сравнению с ASUS AGP-V6600, поскольку последняя сильно сдает по производительности в 32-битном цвете по вышеописанным причинам.

Выводы по данному тесту:

  • лидерство Creative 3D Blaster Geforce 256 Annihilator Pro является безоговорочным, сразу становится ясно, что можно свободно использовать эту карту для игр в 32-битном цвете.
  • в данном случае во многих случаях производительность плат при работе совместно с Pentium III 600 MHz оказалась выше, чем на Celeron 550 MHz, хотя и не столь заметно.

2. 3DMark2000

Этот тест появился на свет совсем недавно, представляет собой целый комплекс синтетических тестов, некоторые из них базируются на игровых сюжетах. 3DMark2000 использует новейшие возможности DirectX 7.0, а также при тестировании позволяет операции T&L при возможности возлагать на геометрический сопроцессор видеокарты.

16-битный цвет.

Как и в случае с Quake3, можем видеть то, что разогнанная карта с SDR-памятью обходит по скорости неразогнанную плату, но с DDR-памятью. Плата же на NVIDIA Riva TNT2 Ultra значительно отстает.

32-битный цвет.

А вот тут все становится на свои места! :-) Как и должно быть при работе с 32-битным цветом, Creative 3D Blaster Geforce 256 Annihilator Pro является безусловным лидером.

Общий вывод по результатам тестирования скорости в 3D.

Он прост и краток. Видеокарты на базе NVIDIA Geforce256 с DDR DRAM просто созданы для 32-битного цвета. Все. Вон этот 16-битный цвет с его дизерингом! Вон эти переходы между цветами! А, кстати, о дизеринге. Если не знаете, что это такое - то это способ уменьшения резкости переходов от одного цвета к другому. Вот примеры:

Посмотрите на эту "окантовку" вокруг блика.

Обратите внимание на "сетку", которая получается на тумане внизу сцены.

А это цвет неба.

И это еще не худший вариант, поскольку, как выше сказано, практически все акселераторы применяют дизеринг для хоть какой-то дезавуации таких "полосатостей и сеточек". Спрашивается, а откуда это все берется? Вы попробуйте взять "труколорную" картинку (32-битный цвет) и посмотрите на нее при глубине цвета 16-бит (например, изменив глубину цвета рабочего стола). И сразу увидите эти разводы. Так и в случае 3D, когда выставлен режим работы в High-color (16-битный цвет). Сам чипсет работает с 32-битной глубиной, манипулируя цветом пикселей. Однако при передаче данных в буфер видеопамяти происходит понижение разрядности цвета. Одновременно производится операция дизеринга, чтобы сгладить грубость расчетов (еще бы, из 16 миллионов цветов надо оставить 65 тысяч). В видеобуфере формируется картинка, состоящая уже из пикселей, окрашенных одним из 64К цветов (high color).

Естественно, что при этом данных при передаче в видеопамять становится меньше (на каждый пиксель, грубо говоря, уже приходится не 4, а 2 байта передавать), поэтому скорость работы акселераторов при 16-битном цвете намного выше, чем при 32-битном. Однако, когда производительность видеопамяти достаточно высока, и чипсет может смело манипулировать пикселями, окрашенными 32-битным цветом, то только в этом случае мы практически без критичных потерь в скорости получаем самое высокое качество:

Сравнили с предыдущими картинками? Различие налицо. Да, конечно надо признать, что пока очень мало игр, где можно увидеть полноценное качество "труколора", пока еще многие фирмы, ведомые старыми традициями, используют даже 8-битные текстуры (256 цветов) для формирования трехмерных сцен. Тем не менее, будущее за 32-битным цветом, поскольку новейшие акселераторы открывают ему дорогу, убирая с пути "труколора" сильное падение по скорости. И этого мало. Использование GPU видеокарт, подобных нами рассмотренным, дает возможность сильно улучшить реализм трехмерных сцен, разбивая объекты на очень большое число полигонов, поскольку мощность геометрического сопроцессора дает возможность без проблем обработать такие массивы вершин треугольников.

Выше я привел несколько скриншотов из демо Dagoth Moor Zoological Garden, которая символизирует начало новой эпохи подобных игр.

Я не стал останавливаться на вопросах качества 2D-графики рассматриваемых мною видеокарт, поскольку четкого деления этого вида графики на профессиональные и игровые практически нет. Трудно найти фирмы, поныне производящие чисто 2D-карты с усиленным качеством и предназначенных для профессионалов-дизайнеров. Да, я соглашусь, что некоторые особо привередливые консерваторы в этой области, любящие по сей день карты типа Matrox Millennium II с внешним RAMDAC, будут "воротить нос" от всех видеокарт со встроенным в чипсет RAMDAC, но их единицы. И частота RAMDAC, и качество исполнения плат ныне нам дают превосходное качество 2D-картинки даже в высоких разрешениях типа 1600х1200. Я уж не говорю про тот же Matrox Millennium G400 MAX, имеющий 360-мегагерцовый RAMDAC, дающий кристально чистую картинку в 1920х1280 и выше. А у чипсета NVIDIA Geforce256 частота RAMDAC - 350 MHz, что дает право на высокую оценку качества изображения. И это подтверждается практикой.

Подведем итоги. Самый главный итог - это то, что будущее 3D-акселераторов за такими картами как Creative 3D Blaster Geforce256 Annihilator Pro, то есть платами на чипсетах с геометрическим сопроцессором и имеющими DDR DRAM в качестве локальной видеопамяти. Это уже не вызывает никаких сомнений. Можно спорить насчет того, достаточна нынешняя скорость заполнения сцены (fillrate) или нет, однако на пороге уже выход чипсетов типа NV15, у которых этот показатель будет существенно выше.
Пока отрицательным моментом в этом вопросе является цена видеокарт с DDR-памятью. Да, она существенно завышена. Приходится на начало 2000 года за такую карту отдавать порядка 270-280$, что для игровой карты многовато (хотя можно вспомнить, что за ту же Voodoo2 отдавали и больше, когда она появилась). Однако, желающим купить видеокарту на NVIDIA Geforce256 я все же посоветую подождать с покупкой, пока цены на платы с DDR-памятью не упадут хотя бы до уровня нынешних карт с SDR-памятью, а это уже вскоре произойдет. И тогда, купив карту на NVIDIA GeForce256 с DDR DRAM, можно смело себе сказать, что уж на год этой платы точно хватит под все игры, какие есть и какие вскоре выйдут.



Оригинал материала: https://3dnews.kz/173302