Обзор GeForce3 и GeForce3 MX

28.06.2001


Оглавление



Введение

Скользя на гребне научно-технического прогресса, принцип "дальше, выше, сильнее" влечёт за собой неизбежный дух ожидания. Ожидают все - от мала до велика, что будет дальше и, их томит неподдельная надежда, что это будет "круто" и стараются представить себе всё, что с этим связано и, естественно, ожидают. Ожидают того самого "дальше, выше, сильнее"… Кто-то ожидает весьма многого, кто-то чуть меньшего, но это уже, в наши времена, становится не столь важным, т.к. движение всё равно, не умолимо идёт вперёд, не смотря ни на что. Сегодня, в 21-м веке, назревает вполне справедливый вопрос, ответ на который может порушить все предыдущие стереотипы понятий о развитии. Вопрос сильный и неожиданный - а действительно ли лишь наука является двигателем прогресса? Изречённая однажды фраза так глубоко и крепко засела в наших мозгах, что ни кто и не задумывался о более глубоком и, казалось бы, ни кому не важном. На самом деле, наука - это лишь средство достижения прогресса. Двигатель - да, но лишь от части! Настоящим двигателем является потребность и рвение человека к новому, доселе не изведанному, лучшему, чем имеется в данный момент, более интересному и полезному и есть ещё много, много факторов, которые и образуют само понятие "двигатель прогресса". Именно они толкают науку на открытия, достижения, совершенствования и т.п.. Получается замкнутый круг: если наука - двигатель прогресса, то сам прогресс является бесспорным двигателем науки, т.к. люди никогда не хотели останавливаться на достигнутом, а достигая ещё большего, они стремятся ещё дальше. Главное - не стоять на одном месте, не "засыхать" и увеличивать, ускорять, улучшать… Если взглянуть на нас, людей, из космоса, то можно увидеть огромный муравейник - кузницу. Кузницу собственного блага. Кузницу не то, что материального благосостояния, а именно вещественного. Человек с самого истока окружал себя разными вещами, дабы улучшить собственную бытность и максимальным образом ограничить себя от ручного труда. Следовательно, он трудился умственно, а значит - совершенствовался. Как результат таких совершенствований, мы имеем сейчас всё то, что мы имеем в повседневной жизни и… компьютер - одна из таких вещей. Да, да, компьютер теперь уже можно смело назвать повседневностью и, я надеюсь, вы понимаете, почему. Они заполонили нашу жизнь стремительным ураганом, ворвавшись практически во все сферы деятельности человечества и даже в отдых. Одним из способов отдыхать за компьютером - это, конечно же, играть в игры J. Сперва, человека зачастую устраивает даже самая простенькая видеокарточка, но потом приходят новые игры, с более совершенной графикой и простенькая видюшка сдаётся на апгрейд, а вместо неё в слот встаёт более мощный графический ускоритель, а чтобы геймеры могли это осуществлять, для того и трудятся такие фирмы, как Matrox, ATI, nVidia… Бьются между собой за каждого покупателя, делают новые разработки, дабы рынок не застоялся… Об одной из таких новых разработок и пойдёт речь в этой статье. Сегодня мы с вами рассмотрим новое "произведение искусства", новое детище науки и самого прогресса, так давно нами ожидаемого - это видеокарта, на базе нового графического чипа от компании nVidia, под вполне логичным названием GeForce3, а также рассмотрим её клона - более дешёвого варианта, GeForce3 MX и, конечно же, сравним их с ускорителями предыдущего поколения - GeForce2.
Рассмотрим сначала некоторые теоретические аспекты нового поколения чипа GeForce. Здесь мы затронем его некоторые технические особенности и постараемся, как можно более наглядно, их описать.


Спецификации GeForce3

  • Тех. Процесс: 0.15 мкм
  • 57 млн. транзисторов
  • Частота: 200 МГц;
  • 4 пиксельных конвейера, по 2 текстурных модуля на конвейер
  • Наложение до 4 текстур на пиксель за один проход
  • Поддерживается до 128 Мб локальной памяти типа DDR SDRAM или DDR SGRAM*
  • Пропускная способность памяти: 7.6 Гигабайт в секунду
  • Технологии сжатия данных: z-буфер и Z-Occlusion Culling, экономящие полосу пропускания памяти.
  • Программируемый блок T&L, с технологией nFinite FX, мощностью 76 млрд. операций в секунду
  • Поддержка Pixel Shaders и Vertex Shaders версий, соответствующих спецификациям DirectX8
  • Поддержка 3D текстур
  • Поддержка компрессии текстур
  • Поддержка кубических карт среды
  • Рельефное текстурирование DOT3 и EMBM
  • Анизотропная фильтрация по 8, 16 и 32 сэмплам
  • Полноэкранное сглаживание, реализуемое посредством мультисэмплинга

* - большинство выпускаемых карт на чипе GeForce3, имеют 64MB DDR SDRAM памяти, работающей на частоте 460MHz (230MHz DDR)


NVIDIA nfiniteFX Engine

Технология NVIDIA nfiniteFX Engine даёт разработчикам возможность запрограммировать практически бесконечное количество спецэффектов. Если раньше они были ограничены жёстко заданным их набором, то теперь, задав собственные комбинации графических операций, они могут создавать практически любые, требуемые им эффекты. Именно nfiniteFX engine, появившийся в архитектуре GeForce3 и открывает такую возможность, посредством вершинных шейдеров (Vertex Shaders) и пиксельных шейдеров (Pixel Shaders).


Вертексные шейдеры

Вертексный (или вершинный) шейдер - функция обработки графики, или попросту программа, которая служит для добавления спецэффектов к объектам в 3D сцене. Вершинные шейдеры выполняют математические операции над данными о вершинах объекта. Каждая вершина задаётся набором разных данных. Как минимум, каждая вершина привязана к своим координатам x, y и z, определяющим её местоположение. Также, вершина может содержать данные о цвете, альфа-канале, текстуре и о характеристиках освещения, например, о цвете отражения.



Эффекты, доступные с программируемыми вершинными шейдерами


Сложная анимация персонажей

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

Сложная анимация персонажей


Эффекты окружающей среды

Туман, изменяющий плотность в зависимости от высоты, позволяет имитировать утренний туман в низинах, или густой дым в комнате. Большие объекты, вроде холмов, или маленькие объекты, вроде стола и стульев могут выступать из тумана/дыма, поскольку вершинные шейдеры накладывают этот эффект выборочно, в зависимости от высоты каждой вершины.

Эффекты окружающей среды

Если в игре присутствует водоём или океан, для создания реалистичной воды необходимы различные эффекты отражения и преломления. Обратите внимание на узор света, падающего с невидимой поверхности воды сверху. С помощью вершинных шейдеров можно смоделировать преломление света или спроектировать текстуру на 3D пространство так, чтобы рисунок реалистично ложился на объекты.

Эффекты окружающей среды


Процедурная деформация

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

Процедурная деформация


Размытие движения

Вершинные шейдеры можно использовать для создания разных эффектов движения. Размытость объекта создаёт впечатление сверхскорости.

Размытие движения


Программируемость

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



Создание реалистичного освещения и материалов:
программируемые пиксельные шейдеры

Результат работы любого ускорителя 3D графики, мы видим на экране в виде пикселей. В зависимости от разрешения, может потребоваться отрисовать, осветить, наложить эффекты и раскрасить свыше двух миллионов пикселей. Пиксельные шейдеры создают эффекты освещения (и прочие), на пиксельном уровне. Это дает разработчикам беспрецедентный контроль над ускорителем.


Основы пиксельных шейдеров

По мере совершенствования 3D ускорителей, в них добавлялись новые возможности, направленные на улучшение качества изображения. Еще совсем недавно, мы довольствовались билинейной фильтрацией текстур относительно низкого разрешения. Эти маленькие текстуры накладывались на крупные полигоны, в результате чего мы имели размытую и угловатую графику низкого (по сегодняшним меркам) качества. В чипе GeForce2, NVIDIA представила новую технологию: NVIDIA Shading Rasterizer (NSR). NSR дал разработчикам возможность добавлять попиксельные эффекты освещения, включая DOT3 bump mapping. Сегодня же, последняя разработка NVIDIA позволяет разработчикам полностью контролировать процесс шейдинга, используя программируемые пиксельные шейдеры.


Детали архитектуры

Возможности GeForce2 GTS и его "NVIDIA Shading Rasterizer" были весьма ограничены. Для создания эффектов, можно было совмещать текстуры либо однопроходным, либо многопроходным методом. Обратной связи с результатом не было, поэтому эффекты, зависящие от результатов чтения текстурной информации (например EMBM), были попросту невозможны.

Детали архитектуры

Хотя программисты и были в значительной степени ограничены фиксированными возможностями NSR, они могли создавать ряд попиксельных эффектов, в том числе dot3 bump mapping, который выглядел столь реалистично, словно представлял собой сложную, многополигонную модель.


Программируемые пиксельные шейдеры

NVIDIA nfiniteFX engine даёт программистам полную свободу действий, благодаря следующим качествам:

  • Он программируем, что позволяет разработчикам создавать свои собственные попиксельные эффекты
  • Доступно большее число операций над текстурами
  • Теперь возможны операции чтения текстур, с учётом полученных результатов

Программируемые пиксельные шейдеры

Обратите внимание, что архитектура NVIDIA nfiniteFX engine не препятствует использованию текстурных команд DirectX 7. Если разработчик использует для программирования пиксельных шейдеров DirectX 8, то становится возможным выполнение более сложных операций, однако в отличие от вершинных шейдеров, в данном случае нет способа их программной эмуляции. Использование пиксельных шейдеров на ускорителях без их поддержки приводит к тому, что все стадии графического конвейера начинают работать программно и, как следствие, колоссальное падение производительности. Вот лишь один из примеров использования этой технологии. Флаг анимирован, обладает рельефной, отражающей поверхностью. Всего этого невозможно было добиться на ускорителях прошлого поколения.

архитектура NVIDIA nfiniteFX


Bump Mapping

Bump mapping создаёт иллюзию наличия дополнительных геометрических деталей у объекта, вроде неровностей на флаге выше. DOT3 bump mapping требует наложения нескольких текстур. Эти текстуры образуются из карты высот и карты нормалей. Они помогают задать геометрию видимой поверхности. Карта высот - это просто оттенки серого, уровень яркости которых задаёт высоту или глубину. Карта нормалей - это цветовая карта RGB, которая определяет эффект при отражении света от поверхности. Обратите внимание, что слово "нормаль", в данном случае, относится к понятию математической нормали, которая задаёт направление вектора.

Карта высот
карта нормалей
рельефная поверхность

Карта высот  

+

карта нормалей  

 =

рельефная поверхность


Программируемость пиксельных шейдеров

Когда мы говорим о программировании, мы почти всегда понимаем под ним языки программирования, вроде C++ или Бейсика. Программирование же пиксельных шейдеров выполняется на намного более низком уровне - на уровне языка ассемблер. Язык ассемблера для программируемых пиксельных шейдеров из NVIDIA nfiniteFX engine входит в DirectX 8. Разработчики могут программировать Pixel Shaders для создания собственных эффектов, которые по их мнению могут быть нужны в их игре.


Архитектура памяти LightSpeed

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


Проблема 3D графики

Понимание того, как работают 3D-игры, может помочь понять проблемы, которые стоят на пути к повышению производительности графики и эффективности полосы пропускания. Любая игра состоит из четырёх основных компонентов: игровой логики, управления сценой, расчётов геометрии и рендеринга пикселей.


Игровая логика

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


Управление сценой

Чтобы выполнить рендеринг 3Dграфики, требуется сначала создать некую "базу данных", подробно описывающую весь трехмерный мир игры, вплоть до последнего ящика патронов, лежащего глубоко под водой на секретном 38-ом уровне J. Разумеется, такие базы данных очень велики и могут состоять из сотен мегабайт данных. Отрисовка и изображение всех этих данных попросту неосуществима, даже на сегодняшних многопроцессорных графических станциях класса high-end, а значит, эту задачу нужно упростить. Игра должна определить, какую часть базы данных требуется обработать или отрисовать на данный момент. Процесс расчёта по нахождению части базы данных для рендеринга в заданное время, обычно называется "управление сценой". Для решения этой задачи используются различные технологии, каждая из которых подразумевает компромисс между стоимостью вычислений, требованиями к памяти, и точностью. Существуют алгоритмы, минимизирующие количество данных сцены для рендеринга текущего кадра, но обычно они оказываются чрезмерно требовательными к вычислительной мощности, чтобы их можно было использовать на практике. В следствие этого, большинство графических процессоров, фактически рассчитывают количество данных, многократно превышающее то, что в итоге отображается на экране компьютера.


Расчёты геометрии

До недавнего времени, обработкой геометрии графического приложения тоже занимался CPU. Эти расчёты, чаще всего, включали в себя трансформацию геометрии сцены и её освещение. После выхода GeForce256, такого рода вычисления уже могли быть перенесены на сам ускоритель. Снятие геометрической нагрузки с центрального процессора освобождало его ресурсы для игровой логики при том, что современные GPU способны обработать во много раз больше геометрических данных, чем современные CPU. Помимо собственно разгрузки CPU, с помощью аппаратного расчета геометрии, можно значительно улучшить качество трехмерных сцен, вследствие возможности обработки большего количества данных.


Проблема полосы пропускания геометрических данных

Разработчики игр потихоньку начали проникаться открывшимися перед ними возможностями и стали наращивать число полигонов в современных играх. Перенос вычислительной нагрузки с CPU на GPU позволил создавать сцены, где вместо сотен полигонов в кадре, используются десятки или даже сотни тысяч (вспомните Crytek X-Isle). Такие сложные сцены оказались не только визуально захватывающими, но и здорово нагружающими полосу пропускания. Сцена из 100.000 полигонов, по три вершины на каждый полигон, дает нам 300,000 вершин. Каждая вершина, обычно содержит 50 или больше байт информации, которые отводятся на цвет, расположение, освещённость, текстуру и информацию для шейдинга. Следовательно, каждый кадр такой сцены будет содержать 15 Мбайт геометрической информации. Один такой кадр, конечно, не нагрузит системную шину даже простого компьютера, однако требование для прокручивания подобной нагрузки со скоростью 60 кадров в секунду делает это очень сложным, так как требуемая для этого полоса пропускания в 900 Мбайт/секунду нагрузит все подсистемы компьютера до предела.
Одно из препятствий, встречающееся сегодня в архитектуре PC при подобных нагрузках - связь между CPU и GPU, соединенные между собой шиной AGP. Самой продвинутой реализацией AGP сегодня является AGP 4X. Спецификация AGP подразумевает прямое соединение (от точки к точке) между центральным и графическим процессорами. Тем самым, этот интерфейс не разделяется с другими устройствами. Но, не смотря на это, даже 1.0ГБ/секунду, предоставляемый AGP 4X, оказывается недостаточным в геометрически сложных сценах.
NVIDIA разработала несколько методов решения этой проблемы. Первый из них - поверхности высокого порядка.


Поверхности высокого порядка

Традиционно, трехмерные сцены, в реальном времени, строятся из треугольников. Для создания 3D-объектов используются наборы треугольников, каждый из которых строится по трём вершинам (углам треугольника). Однако, для создания детализированного объекта, или объекта с гладкими кривыми, приходится использовать всё большее число треугольников, чтобы добиться нужного числа деталей или достаточной гладкости кривых.
Поверхности высокого порядка позволяют разработчикам создавать объекты, пользуясь кривыми, заданными контрольными точками. Кривая или поверхность, задаваемая набором контрольных точек, называется сплайном. Существует несколько разных видов сплайнов, но их объединяет одна важная деталь - при использовании сплайна из нескольких контрольных точек, вы можете создать довольно сложные, гладкие кривые поверхности. Можно, также, соединить несколько сплайнов вместе и создать сложную кривую поверхность, что при помощи треугольников было бы непросто.

Сложный объект, созданный с использованием поверхностей высокого порядка

Поверхности высокого порядка



Проблема полосы пропускания


Расчёт полосы пропускания памяти для пикселей

Традиционная графическая архитектура строит пиксели, читая и записывая информацию в буфер цвета и z-буфер, при доступе к текстурным данным. Эти операции выполняются для каждого пикселя, участвующего в процессе рендеринга, не зависимо от того, видим он или нет. В большинстве сегодняшних игр, каждый пиксель рисуется 2-3 раза, поскольку одни объекты часто "загораживают" собой другие. Самый простой пример - персонаж игры, стоящий на фоне заднего плана. Пиксели "фона" закрываются персонажем на переднем плане и сложность глубины (т.н. overdraw) такой сцены равняется двум. Чтобы отрисовать один пиксель, графический процессор должен прочесть буфер цвета, чтобы узнать предыдущее значение, прочесть z-величину, чтобы определить глубину сцены для пикселя и прочесть текстурные данные, необходимые для текстурирования этого пикселя. Когда пиксель будет сгенерирован, потребуется записать новое (возможно, смешанное с предыдущим) цветовое значение в буфер цвета и, возможно, записать новую величину для z-буфера. Для каждой такой операции, в 32-битном цвете, потребуется 32 бита или 4 байта на каждое обращение. Получаем:

Чтение цвета (4 байта) + z-чтение (4 байта) + чтение текстуры (4 байта) + запись цвета (4 байта) + z-запись(4 байта) = итого 20 байт

Этот расчёт предполагает, что графический процессор извлекает один 32-битный тексель на пиксель, откуда следует допущение о том, что остальные тексели (необходимые для выполнения билинейной фильтрации) уже находятся в чипе, в кэше текстур. 20 байт могут показаться небольшой порцией данных, но когда полный кадр отрисовывается 2.5 раза на пиксель (средняя сложность глубины), возникает большая нагрузка на полосу пропускания. Рассмотрим разрешение 1024 на 768 пикселей.

Горизонтальное_разрешение х Вертикальное_разрешение х Сложность_глубины х 20 байт/пиксель

    1024    х    768     х    2.5     х     20    =     39, 321, 600 байт / кадр

39.3 мегабайт на кадр х 60 кадров в секунду = 2.4 ГБ/секунду


При рендеринге в более высоком разрешении, при большей частоте кадров, или при большей сложности глубины, требования к полосе пропускания памяти серьёзно возрастут. Сменим разрешение на 1600 х 1200 пикселей:

Горизонтальное_разрешение х Вертикальное_разрешение х Сложность_глубины х 20 байт/пиксель

    1600    х    1200     х    2.5     х     20    =     96, 000, 000 байт / кадр

96 мегабайт на кадр х 60 кадров в секунду = 5.8 ГБ/секунду

Столь громадным запросам к полосе пропускания памяти, сейчас удовлетворяет только память, типа 128bit DDR, но даже при ее использовании, полоса пропускания буфера кадров - один из основных ограничителей на пути к увеличению разрешения и/или fps в играх. Увеличив эффективность построения пикселей графическим процессором, можно добиться значительного улучшения производительности, не увеличивая полосу пропускания памяти буфера кадров. Увеличив скорость буфера кадров (и, тем самым, полосу пропускания памяти) и подняв эффективность построения пикселей, становится возможным поднять скорость рендеринга 3D-графики.
GeForce3 имеет несколько технологий, направленных на улучшение эффективности отрисовки пикселей. Основные из них - это перекрёстный (crossbar) контроллер памяти, поднимающий эффективность доступа к буферу кадров, сжатие z-буфера и система z-occlusion culling, для снижения сложности глубины и уменьшения числа пикселей, которые необходимо считать и записывать в буфер кадров.


Crossbar контроллер памяти

Контроллер памяти - важнейшая часть ускорителя. Поскольку 3D графика сильно зависит от полосы пропускания памяти, улучшение контроллера памяти - ключевой момент в деле увеличения производительности. Не менее важная часть графической системы - буфер кадров, память которого напрямую соединена с графическим процессором. Он содержит информацию о цвете, значениях глубины, текстурах и геометрии и, обычно, является подсистемой с самой большой полосой пропускания.
В сегодняшних разработках, на основе памяти типа DDR, типичный 128-битный контроллер памяти получает информацию в 256-битных "кусках" (так как DDR передаёт в два раза больше информации за одну операцию). Хотя, может показаться, что передача больших объёмов данных в крупных блоках обычно является оптимальной, но на самом деле, в сложных сценах с сотнями тысяч полигонов в кадре, все выглядит несколько иначе.
При построении сложного трехмерного мира, с использованием большого количества треугольников, их размеры могут быть очень маленькими, иногда всего лишь несколько пикселей. Если размер треугольника будет всего лишь 2 пикселя и он состоит из 32-бит цвета и z-значений для каждого пикселя, общий объём данных для такого треугольника составит 32 бита х 2 пикселя, или 64 бита. Если контроллер памяти получает доступ к информации только 256-битными "кусками", то большая часть его работы будет напрасной, поскольку количество передаваемых данных будет, по сути дела, растрачивать впустую значительную часть пропускной способности памяти. В данном примере, традиционный 128-битный контроллер памяти окажется эффективным лишь на 25%, теряя 75% полосы пропускания памяти.
GeForce3 использует совершенно новый перекрёстный контроллер памяти, который оптимизирован для доступа к буферу кадров путём использования точной схемы доступа, допускающей передачу до 64 бит информации в режиме отдельной операции доступа. Таким образом, обеспечивается полная эффективность каждой такой операции и минимизируются потери полосы пропускания буфера кадров. В то же время, контроллер памяти по-прежнему может получать 256 бит информации за такт, что позволяет максимально полно использовать возможности графического процессора. Это достигается за счёт использования четырёх независимых контроллеров памяти, каждый из которых связан с остальными 3-мя и графическим процессором.
При серьёзной нагрузке, перекрёстный контроллер памяти GeForce3 может оказаться гораздо более эффективным, чем традиционные разработки.

Перекрёстный контроллер памяти GeForce3



Сжатие z-буфера

Z-буфер воспроизводит информацию о глубине или "видимости" на экране пикселей, которые, в итоге, будут отображены после рендеринга. Обычно, графические процессоры читают и записывают z-данные для каждого пикселя, обрабатываемого ими, что делает их поток одним из крупнейших "потребителей" полосы пропускания памяти в графической системе. Использование компрессии данных Z-буфера, с коэффициентом сжатия 4:1, позволяет снизить их поток в четыре раза. Система z-сжатия встроена в аппаратную часть и работает для всех существующих и будущих игр. Поскольку сжатие происходит без потерь информации, сохраняется качество изображения и точность данных Z-буфера. В результате применения данной технологии, возрастает эффективность использования полосы пропускания памяти и, как следствие, увеличение производительности.


Z-Occlusion Culling

Как было сказано выше, традиционная графическая архитектура строит каждый пиксель каждого треугольника, как только получает данные и обращается к буферу кадров, чтобы определить нужные значения цвета и глубины для каждого пикселя. Такой метод даёт корректный результат, но путём отрисовки всех пикселей, независимо от их видимости. Типичная игра имеет сложность глубины (количество перекрытий или overdraw), равную двум. Это значит, что для получения каждого видимого пикселя, на самом деле, необходимо построить два пикселя (в среднем). То есть, для каждого итогового пикселя, графический процессор должен дважды выполнить операции доступа к буферу кадров, таким образом потратив полосу пропускания буфера на отрисовку невидимых пикселей.
GeForce3 использует технологию z-occlusion culling, с помощью которой пытается заранее определить видимость каждого пикселя. Если модуль z-occlusion culling обнаружит, что пиксель будет "спрятан", то он не отрисовывается, доступ к буферу кадров не производится и его полоса пропускания экономится. При большой сложности глубины сцены, это может привести к значительной прибавке производительности. Для большинства "средних" игр, в которых overdraw, в среднем, равняется двум, эта технология может снизить поток данных до 50%. В более сложных, в которых overdraw достигает четырёх, выгода может быть ещё больше.
Дополнительная технология, которая однако требует от разработчика игры поддержки в софте - это "occlusion query" (или проверка перекрытий). Суть ее в том, что приложение посылает запрос графическому процессору, чтобы тот "проверил", будет ли виден тот или иной объект (например монстр за стенкой) или нет. Если GPU определит, что монстр будет закрыт стеной, тогда вся соответствующая геометрия и данные для отрисовки из этого монстра будут пропущены. Это может на порядок увеличить скорость заполнения (fillrate) и сохранить полосу пропускания памяти и время на их отрисовку.
Данные технологии эффективно увеличивают полосу пропускания GeForce3, путём повышения эффективности полосы пропускания буфера кадров и более эффективного использования этого буфера, избавив его от "невидимых" пикселей.



Переход на страницу:

 1 

 2 

 3 

 4 

 5 

 6 

 7 

 8 

 9 

 10