Введение
После выхода Matrox Millennium G400, платы, замечательной во всех отношениях, как по скорости, так и по качеству, от компании Matrox ожидали постепенного наращивания скоростей в будущих чипах - G600, G800 и т.д.. Однако, после G400 компания выпустила лишь модифицированную версию G400 - чип G450. Видеокарты на базе G450 отлично зарекомендовали себя как "рабочие" лошадки для людей, требовательных к качеству изображения на экране, но на фоне появившихся новинок от конкурентов в играх смотрелись очень блекло.
После G450 появился чип G550, также не впечатливший высокой производительностью, однако, видеокарты Matrox Millennium G550 обеспечивали хорошее качество вывода изображения на монитор, а также, поддержку цифровых мониторов. Как развитие G450, G550 опять оказался больше "рабочим", нежели "игровым" чипом, и никакого посягательства компании Matrox на лидерство среди игровых видеокарт мы опять не увидели.
Такая ситуация могла привести к полной потере присутствия компании Matrox на рынке видеокарт, тем более, если учесть, что даже в "ударной" области видеокарт от Matrox - в качестве вывода изображения на монитор - у компании появились серьезные конкуренты.
Однако, забыть о Matrox нам, к счастью, не удастся - через 11 месяцев после объявления G550, 14 мая 2002 года, компания объявила новый чип -
Matrox Parhelia-512.
Возможности и особенности Parhelia-512
Блок-схема чипа Matrox Parhelia-512:Общие сведения:
Технология изготовления - 0,15 мкм;
80 миллионов транзисторов;
Тактовая частота - 200/220 МГц;
Контроллер памяти - 256 бит DDR SDRAM;
Частота видеопамяти - 500 (250 DDR) МГц / 550(275 DDR) МГц;
Объем видеопамяти - до 256 МБ;
Поддержка интерфейсов PCI 2.2, AGP 2.0 и AGP 3.0, протоколов AGP 1x/2x/4x;
Поддержка ACPI, PCI Bus Power Management 1.1;
3D-часть:
4 пиксельных конвейера с четырьмя текстурными модулями на каждом;
Поддержка наложения до 4 текстур за один проход;
Динамический менеджмент текстурных блоков;
Поддержка билинейной, трилинейной и анизотропной фильтрации текстур;
Анизотропная фильтрация текстур с числом сэмплов до 16 (уровень анизотропии - до 4);
Поддержка компрессии текстур S3TC/DXTC;
Поддержка объемных текстур;
Поддержка проецируемых текстур и рендеринга в текстуры;
Поддержка плоских, сферических и объемных карт среды;
Поддержка имитации рельефности методами EMBM, Dot3, Emboss;
Аппаратная поддержка пиксельных шейдеров DirectX 8.1 версии 1.3;
Аппаратная поддержка вершинных шейдеров DirectX 8.1 версии 1.1 и DirectX 9 версии 2.0;
4-конвейерный блок T&L и вершинных шейдеров;
Поддержка одновременной обработки до 16 вершин;
Поддержка адаптивной тесселляции полигонов с плавным изменением уровня детализации (Depth-Adaptive Tessellation);
Поддержка сплайнов Безье, N-патчей;
Поддержка карт смещения (Displacement Maps);
Поддержка билинейной и трилинейной фильтрации карт смещения (Vertex Texturing);
Полноэкранное сглаживание методом суперсэмплинга с количеством субпикселов 4 (2х2);
Полноэкранное сглаживание Fragment Antialiasing с качеством, равным суперсэмплингу 16х (4х4);
Кэширование текстур, вершин, инструкций, пикселей и Z-буфера;
Поддержка текстур и буфера кадра с повышенной точностью цвета - 10 бит на канал (ARGB 2:10:10:10);
Поддержка игр в режиме TripleHead - Surround Gaming;
2D-часть:
Два встроенных RAMDAC с частотой преобразования 400 МГц и точностью цвета 10 бит на канал;
Два внешних TMDS-трансмиттера с частотой преобразования 165 МГц и точностью цвета 10 бит на канал;
Специализированный RAMDAC для работы в режиме TripleHead;
Встроенный блок вывода изображения на TV (TV-Encoder) c точностью цвета 10 бит на канал;
Поддержка мультимониторных конфигураций в режимах DualHead, TripleHead, Clone, Zoom и DVDMax;
Аппаратная поддержка функций GDI и DirectDraw Windows XP;
Поддержка работы в графических режимах с точностью цвета в 10 бит на канал;
Аппаратное сглаживание шрифтов Glyph Antialiasing;
Поддержка вывода видео в режимах с точностью цвета 10 бит на канал;
Поддержка оверлеев с 8-битных альфа-каналом;
Независимая гамма-коррекция оверлеев;
Масштабирование видео с использованием фильтра 4х4 с программируемыми коэффициентами и бикубической интерполяции;
Адаптивный попиксельный деинтерлейсинг;
Максимальное разрешение на CRT- 2048x1536;
Максимальное разрешение на DVI - 2560х2048;
Максимальное суммарное разрешение на DVI в режиме TripleHead - 3840x1024;
Максимальное разрешение на TV - 1024x768;
Некоторые особенности и возможности, перечисленные в этом внушительном списке, заслуживают пристального внимания и нуждаются в особых пояснениях:
Gigacolor Technology: Как известно, все современные видеокарты и операционные системы используют разложение цвета на три составляющих - красный, зеленый и синий компоненты (каналы). При хранении значения цвета на каждый из цветовых компонентов отводится максимум восемь бит. То есть, значение каждого из из цветовых компонентов может находиться в пределах от 0 до 255 (2^8-1). Количество вариантов сочетаний трех этих величин равно
16777216 (256x256x256), таким образом, при обычной организации хранения цвета максимальное количество оттенков, которые можно отобразить на мониторе, составляет около 16 миллионов.
Технология
Gigacolor - одна из "ударных" позиций Matrox Parhelia-512. Суть этой технологии состоит в увеличении точности воспроизведения цветов. При использовании Gigacolor на каждый из цветовых компонентов в записи цвета пиксела отводится по 10 бит, соответственно, каждый из цветовых компонентов (каналов) может принимать значение от 0 до 1023 (2^10-1), а общее количество оттенков цвета, отображаемых на мониторе, увеличивается до
1073741824 - больше одного миллиарда.
Matrox Parhelia поддерживает работу с 10-битным представлением цветовых компонентов на всем протяжении графического конвейера, включая поддержку текстур с точностью цвета 10 бит на канал (ARGB 2:10:10:10), внутренние вычисления с повышенной точностью, форматы буфера кадра с точностью 10 бит на канал (ARGB 2:10:10:10), а также, обработку видео и оверлеев. Вывод изображения обеспечивается блоком TV-Out, RAMDAC и TMDS-трансиверами, работающими с такой же точностью цвета в 10 бит на цветовую компоненту.
Единственный недостаток Gigacolor состоит в том, что при увеличении количества бит, отводящихся на каждую из цветовых составляющих, общее количество бит на пиксел не изменилось - запись пиксела по-прежнему состоит из 32 бит. Для увеличения точности цвета пришлось пожертвовать остальной частью записи пиксела, сократив её до 2 бит. Проблема состоит как раз в том, что эта часть записи обычно используется для хранения значения альфа-канала (прозрачности). В результате в тех случаях, когда требуется более чем двухбитная точность альфа-канала, использование режима Gigacolor невозможно.
Мультимониторные конфигурации, TripleHead, Surround Gaming: Matrox Parhelia-512 поддерживает все мультимониторные возможности своего предшественника, Matrox Millennium G550 - DualHead Clone, DualHead Zoom, DualHead Multi-Display и DualHead DVDMax:
Однако, Matrox Parhelia-512 добавляет к этим режимам еще один мультимониторный режим -
TripleHead.
В этом режиме видеокарта обеспечивает вывод изображения сразу на три монитора в режиме расширения рабочего стола, при этом на всех мониторах установлено одинаковое разрешение, а изображение не имеет смещения при переходе от одного монитора к другому (Stretched Mode). Этот режим особенно удобен для тех, кому нужна большая полезная площадь рабочего стола:
Недостатком TripleHead является то, что при работе в этом режиме все три монитора должны иметь одинаковое разрешение и глубину цвета, а также, если это CRT-мониторы, одинаковую частоту кадров. В режиме TripleHead не поддерживается вывод на TV.
Еще одним минусом режима TripleHead является то, что в этом режиме не поддерживается технология Gigacolor.
Surround Gaming - поддержка буфера кадра утроенной ширины и вывода изображения в играх сразу на три монитора. При этом, например, в 3D-Action или автосимуляторе поле зрения игрока значительно увеличивается по ширине, не изменяясь по высоте.
Любители симуляторов смогут по достоинству оценить такой широкий обзор.
Если говорить о недостатках Surround Gaming, то ко всем недостаткам режима TripleHead теперь добавилось значительное повышение нагрузки на видеокарту и риск получить неиграбельную скорость.
Адаптивная тесселляция полигонов: Адаптивная тесселляция полигонов - еще одна из ключевых и самых интересных возможностей Matrox Parhelia. Так как аппаратная поддержка адаптивной тесселляции полигонов войдет в требования, предъявляемые к DirectX9-совместимым видеокартам, рассмотрим эту технологию подробнее.
Тесселляция - это разбиение, "измельчение" треугольников, при котором обеспечивается более высокая детализация модели. Технология TruForm от ATI, например, обеспечивает как раз такое разбиение, причем, вершины новых, более мелких полигонов лежат не в одной плоскости с вершинами разбиваемого треугольника, а на поверхности, задаваемой направлениями нормалей в вершинах исходного треугольника (подробнее об этом можно прочитать в документах
Truform и
Curved PN Triangles , опубликованных
на сайте компании ATI). В результате треугольник при всё более мелком разбиении превращается во всё более гладкий "лоскут", и модель, состоящая из таких "лоскутов" (N-патчей) вместо исходных треугольников, выглядит намного более естественно. На рисунке в верхнем ряду показан исходный треугольник и несколько уровней тесселляции, а в нижнем - "лоскуты", образованные этим треугольником:
При использовании такого вида тесселляции графическому чипу не передаётся никаких дополнительных данных - всё, что нужно для работы алгоритма (координаты вершин и нормалей), уже содержится в описании вершин треугольника. А это значит, что объем данных, описывающих модели, при использовании технологий типа TruForm не только не увеличивается, но его можно даже снизить, снизив количество исходных полигонов модели.
Но можно пойти и дальше, позволив "железу" выбирать, какой уровень тесселляции нужен для того или иного треугольника. Например, можно для близких объектов использовать максимальный уровень тесселляции, а для удаленных - не использовать вообще. Таким образом можно значительно снизить количество вершин, обрабатываемых геометрическим конвейером чипа (в блоки T&L и вершинных шейдеров для расчёта геометрии попадают не только исходные вершины полигона, но и вершины, созданные в процессе тесселляции), то есть, увеличить скорость, практически не потеряв в качестве.
Однако, здесь может возникнуть проблема. Представьте себе модель, состоящую из двух полигонов, причем, тот, который находится ближе к наблюдателю, имеет больший уровень тесселляции по сравнению с другим:
Тесселляция привела к некорректному результату: полигоны имеют общее ребро, каждый из полигонов образовал на этом ребре новые вершины, но эти вершины не совпадают. В результате в модели появились "зазоры", обозначенные красным цветом. Очевидно, такой алгоритм адаптивной тесселляции работает неудовлетворительно.
Решить эту проблему можно, введя
непрерывную тесселляцию полигонов.
Непрерывная тесселляция. Обычное разбиение треугольников, например, при действии TruForm, подразумевает целочисленные уровни тесселляции - каждое ребро исходного треугольника разбивается на два, три, четыре и т.д. отрезка на первом, втором, третьем и т.д. уровне разбиения.
Алгоритм, осуществляющий непрерывную тесселляцию, должен обеспечивать плавное изменение разбиения треугольников при плавном изменении уровня тесселляции. Перечислим условия, которые должен выполнять алгоритм непрерывной тесселляции:
Равномерное непрерывное изменение уровня тесселляции должно обеспечивать равномерное непрерывное изменение разбиения.
При разбиении не должно возникать "висящих вершин" и "Т-соединений" (T-junction), так как при трансформации образованных вершин могут возникнуть "дырки" в модели:
Не может существовать дробного количества вершин.
Для обеспечения отсутствия "дергания" (popping) в тех случаях, когда внезапно изменяется количество вершин, разбивающих ребро полигона на отрезки, при появлении каких-либо новых вершин и при удалении ненужных вершин положение этих появляющихся или пропадающих вершин должно совпадать с положением тех вершин, которые на данном уровне тесселляции не подверглись изменениям.
Уровень тесселляции должен задаваться не для всего исходного полигона в целом, а для каждого из его ребер в отдельности. В противном случае может оказаться так, что какое-либо ребро, являющееся общим для двух полигонов, будет разбито каждым полигоном в соответствии с собственным значением уровня тесселляции. Это приведет, опять же, к появлению "дырок" в моделях.
Этим условиям удовлетворяет, например, такой алгоритм непрерывной тесселляции:
Здесь при переходе от нулевого к первому уровню тесселляции появляются дополнительные вершины, совпадающие с исходными вершинами треугольника. При увеличении уровня тесселляции эти вершины постепенно сдвигаются ближе к серединам ребер, и в конце концов занимают положения на серединах ребер. В нижнем ряду показано, как при этом изменяется вид модели, состоящей из одного этого треугольника. Очевидно, что модель при плавном увеличении уровня тесселляции изменяется плавно, без "дергания".
Адаптивная тесселляция полигонов от Matrox,
Depth-Adaptive Tessellation, имеет более сложный вид, но подчиняется тем вышеперечисленным условиям, которые предъявляются к алгоритму непрерывной тесселляции.
При задействовании Depth-Adaptive Tessellation уже на нулевом уровне тесселляции исходный треугольник разбивается на 6 треугольников, образованных тремя вершинами, расположенных на серединах ребер и вершиной, находящейся в точке пересечения медиан. При переходе от нулевого к первому уровню тесселляции появляется еще 12 вершин, а общее количество треугольников в разбиении увеличивается до 22.
Плавное увеличение уровня тесселляции приводит к "раздвиганию" вершин, расположенных на рёбрах и внутри исходного треугольника до тех пор, пока вершины не займут свои места, а образовавшаяся сетка из треугольников не станет равномерной.
При дальнейшем увеличении уровня тесселляции, то есть, при плавном переходе от первого ко второму уровню разбиения, появляется еще 6 вершин, а количество треугольников в разбиении увеличивается до 31.
Далее вершины опять "раздвигаются" до тех пор, пока сетка из образованных треугольников опять не станет равномерной:
Такая схема разбиения при увеличении уровня тесселляции повторяется вновь и вновь, и при любом целом значении уровня тесселляции сетка из образованных треугольников будет равномерной.
На примере выше был показан идеальный случай, при котором уровень тесселляции для каждого из ребер исходного треугольника одинаков. На самом деле уровни тесселляции для ребер треугольников могут различаться, причем уровень тесселляции выбирается в зависимости от расстояния между вершинами ребра и точкой, в которой находится наблюдатель, чем ближе к наблюдателю расположено ребро, тем более высокий уровень тесселляции используется для ребра. Отсюда и название запатентованного аглоритма от Matrox -
Depth-Adaptive Tessellation.
Ниже приведен пример адаптивной тесселляции от Matrox "в работе". Картинка взята из демо "Mars" и обработана для лучшей наглядности. Рёбра исходных полигонов выделены более жирными линиями:
Демонстрационная программа "Mars" показывает, как из сетки, состоящей из треугольников, лежащих на одной плоскости, при применении адаптивной тесселляции и применении
карт смещения можно создать сложную модель рельефа местности.
Карты смещения (Displacement Mapping): Аппаратная поддержка карт смещения (Displacement Mapping) - давняя мечта разработчиков, желающих корректно отображать рельефные модели, не прибегая к их чрезмерному усложнению из-за необходимости описания неровностей отдельными полигонами.
Существующие технологии отображения рельефности лишь имитируют рельеф, и даже самые совершенные из них EMBM и Dot3 на деле не изменяют геометрию модели, лишь обеспечивая иллюзию рельефности за счет "продвинутого" расчета текстур и освещения и наложения карт отражения.
На приведенном ниже примере от Matrox показана исходная модель, действие EMBM и действие карт смещения:
Очевидно, карты смещения обеспечивают наиболее корректное отображение рельефности, внося изменения в геометрическое представление модели.
Как действует механизм наложения карт смещения?
Для смещения вершин используется
карта смещения - по сути, это обычная текстура, но значения которые она хранит, интерпретируются не как цвета, а как величины смещения для вершин. Для каждой вершины полигона выбирается соответствующее ей значение из карты смещения, затем эта вершина смещается относительно своей начальной позиции вдоль нормали, определенной в этой вершине, на величину, выбранную из карты смещения. Упрощенный случай с одномерной картой смещения изображен на рисунке:
Если на полигон "натянута" карта смещения и этот полигон подвергнут тесселляции, то вершины, образованные при тесселляции, также подвергаются смещению в соответствии с выбранными из карты смещения значениями. Это наглядно иллюстрирует следующая картинка : слева изображена исходная плоская модель и модель, подвергнутая тесселляции, справа вверху - карта смещения и модель, подвергнутая действию карты смещения, справа внизу - конечный вид модели с наложенной текстурой:
Очевидно, что использование тесселляции вместе с картами смещения позволяет задавать сложные поверхности очень небольшими объемами данных - всего лишь несколькими полигонами и примененной к ним картой смещения. Как мы уже говорили, использовании адаптивной тесселляции при небольших потерях в качестве к тому же еще и снизит требования к вычислительным ресурсам графического ядра.
Однако, здесь может возникнуть проблема: При плавном "гулянии" вершин вдоль ребер, как это реализовано в алгоритме адаптивной тесселляции от Matrox, будут меняться координаты этих вершин на карте смещения. А это значит, что вершины будут "скакать" при переходе к новым координатам на карте смещения. Это, разумеется, неприемлемо.
"Текстурирование вершин" (Vertex Texturing): Обработку таких ситуаций, и вообще, выборку значения из карты смещения компания Matrox назвала термином "
Vertex Texturing". "Скакание" вершин устраняется очень просто: как и в случае с обычными текстурами, при выборке значения из карты смещения применяется билинейная фильтрация по четырем ближайшим соседним значениям.
Помимо этого, для карт смещения, как и для обычных текстур, генерируются и используются MIP-уровни. Для чего это делается - очевидно: при применении адаптивной тесселляции (Depth-adaptive Tessellation) на больших расстояниях от наблюдателя модель становится менее детализированной, поэтому необходимо делать менее детализированными и карты смещения.
Для того, чтобы избежать "скачков" вершин при переходе с одного MIP-уровня карты смещения на другой, для выборки значения смещения для вершины используется линейная интерполяция по двум значениям, выбранным с соседних MIP-уровней карты смещения, то есть, полноценная трилинейная фильтрация текстуры, в нашем случае - трилинейная фильтрация карты смещения.
При трилинейной фильтрации карт смещения в любых условиях никаких "скачков" вершин и прочих неприятных эффектов не будет: при приближении модель будет плавно "обрастать" деталями, точно так же, как неясная удаленная текстура на модели при плавном приближении будет становиться более и более детализированной. Это иллюстрирует следующий рисунок: слева - модель и MIP-уровни её карты смещения, справа - модель и MIP-уровни её текстуры:
Карты смещения - гибкий и мощный инструмент для создания рельефных объектов. Например, использую одну и туже модель, при применении разных карт смещения можно добиться совершенно разных результатов. Matrox показывает это на примере демонстрационной программы Character Demo, где из модели, соответствующей человеческой фигуре, при применении различных карт смещения получаются совершенно разные "инопланетяне":
Карты смещения, как и обычные текстуры, совсем не обязательно должны быть статичными. Их можно как угодно изменять, обновлять или, вообще, генерировать заново для каждого кадра. При этом, например, для авиасимулятора можно создать поверхность океана с движущимися по нему волнами, а для стратегии - рельеф поля боя с окопами, противотанковыми рвами и остающимися на месте разрывов воронками...
В общем, возможности применения карт смещения впечатляют, а то, что поддержка карт смещения входит в требования DirectX 9, гарантирует то, что эта функция станет стандартом для DirectX9-совместимых ускорителей. Остается лишь "самая малость" - нужно, чтобы разработчики игр тоже впечатлились и начали использовать карты смещения в играх :).
Динамический менеджмент текстурных модулей Matrox Parhelia имеет организацию 4х4 - 4 пиксельных конвейера с четырьмя текстурными модулями на каждом.
Казалось бы, такое количество текстурных модулей должно обеспечить просто гигантскую скорость текстурирования полигонов по сравнению с конкурентами - например, у ATI RADEON 8500 и NVIDIA GeForce4 Ti4600 по четыре пиксельных конвейера с двумя текстурными модулями на каждом.
Однако, текстурные модули Matrox Parhelia, в отличие от конкурентов, за такт способны выбирать из текстуры только четыре текстурных сэмпла, то есть, производить только билинейную фильтрацию.
Для выполнения трилинейной фильтрации текстурные модули Parhelia объединяются парами, при этом из текстуры выбирается восемь текстурных сэмплов, по четыре с двух соседних MIP-уровней текстуры, и выполняется трилинейная фильтрация.
При использовании анизотропной фильтрации текстурные модули также объединяются, приводя к снижению скорости текстурирования.
О том, как реализована анизотропная фильтрация на Matrox Parhelia, стоит рассказать подробнее. При анизотропной фильтрации проекция пиксела на поверхность модели рассматривается не как точка, а как вытянутый эллипс:
Для того, чтобы корректно вычислить цвет пиксела, нужно сложить с соответствующими коэффициентами цвета всех текстурных сэмплов, попавших в эллипс. Это слишком сложная задача для расчета в реальном времени, поэтому используется упрощение. Вдоль длинной оси эллипса расставляется несколько точек, в которых выполняется билинейная фильтрация, и для получения конечного значения цвета полученные значения усредняются:
Вычисление расположения точек на плоскости тоже упрощено - чип один раз вычисляет позицию начальной точки и приращения по осям текстурных координат, а затем нужное количество раз смещает эту точку и выполняет в новой позиции билинейную фильтрацию.
Количество точек и расстояние между ними соответствуют уровню анизотропии - соотношению длинной и короткой осей эллипса:
Соответственно, на высоких уровнях анизотропии будет использоваться большое количество отсчетов, а на маленьких - малое. Минимальное количество отсчетов - один, то есть, в некоторых случаях анизотропная фильтрация может "деградировать" до билинейной. Это автоматически избавляет чип от необходимости выполнять анизотропную фильтрацию в тех местах, где это не требуется.
Таким образом, драйвер лишь определяет максимальный уровень анизотропии, а чип уже сам определяет необходимое количество текстурных сэмплов в каждом конкретном случае.
К слову, так же организована анизотропная фильтрация в чипах от NVIDIA серии
GeForce3 / GeForce4 Ti. Впрочем, у Matrox Parhelia-512 есть свои особенности:
Во-первых, текстурные модули Parhelia-512 не в состоянии выбирать по восемь текстурных сэмплов за такт для выполнения билинейной фильтрации одновременно на двух соседних MIP-уровнях, следовательно сочетание анизотропной и трилинейной фильтрации на Parhelia приведет к задействованию всех четырех текстурных модулей для наложения одной текстуры. То есть, если в такой ситуации будет использоваться наложение более чем одной текстуры, чип Parhelia-512 будет вынужден затрачивать дополнительный такт на наложение каждой дополнительной текстуры.
Эта ситуация немного отличается от той, что наблюдается на чипах NVIDIA GeForce3 Ti / GeForce4 Ti - эти чипы затрачивают дополнительные такты не при увеличении количества текстур, а при увеличении уровня анизотропии, по одному такту на каждую из дополнительных операций билинейной или трилинейной фильтрации.
Из-за того, что текстурные модули Parhelia могут переконфигурироваться, использование анизотропной фильтрации по 8 сэмплам (уровня 2) на двух текстурах или трилинейной фильтрации и анизотропной фильтрации по 8 сэмплам на одной текстуре, теоретически, не должно привести к падению производительности, в отличие от NVIDIA GeForce3 Ti / GeForce4 Ti, где любое увеличение уровня анизотропии приводит к затратам в виде дополнительных тактов.
Во-вторых, как показало тестирование, максимальный уровень анизотропии для Matrox Parhelia равен 2, в то время, как у NVIDIA GeForce3 / GeForce4 Ti - 8. То есть, Matrox Parhelia обеспечивает намного более меньшую четкость текстур при очень маленьких углах наклона между поверхностью и лучом зрения.
В-третьих, как, опять же, показало тестирование, форсирование анизотропной фильтрации на Matrox Parhelia автоматически вызывает включение и трилинейной фильтрации, а это значит, что при форсировании анизотропной фильтрации чип Parhelia-512 работает в наиболее невыгодной ситуации, когда за один такт он способен наложить только одну текстуру.
Суперсэмплинг и антиалиасинг FAA-16х: Matrox Parhelia поддерживает стандартный суперсэмплинг 2х2, о плюсах и минусах которого можно прочитать в обзоре
"На пути к Идеальной Картинке" или антиалиасинг на современных игровых видеокартах, и новый интересный метод сглаживания "ступенек" -
Fragment Antialiasing, FAA.
Что такое Fragment Antialiasing? Основная идея этого метода полноэкранного сглаживания - отделение "мух" от "котлет", то есть, областей, где сглаживание необходимо, от областей, где оно ни к чему. Очевидно, что сглаживание необходимо только на границах полигонов. FAA-16x, как и мультисэмплинг от NVIDIA, использует увеличенное количество субпикселов для построения пиксела только на границах полигонов. Однако, если при мультисэмплинге от NVIDIA изображение строится в увеличенном буфере ( см.
"На пути к Идеальной Картинке" или антиалиасинг на современных игровых видеокартах), то Parhelia использует отдельный буфер для хранения пикселей, нуждающихся в обработке (фрагментов, отсюда и название -
Fragment Antialiasing). Приблизительно схема работы Fragment Antialiasing изображена на рисунке:
Упрощенно схема работы FAA-16x выглядит так:
Сцена строится в обычном порядке. Если при отрисовке полигона чип обнаруживает пикселы, лишь частично принадлежащие текущему полигону, то есть, лежащие на его границе, то их цвета не записываются обычным порядком в буфер кадра. Для этих пикселов включается суперсэмплинг 4х4, то есть, эти пикселы рассчитываются с повышенной точностью. Цвет фрагмента пиксела - усредненный цвет тех его субпикселов, что принадлежат текущему полигону - вместе с информацией о координатах пиксела добавляется в список фрагментов, хранящийся в специальном буфере.
Если впоследствии чип дойдет до этих пикселов при обработке других полигонов, то усредненный цвет оставшихся неучтенных субпикселов комбинируется с соответствующим этому пикселу значением, хранящимся в буфере фрагментов, и снова записывается в буфер фрагментов. Таким образом исключается ситуация, при которой могут возникнуть "потерянные" фрагменты и "наполовину построенные" пикселы.
После того, как обработаны все полигоны сцены, изображение уже почти закончено, в нем не хватает только пикселов, отобранных для обработки с повышенной точностью.
Цвета всех этих пикселов скомбинированы и сохранены в буфере фрагментов. Построение изображения завершается выборкой этих пикселов из буфера фрагментов и расстановкой их по соответствующим местам изображения. После этого буфер кадра содержит полностью готовую к отображению картинку.
Выгодное отличие FAA-16x от мультисэмплинга и суперсэмплинга - незначительное увеличение требований к пропускной способности памяти, ведь для построения сцены не используется дополнительный увеличенный буфер кадра.
Может смутить большое количество использующихся субпикселов - 4х4 - по идее, это должно сильно сказаться на производительности этого метода, но на самом деле в подавляющем большинстве сцен лишь единицы процентов пикселов требуют обработки с повышенной точностью.
Очевидно, что такой способ полноэкранного сглаживания обеспечивает намного более высокое по сравнению с конкурентами качество сглаживания границ при сравнительно небольшом увеличении вычислительных затратах.
В итоге чип Matrox Parhelia способен обеспечить картинку с непревзойденным качеством сглаживания границ, соответствующим суперсэмплингу 4х4, причем, потери производительности окажутся намного меньше по сравнению с потерями при использовании мультисэмплинга 4х от NVIDIA и уж, конечно, суперсэмплинга 4х, например, на ATI RADEON 8500.
Если проверка FAA-16x на деле докажет состоятельность этого утверждения, то можно будет с уверенностью заявить: компания Matrox совершила революцию в методах полноэкранного сглаживания!
Glyph Antialiasing: Glyph Antialiasing - аппаратное сглаживание шрифтов. Windows XP/2000 могут включать сглаживание экранных шрифтов, что повышает удобочитаемость мелких шрифтов. Однако, это сглаживание обеспечивается программно, и, по заявлениям Matrox, задействование программного сглаживания шрифтов способно снизить скорость отрисовки окон на величины порядка двух - трех десятков процентов.
Matrox Parhelia поддерживает форсирование (принудительное включение) аппаратного сглаживания шрифтов без потери скорости:
При этом пользователям предоставляется возможность регулировать субъективную "толщину" символов за счет варьирования гаммы полутонов, образованных при антиалиасинге:
На этой картинке совмещено два скриншота окна стандартного "блокнота", сделанных при установке различной гаммы.
Задействование Glyph Antialiasing не накладывает никаких ограничений на цвета, размеры и начертание шрифтов, функция аппаратного сглаживания шрифтов работает корректно в любых условиях.
Matrox Parhelia собственной персоной.
Retail-версия видеокарты Matrox Parhelia поставляется в стильной коробке, оформленной в бело - синих тонах:
В коробке, помимо видеокарты, находится компакт-диск с драйверами, демо-программами и утилитами, руководство пользователя и переходники DVI-I -> D-SUB, DVI-I -> D-SUB + D-SUB, D-SUB -> S-Video + RCA:
Сама видеокарта выглядит весьма необычно из-за того, что часть чипов памяти расположены под углом 45 градусов:
Плата основана на чипе Parhelia-512 и оборудована 128 МБ видеопамяти 256 бит DDR SDRAM в BGA-чипах от Infineon с временем цикла 3,3 нс.:
Чип Parhelia-512 поражает своей формой и размерами - помимо того, что он имеет самые большие размеры из всех виденных мной графических чипов, он имеет цельнометаллическую поверхность для улучшения отвода тепла от кристалла:
Тактовые частоты Retail-версии Matrox Parhelia составляют 220 МГц у ядра и 550 (275DDR) МГц у видеопамяти.
OEM-версия отличается пониженными тактовыми частотами - 200 МГц у ядра и 500 (250DDR) МГц у видеопамяти.
Matrox PowerDesk HF
В этой утилите собраны все возможности по настройке Matrox Parhelia. Утилита оформлена просто превосходно - стильно, ярко, и в то же время ненавязчиво, в фирменной сине-голубой гамме Matrox.
В окне главного меню PowerDesk HF находятся ссылки на отдельные разделы, при наведении курсора мыши на элементы меню они подсвечиваются, а внизу появляется краткое описание назначения соответствующего раздела:
Рассмотрим все разделы по порядку.
Если долгое перечисление всех возможностей Matrox PowerDesk Вас не воодушевляет - смело пропускайте эту часть обзора и сразу переходите к следующей -
На полпути к DirectX 9... Обзор Matrox Parhelia. Часть 2 - Тестирование. :).
Multi-Display Setup::
В этом разделе сосредоточены функции по созданию мультимониторных конфигураций в режимах DualHead и TripleHead.
Monitor and TV Adjustments:Здесь можно настроить вывод изображения на монитор или TV. В левой части окна утилиты можно выбрать устройство отображения, которое нужно настроить, затем перейти в окно настроек:
Для CRT-монитора можно настроить размеры и позицию изображения на экране, а также частоту кадров с точностью до 1 Гц.
В этом разделе можно перейти к выбору телевизионного стандарта для TV-Out и установкам геометрии и гаммы изображения на экране TV.
Matrox Parhelia предоставляет возможность настроить как позицию, так и размеры изображения на экране TV. Это позволяет избежать типичной ситуации, когда изображение оказывается намного больше либо намного меньше, чем видимая область экрана.
Здесь можно установить яркость, контрастность, цветность, сдвиг цветовой гаммы изображения на экране TV, а также, определить степень подавления "дрожания" изображения.
Quality and Performance Settings:С этой страницы можно перейти к настройкам работы Matrox Parhelia в графическом интерфейсе Windows и настройкам работы в 3D.
В этом окне можно включить аппаратную поддержку сглаживания экранных шрифтов, настроить их субъективную "толщину", а также, включить режим GigaColor.
Здесь настраивается работа Matrox Parhelia в 3D. Можно задействовать Gigacolor для игр, настроить режим полноэкранного сглаживания (возможные варианты:
суперсэмплинг 4x по требованию приложения, FAA 16х по требованию приложения, форсирование суперсэмплинга 4х, форсирование FAA 16x), выбрать режим фильтрации текстур (возможные варианты:
выбирается приложением, форсируется трилинейная фильтрация, форсируется анизотропная фильтрация), выбрать режим VSync (возможные варианты:
управляется приложением, всегда включено, всегда выключено).
Video Playback Settings:Здесь можно включить режим DVDMax и перейти к окну его настроек, включить аппаратную компенсацию движения (Motion Compensation) и перейти к настройкам воспроизведения видео.
В окне настроек DualHead DVDMax можно указать режим масштабирования и вывода видео на монитор или TV. Возможные варианты настроек масштабирования -
масштабировать видео на полный экран или
сохранять исходные пропорции изображения. Пропорции изображения можно определять
по размерам окна, в котором воспроизводится видео, либо
по размерам видео.
Помимо этого, можно указать соотношение сторон подключенного телевизора TV -
4х3 либо
16х9.
В этом подразделе можно настроить цвета выводимого в оверлее изображения. Настройки позволяют изменять яркость, контрастность, цветность, сдвиг цветов, гамму изображения. Для того, чтобы можно было проконтролировать влияние настроек, в дополнительном окне в оверлей выводится тестовое изображение.
Desktop Management: В этом разделе можно настроить по вкусу режимы появления диалогов, сворачивания/разворачивания и перемещения окон при работе в мультимониторных конфигурациях.
В окне Matrox MultiDesk можно настроить работу приложений в режиме нескольких виртуальных рабочих столов.
Matrox Zoom:В этом разделе можно определить размеры региона изображения, который будет отображаться на вторичном дисплее в полный экран. Доступно включение билинейной фильтрации отображаемого региона и установка режима слежения за положением курсора мыши:
не перемещать регион,
перемещать регион при достижении курсором мыши границ региона и
перемещать регион, держа курсор мыши в его центре.
Здесь можно установить режим увеличения пикселей экрана в 2 и в 4 раза прямо на текущем мониторе. При этом необязательно наличие дополнительного монитора. Этот режим удобен для использования во всевозможных графических редакторах. Единственное, чего, по-моему, здесь недостает - уменьшения чувствительности "мыши" в соответствии со степенью увеличение пикселей экрана.
Для включения режимов DualHead Zoom и PixelTouch можно назначить "Горячие клавиши".
Matrox Tools: В этом разделе можно выбрать область экрана и сохранить её на диск либо в буфер обмена (clipboard).
Information:Здесь можно посмотреть на информацию о видеокарте и подключенных к ней устройствах отображения.
Help:Я думаю, название этого раздела говорит само за себя. Здесь можно обновить драйверы, посмотреть документацию, хранящуюся локально, либо заглянуть в FAQ или задать вопрос в конференции техподдержки на сайте Matrox.
My Matrox:Отсюда можно попасть на сайт Matrox, пройти регистрацию или обновить программное обеспечение.
Итак, после этого долгого и утомительного перечисления всех возможностей Matrox PowerDesk могу заверить: по части дружелюбности интерфейса и простоты взаимодействия с пользователем Matrox Parhelia не разочарует. Всё максимально удобно, просто и легко.
Видеокарты Matrox Parhelia 128 MB
в OEM и Retail-вариантах предоставлены
компанией ШТУРМ Ай-Ти Дистрибьюшн,
официальным поставщиком продукции Matrox в России.
На полпути к DirectX 9... Обзор Matrox Parhelia. Часть 2 - Тестирование.