1998 год. Третье поколение 3D акселераторов. Обязательные условия: поддержка мультитекстурирования, трилинейной фильтрации, высокая скорость заполнения, поддержка больших разрешений. Специалисты nVidia прекрасно понимали, что выиграть на рынке 3D акселераторов третьего поколения сможет только действительно качественный продукт. И чтобы выиграть, нужно будет хорошо побороться за звание лучшего. А бороться было с кем. По скорости на рынке господствует конфигурация из двух Voodoo2 в SLI режиме. По качеству в Direct3D - Matrox G200. Другие продукты, как, например, Permedia 2, Verite 2x00 имеют хорошую поддержку OpenGL. Кроме того, фирмы 3dfx, ATI Technologies Inc. и 3Dlabs анонсируют свои продукты, претендующие на звание акселераторов третьего поколения. Именно такая ситуация складывалась в мире 3D акселераторов. Но nVidia нашла правильное решение.
RivaTNT - вот каким был её ответ. Технология TwinTexel, обеспечивающая присутствие двух текстурных модулей в одном чипе, 128 битный доступ к памяти, 128 битный конвейер рендеринга, поддержка AGP2x, OpenGL ICD, Direct3D версии 6.0Рассмотрим характеристики Riva TNTnVidia Riva TNTType2D/3DТехнология 0.35 МикронКоличество транзисторов 7 МиллионовЧастота ядра 90 МГцЧастота памяти 110 МГцШина памяти 128 битПропускная способность памяти 1.8 Gb/sec. Throughput6 MPolys/secFillrate 90 Mpixels/sec180 Mtexels/secAPI DirectX 6.0 / OpenGLOpenGL ICDRAMDAC 250 МГцMemory vol. Up to 16 MbMemory type SDRAM / SGRAMMax 3D reolution 1920x1200Макс. размер текстур 2048х204832-bit rendering ДаZ-Buffer 16 / 24 / 32 битПоддержка шаблонов ДаБуфер шаблонов 8 битEffectsMultitexturing ДаТекстур за такт 2Пиксельный MipMapping ДаAutoMipmapping ДаFiltering Bilinear, Trilinear, AnisotropicAntialiasing ДаEdge Antialiasing ДаBumpMapping EmossingEnv. Mapping ДаТекстуры в видеопамяти ДаТекстуры в ОЗУ ДаDVD-декодер НетInterface PCI / AGP2xDiME НетКакие были улучшения по сравнению с Riva 128ZX? Прежде всего, Riva TNT - это абсолютно новый чип, а не доработка старого (как Riva 128ZX).Новая технология Twin-Texel позволяет накладывать две текстуры на один пиксел за такт в режиме мультитекстурирования. Таким образом, можно было накладывать на пиксел текстуру и карту освещённости без потери скорости. Если приложение не использовало мультитекстурирование, Riva TNT накладывала одну текстуру на два пиксела за такт. Это означает, что в режиме мультитекстурирования скорость заполнения (fillrate) должна почти в два раза быть меньше, чем в обычном режиме. Однако, на практике при применении мультитекстурирования в приложениях скорость возрастает в среднем от 10 до 40 процентов. Так что возможность накладывать две текстуры за такт - лакомый кусочек, реализованый в TNT.8-битный буфер шаблонов. С помощью этой функции можно было получать вполне реальные тени. По-настоящему пригодилась в играх Unreal и Quake III Arena. В последней игре засчёт 8-битного буфера шаблонов получались самые реальные тени из тех, что я видел в играх. Z-Buffer разрядностью 16 и 24 бит. По сравнению с Riva 128ZX, где Z-Buffer был только 16 разрядный, значительно повышалось качество картинки. Поддержка до 16 Мегабайт памяти. Позволяла устанавливать разрешения вплоть до 1920х1200.32-битный рендеринг улучшал качество выводимой картинкиПополигонный мипмаппинг в некоторых случаях улучшал качество картинкиПоддержка процедурных текстур. Достаточно новая возможность. Процедурные текстуры можно увидеть в Unreal, Quake 3 Arena. Они использовались для создания воды, энергетических полей и так далее. Довольно полезная вещь. StripsПоддержка Strips. Полигоны могут располагаться беспорядочно, а могут быть отсортированы в полосы. В этом случае у каждого полигона передаются данные только по одной вершине вместо трёх. Засчёт этого производительность обработки 25-пиксельных полигонов увеличивается почти в три(!) раза. Riva TNT поддерживает три типа фильтрации: Билинейная, Трилинейная и Анизотропная. Вот здесь нужно остановиться более подробно. Билинейную фильтрацию поддерживают все 3D чипы на сегодняшний день, так же было и в 1998 году. А вот с трилинейной фильтрацией у Riva TNT были проблемы. В то время было очень важно включать аппаратную поддержку трилинейной фильтрации в новые 3D чипы. Вот поэтому некоторые производители обманывали покупателей при помощи так называемой "аппроксимации", что в переводе означало приближение. Суть её заключалась в том, что фильтрации подвергаются только области перехода между MIP уровнями. Этот метод был очень эффективен по скорости, но никак не годился по качеству. Качество картинки при использовании трилинейной аппроксимации падало и выглядело хуже, чем при билинейной фильтрации. Но аппроксимация была не такой ресурсоёмкой, как честная трилинейка, поэтому при её включении скорость практически не падала. Так вот. В Riva TNT была реализована именно аппроксимация. Зачем? Чтобы можно было спокойно говорить о поддержке трилинейки в играх, предъявляя результаты и умалчивая о том, что это - аппроксимация. Честную трилинейную фильтрацию можно получить, отключив мультитекстурирование. На картинке ниже слева представлена трилинейная фильтрация, а справа - аппроксимация.
|