Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аппаратные средства мультимедии.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.76 Mб
Скачать

3. Технология sli

Видеосистема ПК

Аббревиатура SLI расшифровывается как Scalable Link Interface (масштабируемый соединительный интерфейс). Технология nVidia SLI требует наличия двух одинаковых видеокарт с поддержкой SLI, системной платы, также поддерживающей SLI, переходника MIO, связывающего видеокарты, драйвера ForceWare соответствующей версии. Для запуска устаревших игр предусмотрен режим совместимости, когда задействуется лишь одна графическая карта. В режиме Split Frame Rendering (SFR) происходит разделение кадра на две части, за рендеринг каждой из которых отвечает отдельный видеоадаптер. При этом кадр разделяется динамически в зависимости от сложности сцены. Такой режим позволяет добиться максимальной производительности, так как нагрузка на каждую карту распределяется равномерно. Метод разделения называется Symmetric Multi-Rendering with Dynamic Load Balancing (SMR), то есть симметричный мультирендеринг с динамическим распределением нагрузки. В режиме Alternate Frame Rendering (AFR) происходит поочередный рендеринг кадров каждым видеоадаптером.

Учитывая высокую пропускную способность интерфейса PCI Express, можно было ограничиться передачей данных по этой шине, однако с целью минимизировать возможные задержки видеокарты SLI оснащаются интерфейсом MIO. Когда карты установлены в системную плату, оснащенную двумя слотами PCI Express xl6, их требуется соединить специальным переходником - небольшой текстолитовой платой, оснащенной двумя разъемами соответствующего типа. Для включения режима SLI и его корректной работы необходимо два условия: оба слота PCI Express xl6 должны поддерживать конфигурацию «16 линий + 8 линий», либо конфигурацию «8 линий + 8 линий»; чипсет должен поддерживаться драйверами ForceWare. В случае успешного запуска конфигурация SLI демонстрирует повышение производительности в некоторых играх до 80%.

4. Программные интерфейсы

Видеосистема ПК

Поскольку сердцем современного видеоадаптера является графический процессор, имеющий собственную систему команд, эффективное использование возможностей ЗD -ускорителя подразумевает понимание такой системы команд прикладными программами. Однако при широкой номенклатуре графических процессоров нельзя написать программу, которая бы одинаково эффективно работала с любой системой команд любого графического процессора. Поэтому и разработчики программ, и создатели графических процессоров нуждаются в универсальной «прокладке», обеспечивающей преобразование запросов программы в последовательность команд ЗD -ускорителя и программную реализацию отсутствующих в графическом процессоре аппаратных блоков. Роль такой «прокладки» играют специализированные прикладные программные библиотеки, или интерфейсы прикладного программирования (API — Application Program Interface). Использование API позволяет разработчикам программ делать их универсальными, абстрагируясь от низкоуровневых команд конкретного графического процессора. В настоящее время подавляющее большинство прикладных программ, работающих с трехмерными объектами, опираются на одну из двух типовых библиотек — OpenGL или DirectX.

4.1 OpenGL

Видеосистема ПК

В 1982 г. фирма Silicon Graphics в рабочей станции Silicon IRIS реализовала конвейер рендеринга, опирающийся на систему команд графической библиотеки IRIS GL. На основе библиотеки IRIS GL в 1992 г. был разработан и утвержден графический стандарт OpenGL (Open Graphics Library — открытая графическая библиотека). Программы, написанные с помощью OpenGL, можно переносить практически на любые платформы, будь то персональный компьютер или графическая станция, получая при этом одинаковый результат. Базовый набор OpenGL включает в себя около 150 различных команд, с помощью которых реализуют основные функции: определение объектов, указание их местоположения в трехмерном пространстве, установку других параметров (поворот, масштаб), изменение свойств объектов (цвет, текстура, материал), положение наблюдателя. Дополнительные библиотеки OpenGL (расширения) реализуют функции, отсутствующие в стандартной библиотеке. Например, библиотека GLAUX разработана фирмой Microsoft для применения OpenGL в операционной среде Windows. Разработчики видеоадаптеров создают собственные расширения OpenGL, учитывающие возможности конкретного графического процессора.

4.2 DirectX

Видеосистема ПК

Пока в природе не существовало API DirectX, большинство графических программ для персональных компьютеров работали под управлением операционной системы MS-DOS или напрямую с видеокартой. Разработчики программного обеспечения были вынуждены создавать различные драйверы для каждой разновидности видеоадаптеров, джойстиков, звуковых карт. В 1995 г. компания Microsoft представила первую версию библиотеки DirectX (тогда она называлась Game SDK). DirectX — это корпоративный стандарт, все права на который принадлежат компании Microsoft. И только Microsoft определяет, что включать в очередную версию API, а какие предложения игнорировать. Такой диктаторский подход позволил быстро привести к «единому знаменателю» игры и графические процессоры, избавил пользователей от большинства проблем с совместимостью программ и железа. С недавних пор и программы, и видеоадаптеры принято даже разделять на поколения согласно поддерживаемым версиям DirectX. API DirectX предназначен для: • программирования двухмерной графики (модуль DirectDraw); • создания трехмерной графики (модуль Direct3D); • работы со звуками и музыкой (модули DirectSound и DirectMusic); • поддержки устройств ввода (модуль Directlnput); • разработки сетевых игр (модуль DirectPlay). Таким образом, DirectX представляет собой набор из нескольких сравнительно независимых API, позволяющих разработчикам игр и других интерактивных приложений получать доступ к специфическим функциям аппаратного обеспечения, без необходимости написания аппаратно-зависимого программного кода. DirectX основан на наборе интерфейсов Component Object Model (компонентная модель объектов), а объекты СОМ могут описываться практически любыми языками программирования, например C/C++, Delphi и даже Basic. Популярность DirectX объясняется его способностью обеспечить все нужды разработчиков игр и железа: от создания трехмерной графики и пользовательского интерфейса ввода, до поддержки сетевых виртуальных миров.

5. 3D-конвейер

Видеосистема ПК

Современные графические процессоры для ПК работают с так называемой полигональной графикой, то есть любой объект представляется как набор плоских многоугольников, которые рано или поздно разбиваются на простейшие треугольники. Объект задается вершинами, определяющими ключевые точки, и полигонами, которые образованы линиями, соединяющими вершины. Цвет на полигоны накладывается по специальным алгоритмам закраски, как правило, с использованием заранее нарисованных плоских изображений (текстур). Задача графического процессора сводится к тому, чтобы нарисовать и закрасить как можно больше полигонов за единицу времени.

В профессиональных ЗD-ускорителях иногда используется другой способ построения трехмерных сцен — методом обратной трассировки лучей (Ray Tracing), который требует гораздо больших вычислительных ресурсов. Для отображения треугольников на плоскости используется метод так называемых однородных координат, опирающийся на матрицы преобразования и проектирования. Расчет положения любой точки трехмерной сцены на плоскости сводится к умножению вектора исходных координат на эти матрицы. Современный центральный процессор затрачивает на обработку одной точки около 10 тактов и за секунду просчитывает координаты десятка миллионов вершин. Таким образом, расчет геометрии сцены не составляет для современного центрального процессора особого труда.Проблемы начинаются при закраске полигонов и определении видимых поверхностей, то есть при сопоставлении глубины расположения полигонов относительно наблюдателя. Реалистичность изображения в трехмерной сцене во многом определяется качеством текстур — заранее нарисованных картинок, наложенных на полигоны. Для каждой вершины указываются ее координаты в плоскости изображения-текстуры. При расчете цвета конкретной точки полигона учитывается ее расположение относительно вершин треугольника и точке присваивается цвет, аналогичный цвету соответствующей точки текстуры. Для этого каждой точке экрана, попавшей в треугольник, нужно найти соответствие в текстурных координатах (это сравнительно затратный процесс) и провести так называемую выборку из текстуры —вычислить цвет текстуры в полученной точке. Последняя задача не слишком проста, поскольку часто расчетная точка попадает между пикселями изображения-текстуры. Поэтому расчеты получаются очень трудоемкими, особенно с учетом наложения нескольких текстур. Вдобавок текстуры в современных играх часто представлены изображениями высокого разрешения. В итоге сверхмощный центральный процессор даже при низком экранном разрешении способен обработать не более десятка кадров в секунду. Поэтому ускорители трехмерной графики в первую очередь были созданы для аппаратного ускорения закраски. Объекты в сцене, даже с наложенными текстурами, выглядят весьма уныло, если не учитывается их освещенность. Первые ускорители работать с источниками освещения не умели. Игровой движок заблаговременно рассчитывал освещенность элементов сцены и создавал соответствующие текстуры освещения (light maps). Уже просчитанные блики света отрисовывались как текстуры. В статических сценах такой «свет» выглядел неплохо, но в динамических сценах подвижный объект смотрелся одинаково на свету и в тени, что снижало реалистичность. Для улучшения реалистичности стали рассчитывать освещенность объекта методом Гуро: определив освещенность вершин полигонов, ее интерполировали на внутренние точки граней. Такой подход лег в основу графических процессоров с фиксированным конвейером (поколение DirectX 7), получивших аппаратный блок геометрических вычислений — Hardware Transform & Lightning (T&L). Однако требования к реалистичности сцены непрерывно росли, а метод интерполяции по всему полигону был не в состоянии правдоподобно передать фактуру поверхности. Кроме того, большинство трехмерных объектов строились из малого числа полигонов с целью экономии вычислительных ресурсов и потому страдали «кубизмом» в силу прямолинейности образующих полигоны линий и плоских граней. Эту проблему решили, применив метод расчета освещенности с учетом вектора нормали к поверхности, то есть вектора, перпендикулярного к поверхности в данной точке. Задав еще одну текстуру специального вида (определяющую нормали) и модифицировав алгоритм расчета цвета точки, сумели радикально улучшить внешний вид моделей. Подобный метод называют Bump Mapping. Для полноценной реализации он требует программирования пиксельных конвейеров — перехода от интерполяции и выборки из текстур к обработке формул расчета цвета каждого пикселя объекта (а не только вершин). Так впервые появились пиксельные шейдеры — комплекты команд, позволяющие программировать пиксельные конвейеры графического процессора. Видеоадаптеры, поддерживающие обработку шейдеров, появились в поколении DirectX 8. Как правило, программы -шейдеры пишут на специальной разновидности ассемблера, привязанного к конкретному графическому процессору. В последнее время появились языки программирования высокого уровня для создания шейдеров, например Microsoft High-Level Shader Language (HLSL)