GeForce2 GTS — новый GPU от NVIDIA

Итак, компания NVIDIA представила сегодня, 26 апреля, свой новый графический процессор шестого поколения под именем GeForce2 GTS. Ранее это GPU был известен под кодовым именем NV15.

Первые подробности о NV15 мы опубликовали еще в январе этого года. Желающие могут посмотреть раннее превью в архиве и убедиться, что мы никого не обманывали. Более того, даже название нового GPU от NVIDIA мы почти угадали. Тем не менее, в названии присутствует аббревиатура из трех букв — GTS. Расшифровывается это так: GigaTexel Shading. Такая приставка к названию была выбрана не случайно, она сигнализирует о том, что новое детище NVIDIA обладает огромной производительностью и имеет встроенный движок NVIDIA Shading Rasterizer (NSR).

Приведем ключевые параметры нового GPU GeForce2 GTS:

  • 256-разрядное графическое ядро
  • Технологический процесс: 0.18 мкм, 6-слойный процесс
  • Количество транзисторов: 25 млн.
  • Тип корпуса: PBGA, 564 pin
  • Частота графического ядра: 200 МГц
  • Число конвейеров рендеринга: четыре с двумя блоками текстурирования на каждом
  • Частота работы шины памяти: до 200 Мгц, пока планируется использовать только память типа DDR SGRAM с рабочей частотой 166 МГц (результирующая 333 МГц) Поддерживаемые типы памяти: DDR SGRAM и стандартная SDR SDRAM/SGRAM
  • Поддерживаемый объем локальной видеопамяти: от 8 до 128 Мб
  • Ширина полосы пропускания памяти: 5.3 Гб в сек. (пиковая при частоте 166 МГц работы памяти типа DDR)
  • Pixel Fillrate: 800 млн. пикселей в секунду
  • Texel Fillrate:
    • 1 texel per 1 Pixel 800 млн. текселей в секунду
    • 2 texel per 1 Pixel 1600 млн. текселей в секунду
  • RAMDAC: 350 МГц
  • Максимальное разрешение: 2048x1536@75Hz
  • Интегрированный в чип TMDS трансмиттер позволяет подключать цифровые мониторы и поддерживает разрешение вплоть до 1600x1200
  • Интерфейс внешней шины: полная поддержка AGP x2/x4 (включая SBA, DME и Fast Writes) и PCI 2.2 (включая Bus mastering). Режим AGP x4 Fast Writes позволяет использовать метод прямого обмена данными CPU и GPU, минуя системную память компьютера со скоростью до 1 Гб/сек, что должно положительно сказываться на общей производительности и разгружать шину системной памяти. Хотелось бы, наконец, увидеть нормальную поддержку режима Fast Writes в драйверах.

3D-графика:

  • Геометрический движок GeForce2 GTS — аппаратная реализация преобразования координат, установка освещения, clipping (отсечение полигонов, не входящих в конечный кадр)
  • Производительность HW T&L: 25 млн. текстурированных полигонов в секунду (пиковая)
  • Аппаратная установка 8 источников света для всей сцены
  • Полная поддержка OpenGL и DX7 — Tranform & Lighting, Cube environment mapping (кубического текстурирования картами окружения), projective textures (проекция текстур) и компрессия текстур
  • Движок NSR обеспечивает аппаратную поддержку Pixel Shaders через D3D8
  • Поддержка аппаратного сглаживания всей сцены (Full-scene hardware anti-aliasing, HW FSAA)
  • Поддержка реализации таких эффектов, как Motion Blur, Depth of Field через D3D8
  • Полная поддержка методов компрессии DXTC и S3TC через DX и OpenGL соответственно
  • Аппаратная поддержка интерполяции вершин полигонов (vertex blending) с применением двух skinning матриц, чего в большинстве случаев вполне достаточно
  • Рендеринг при 16- и 32-битной глубине представления цвета
  • Аппаратная поддержка рельефного текстурирования следующих типов: Embosing, Dot Product3 и EMBM (наконец-то!)
  • Поддерживаются текстуры вплоть до 2048x2048 @ 32 bit
  • Программируемые режимы смешивания нескольких текстур
  • Буфер шаблонов (стенсель): 8 бит
  • Z-буфер: 16/24/32 бит
  • Полноценная поддержка в драйверах аппаратного ускорения OpenGL 1.2 под ОС Linux

Видео:

  • Поддерживается аппаратное декодирование всех форматов HDTV
  • Поддерживаются все разрешения ATSC, включая 1080i
  • Поддерживается 8-bit режим альфа-смешивания видео и графики (например, это используется для наложения субтитров или анимационных меню)
  • Поддерживается VIP 2.0 порт уровня I (8 бит, 75 МГц), что позволяет подключать внешние MPEG2 декодеры/кодеры.
  • Поддержка Motion Compensation второго поколения
  • Для вывода видеосигнала на ТВ требуется установка TV-кодера, а в сам чип GeForce2 GTS встроен цифровой интерфейс для подключения этих ТВ кодеров

Посмотрим на схематическое представление архитектуры GeForce2 GTS:

Нетрудно заметить, что GeForce2 GTS имеет новый встроенный High-Definition Digital Video Processor (HDVP), позволяющий воспроизводить видео во всех современных форматах, а также интегрированный TMDS трансмиттер, позволяющий подключать по цифровому интерфейсу мониторы. Кроме того, увеличена производительность всех основных блоков нового GPU, по сравнению с GeForce 256. В связи с этим есть основания предполагать, что теперь использование более одного источника освещения типа Directional Light будет существенно меньше сказываться на общей производительности.

Кроме того, к движку растеризации добавлен блок NSR, о котором мы поговорим подробнее ниже.

Для того чтобы наглядно сравнить параметры GeForce2 GTS с GeForce 256, приведем таблицу:

 GeForce 256GeForce2 GTSATI RADEON 256
Технологический процесс, мкм0.220.180.18
Тактовая частота ядра/памяти, МГц120 / 150200 / 166200 / (до 200)
Число пиксельных конвейеров442
Число текстурных блоков на каждом конвейере/всего1 / 22 / 83 / 6
Pixel Fillrate (в режиме мультитекстурирования), MPixels480 / 240800 (800)400 (400)
Texel Fllrate (в режиме мультитекстурирования), MTexels480 / 480800 (1600)400 (800, 1200)
Производительность блока HW T&L, MPolys152530


Отметим одну из ключевых особенностей GeForce2 GTS — наличие двух блоков текстурирования на каждом из четырех пиксельных конвейеров. Это обеспечивает реализацию так называемого бесплатного мультитекстурирования, т.е. когда при наложении двух текстур на один пиксель не снижается общая пиковая величина fillrate. Кроме того, появляется возможность реализовать на аппаратном уровне анизотропную фильтрацию по 16 текстурным семплам, что должно положительно сказаться на качестве 3D графики, даже по сравнению с GeForce 256.

Теперь поговорим более подробно о NSR (NVIDIA Shading Rasterizer).

NSR представляет собой отдельный блок, чья работа тесно связана с работой текстурных блоков. Для наглядности можно сравнить NSR с некой "прослойкой" между текстурными блоками, которая занимается смешиванием текстур по какой-либо формуле, реализуя мультитекстурные эффекты. Приведем пример простой формулы:

( TB1 @ TB2 ) @ TB3

где:

  • TB = texel block — оперирует с одной текстурой
  • @ — операции смешивания. Раньше это были предопределённые операции, а теперь эти операции могут быть запрограммированы разработчиком игры.

Если говорить более детально, то мультитекстурный эффект делается так: берём две текстуры и смешиваем их по какой-то формуле (например, банальный diffuse lightmap это просто умножение, а specular lightmap — это сложение). Полученный результат мы смешиваем по другой формуле со следующей текстурой, и т.д. В спецификации Direct3D 8.0 говорится о смешиваниии 8 текстур. На самом деле, до этого ещё далеко, т.к. количество текстур, которые можно задействовать для multitexture effect, равно количеству параллельных текстурных блоков, которые доступны для формирования одного текселя. В GeForce 256 можно задействовать два текстурных блока для формирования одного текселя (соответственно, можно одновременно смешивать только две текстуры), а в GeForce2 GTS доступно уже четыре текстурных блока (соответственно, можно одновременно смешивать уже четыре текстуры). Правда, можно проводить операции иначе, например, GeForce 256 позволяет использовать 2 текстуры, но при этом иметь 8 стадий эффекта — на оставшихся стадиях можно задействовать "нетекстурные" величины — интерполированный цвет из вершин, t-factor, и т.д..

Итак главное новшество в NSR заключается в том, что у разработчиков игр теперь есть возможность программировать собственные мультитекстурные эффекты с помощью новых формул.

Сами по себе multitexture effects не новость, их можно было делать и раньше. Поэтому, если отбросить маркетинг, то NSR — это не новый блок, а старый, но с дополнительными возможностями. Все мультитекстурные эффекты реализуются на уровне пикселей, а возможность программирования новых мультитекстурных эффектов поддерживается в новом API D3D8 от Microsoft, входящего в состав еще официально не объявленного DirectX 8.0.

В Direct3D 8.0 введен новый термин — Pixel Shader. Это и есть инструментарий, позволяющий осуществлять унифицированные операции над пикселями, т.е. это механизм программирования мультитекстурных эффектов, наряду с использованием заранее определённых эффектов. По сути, Pixel Shader — это API к NSR.

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

По сути, Pixel Shader — это универсальная программируемая замена того, что в DX7 называлось texture stage state, т.е. Pixel Shaders — это метод создания мультитекстурных эффектов "вручную". Если раньше можно было смешивать текстуры только по нескольким заранее заданным формулам (как правило, состоящим из одной-двух операций, например, сложить два аргумента и вычесть из них их произведение), то теперь Pixel Shader — это как бы "программа" смешивания текстур, заданная вручную. С помощью pixel shader можно создать свой собственный эффект при помощи доступных для использования элементарных операций (туда входят операции: сложения, вычитания, деления, умножения и ещё несколько более экзотических, и это можно комбинировать в любом колличестве). Для этого разработчики Microsoft придумали некий псевдо-ассемблер для программирования мультитекстурных эффектов, включающий в себя такие понятия, как:

  • Регистры (registers)
  • Инструкции
  • Texture Address Operations (например, Perturbations):
  • Модификаторы инструкций
  • Модификаторы аргументов инструкций

Теперь реализация мультитекстурных эффектов (multitexture effect) ограничена только фантазией автора — разработчик игры теперь может сам создавать multitexture effect, не ограничиваясь подмножеством, реализованным изначально. Отметим, что при использовании заранее заданных формул всё будет работать быстрее, чем с запрограммированными. Разница в скорости будет из-за того, что при использовании запрограммированных формул будет использоваться конвейер общего назначения (general purpose), а не специально оптимизированный.

Заметим, что для поддержки Pixel Shaders не нужно какого-то специального аппаратного обеспечния, необходимо и достаточно только, чтобы имелась возможность программирования извне блоков текстурирования.

По сути, Pixel Shaders — это серьёзное изменение всей концепции мультитекстурирования. Недостатком такого нововведения является необходимость для разработчиков игр создавать заново модуль мультитекстурирования. К слову, при помощи pixel shader можно создавать точные тени, но, к сожалению, с резкими границами. Плюс ко всему, в некоторых случаях применение pixel shader может сэкономить память, отводимую под текстуры. К слову, EMBM, поддержки которого все ждали в GeForce2 GTS, с точки зрения pixel shader является элементарной операцией (для этого есть специальная команда).

Кроме возможности программирования извне мультитекстурных эффектов, NSR позволяет выполнять одновременно семь различных заранее определенных операций над пикселями:

  • Base Texture (наложение базовой текстуры)
  • Per-Pixel Bump Mapping (рельефное текстурирование)
  • Per-Pixel Diffuse Lighting (рассеянный свет)
  • Per-Pixel Specular Lighting (отраженный свет)
  • Colored Fog (цветной туман)
  • Ambient Light (окружающий свет)
  • Alpha Transparency (прозрачность по альфа-каналу)

Каждая из семи операций выполняется за один проход, что гарантирует отсутствие существенного снижения производительности в целом. Благодаря наличию в GeForce2 GTS четырех пиксельных конвейеров рендеринга, эти семь заранее определенных операций выполняются сразу над четырьмя пикселями параллельно.

Несмотря на то, что часть разработчиков игр довольно скептически отнеслись к самой идее Pixel Shaders, получаемые в итоге эффекты могут перевесить многое. Ниже приведены примеры использования Pixel Shader для реализации различных эффектов:

Composite Pixel Effects      Per-Pixel Bump-map
Composite Pixel Effects                               Per-Pixel Bump-map

Per-Pixel Light
Per-Pixel Light

Нетрудно заметить, что применение специальных эффектов на уровне пикселей позволяет добиться большего реализма при моделировании различных типов текстур и физических явлений. В случае с GeForce2 GTS реализация Pixel Shader сделана на аппаратном уровне. На других картах, где нет аппаратной поддержки, все эти эффекты могут быть реализованы программным путем, т.е. за счет CPU системы.

GeForce2 GTS имеет встроенный HDTV процессор для декодирования всех 18 типов форматов ATSC, включая форматы 720p и 1080i. Наличие интегрированного в GeForce2 GTS TMDS трансмиттера позволяет без установки дополнительных контроллеров подключать по цифровому интерфейсу дисплеи. В итоге, карты на базе GeForce2 GTS могут стать универсальным мультимедиа комбайном, если кто-либо из производителей сделает такие карты. На иллюстрации ниже показано, как можно использовать карту на GeForce2 GTS в качестве мультимедиа центра:

По сравнению с GPU GeForce256 в GeForce2 GTS, как и ожидалось, поддержка воспроизведения различных видеоформатов существенно улучшилась. Для удобства сравнения приведем таблицу:

 GeForce 256GeForce2 GTS
Количество поддерживаемых форматов ATSC (всего 18)1418
Максимальное разрешение при воспроизведении цифрового видео1280x720p241920x1080i30
Загрузка CPU при декодировании DVD50%30%
Поддерживается Video I/O Port (VIP) версии1.12.0
Ширина полосы пропускания для передачи видеоданных27 Mb/sec150 Mb/sec
Буферизация видеоданных (timeshifting)НетДа
Работа в качестве цифрового видеомагнитофонаДаДа


Одновременно с анонсом GeForce2 GTS будет объявлено о производстве карт на его базе сразу восемью компаниями: Acer Group, MSI, ASUS, Gigabyte, Leadtek, Elsa, Creative и Guillemot. Ряд производителей компьютеров, среди которых Dell, Compaq, HP, Micron, Quantex и Gateway, намерены использовать карты на базе GeForce2 GTS в своих системах. Ожидается, что в США первые карты на базе GeForce2 GTS от Creative поступят в небольших объемах в продажу уже в конце апреля по цене $349 за карту с 32 Мб локальной видеопамяти типа DDR SGRAM и ТВ-выходом на борту. Дороговато конечно, но в отсутствии реальной конкуренции ничего другого и не стоит ожидать. Зато позднее, летом, если ATI начнет поставки своих карт на базе RADEON 256, следует ожидать снижения цен на платы с GeForce2 GTS на борту.

Quake3 New Level

Некоторые разработчики игр планируют выпустить специальные уровни для демонстрации возможностей GeForce2 GTS. Например, id Software представит новый уровень для Quake3 Arena (смотри картинку справа), а WXP представит очередную демо "Isle of Morg" на базе движка будущей игры Experience (см. картинку ниже).

Isle of Morg Demo

Что касается производительности карт на базе GeForce2 GTS, то тут все довольно предсказуемо, и первые результаты тестов, которые уже есть в сети, говорят о том, что в реальных играх выигрыш в высоких разрешения будет примерно 25-30% по сравнению с GeForce 256. Этот выигрыш достигается за счет большей величины Pixel Fillrate у GeForce2 GTS. Но это данные по играм, в которых не используется мощь HW T&L. С другой стороны, игр, где действительно в полной мере используются преимущества HW T&L пока считанные единицы. Тем не менее, в 2000 году нам обещают не менее 30 игр, в которых будет полноценная поддержка HW T&L. Подождем — увидим.

Выводы

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

В технологическом плане NVIDIA вновь выступает локомотивом всей игровой индустрии, встроив в свой новый GPU движок NSR. Между тем, анонс DirextX 8.0, в котором есть поддержка pixel shaders ожидается лишь в августе, а это значит, что первые игры, где будут использоваться программируемые мультитекстурные эффекты, реализуемые на пиксельном уровне, могут появиться на рынке самое раннее к концу 2000 года.

Leadtek WinFast Geforce2 GTS Board \ (c) http://www.geforce.ru

К тому времени ожидается анонс очередного GPU от NVIDIA, носящего кодовое имя NV20. Тем не менее, это не значит, что возможности GeForce2 GTS будут использоваться не в полной мере. Кроме поддержки NSR, новый GPU от NVIDIA обладает великолепной производительностью, как движка растеризации (fillrarate 800 млн. пикселей), так и геометрического блока (25 млн. полигонов). Прибавьте к этому мощный блок для декодирования и воспроизведения различных видеоформатов и станет ясно, что звание лидера принадлежит NVIDIA полностью заслуженно.

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

Спасибо Юрию Блажевичу за помощь, оказанную при подготовке материала




26 апреля 2000 Г.

Первый взгляд на новый GPU GeForce2 GTS от NVIDIA

GeForce2 GTS — новый GPU от NVIDIA

Итак, компания NVIDIA представила сегодня, 26 апреля, свой новый графический процессор шестого поколения под именем GeForce2 GTS. Ранее это GPU был известен под кодовым именем NV15.

Первые подробности о NV15 мы опубликовали еще в январе этого года. Желающие могут посмотреть раннее превью в архиве и убедиться, что мы никого не обманывали. Более того, даже название нового GPU от NVIDIA мы почти угадали. Тем не менее, в названии присутствует аббревиатура из трех букв — GTS. Расшифровывается это так: GigaTexel Shading. Такая приставка к названию была выбрана не случайно, она сигнализирует о том, что новое детище NVIDIA обладает огромной производительностью и имеет встроенный движок NVIDIA Shading Rasterizer (NSR).

Приведем ключевые параметры нового GPU GeForce2 GTS:

  • 256-разрядное графическое ядро
  • Технологический процесс: 0.18 мкм, 6-слойный процесс
  • Количество транзисторов: 25 млн.
  • Тип корпуса: PBGA, 564 pin
  • Частота графического ядра: 200 МГц
  • Число конвейеров рендеринга: четыре с двумя блоками текстурирования на каждом
  • Частота работы шины памяти: до 200 Мгц, пока планируется использовать только память типа DDR SGRAM с рабочей частотой 166 МГц (результирующая 333 МГц) Поддерживаемые типы памяти: DDR SGRAM и стандартная SDR SDRAM/SGRAM
  • Поддерживаемый объем локальной видеопамяти: от 8 до 128 Мб
  • Ширина полосы пропускания памяти: 5.3 Гб в сек. (пиковая при частоте 166 МГц работы памяти типа DDR)
  • Pixel Fillrate: 800 млн. пикселей в секунду
  • Texel Fillrate:
    • 1 texel per 1 Pixel 800 млн. текселей в секунду
    • 2 texel per 1 Pixel 1600 млн. текселей в секунду
  • RAMDAC: 350 МГц
  • Максимальное разрешение: 2048x1536@75Hz
  • Интегрированный в чип TMDS трансмиттер позволяет подключать цифровые мониторы и поддерживает разрешение вплоть до 1600x1200
  • Интерфейс внешней шины: полная поддержка AGP x2/x4 (включая SBA, DME и Fast Writes) и PCI 2.2 (включая Bus mastering). Режим AGP x4 Fast Writes позволяет использовать метод прямого обмена данными CPU и GPU, минуя системную память компьютера со скоростью до 1 Гб/сек, что должно положительно сказываться на общей производительности и разгружать шину системной памяти. Хотелось бы, наконец, увидеть нормальную поддержку режима Fast Writes в драйверах.

3D-графика:

  • Геометрический движок GeForce2 GTS — аппаратная реализация преобразования координат, установка освещения, clipping (отсечение полигонов, не входящих в конечный кадр)
  • Производительность HW T&L: 25 млн. текстурированных полигонов в секунду (пиковая)
  • Аппаратная установка 8 источников света для всей сцены
  • Полная поддержка OpenGL и DX7 — Tranform & Lighting, Cube environment mapping (кубического текстурирования картами окружения), projective textures (проекция текстур) и компрессия текстур
  • Движок NSR обеспечивает аппаратную поддержку Pixel Shaders через D3D8
  • Поддержка аппаратного сглаживания всей сцены (Full-scene hardware anti-aliasing, HW FSAA)
  • Поддержка реализации таких эффектов, как Motion Blur, Depth of Field через D3D8
  • Полная поддержка методов компрессии DXTC и S3TC через DX и OpenGL соответственно
  • Аппаратная поддержка интерполяции вершин полигонов (vertex blending) с применением двух skinning матриц, чего в большинстве случаев вполне достаточно
  • Рендеринг при 16- и 32-битной глубине представления цвета
  • Аппаратная поддержка рельефного текстурирования следующих типов: Embosing, Dot Product3 и EMBM (наконец-то!)
  • Поддерживаются текстуры вплоть до 2048x2048 @ 32 bit
  • Программируемые режимы смешивания нескольких текстур
  • Буфер шаблонов (стенсель): 8 бит
  • Z-буфер: 16/24/32 бит
  • Полноценная поддержка в драйверах аппаратного ускорения OpenGL 1.2 под ОС Linux

Видео:

  • Поддерживается аппаратное декодирование всех форматов HDTV
  • Поддерживаются все разрешения ATSC, включая 1080i
  • Поддерживается 8-bit режим альфа-смешивания видео и графики (например, это используется для наложения субтитров или анимационных меню)
  • Поддерживается VIP 2.0 порт уровня I (8 бит, 75 МГц), что позволяет подключать внешние MPEG2 декодеры/кодеры.
  • Поддержка Motion Compensation второго поколения
  • Для вывода видеосигнала на ТВ требуется установка TV-кодера, а в сам чип GeForce2 GTS встроен цифровой интерфейс для подключения этих ТВ кодеров

Посмотрим на схематическое представление архитектуры GeForce2 GTS:

Нетрудно заметить, что GeForce2 GTS имеет новый встроенный High-Definition Digital Video Processor (HDVP), позволяющий воспроизводить видео во всех современных форматах, а также интегрированный TMDS трансмиттер, позволяющий подключать по цифровому интерфейсу мониторы. Кроме того, увеличена производительность всех основных блоков нового GPU, по сравнению с GeForce 256. В связи с этим есть основания предполагать, что теперь использование более одного источника освещения типа Directional Light будет существенно меньше сказываться на общей производительности.

Кроме того, к движку растеризации добавлен блок NSR, о котором мы поговорим подробнее ниже.

Для того чтобы наглядно сравнить параметры GeForce2 GTS с GeForce 256, приведем таблицу:

 GeForce 256GeForce2 GTSATI RADEON 256
Технологический процесс, мкм0.220.180.18
Тактовая частота ядра/памяти, МГц120 / 150200 / 166200 / (до 200)
Число пиксельных конвейеров442
Число текстурных блоков на каждом конвейере/всего1 / 22 / 83 / 6
Pixel Fillrate (в режиме мультитекстурирования), MPixels480 / 240800 (800)400 (400)
Texel Fllrate (в режиме мультитекстурирования), MTexels480 / 480800 (1600)400 (800, 1200)
Производительность блока HW T&L, MPolys152530


Отметим одну из ключевых особенностей GeForce2 GTS — наличие двух блоков текстурирования на каждом из четырех пиксельных конвейеров. Это обеспечивает реализацию так называемого бесплатного мультитекстурирования, т.е. когда при наложении двух текстур на один пиксель не снижается общая пиковая величина fillrate. Кроме того, появляется возможность реализовать на аппаратном уровне анизотропную фильтрацию по 16 текстурным семплам, что должно положительно сказаться на качестве 3D графики, даже по сравнению с GeForce 256.

Теперь поговорим более подробно о NSR (NVIDIA Shading Rasterizer).

NSR представляет собой отдельный блок, чья работа тесно связана с работой текстурных блоков. Для наглядности можно сравнить NSR с некой "прослойкой" между текстурными блоками, которая занимается смешиванием текстур по какой-либо формуле, реализуя мультитекстурные эффекты. Приведем пример простой формулы:

( TB1 @ TB2 ) @ TB3

где:

  • TB = texel block — оперирует с одной текстурой
  • @ — операции смешивания. Раньше это были предопределённые операции, а теперь эти операции могут быть запрограммированы разработчиком игры.

Если говорить более детально, то мультитекстурный эффект делается так: берём две текстуры и смешиваем их по какой-то формуле (например, банальный diffuse lightmap это просто умножение, а specular lightmap — это сложение). Полученный результат мы смешиваем по другой формуле со следующей текстурой, и т.д. В спецификации Direct3D 8.0 говорится о смешиваниии 8 текстур. На самом деле, до этого ещё далеко, т.к. количество текстур, которые можно задействовать для multitexture effect, равно количеству параллельных текстурных блоков, которые доступны для формирования одного текселя. В GeForce 256 можно задействовать два текстурных блока для формирования одного текселя (соответственно, можно одновременно смешивать только две текстуры), а в GeForce2 GTS доступно уже четыре текстурных блока (соответственно, можно одновременно смешивать уже четыре текстуры). Правда, можно проводить операции иначе, например, GeForce 256 позволяет использовать 2 текстуры, но при этом иметь 8 стадий эффекта — на оставшихся стадиях можно задействовать "нетекстурные" величины — интерполированный цвет из вершин, t-factor, и т.д..

Итак главное новшество в NSR заключается в том, что у разработчиков игр теперь есть возможность программировать собственные мультитекстурные эффекты с помощью новых формул.

Сами по себе multitexture effects не новость, их можно было делать и раньше. Поэтому, если отбросить маркетинг, то NSR — это не новый блок, а старый, но с дополнительными возможностями. Все мультитекстурные эффекты реализуются на уровне пикселей, а возможность программирования новых мультитекстурных эффектов поддерживается в новом API D3D8 от Microsoft, входящего в состав еще официально не объявленного DirectX 8.0.

В Direct3D 8.0 введен новый термин — Pixel Shader. Это и есть инструментарий, позволяющий осуществлять унифицированные операции над пикселями, т.е. это механизм программирования мультитекстурных эффектов, наряду с использованием заранее определённых эффектов. По сути, Pixel Shader — это API к NSR.

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

По сути, Pixel Shader — это универсальная программируемая замена того, что в DX7 называлось texture stage state, т.е. Pixel Shaders — это метод создания мультитекстурных эффектов "вручную". Если раньше можно было смешивать текстуры только по нескольким заранее заданным формулам (как правило, состоящим из одной-двух операций, например, сложить два аргумента и вычесть из них их произведение), то теперь Pixel Shader — это как бы "программа" смешивания текстур, заданная вручную. С помощью pixel shader можно создать свой собственный эффект при помощи доступных для использования элементарных операций (туда входят операции: сложения, вычитания, деления, умножения и ещё несколько более экзотических, и это можно комбинировать в любом колличестве). Для этого разработчики Microsoft придумали некий псевдо-ассемблер для программирования мультитекстурных эффектов, включающий в себя такие понятия, как:

  • Регистры (registers)
  • Инструкции
  • Texture Address Operations (например, Perturbations):
  • Модификаторы инструкций
  • Модификаторы аргументов инструкций

Теперь реализация мультитекстурных эффектов (multitexture effect) ограничена только фантазией автора — разработчик игры теперь может сам создавать multitexture effect, не ограничиваясь подмножеством, реализованным изначально. Отметим, что при использовании заранее заданных формул всё будет работать быстрее, чем с запрограммированными. Разница в скорости будет из-за того, что при использовании запрограммированных формул будет использоваться конвейер общего назначения (general purpose), а не специально оптимизированный.

Заметим, что для поддержки Pixel Shaders не нужно какого-то специального аппаратного обеспечния, необходимо и достаточно только, чтобы имелась возможность программирования извне блоков текстурирования.

По сути, Pixel Shaders — это серьёзное изменение всей концепции мультитекстурирования. Недостатком такого нововведения является необходимость для разработчиков игр создавать заново модуль мультитекстурирования. К слову, при помощи pixel shader можно создавать точные тени, но, к сожалению, с резкими границами. Плюс ко всему, в некоторых случаях применение pixel shader может сэкономить память, отводимую под текстуры. К слову, EMBM, поддержки которого все ждали в GeForce2 GTS, с точки зрения pixel shader является элементарной операцией (для этого есть специальная команда).

Кроме возможности программирования извне мультитекстурных эффектов, NSR позволяет выполнять одновременно семь различных заранее определенных операций над пикселями:

  • Base Texture (наложение базовой текстуры)
  • Per-Pixel Bump Mapping (рельефное текстурирование)
  • Per-Pixel Diffuse Lighting (рассеянный свет)
  • Per-Pixel Specular Lighting (отраженный свет)
  • Colored Fog (цветной туман)
  • Ambient Light (окружающий свет)
  • Alpha Transparency (прозрачность по альфа-каналу)

Каждая из семи операций выполняется за один проход, что гарантирует отсутствие существенного снижения производительности в целом. Благодаря наличию в GeForce2 GTS четырех пиксельных конвейеров рендеринга, эти семь заранее определенных операций выполняются сразу над четырьмя пикселями параллельно.

Несмотря на то, что часть разработчиков игр довольно скептически отнеслись к самой идее Pixel Shaders, получаемые в итоге эффекты могут перевесить многое. Ниже приведены примеры использования Pixel Shader для реализации различных эффектов:

Composite Pixel Effects      Per-Pixel Bump-map
Composite Pixel Effects                               Per-Pixel Bump-map

Per-Pixel Light
Per-Pixel Light

Нетрудно заметить, что применение специальных эффектов на уровне пикселей позволяет добиться большего реализма при моделировании различных типов текстур и физических явлений. В случае с GeForce2 GTS реализация Pixel Shader сделана на аппаратном уровне. На других картах, где нет аппаратной поддержки, все эти эффекты могут быть реализованы программным путем, т.е. за счет CPU системы.

GeForce2 GTS имеет встроенный HDTV процессор для декодирования всех 18 типов форматов ATSC, включая форматы 720p и 1080i. Наличие интегрированного в GeForce2 GTS TMDS трансмиттера позволяет без установки дополнительных контроллеров подключать по цифровому интерфейсу дисплеи. В итоге, карты на базе GeForce2 GTS могут стать универсальным мультимедиа комбайном, если кто-либо из производителей сделает такие карты. На иллюстрации ниже показано, как можно использовать карту на GeForce2 GTS в качестве мультимедиа центра:

По сравнению с GPU GeForce256 в GeForce2 GTS, как и ожидалось, поддержка воспроизведения различных видеоформатов существенно улучшилась. Для удобства сравнения приведем таблицу:

 GeForce 256GeForce2 GTS
Количество поддерживаемых форматов ATSC (всего 18)1418
Максимальное разрешение при воспроизведении цифрового видео1280x720p241920x1080i30
Загрузка CPU при декодировании DVD50%30%
Поддерживается Video I/O Port (VIP) версии1.12.0
Ширина полосы пропускания для передачи видеоданных27 Mb/sec150 Mb/sec
Буферизация видеоданных (timeshifting)НетДа
Работа в качестве цифрового видеомагнитофонаДаДа


Одновременно с анонсом GeForce2 GTS будет объявлено о производстве карт на его базе сразу восемью компаниями: Acer Group, MSI, ASUS, Gigabyte, Leadtek, Elsa, Creative и Guillemot. Ряд производителей компьютеров, среди которых Dell, Compaq, HP, Micron, Quantex и Gateway, намерены использовать карты на базе GeForce2 GTS в своих системах. Ожидается, что в США первые карты на базе GeForce2 GTS от Creative поступят в небольших объемах в продажу уже в конце апреля по цене $349 за карту с 32 Мб локальной видеопамяти типа DDR SGRAM и ТВ-выходом на борту. Дороговато конечно, но в отсутствии реальной конкуренции ничего другого и не стоит ожидать. Зато позднее, летом, если ATI начнет поставки своих карт на базе RADEON 256, следует ожидать снижения цен на платы с GeForce2 GTS на борту.

Quake3 New Level

Некоторые разработчики игр планируют выпустить специальные уровни для демонстрации возможностей GeForce2 GTS. Например, id Software представит новый уровень для Quake3 Arena (смотри картинку справа), а WXP представит очередную демо "Isle of Morg" на базе движка будущей игры Experience (см. картинку ниже).

Isle of Morg Demo

Что касается производительности карт на базе GeForce2 GTS, то тут все довольно предсказуемо, и первые результаты тестов, которые уже есть в сети, говорят о том, что в реальных играх выигрыш в высоких разрешения будет примерно 25-30% по сравнению с GeForce 256. Этот выигрыш достигается за счет большей величины Pixel Fillrate у GeForce2 GTS. Но это данные по играм, в которых не используется мощь HW T&L. С другой стороны, игр, где действительно в полной мере используются преимущества HW T&L пока считанные единицы. Тем не менее, в 2000 году нам обещают не менее 30 игр, в которых будет полноценная поддержка HW T&L. Подождем — увидим.

Выводы

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

В технологическом плане NVIDIA вновь выступает локомотивом всей игровой индустрии, встроив в свой новый GPU движок NSR. Между тем, анонс DirextX 8.0, в котором есть поддержка pixel shaders ожидается лишь в августе, а это значит, что первые игры, где будут использоваться программируемые мультитекстурные эффекты, реализуемые на пиксельном уровне, могут появиться на рынке самое раннее к концу 2000 года.

Leadtek WinFast Geforce2 GTS Board \ (c) http://www.geforce.ru

К тому времени ожидается анонс очередного GPU от NVIDIA, носящего кодовое имя NV20. Тем не менее, это не значит, что возможности GeForce2 GTS будут использоваться не в полной мере. Кроме поддержки NSR, новый GPU от NVIDIA обладает великолепной производительностью, как движка растеризации (fillrarate 800 млн. пикселей), так и геометрического блока (25 млн. полигонов). Прибавьте к этому мощный блок для декодирования и воспроизведения различных видеоформатов и станет ясно, что звание лидера принадлежит NVIDIA полностью заслуженно.

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

Спасибо Юрию Блажевичу за помощь, оказанную при подготовке материала