quest_KG_2010 (1)

«КОМПЬЮТЕРНАЯ ГРАФИКА»

1. Графический процессор. Структура графического процессора G80
ГП - отдельное устройство [ Cкачайте файл, чтобы посмотреть ссылку ] или [ Cкачайте файл, чтобы посмотреть ссылку ], выполняющее графический [ Cкачайте файл, чтобы посмотреть ссылку ] (термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы). Современные графические процессоры очень эффективно обрабатывают и отображают [ Cкачайте файл, чтобы посмотреть ссылку ], благодаря специализированной конвейерной архитектуре они намного эффективнее в обработке графической информации, чем типичный [ Cкачайте файл, чтобы посмотреть ссылку ].
Графический процессор в современных [ Cкачайте файл, чтобы посмотреть ссылку ] применяется в качестве ускорителя [ Cкачайте файл, чтобы посмотреть ссылку ], однако его можно использовать в некоторых случаях и для вычислений ([ Cкачайте файл, чтобы посмотреть ссылку ]).
Отличительными особенностями по сравнению с [ Cкачайте файл, чтобы посмотреть ссылку ] являются:
архитектура, максимально нацеленная на увеличение скорости расчёта [ Cкачайте файл, чтобы посмотреть ссылку ] и сложных графических объектов;
ограниченный набор команд.
Примером может служить чип [ Cкачайте файл, чтобы посмотреть ссылку ] от [ Cкачайте файл, чтобы посмотреть ссылку ] или [ Cкачайте файл, чтобы посмотреть ссылку ] от [ Cкачайте файл, чтобы посмотреть ссылку ].
Структура:
В состав процессора G80 входят 128 вычислительных ядер (нитевые ядра) общей пиковой производительностью 518 ГФлопс на тактовой частоте 1.35 ГГц, поддерживающих 12288 аппаратно управляемых потоков/нитей. Нитевые ядра объединены в 8 блоков по 16 в каждом, управляемых менеджером потоков и называемых потоковыми мультипроцессорами. Ядра являются скалярными, что позволяет легко использовать их в вычислениях общего назначения, ведь в этом плане они ничем не отличаются от центрального процессора. В G80 вычислительные ядра объединены в группы (так называемые потоковые мультипроцессоры) по 8 ядер в каждой группе, каждая группа имеет кэш-память первого и второго уровней (причем кэш второго уровня доступен для обращения всем остальным группам). Все восемь блоков имеют доступ к любому из шести L2-кэшей и к любому из шести массивов регистров общего назначения (РОН). Таким образом, данные, обработанные на одном процессоре, могут быть использованы другим процессором.

2. Цифровой сигнальный процессор
Цифровой сигнальный процессор (Digital Signal Processor, DSP) специализированный микропроцессор, предназначенный для эффективной цифровой обработки сигналов, увеличивает вычислительные возможности персонального компьютера. Конструктивно выполняется в виде дополнительной платы DSP (также применяется термин «ускоряющая плата»). Используется при обработке изображений, в машинной графике, звуковых платах, факсимильных машинах, модемах, сотовых телефонах, цифровых фотоаппаратах и видеокамерах, а также для производства научно-технических расчетов и в других алгоритмах ЦОС. Установка DSP в ПК совместно с модулями аналогового ввода-вывода позволяет решать на нем прикладные задачи по акустике, гидроакустике, радиолокации, радионавигации, медицине, геофизике, телерадиовещании, вибродиагностике и т.д. Цифровые сигнальные процессоры могут также включаться в системы мультимедиа. Системы цифровой обработки сигналов являются, как правило, узкоспециализированными и выпускаются под конкретные задачи небольшими партиями либо в единичных экземплярах.

3. Особенности архитектуры
Архитектура сигнальных процессоров, по сравнению с микропроцессорами настольных компьютеров, имеет некоторые особенности:
[ Cкачайте файл, чтобы посмотреть ссылку ] (разделение памяти команд и данных), как правило [ Cкачайте файл, чтобы посмотреть ссылку ];
Большинство сигнальных процессоров имеют встроенную [ Cкачайте файл, чтобы посмотреть ссылку ], из которой может осуществляться выборка нескольких [ Cкачайте файл, чтобы посмотреть ссылку ] одновременно. Нередко встроено сразу несколько видов оперативной памяти, например, в силу Гарвардской архитектуры бывает отдельная память для инструкций и отдельная  для данных.
Некоторые сигнальные процессоры обладают одним или даже несколькими встроенными [ Cкачайте файл, чтобы посмотреть ссылку ] с наиболее употребительными подпрограммами, таблицами и т. п.
Аппаратное ускорение сложных вычислительных инструкций, то есть быстрое выполнение операций, характерных для цифровой обработки сигналов, например, операция «умножение с накоплением» (MAC) (Y := X + A Ч B) обычно исполняется за один такт.
Поддержка векторно-конвейерной обработки с помощью генераторов адресных последовательностей.
Детерминированная работа с известными временами выполнения команд, что позволяет выполнять планирование работы в [ Cкачайте файл, чтобы посмотреть ссылку ].
Сравнительно небольшая длина [ Cкачайте файл, чтобы посмотреть ссылку ], так что незапланированные [ Cкачайте файл, чтобы посмотреть ссылку ] могут занимать меньшее время, чем в универсальных процессорах.
Экзотический набор [ Cкачайте файл, чтобы посмотреть ссылку ] и инструкций, часто сложных для [ Cкачайте файл, чтобы посмотреть ссылку ]. Некоторые архитектуры используют [ Cкачайте файл, чтобы посмотреть ссылку ].
По сравнению с [ Cкачайте файл, чтобы посмотреть ссылку ], ограниченный набор периферийных устройств  впрочем, существуют «переходные» чипы, сочетающие в себе свойства DSP и широкую периферию микроконтроллеров.

4. Устройство ЦСП
[ Cкачайте файл, чтобы посмотреть картинку ]
ЦСП строятся на основе Гарвардской архитектуры, отличительной особенностью которой является то, что программы и данные хранятся в различных устройствах памяти памяти программ и памяти данных. В отличие от архитектуры фон Неймана, где процессору для выборки команды и двух операндов требуется минимум три цикла шины, ЦСП может производить одновременные обращения как к памяти команд, так и к памяти данных, и указанная выше команда может быть получена за два цикла шины. В реальности, благодаря продуманности системы команд и другим мерам, это время может быть сокращено до одного цикла. В реальных устройствах память команд может хранить не только программы, но и данные. В этом случае говорят, что ЦСП построен по модифицированной гарвардской архитектуре.
Память команд и память данных обычно располагаются на кристалле ЦСП. В связи с тем, что эта память имеет относительно небольшой объём, возникает необходимость в использовании внешних запоминающих устройств. Для таких устройств раздельные шины команд и данных не используются, так это потребовало бы значительно увеличить количество внешних выводов кристалла, что дорого и непрактично. Поэтому взаимодействие ЦСП с внешними запоминающими устройствами происходит по одному комплекту шин без разделения на команды и данные. Следует также заметить, что обращение к внешней памяти всегда занимает значительно больше времени, чем к внутренней, поэтому в приложениях, критичных ко времени исполнения, такие обращения необходимо минимизировать.

5. Классификация ЦСП по архитектуре
Стандартные ЦСП
Существуют два варианта выполнения команды MAC на стандартном ЦСП:
Когда оба операнда хранятся в памяти данных, поэтому на их выборку требуется два такта, то есть время выполнения n сложений равно 2n.
Когда один из операндов хранится в памяти программ, поэтому команда исполняется за один такт, и общее время выполнения цикла будет равно n тактов.
Эффективная реализация алгоритма требует использования памяти программ для хранения данных, а максимальное быстродействие достигается только в однокомандном цикле. Одним из вариантов, позволяющим отказаться от использования памяти программ для хранения данных, является применение «двухпортовой памяти», то есть памяти, имеющей два комплекта входных шин двух шин адреса и данных. Такая архитектура позволяет произвести одновременное обращение по двум адресам. Данное решение применяется в ЦСП компаний Motorola и Lucent. При указанной архитектуре повысить производительность можно только увеличением тактовой частоты.
Улучшенные стандартные ЦСП
«Улучшенные стандартные ЦСП» для повышения производительности системы, по сравнению со стандартными ЦСП, используют следующие методы повышения параллелизма:
Увеличение количества операционных и вычислительных устройств;
Введение специализированных сопроцессоров;
Расширение шин для увеличения количества передаваемых данных;
Использование памяти с многократным доступом (несколько обращений за такт);
Усложнение системы команд;
Многие из этих способов применялись уже начиная с самых первых процессоров, поэтому зачастую их невозможно однозначно классифицировать как «стандартные» или «улучшенные».

6. Кластеры процессоров цифровой обработки
Для увеличения вычислительной мощности ПЦОС (процессор цифровой обработки сигналов) традиционные способы используются редко. Повышение тактовой частоты не приводит к желаемому результату потому что возрастает тепловыделение и возникает проблема обращения к памяти. Так как немногие классические ПЦОС имеют вообще кеш-память, проблема часто решается установкой на плате больших объёмов статической памяти, или же уступками в вопросах тепловыделения - например, размещаем 8Мбит Кеш на кристалле процессора.
Есть и принципиально иной случай: многопроцессорные системы. Но, если в случае с МКМД-ЭВМ (множественный поток инструкций/данных) основным решением является общая память, а в транспьютерах соединение производится через специальные устройства ввода-вывода - линки, которые прямо соединяют процессор с процессором, в кластерах ПЦОС используется и тот, и другой способы.
Рассмотрим кластер AD ADSP-2106x SHARC. Каждый процессор ADSP-2106x имеет следующие характеристики:
40 Мгц тактовая частота
до 2 Мбит на чипе
нерегулярное длинное командное слово (улучшенная структура, позволяющая за такт рассчитывать отсчёт фильтра, или же производить обращение к памятии и операцию АЛУ).
гарвардская архитектура памяти
командное слово - 40 бит
разрядность целых чисел - 32 бит
поддержка 32-битной плавающей запятой
поддержка циркулярной, автоинкрементной, битреверсной адресации
Расширенный набор команд
80-битный МАС-блок
Каждый кластер объединяет от 2 до 6 процессоров. Процессоры связаны общей шиной. Каждый процессор имеет по 2 Мбит локальной памяти, доступ к которой происходит по внутренним шинам. Каждый процессор может прочитть или изменить память другого процессора с помощью доступа по общей шине. Имеется 2 Мбит общей памяти, доступ к которой происходит только по общей шине. Кроме того, каждый процессор может послать прерывание другому процессору.
Дополнительно процессоры имеют по 2 или 4 линка, с помощью которых они могт связываться напрямую с процессорами своего кластера, или чужого кластера.
Таким образом, в кластере ПЦОС связь происходит как с помощью общей памяти, так и с помощью линков - как транспьютеры. Аналогичную структуру имеет кластер TI TMS320C6x, в котором может объединяться до 8 процессоров.

7. Аппаратно-программный комплекс VLIW
Архитектура VLIW представляет собой одну из последних реализаций концепции внутреннего параллелизма в микропроцессорах. Их быстродействие можно повысить двумя способами: увеличив либо тактовую частоту, либо количество операций, выполняемых за один такт. В первом случае требуется изобретение "быстрых" технологий (например, использование арсенида галлия или кремния на сапфире) и применение таких архитектурных решений, как глубинная конвейеризация (конвейеризация в пределах одного такта, когда в каждый момент времени задействован весь кристалл, а не отдельные его части). Для увеличения количества выполняемых за один цикл операций необходимо на одной микросхеме разместить множество функциональных модулей обработки и обеспечить надежное параллельное исполнение машинных инструкций, что дает возможность включить в работу все модули одновременно. Надежность в таком контексте означает, что результаты вычислений будут правильными.
Планирование порядка вычислений v довольно трудная задача, которую приходится решать при проектировании современного процессора. В суперскалярных процессорах (процессор с двумя и более конвейерами, что позволяет выполнять более одной команды за один такт в идеальных условиях) для распознавания зависимостей между машинными инструкциями применяется специальное довольно сложное аппаратное решение (в процессоре Pentium Pro, например, для этого используется буфер переупорядочивания инструкций, ROB v ReOrder Buffer). Однако размеры такого аппаратного планировщика при увеличении количества функциональных модулей обработки возрастают в геометрической прогрессии, что, в конце концов, может "съесть" весь кристалл процессора. Поэтому суперскалярные проекты "завязли" на отметке пять-шесть управляемых за цикл инструкций. При другом подходе можно передать все планирование программному обеспечению, как это делается в конструкциях с VLIW. "Умный" компилятор должен выискать в программе все инструкции, которые являются совершенно независимыми, собрать их вместе в очень длинные строки (длинные инструкции) и затем отправить на одновременное исполнение функциональными модулями, количество которых строго равно количеству операций в такой длинной инструкции. Очень длинные инструкции обычно имеют размер от 256bit до 1024bit. Размер полей, кодирующих операции для каждого функционального модуля, в такой метаинструкции намного меньше.

8. Transport-Triggered Architecture

9. Компоненты графической системы Windows
Интерфейс прикладных программ Windows - а проще говоря, Windows API - представляет собой громадный набор взаимосвязанных функций, предоставляющих различные услуги прикладным программам. С точки зрения программиста, Win32 API делится на несколько групп в соответствии с типом предоставляемых услуг.
Базовые функции Windows, обычно называемые сервисом ядра, - отладка, обработка ошибок, библиотеки динамической компоновки (DLL), процессы, потоки, файлы, ввод-вывод, межпроцессные взаимодействия, безопасность и т. д.
Функции пользовательского интерфейса, обычно называемые пользовательским сервисом, - управление окнами, очереди сообщений, диалоговые окна, элементы управления, стандартные элементы управления, стандартные диалоговые окна, ресурсы, пользовательский ввод, командный интерпретатор и т. д.
Графические и мультимедийные функции управления цветом, DirectX, GDI, Video for Windows, Still Image, OpenGL, Windows Media и т. д.
Функции COM, OLE и ActiveX COM (Component Object Model), автоматизация, Microsoft Transaction Server, OLE (Object Linking and Embedding) и т. д.
Функции баз данных и обмена сообщениями DAO (Data Access Objects), SQL Server, MAPI (Messaging API) и т. д.
Сетевые и распределенные функции Active Directory, очередь сообщений, сетевые средства, RPC, маршрутизация и удаленный доступ, сервер SNA (Systems Network Architecture), TAPI (Telephony API) и т. д.
Функции Интернета, интра- и экстрасетей Internet Explorer, Microsoft Agent, NteShow, сценарии, Site Server и т. д.
Функции настройки и управления системой конфигурация, настроила, управление системой и т. д.
Каждая группа функций поддерживается определенным набором компонентов операционной системы. К их числу относятся DLL платформенной подсистемы Win32, драйверы пользовательского режима, системные функции и драйверы режима ядра.
Группа графических и мультимедийных функций Win32 API очень велика. Графический прикладной интерфейс Win32 реализован на нескольких платформах это Windows 95/98, WinCE, Windows NT и новая система Windows 2000. Раньше системы семейства NT отличались лучшей поддержкой GDI, поскольку в них использовались полноценные 32-разрядные реализации, а системы семейства Windows 95 обеспечивали лучшую поддержку игрового программирования. Однако новая операционная система Windows 2000 взяла все лучшее из обоих семейств. В Windows 2000 были внесены существенные изменения по поддержке аппаратного ускорения DirectX/OpenGL, появился новый интерфейс STI (Still Image), драйверы принтеров пользовательского режима и т. д.

10. Компоненты режима ядра
Графические и мультимедийные компоненты пользовательского режима могут взаимодействовать с ядром операционной системы двумя способами. В GDI, DirectDraw, DirectSD и OpenGL вызовы пользовательского режима проходят через библиотеку gdi32.dll, предоставляющую интерфейс к сотням системных функций. Для взаимодействия с драйверами видеопорта и мультимедийными драйверами вызовы пользовательского режима используют обычный интерфейс API файлового ввода-вывода, входящий в базовый сервис Windows. Вызовы системных функций файлового ввода-вывода обрабатываются диспетчером ввода-вывода исполнительной части режима ядра, который обращается к соответствующим драйверам. Вызовы GDI, DirectDraw, DirectSD и OpenGL проходят через графический механизм, который передает их драйверам конкретных устройств.
К числу модулей операционной системы относятся ntoskrnl.exe (передача системных функций, диспетчер ввода-вывода), win32k.sys (графический механизм), mcdsvr32.dll (сервер MCD) и hal.dll (HAL). Исполнительная часть ядра Windows NT/2000, ntoskrnl.exe, является самой важной составляющей ядра ОС. В графической системе она в основном отвечает за передачу вызовов функций графической системы графическому механизму, поскольку в последнем используется тот же механизм вызова системных функций, что и другие системные функции. HAL предоставляет в распоряжение драйвера графического устройства средства для таких операций, как чтение и запись аппаратных регистров. Благодаря этому другие компоненты ядра в меньшей степени зависят от платформы.

11. Архитектура графической системы Windows (GDI)
GDI (Graphics Device Interface)  один из трёх основных компонентов или «подсистем», вместе с ядром и [ Cкачайте файл, чтобы посмотреть ссылку ] составляющих [ Cкачайте файл, чтобы посмотреть ссылку ] (оконный менеджер GDI) [ Cкачайте файл, чтобы посмотреть ссылку ]. GDI  это интерфейс Windows для представления графических объектов и передачи их на устройства отображения, такие как мониторы и принтеры. GDI отвечает за отрисовку линий и кривых, отображение шрифтов и обработку палитры. Он не отвечает за отрисовку окон, меню и т. п., эта задача закреплена за пользовательской подсистемой, располагающейся в user32.dll и основывающейся на GDI. GDI выполняет те же функции, что и [ Cкачайте файл, чтобы посмотреть ссылку ] в [ Cкачайте файл, чтобы посмотреть ссылку ]. Одно из преимуществ использования GDI вместо прямого доступа к оборудованию  это унификация работы с различными устройствами. Используя GDI, можно одними и теми же функциями рисовать на разных устройствах, таких как экран или принтер, получая на них практически одинаковые изображения. Эта возможность лежит в центре всех [ Cкачайте файл, чтобы посмотреть ссылку ]-приложений для Windows. Простые игры, которые не требуют быстрой графики, могут использовать GDI. Однако GDI не обеспечивает качественной анимации, поскольку в нём нет возможности синхронизации с [ Cкачайте файл, чтобы посмотреть ссылку ]. Также, в GDI нет растеризации для отрисовки 3D-графики. Современные игры используют [ Cкачайте файл, чтобы посмотреть ссылку ] или [ Cкачайте файл, чтобы посмотреть ссылку ], что даёт программистам доступ к большему количеству аппаратных возможностей.

12. Архитектура DIRECTX
DirectX (от англ. direct прямой, непосредственный) это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями, так как DirectX API обновляется достаточно часто, и версия, включённая в ОС Windows, обычно является далеко не самой новой.
Структура DirectX очень сильно отличается от OpenGL. DirectX основан на модели COM(Component Object Model). В отличии от простого вызова функций эта модель предполагает выполнение некоторых дополнительных действий, связанных с компонентной архитектурой DirectX. Такая архитектура имеет как достоинства так и недостатки. В частности, код, в котором используются вызовы DirectX обычно не является лёгко читаемым и понимаемым. Поэтому даже рисование простого треугольника требует огромного объёма кода. И для упрощения программирования разработчики Microsoft создали отдельную библиотеку, которая скрывает часто используемый код.
DirectX ориентируется на две важные цели. На интерфейсном уровне DirectX предоставляет разработчикам игр/приложений мощный аппаратно-независимый интерфейс API без снижения быстродействия. Прикладные программисты могут использовать новые возможности устройств, не беспокоясь о непосредственной работе с оборудованием. На уровне драйверов устройств DirectX позволяет фирмам-производителям оборудования сконцентрировать внимание на аппаратных нововведениях и легко вывести их на рынок через тонкую прослойку драйверов с поддержкой DirectX.

13. Архитектура DIRECTDRAW
Библиотека DirectDraw предоставляет единый программный интерфейс для работы с различными видеоадаптерами. DirectDraw - отвечает за быстрый вывод, перемещение и масштабирование двухмерной графики, установку видеорежимов, выбор видеодрайверов. Поддерживает практически любые видеорежимы и разрешения. Главное отличие между DirectDraw и GDI заключается в том, что DirectDraw позволяет работать непосредственно с видеоадаптером, a GDI - наоборот, ограждает вас от этого! Как видите, для рисования трехмерного объекта у приложения есть четыре возможности: GDI, OpenGL, Абстрактный режим Direct3D, DirectDraw.
DirectDraw можно рассматривать как специализированную версию GDI. Первая стадия специализации заключается в том, что вывод направляется только на видеоадаптер, а не на принтер, плоттер или любое другое из существующих графических устройств. Второй стадией является сокращение функциональных возможностей, поддерживаемых GDI. B DirectDraw нет прямой поддержки режимов отображения, мировых преобразований, шрифтов и текста, линий и кривых; работа осуществляется только с растровыми изображениями. Последней стадией является реализация ограниченного подмножества с учетом аппаратного ускорения и добавлением возможностей, имеющих важное значение для игр и мультимедийного программирования.
DirectDraw реализует семь основных интерфейсов, два из которых существуют в нескольких версиях.
I DirectDraw базовый интерфейс DirectDraw, на основе которого могут создаваться другие объекты DirectDraw, управление поверхностями, выбор разрешения и глубины цвета, получение информации о состоянии экрана, выделение памяти и т. д.
Интерфейс IDirectDrawSurface обеспечивает все операции вывода в DirectDraw. В этот интерфейс входят операции с поверхностями получение информации о возможностях, блокировка и ее снятие, выбор палитры, отсечение и т. д.
Интерфейс IDirectDrawPalette поддерживает создание и непосредственные операции с цветовой палитрой на 256-цветном экране.
Интерфейс IDirectDrawClipper управляет отсечением поверхностей DirectDraw с использованием списков отсечения (clip lists), представленных структурами RGNDATA GDI API.
Интерфейс IDirectDrawColorControl управляет цветом поверхностей и оверлеев за счет регулировки яркости, контраста, оттенка, насыщенности и гамма коррекции.
Интерфейс IDirectDrawGammaControl управляет процессом гамма коррекции, в ходе которого значения цветов в кадровом буфере преобразуются в цвета, передаваемые аппаратному цифро-аналоговому преобразователю (DAC, digitalto-analog converter).
Интерфейс IDirectDrawVideoPort обеспечивает передачу видеоданных с аппаратного видеопорта на поверхность DirectDraw. С его помощью программистможет управлять оборудованием через видеопорт.

14. Архитектура системы печати
Интерфейс Win32 GDI API задумывался как аппаратно-независимый API, способный выводить прямые, кривые, растровые изображения и текст на любом графическом устройстве, для которого имеется соответствующий драйвер. Однако принтеры составляют особый класс графических устройств и заслуживают особого внимания. Ниже перечислены важнейшие отличия принтеров от других графических устройств.
Пользователи обычно печатают не одну страницу, а целый документ, задавая при этом специальные параметры качество печати, размер бумаги, режим двусторонней печати, количество копий и т. д. GDI содержит специальный принтерный API для постраничной печати, а также структуру DEVMODE для определения всех параметров печати. Такие аспекты, как разбиение документа на страницы и выбор размеров полей, находятся под контролем приложения.
Принтер обычно обладает гораздо большим разрешением (от 300 до 2400 dpi), чем экран монитора (от 75 до 120 dpi). Это приводит к увеличению объема обрабатываемых данных и возможной нехватке памяти для одновременного воспроизведения всей страницы. Механизм GDI позволяет драйверу принтера принимать данные небольшими частями (полосами) посредством спулинга EMF (расширенных метафайлов).
Принтер обычно работает медленно, совместно используется несколькими участниками рабочей группы и не всегда подключается к локальному компьютеру. Спулер системы Windows следит за тем, чтобы приложения как можно раньше завершали свою часть вывода, чтобы принтер мог обслуживать несколько заданий печати и чтобы группы пользователей совместно работали с принтером в локальном окружении, по сети и даже по адресу URL.
Принтеры «говорят» на разных языках PCL (принтеры HP), ESC/P (принтеры Epson), PostScript (принтеры с поддержкой PostScript) и HPGL (плоттеры). В этом отношении они принципиально отличаются от видеоадаптеров, работающих с растровыми изображениями. Microsoft предоставляет несколько «универсальных» драйверов, которые могут настраиваться производителями оборудования в соответствии со специфическими требованиями их устройств.
В архитектуре печати Windows NT/2000 центральное место занимает спулер печати, поддерживаемый GDI и драйвером принтера. Чтобы создать новое задание печати, пользовательское приложение обращается к точкам входа API, экспортируемым GDI и DLL клиента спулера. GDI и спулер (с помощью драйвера принтера) обрабатывают задание печати и посылают данные на устройство создания жестких копий, будь то лазерный или струйный принтер, плоттер или факс.
Графические команды передаются GDI в виде вызовов GDI API, которые обычно сохраняются в расширенном метафайле (EMF). EMF и другой файл с текущими параметрами печати передаются системному процессу службы спулера (spools.exe). На этой стадии печать документа на уровне приложения завершается. Пользователь может продолжить работу с приложением, а дальнейшая печать документа будет осуществляться спулером. Сначала спулер направляет задание провайдеру печати, который обслуживает конкретный принтер. Локальные принтеры обслуживаются локальным провайдером печати (localspl.dll), а сетевые принтеры обслуживаются провайдером печати сетей Windows (win32spl.dll). Если принтер подключен к удаленному компьютеру, то файлы спулера пересылаются на удаленный компьютер сетевыми службами ОС, где они поступают к спулеру в виде задания для локального компьютера.

15. Ве
·кторная гра
·фика 
Ве
·кторная гра
·фика  способ представления объектов и изображений в [ Cкачайте файл, чтобы посмотреть ссылку ], основанный на использовании геометрических примитивов, таких как точки, линии, [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ]. Термин используется в противоположность к [ Cкачайте файл, чтобы посмотреть ссылку ], которая представляет изображение как матрицу фиксированного размера, состоящую из точек (пикселей) со своими параметрами.
[ Cкачайте файл, чтобы посмотреть ссылку ], занимаемой описательной частью, не зависит от реальной величины объекта, что позволяет, используя минимальное количество информации, описать сколько угодно большой объект файлом минимального размера.
В связи с тем, что информация об объекте хранится в описательной форме, можно бесконечно увеличить графический примитив, например, [ Cкачайте файл, чтобы посмотреть ссылку ] окружности, и она останется гладкой. С другой стороны, если [ Cкачайте файл, чтобы посмотреть ссылку ] представлена в виде [ Cкачайте файл, чтобы посмотреть ссылку ], увеличение покажет, что она на самом деле не кривая.
Параметры объектов хранятся и могут быть легко изменены. Также это означает что [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] и т. д. не ухудшает качества рисунка. Более того, обычно указывают размеры в [ Cкачайте файл, чтобы посмотреть ссылку ], которые ведут к наилучшей возможной [ Cкачайте файл, чтобы посмотреть ссылку ] на растровых [ Cкачайте файл, чтобы посмотреть ссылку ].
При увеличении или уменьшении объектов толщина линий может быть задана постоянной величиной, независимо от реального контура.

16. Растровое изображение
Растровое изображение  изображение, представляющее собой сетку [ Cкачайте файл, чтобы посмотреть ссылку ] или цветных точек (обычно прямоугольную) на компьютерном [ Cкачайте файл, чтобы посмотреть ссылку ], бумаге и других отображающих устройствах и материалах ([ Cкачайте файл, чтобы посмотреть ссылку ]).
Важными характеристиками изображения являются:
количество пикселей  размер. Может указываться отдельно количество пикселей по ширине и высоте или же общее количество пикселей (часто измеряется в [ Cкачайте файл, чтобы посмотреть ссылку ]);
количество используемых цветов или [ Cкачайте файл, чтобы посмотреть ссылку ] (эти характеристики имеют следующую зависимость: N = 2k, где N  количество цветов, а k  глубина цвета);
цветовое пространство (цветовая модель) [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] и др.
[ Cкачайте файл, чтобы посмотреть ссылку ]  справочная величина, говорящая об рекомендуемом размере пикселя изображения.
Растровую графику редактируют с помощью [ Cкачайте файл, чтобы посмотреть ссылку ]. Создается растровая графика фотоаппаратами, сканерами, непосредственно в растровом редакторе, также путем экспорта из векторного редактора или в виде [ Cкачайте файл, чтобы посмотреть ссылку ].

17. Цветовая модель RGB
RGB ([ Cкачайте файл, чтобы посмотреть ссылку ] английских слов Red, Green, Blue - [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ]) - [ Cкачайте файл, чтобы посмотреть ссылку ] [ Cкачайте файл, чтобы посмотреть ссылку ], как правило, описывающая способ синтеза [ Cкачайте файл, чтобы посмотреть ссылку ] для [ Cкачайте файл, чтобы посмотреть ссылку ]. Выбор основных цветов обусловлен особенностями физиологии восприятия цвета [ Cкачайте файл, чтобы посмотреть ссылку ] человеческого глаза. Цветовая модель RGB нашла широкое применение в технике. [ Cкачайте файл, чтобы посмотреть ссылку ] она называется потому, что цвета получаются путём добавления к черному. Иначе говоря, если цвет экрана, освещённого цветным прожектором, обозначается в RGB как (r1, g1, b1), а цвет того же экрана, освещенного другим прожектором,  (r2, g2, b2), то при освещении двумя прожекторами цвет экрана будет обозначаться как (r1+r2, g1+g2, b1+b2). Изображение в данной цветовой модели состоит из трёх каналов. При смешении основных цветов (основными цветами считаются красный, зелёный и синий)  например, синего (B) и красного (R), мы получаем [ Cкачайте файл, чтобы посмотреть ссылку ] (M), при смешении зеленого (G) и красного (R)  [ Cкачайте файл, чтобы посмотреть ссылку ] (Y), при смешении зеленого (G) и синего (B)  [ Cкачайте файл, чтобы посмотреть ссылку ] (С). При смешении всех трёх цветовых компонентов мы получаем белый цвет (W). В [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ] применяются три электронных пушки ([ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ]) для красного, зелёного и синего каналов. Цветовая модель RGB имеет по многим [ Cкачайте файл, чтобы посмотреть ссылку ] более широкий цветовой охват (может представить более [ Cкачайте файл, чтобы посмотреть ссылку ] цвета), чем типичный охват цветов [ Cкачайте файл, чтобы посмотреть ссылку ], поэтому иногда изображения, замечательно выглядящие в RGB, значительно тускнеют и гаснут в CMYK.

18. Цветовая модель CMYK
Четырёхцветная автотипия (CMYK: Cyan, Magenta, Yellow, Key color)  субтрактивная схема формирования цвета, используемая прежде всего в [ Cкачайте файл, чтобы посмотреть ссылку ] для стандартной триадной печати. Схема CMYK, как правило, обладает (сравнительно с [ Cкачайте файл, чтобы посмотреть ссылку ]) небольшим цветовым охватом.
По-русски эти [ Cкачайте файл, чтобы посмотреть ссылку ] часто называют [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ], хотя первый точнее называть [ Cкачайте файл, чтобы посмотреть ссылку ], а [ Cкачайте файл, чтобы посмотреть ссылку ]  лишь часть пурпурного спектра. О значении K см. [ Cкачайте файл, чтобы посмотреть ссылку ]. Печать четырьмя красками, соответствующими CMYK, также называют печатью триадными красками.
Цвет в CMYK зависит не только от спектральных характеристик красителей и от способа их нанесения, но и их количества, характеристик бумаги и других факторов. Фактически, цифры CMYK являются лишь набором аппаратных данных для [ Cкачайте файл, чтобы посмотреть ссылку ] или [ Cкачайте файл, чтобы посмотреть ссылку ] и не определяют [ Cкачайте файл, чтобы посмотреть ссылку ] однозначно.
Так, исторически в разных странах сложилось несколько стандартизованных процессов [ Cкачайте файл, чтобы посмотреть ссылку ]. Сегодня это американский, европейский и японский стандарты для мелованной и немелованной бумаг. Именно для этих процессов разработаны стандартизованные бумаги и краски (например, стандарты ECI). Для них же созданы соответствующие [ Cкачайте файл, чтобы посмотреть ссылку ] CMYK, которые используются в процессах цветоделения. Однако, многие типографии, в которых работают специалисты с достаточной квалификацией (или способные на время пригласить такого специалиста), нередко создают профиль, описывающий печатный процесс конкретной печатной машины с конкретной бумагой. Этот профиль они предоставляют своим заказчикам.
Особо выделяется цветовая модель CMYK 255. Присутствие этой цветовой модели не допустимо для офсетной печати. Суть модели: Каждый из цветов описывается градацией не от 0 до 100 (как в классической CMYK модели), а от 0 до 255.

19. Цветовая модель HSV и HSL
HSV ([ Cкачайте файл, чтобы посмотреть ссылку ] Hue, Saturation, Value  тон, насыщенность, значение) или HSB ([ Cкачайте файл, чтобы посмотреть ссылку ] Hue, Saturation, Brightness  оттенок, насыщенность, яркость)  [ Cкачайте файл, чтобы посмотреть ссылку ], в которой [ Cкачайте файл, чтобы посмотреть ссылку ] [ Cкачайте файл, чтобы посмотреть ссылку ] являются:
Hue цветовой [ Cкачайте файл, чтобы посмотреть ссылку ], (например, [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] или сине-голубой). Варьируется в пределах 0360°, однако иногда приводится к диапазону 0100 или 01.
Saturation  [ Cкачайте файл, чтобы посмотреть ссылку ]. Варьируется в пределах 0100 или 01. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют [ Cкачайте файл, чтобы посмотреть ссылку ]. А чем ближе этот параметр к [ Cкачайте файл, чтобы посмотреть ссылку ], тем ближе цвет к нейтральному [ Cкачайте файл, чтобы посмотреть ссылку ].
Value (значение цвета) или Brightness яркость. Также задаётся в пределах 0100 и 01.
Модель была создана [ Cкачайте файл, чтобы посмотреть ссылку ], одним из основателей [ Cкачайте файл, чтобы посмотреть ссылку ], в [ Cкачайте файл, чтобы посмотреть ссылку ]. Она является нелинейным преобразованием модели [ Cкачайте файл, чтобы посмотреть ссылку ]. Цвет, представленный в HSV, зависит от устройства, на которое он будет выведен, так как HSV преобразование модели RGB, которая тоже зависит от устройства. Для получения кода цвета, не зависящего от устройства, используется модель [ Cкачайте файл, чтобы посмотреть ссылку ]. Следует отметить, что HSV (HSB) и [ Cкачайте файл, чтобы посмотреть ссылку ]  две разные цветовые модели. Модель HSV часто используется в программах компьютерной графики, так как удобна для человека.

20. Цифровая обработка сигналов
ЦОС, DSP  преобразование сигналов, представленных в цифровой форме. Любой непрерывный (аналоговый) сигнал s(t) может быть подвергнут [ Cкачайте файл, чтобы посмотреть ссылку ] по времени и [ Cкачайте файл, чтобы посмотреть ссылку ] по уровню ([ Cкачайте файл, чтобы посмотреть ссылку ]), то есть представлен в цифровой форме. Если [ Cкачайте файл, чтобы посмотреть ссылку ] сигнала Fd не меньше, чем удвоенная наивысшая частота в спектре сигнала Fmax, то полученный дискретный сигналs(k) эквивалентен сигналу s(t) . При помощи математических алгоритмов s(k) преобразуется в некоторый другой сигнал s1(k), имеющий требуемые свойства. Процесс преобразования сигналов называется [ Cкачайте файл, чтобы посмотреть ссылку ], а устройство, выполняющее фильтрацию, называется [ Cкачайте файл, чтобы посмотреть ссылку ]. Поскольку отсчёты сигналов поступают с постоянной скоростью Fd, фильтр должен успевать обрабатывать текущий отсчет до поступления следующего, то есть обрабатывать сигнал в [ Cкачайте файл, чтобы посмотреть ссылку ]. Для обработки сигналов (фильтрации) в реальном времени применяют специальные вычислительные устройства  [ Cкачайте файл, чтобы посмотреть ссылку ]. Всё это полностью применимо не только к непрерывным сигналам, но и к прерывистым, а также к сигналам, записанным на запоминающие устройства. В последнем случае скорость обработки непринципиальна, так как при медленной обработке данные не будут потеряны.
Различают методы обработки сигналов во временной и в частотной области. Эквивалентность частотно-временных преобразований однозначно определяется через [ Cкачайте файл, чтобы посмотреть ссылку ]. Обработка сигналов во временной области широко используется в современной электронной осциллографии и в цифровых осциллографах. Для представления сигналов в частотной области используются цифровые анализаторы спектра.

21. Преобразования Фурье
Преобразование Фурье операция, сопоставляющая функции вещественной переменной другую функцию вещественной переменной. Эта новая функция описывает коэффициенты («амплитуды») при разложении исходной функции на элементарные составляющие гармонические колебания с разными частотами. Преобразование Фурье функции f вещественной переменной является интегральным преобразованием и задается следующей формулой:
[ Cкачайте файл, чтобы посмотреть картинку ]
Алгоритм быстрого преобразование Фурье (БПФ) - основывается на стратегии “разделяй и властвуй”. Он не самый эффективный по количеству операций, но легко распараллеливается и не требует сложных вспомогательных вычислений, реализация которых на GPU может оказаться затруднительной или даже невозможной.

22. Основы OPENGL
OpenGL (Open Graphics Library - открытая графическая библиотека, графическое API) - спецификация, определяющая независимый от [ Cкачайте файл, чтобы посмотреть ссылку ] кросс - платформенный [ Cкачайте файл, чтобы посмотреть ссылку ] для написания приложений, использующих двумерную и трёхмерную [ Cкачайте файл, чтобы посмотреть ссылку ]. Включает более 250 функций для рисования сложных трёхмерных сцен из простых примитивов. Используется при создании [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], визуализации в научных исследованиях. На платформе [ Cкачайте файл, чтобы посмотреть ссылку ] конкурирует с[ Cкачайте файл, чтобы посмотреть ссылку ].
На базовом уровне, OpenGL  это просто спецификация, то есть документ, описывающий набор функций и их точное поведение. Производители оборудования на основе этой спецификации создают реализации  библиотеки функций, соответствующих набору функций спецификации. Реализация использует возможности оборудования там, где это возможно. Если аппаратура не позволяет реализовать какую-либо возможность, она должна быть эмулирована программно. Производители должны пройти специфические тесты (тесты на соответствие) прежде чем реализация будет классифицирована как OpenGL реализация.
OpenGL позволяет:
Создавать объекты из геометрических примитивов (точки, линии, грани и битовые изображения).
Располагать объекты в трёхмерном пространстве и выбирать способ и параметры проецирования.
Вычислять цвет всех объектов. Цвет может быть как явно задан, так и вычисляться с учётом источников света, параметров освещения, текстур.
Переводить математическое описание объектов и связанной с ними информации о цвете в изображение на экране.
П
·ри этом OpenGL может осуществлять дополнительные операции, такие, как удаление невидимых фрагментов изображения. Команды OpenGL реализованы как модель клиент-сервер. Приложение выступает в роли клиента: оно вырабатывает команды, а сервер OpenGL интерпретирует и выполняет их. Сам сервер может находиться как на том же компьютере, на котором находится и клиент, так и на другом.

23. Графический конвейер OpenGL
Команды OpenGL претерпевают одинаковый порядок обработки, проходя через последовательность стадий, называемых конвейером обработки OpenGL. Ниже следует краткое описание его основных блоков.
[ Cкачайте файл, чтобы посмотреть картинку ]
Этапы:
1.Обработка вершин и сборка примитивов (атрибуты вершин, источники света).
Вычислители:
Все геометрические примитивы описываются своими вершинами. Параметрические кривые и поверхности могут изначально быть описаны контрольными точками или базовыми функциями (обычно полиномиальными). Вычислители - это методы, которые генерируют координаты вершин, нормали к поверхности, координаты текстур и цвета точек, опираясь на контрольные точки.
Сборка примитивов:
На этом этапе происходит преобразование вершин в примитивы. Пространственные координаты (х, у, z) преобразовываются с помощью матриц размерностью (4 х 4). Основная цель получить экранные, двухмерные координаты из трехмерных координат. Если включен режим генерации текстуры, то она создается на этом этапе. Освещенность вычисляется исходя из координат вектора нормали, расположения источников света, отражающих свойств материала, углов конусов света и параметров его ослабления. В результате получается цвет пиксела. Важным моментом на этапе сборки примитивов является отсечение, то есть удаление тех частей геометрии, которые попадают в невидимую часть пространства. Точечное отсечение пропускает или не пропускает вершину. Отсечение линий или полигонов подразумевает не только удаление вершин, но и возможное добавление некоторых (промежуточных) вершин. На этом этапе происходит учет перспективы, то есть уменьшение тех деталей сцены, которые расположены дальше от точки наблюдения, и увеличение тех деталей, которые расположены ближе. Здесь используется понятие видимого объема. Режим заполнения промежуточных точек полигона тоже играет роль на этапе сборки;
2.Растеризация и обработка фрагментов (текстуры).
Сборка текстуры:
Текстуры это bitmap-изображения, накладываемые на поверхности геометрических объектов для придания эффекта фактуры реального материала. Текстурные объекты создаются в OpenGL для упрощения их повторного использования. Использование текстур сопряжено с большими затратами, поэтому в работе с ними применяют специальные ресурсы, такие как texture memory. Так называют быструю видеопамять, приоритет использования которой отдается текстурным объектам.
Растеризация:
Так называют преобразование как геометрических, так и данных о пикселах во фрагменты. Каждый фрагмент соответствует пикселу в буфере кадра. При вычислении цвета фрагмента учитывается большое количество факторов: узор штриховки полигона или линии, толщина линии и размер точки, сглаживание зубчатости линий, тень объекта, режим заполнения полигона, учет глубины изображения (факт видимости или невидимости) и др.
Операции с фрагментами:
Каждая точка уже двухмерного изображения характеризуется цветом, глубиной (значением координаты Z) и данными о текстуре. Такая точка вместе с сопутствующей информацией называется фрагментом. Фрагмент изменяет соответствующий ему пиксел в буфере кадра, если он проходит пять тестов:
тест, который проверяет принадлежность контексту, то есть не закрыт ли фрагмент другим окном;
Scissor-тест, который проверяет принадлежность вырезаемому прямоугольнику, который задается функцией glScissor;
Alpha-тест, который проверяет четвертый компонент цвета - прозрачность фрагмента с помощью функции glAlphaFunc;
Stencil-тест, используемый при создании специальных эффектов. Он, например, проверяет, не попал ли фрагмент в промежуток регулярного узора;
тест, который проверяет, не закрыт ли фрагмент другим фрагментом с меньшей координатой Z.
Кроме того, фрагмент претерпевает другие изменения.
текстурирование это генерация текстурного элемента на основе texture memory;
вычисление дымки;
смешивание;
интерполяция цвета;
логические операции;
маскирование с помощью трафарета;
3.Операции над пикселями.
Данные о пикселах следуют в конвейере OpenGL параллельным путем. Данные, хранимые в массивах системной памяти, распаковываются с учетом набора возможных форматов, затем масштабируются, сдвигаются и обрабатываются так называемой картой пикселов. Результат записывается либо в память текстуры, либо посылается на следующий этап растеризацию. Отметьте, что возможна обратная операция считывания пикселов. При этом также выполняются операции: масштабирование, сдвиг, преобразование и упаковка и помещение в системную память. Существуют специальные операции копирования данных из буфера кадра в другую его часть или в буфер текстуры;
4.Пердача данных в буфер кадра.

24. Организация OpenGL. Сопутствующие API
Интерфейс программирования приложений (API [эй-пи-ай]) набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.

25. Архитектура Windows Presentation Foundation
Windows Presentation Foundation (WPF, кодовое название  Avalon)  система для построения клиентских приложений [ Cкачайте файл, чтобы посмотреть ссылку ] с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе [ Cкачайте файл, чтобы посмотреть ссылку ] (начиная с версии [ Cкачайте файл, чтобы посмотреть ссылку ]), имеющая прямое отношение к [ Cкачайте файл, чтобы посмотреть ссылку ] (ЗАМЛ).
WPF вместе с .NET Framework 3.0 предустановлена в [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ]([ Cкачайте файл, чтобы посмотреть ссылку ] 3.5 SP1). С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в [ Cкачайте файл, чтобы посмотреть ссылку ] приложений. В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая Язык [ Cкачайте файл, чтобы посмотреть ссылку ] (Extensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление. Графической технологией, лежащей в основе WPF, является [ Cкачайте файл, чтобы посмотреть ссылку ], в отличие от [ Cкачайте файл, чтобы посмотреть ссылку ], где используется [ Cкачайте файл, чтобы посмотреть ссылку ]/[ Cкачайте файл, чтобы посмотреть ссылку ]. Производительность [ Cкачайте файл, чтобы посмотреть ссылку ] выше, чем у [ Cкачайте файл, чтобы посмотреть ссылку ] за счёт использования аппаратного ускорения графики через [ Cкачайте файл, чтобы посмотреть ссылку ].

26. Организация шейдеров
Ше
·йдер - это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки. Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности.
В настоящее время шейдеры делятся на три типа: вершинные, геометрические и фрагментные (пиксельные).
Вершинные шейдеры (Vertex Shader)
Вершинный шейдер оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д.
Геометрические шейдеры (Geometry Shader)
Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах может быть обработано до шести вершин для треугольного примитива. Кроме того геометрический шейдер способен генерировать примитивы «на лету», не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia серии 8.
Пиксельные шейдеры (Pixel Shader)
Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксель, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения.

27. Игровой движок
Игрово
·й движо
·к - это центральный программный компонент компьютерных и видео игр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows. Основную функциональность обычно обеспечивает игровой движок, включающий движок рендеринга («визуализатор»), физический движок, звук, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность. Часто на процессе разработки можно сэкономить за счет повторного использования одного игрового движка для создания множества различных игр.

28. Графический движок
Графический движок (graphics engine; иногда «рендерер» или «визуализатор») - подпрограммное обеспечение, программный движок, основной задачей которого является визуализация (рендеринг) двухмерной или трёхмерной компьютерной графики. Может существовать как отдельный продукт или в составе игрового движка. Может использоваться для визуализации отдельных изображений или компьютерного видео. Графические движки, использующееся в программах по работе с компьютерной графикой (таких, как 3ds Max, Maya, Cinema 4D, Zbrush, Blender), обычно называются «рендерерами», «отрисовщиками» или «визуализаторами». Само название «графический движок» используется, как правило, в компьютерных играх.
Основное и важнейшее отличие «игровых» графических движков от программных рендереров состоит в том, что первые должны обязательно работать в режиме реального времени, тогда как вторые могут тратить по несколько десятков часов на вывод одного изображения. Вторым существенным отличием является то, что начиная приблизительно с 1995-1997 года, графические движки производят рендеринг с помощью графических процессоров (GPU), которые установлены на отдельных платах - видеокартах. Программные рендереры используют только центральные процессоры (CPU).

29. Воксел. Доксел
Во
·ксел (Voxel образовано из слов: объёмный (англ. volumetric) и пиксел (англ. pixel) элемент объёмного изображения, содержащий значение элемента растра в трёхмерном пространстве. Вокселы являются аналогами пикселов для трехмёрного пространства. Воксельные модели часто используются для визуализации и анализа медицинской и научной информации.
Представление в памяти
Как и в случае с пикселами, сами по себе вокселы не содержат информации о своих координатах в пространстве. Их координаты вычисляются из их позиции в трёхмерной матрице структуре, моделирующей объёмный объект или поле значений параметра в трёхмерном пространстве. Этим вокселы отличаются от объектов векторной графики, для которых известны координаты их опорных точек (вершин) и прочие параметры. Воксельные модели имеют определенное разрешение. Каждый воксел имеет определенное значение, например, цвет.
Для хранения воксельной модели применяют массив размерами XЧYЧZ. Несжатые воксельные модели (по сравнению с векторными) потребляют гораздо больше места в памяти для обработки.
Докселы это вокселы, изменяющиеся во времени. Как ряд картинок составляет анимацию, так и ряд воксельных моделей во времени могут составлять трёхмерную анимацию.

30. Спрайт
Спрайт (англ. Sprite - фея; эльф) - графический объект в компьютерной графике.
Чаще всего - растровое изображение, свободно перемещающееся по экрану. Наблюдение спрайта под несоответствующим углом приводит к разрушению иллюзии. То есть легче всего воспринимать спрайт как перемещающуюся в пространстве проекцию какого-то объёмного тела так, что разница незаметна.
Спрайты в двухмерной графике
Изначально под спрайтами понимали небольшие рисунки, которые выводились на экран с применением аппаратного ускорения. На некоторых машинах (MSX 1, NES) программная прорисовка приводила к определённым ограничениям, а аппаратные спрайты этого ограничения не имели. Впоследствии с увеличением мощности центрального процессора, от аппаратных спрайтов отказались, и понятие «спрайт» распространилось на всех двумерных персонажей. В частности, в видеоиграх Super Mario и Heroes of Might and Magic вся графика спрайтовая.
К аппаратно ускоренным спрайтам вернулись в середине 1990-х годов когда развитие мультимедиа и взрывное повышение разрешения и глубины цвета потребовало специализированный процессор в видеоплате. Именно тогда, как обёртка над аппаратным 2D-ускорителем, вышел DirectDraw. DirectX 8 ввёл общий API для двух- и трёхмерной графики, и в современных спрайтовых играх двухмерные спрайты выводятся точно так же, как и трёхмерные как текстурированный прямоугольник.
CSS-спрайты
Применяются в вебе. Несколько изображений располагаются в одном графическом файле. Для того, чтобы вырезать из файла нужный кусок, применяется CSS отсюда название технологии. CSS-спрайты экономят трафик и ускоряют загрузку браузеру потребуется запрашивать меньше файлов.
Спрайты в трёхмерной графике
Движки первого поколения:
В первых трёхмерных играх, например, Wolfenstein 3D (1992) и Doom (1993), персонажи представлялись в виде двумерных рисунков, изменяющих размер в зависимости от расстояния.
На 3D-акселераторах:
На 3D-акселераторах применяется такая техника: объект рисуется в виде плоскости с наложенной на неё текстурой с прозрачными областями. Эта технология применяется в трёх случаях.
1.Оптимизация. Спрайты могут применяться для оптимизации графического ядра, когда отрисовка трёхмерной детализованной модели слишком накладна и может привести к сильному падению скорости рендеринга. Таковыми являются: а) объекты, присутствующие в сцене в большом количестве и которые, будучи трёхмерными, имели бы большое количество граней и очень сильно влияли бы на производительность - например, публика, трава и т. д. б) Удалённые объекты, которые вблизи рисуются полигональными моделями.
2.Спецэффекты. Некоторые спецэффекты (например, огонь) выполняются спрайтами, так как полигональный огонь плохо смотрится. Для большей правдоподобности изображения используется большое количество сравнительно маленьких спрайтов (так называемая система частиц).
3.Живая съёмка. Изредка спрайты применяются для добавления в игру живого фото или видео. Появление шейдеров частично снимает потребность в живой съёмке многие нюансы фотоизображения уже можно передать полигональными моделями в реальном времени.

31. Microsoft XNA
Microsoft XNA - набор инструментов с управляемой средой времени выполнения (.NET), созданный Microsoft, облегчающий разработку и управление компьютерными играми. XNA стремится освободить разработку игр от написания «повторяющегося шаблонного кода» и объединить различные аспекты разработки игр в одной системе. Набор инструментов XNA был анонсирован 24 марта 2004 на Game Developers Conference в Сан-Хосе, Калифорния. Первый Community Technology Preview XNA Build был выпущен 14 марта 2006.
Цели и описание проекта
Пакет Microsoft XNA, по словам представителей Microsoft, позволит разработчикам игр избежать многих технических трудностей, возникающих при написании кода, а также обеспечит существенное снижение стоимости конечной продукции. Кроме того, благодаря XNA программисты смогут создавать принципиально новые игры с высококачественной графикой. В ходе демонстрации, Microsoft показала два анимационных ролика, созданных с применением технологии XNA. В одном из них облако вздымающегося сигаретного дыма в режиме реального времени меняло свою форму и направление движения под действием внешних факторов. Другой ролик демонстрировал разлетающиеся в разные стороны детали разбившегося о стену автомобиля.
Инструментарий XNA изначально разрабатывался с целью максимально облегчить процесс разработки игр для консоли Xbox и компьютеров, работающих под управлением операционной системы Windows. Вместе с тем, пакет XNA позволит распространить общие сервисы Xbox Live, такие как, например, аутентификация, на игры для персональных компьютеров. Инструментарий XNA позволяет Microsoft конкурировать с Sony на рынке видеоигр для следующего поколения игровых приставок.

32. Графический ускоритель Intel GMA
Intel Graphics Media Accelerator (GMA) - линейка [ Cкачайте файл, чтобы посмотреть ссылку ] компании [ Cкачайте файл, чтобы посмотреть ссылку ], интегрированных в различные [ Cкачайте файл, чтобы посмотреть ссылку ] материнских плат. Встроенная графика позволяет построить компьютер без отдельных [ Cкачайте файл, чтобы посмотреть ссылку ], что сокращает стоимость и энергопотребление систем. Данное решение обычно используется в ноутбуках и настольных компьютерах нижней ценовой категории, а также для бизнес компьютеров, для которых не требуется высокий уровень производительности графической системы. 90 % всех персональных компьютеров, продающихся в мире, имеют встроенную графическую плату. В качестве видеопамяти данные графические системы используют [ Cкачайте файл, чтобы посмотреть ссылку ] компьютера, что приводит к ограничениям производительности, так как и [ Cкачайте файл, чтобы посмотреть ссылку ] и графический процессоры для доступа к памяти используют одну [ Cкачайте файл, чтобы посмотреть ссылку ].
Intel GMA является наследником более ранних технологий Intel Extreme Graphics и Intel Extreme Graphics 2.
Первые представители архитектуры GMA поддерживали только несколько функций на аппаратном уровне, и полагались на центральный процессор для обработки многих функций графического конвейера, что приводило к весьма низкой производительности. Однако с появлением 4-го поколения Intel GMA в 2006 году, многие функции были возложены на аппаратные средства графического процессора, что обеспечило существенный прирост производительности. GMA 4-го поколения сочетает блоки с фиксированными функциями с потоковым массивом программируемых блоков, обеспечивая преимущества как для обработки графики так и для ускорения и обработки видео. Многие из преимуществ новой архитектуры GMA исходят из способности гибко переключаться по мере необходимости между выполнением графических задач и задач по обработке видео данных.
33. Графическое ядро Core i5
Intel Core i5 семейство процессоров x86-64 от Intel. Позиционируется как семейство процессоров среднего уровня цены и производительности, между более дешёвым Intel Core i3 и более дорогим Core i7. Они имеют встроенный контроллер памяти и поддерживают технологию Turbo Boost (автоматический разгон процессора под нагрузкой). Многие имеют встроенный графический процессор. Core i5 соединяются с чипсетом через шину DMI. Первые Core i5 для настольных компьютеров появились в сентябре 2009 года и используют ядро Lynnfield микроархитектуры Nehalem. В 2010 году появились Core i5 с ядром Clarkdale и со встроенным графическим процессором (в корпусе процессора, но на отдельном кристалле). Мобильные версии Core i5 используют ядро Arrandale.

34. Целочисленный алгоритм Брезенхема
Алгоритм Брезенхэ
·ма это алгоритм, определяющий, какие точки двумерного растра нужно закрасить, чтобы получить близкое приближение прямой линии между двумя заданными точками. Это один из старейших алгоритмов в графике. Алгоритм выбирает оптимальные растровые координаты для представления отрезка. В процессе работы одна из координат - либо x, либо y (в зависимости от углового коэффициента) - изменяется на единицу. Изменение другой координаты (на 0 или 1) зависит от расстояния между действительным положением отрезка и ближайшими координатами сетки. Такое расстояние мы назовем ошибкой.
Алгоритм Брезенхема, работающий с действительными величинами, можно записать в следующем виде:
1. Ввод исходных данных Xн,Yн,Xк,Yк.
2. Проверка вырожденности отрезка. Если отрезок вырожденный, то высвечивается точка и осуществляется переход к п.10.
3. Вычисление приращений dX:=Xк-Xн и dY:=Yк-Yн.
4. Вычисление шага изменения каждой координаты пиксела: SX:=sign(dX), SY:=sign(dY).
5. Вычисление модулей приращения координат: dX:=(dX(, dY:=(dY(
6. Обмен значений dX и dY в зависимости от углового коэффициента наклона отрезка:
если dY > dX, то выполнить Temp:=dX, dX:=dY, dY:=Temp, flag:=1; иначе flag:=0 (flag - флаг, определяющий факт обмена местами координат).
7. Инициализация начального значения ошибки:
f:= dY/dX -0,5 (для целочисленного алгоритма: fц=2dY-dX)
8. Инициализация начальных значений координат текущего пиксела: X:=Xн, Y:=Yн
9. Цикл - пока Х( Xк делать:
9.1. Высвечивание точки с координатами (X,Y).
9.2. Вычисление координат и корректировка ошибки для следующего пиксела:
Если f(0, то если flag:=1, то X:=X+SX иначе Y:=Y+SY; корректировка ошибки f:=f-1 (fц=fц-2dX)
Если f<0, то если flag:=1, то Y:=Y+SY иначе X:=X+SX.
9.3. Вычисление ошибки f:=f+ dY/dX (fц=fц+2dY).
10. Конец.
Алгоритм Брезенхема требует использования арифметики с плавающей точкой и деления (для вычисления углового коэффициента и оценки ошибки). Быстродействие алгоритма можно увеличить, если использовать только целочисленную арифметику и исключить деление. Для этого выражение, например f = m - 0.5, запишем в виде: f = dY/dX-1/2 и, умножив обе части этого равенства на 2(dX, получим:
2(dX(f = 2(dY - dX.
Обозначив fц=2(dX(f, окончательно получим:
fц = 2(dY - dX
(В соответствии с этим выражением должно вычисляться теперь начальное значение ошибки в п.7).
Тогда подсчет нового значения ошибки в п.9 "действительного" алгоритма будет производиться по формулам:
fц = fц + 2(dY и fц = fц - 2(dX.

35. Алгоритм Брезенхема для генерации окружности
Один из наиболее эффективных и простых для понимания алгоритмов генерации окружности принадлежит Брезенхему. Для начала необходимо сгенерировать только одну восьмую часть окружности. Остальные ее части могут быть получены последовательными отражениями, как это показано на рис. Если сгенерирован первый октант (от 0 до 45° против часовой стрелки), то второй октант можно получить зеркальным отражением относительно прямой у = х, что дает в совокупности первый квадрант. Первый квадрант отражается относительно прямой х = 0 для получения соответствующей части окружности во втором квадранте. Верхняя полуокружность отражается относительно прямой у = 0 для завершения построения. На рис. приведены двумерные матрицы соответствующих преобразований.

Для вывода алгоритма рассмотрим первую четверть окружности с центром в начале координат. Заметим, что если работа алгоритма начинается в точке х = 0, у = R, то при генерации окружности по часовой стрелке в первом квадранте у является монотонно убывающей функцией аргументам (рис. 5.2). Аналогично, если исходной точкой является у = 0, х == R, то при генерации окружности против часовой стрелки х будет монотонно убывающей функцией аргумента у. В нашем случае выбирается генерация по часовой стрелке с началом в точке х = 0, у = R. Предполагается, что центр окружности и начальная точка находятся точно в точках растра. Для любой заданной точки на окружности при генерации по часовой стрелке существует только три возможности выбрать следующий пиксел, наилучшим образом приближающий окружность: горизонтально вправо, по диагонали вниз и вправо, вертикально вниз. На рис. 5.3 эти направления обозначены соответственно mH, mD, mV. Алгоритм выбирает пиксел, для которого минимален квадрат расстояния между одним из этих пикселов и окружностью, т. е. минимум из mH = |(xi + 1)2 + (yi)2 -R2|; mD = |(xi + 1)2 + (yi -1)2 -R2|; mV = |(xi )2 + (yi -1)2 -R2|

Рис. 5.2. Окружность в первом квадранте.

Рис.5.3. Выбор пикселов в первом квадранте.

36. Буферы кадра
Кадровый буфер  (буфер кадра, видеобуфер, фреймбуфер) - реальное или виртуальное электронное устройство, или область [ Cкачайте файл, чтобы посмотреть ссылку ] для кратковременного хранения одного или нескольких [ Cкачайте файл, чтобы посмотреть ссылку ] в цифровом виде перед его отправкой на устройство видеовывода. Буфер может быть использован для выполнения над кадром различных предварительных операций, организации [ Cкачайте файл, чтобы посмотреть ссылку ], устранения мерцания изображения и др. Обычно кадр хранится в виде последовательности цветовых значений каждого [ Cкачайте файл, чтобы посмотреть ссылку ] изображения. Цветовые значения чаще всего хранятся в следующих форматах: одноразрядный ([ Cкачайте файл, чтобы посмотреть ссылку ]; 1 [ Cкачайте файл, чтобы посмотреть ссылку ]), 4/8-битный ([ Cкачайте файл, чтобы посмотреть ссылку ]), 16-битный ([ Cкачайте файл, чтобы посмотреть ссылку ]) и 24-битный ([ Cкачайте файл, чтобы посмотреть ссылку ]); также может присутствовать [ Cкачайте файл, чтобы посмотреть ссылку ]. Размер памяти, необходимый для хранения одного кадра, зависит от [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ].

37. Точки и линии. Преобразование точек и линий
Изучение математического аппарата, лежащего в основе компьютерной графики, начинается с рассмотрения способов вывода и преобразования точек и линий. Эти способы наряду с соответствующими алгоритмами рисования используются для изображения объектов или визуализации графической информации. Возможность проводить преобразования точек и линий является фундаментом машинной графики. Нарисованный объект может быть представлен в нужном масштабе, повернут, перемещен или модифицирован в соответствии с требованиями решаемой задачи.
Точка представляется на плоскости двумя своими координатами, которые определяются как элементы матрицы размером 1ґ2 [х у]. В трехмерном пространстве используется матрица размером 1ґ3 [х  у  z].
Иначе говоря, точка может задаваться в виде вектора – столбца [ Cкачайте файл, чтобы посмотреть картинку ]   в двумерном пространстве или в виде [ Cкачайте файл, чтобы посмотреть картинку ]  – в трехмерном. Строку [х  у] или столбец часто называют координатным вектором. Для формирования такого вектора используется матрица – строка, т. е. множество точек, каждая из которых определяет координатный вектор в некоторой системе измерений. Данное множество хранится в компьютере в виде матрицы или массива чисел. Положением точек можно управлять путем манипулирования соответствующей матрицей. Линии, соединяющие точки, формируют отрезки, кривые и картинки.
Рассмотрим результаты умножения матрицы [х у], содержащей координаты точки Р, на матрицу общего преобразования размером  2ґ2: [ Cкачайте файл, чтобы посмотреть картинку ]                     
Данная запись  означает, что исходные координаты точки х и у преобразуются в х* у* , где x*=ax + cy, y*=bx + by.  Представляют интерес значения х*, у* – координаты результирующей, преобразованной точки Р.
Прямую линию можно определить с помощью двух векторов, задающих координаты ее конечных точек. Расположение и направление линии, соединяющей две эти точки, может изменяться в зависимости от положений векторов. Реальный вид изображения линии зависит от типа используемого дисплея.

38. Полярная и декартовая система координат
Полярная система координат двумерная система координат, в которой каждая точка на плоскости определяется двумя числами полярным углом и полярным радиусом. Полярная система координат особенно полезна в случаях, когда отношения между точками проще изобразить в виде радиусов и углов; в более распространённой, декартовой или прямоугольной системе координат, такие отношения можно установить только путём применения тригонометрических уравнений. Полярная система координат задаётся лучом, который называют нулевым или полярной осью. Точка, из которой выходит этот луч называется началом координат или полюсом. Любая точка на плоскости определяется двумя полярными координатами: радиальной и угловой. Радиальная координата (обычно обозначается r) соответствует расстоянию от точки до начала координат. Угловая координата, также называется полярным углом или азимутом и обозначается, равна углу, на который нужно повернуть против часовой стрелки полярную ось для того, чтобы попасть в эту точку. Определённая таким образом радиальная координата может принимать значения от нуля до бесконечности, а угловая координата изменяется в пределах от 0° до 360°. Однако, для удобства область значений полярной координаты можно расширить за пределы полного угла, а также разрешить ей принимать отрицательные значения, что отвечает повороту полярной оси по часовой стрелке.
Прямоугольная (Декартовая) система координат на плоскости образуется двумя взаимно перпендикулярными осями координат OX и OY. Оси координат пересекаются в точке O, которая называется началом координат, на каждой оси выбрано положительное направление. В правосторонней системе координат положительное направление осей выбирают так, чтобы при направлении оси OY вверх, ось OX смотрела направо. Четыре угла (I, II, III, IV), образованные осями координат X'X и Y'Y, называются координатными углами или квадрантами. Положение точки A на плоскости определяется двумя координатами x и y. Координата x равна длине отрезка OB, координата y длине отрезка OC в выбранных единицах измерения. Отрезки OB и OC определяются линиями, проведёнными из точки A параллельно осям Y'Y и X'X соответственно. Координата x называется абсциссой точки A, координата y - ординатой точки A (А(x,y)). Если точка A лежит в координатном углу I, то точка A имеет положительные абсциссу и ординату. Если точка A лежит в координатном углу II, то точка A имеет отрицательную абсциссу и положительную ординату. Если точка A лежит в координатном углу III, то точка A имеет отрицательные абсциссу и ординату. Если точка A лежит в координатном углу IV, то точка A имеет положительную абсциссу и отрицательную ординату. Прямоугольная система координат в пространстве образуется тремя взаимно перпендикулярными осями координат OX, OY и OZ. Оси координат пересекаются в точке O, которая называется началом координат, на каждой оси выбрано положительное направление, указанное стрелками, и единица измерения отрезков на осях. Единицы измерения обычно одинаковы для всех осей (что не является обязательным). OX ось абсцисс, OY ось ординат, OZ ось аппликат.

39. Трехмерные преобразования
Рассмотрим трехмерную декартовую систему координат. Из курса геометрии известно, что точка в трехмерном пространстве описывается радиус-вектором r и координатами (x,y,z). Для реализации трехмерных преобразований с помощью матриц необходимо перейти к [ Cкачайте файл, чтобы посмотреть ссылку ] (x,y,z,1).
Тогда матрица трехмерного преобразования А (переноса, масштабирования, поворота) в общем виде будет следующей: [ Cкачайте файл, чтобы посмотреть картинку ]
где матрица A1 осуществляет линейное преобразование в виде изменения масштаба, сдвига и вращения, вектор (a41,a42,a43) производит перенос объекта, а вектор-столбец (a14,a24,a34)T 
· преобразования в перспективе. Скалярный элемент a44 выполняет общее изменение масштаба.

40. Трехмерный сдвиг. Трехмерные вращения.
Трехмерный сдвиг
Недиагональные элементы матрицы A1 осуществляют сдвиг в трех измерениях, т.е. [ Cкачайте файл, чтобы посмотреть картинку ]
Трехмерное вращение
Матрица поворота вокруг оси Oz имеет вид: [ Cкачайте файл, чтобы посмотреть картинку ]
Матрица поворота вокруг оси Ox имеет вид: [ Cкачайте файл, чтобы посмотреть картинку ]
и вокруг оси Oy: [ Cкачайте файл, чтобы посмотреть картинку ]
Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные: [ Cкачайте файл, чтобы посмотреть картинку ]
для операции масштабирования
· на обратные значения: [ Cкачайте файл, чтобы посмотреть картинку ]
для поворота
· выбором отрицательного угла поворота: [ Cкачайте файл, чтобы посмотреть картинку ].
Результатом нескольких последовательных поворотов будет матрица [ Cкачайте файл, чтобы посмотреть картинку ]
Здесь верхняя матрица размером 3x3 является ортогональной.

41. Закраска Гуро
[ Cкачайте файл, чтобы посмотреть картинку ]
Метод закраски, который основан на интерполяции интенсивности и известен как метод Гуро (по имени его разработчика), позволяет устранить дискретность изменения интенсивности. Процесс закраски по методу Гуро осуществляется в четыре этапа:
1. Вычисляются нормали ко всем полигонам.
2.Определяются нормали в вершинах путем усреднения нормалей по всем полигональным граням, которым принадлежит вершина.
Нормали к вершинам: [ Cкачайте файл, чтобы посмотреть картинку ]v=([ Cкачайте файл, чтобы посмотреть картинку ]1 + [ Cкачайте файл, чтобы посмотреть картинку ]2 + [ Cкачайте файл, чтобы посмотреть картинку ]3 + [ Cкачайте файл, чтобы посмотреть картинку ]4 + [ Cкачайте файл, чтобы посмотреть картинку ]v)/4
3. Используя нормали в вершинах и применяя произвольный метод закраски, вычисляются значения интенсивности в вершинах.
4. Каждый многоугольник закрашивается путем линейной интерполяции значений интенсивностей в вершинах сначала вдоль каждого ребра, а затем и между ребрами вдоль каждой сканирующей строки.
[ Cкачайте файл, чтобы посмотреть картинку ]
Интерполяция вдоль ребер легко объединяется с алгоритмом удаления скрытых поверхностей, построенным на принципе построчного сканирования. Для всех ребер запоминается начальная интенсивность, а также изменение интенсивности при каждом единичном шаге по координате y, Заполнение видимого интервала на сканирующей строке производится путем интерполяции между значениями интенсивности на двух ребрах, ограничивающих интервал.
Для цветных объектов отдельно интерполируется каждая из компонент цвета.

42. Закраска Фонга
В методе закраски, разработанном Фонгом, используется интерполяция вектора нормали [ Cкачайте файл, чтобы посмотреть картинку ] к поверхности вдоль видимого интервала на сканирующей строке внутри многоугольника, а не интерполяция интенсивности. Интерполяция выполняется между начальной и конечной нормалями, которые сами тоже являются результатами интерполяции вдоль ребер многоугольника между нормалями в вершинах. Нормали в вершинах, в свою очередь, вычисляются так же, как в методе закраски, построенном на основе интерполяции интенсивности.
В каждом пикселе вдоль сканирующей строки новое значение интенсивности вычисляется с помощью любой модели закраски. Заметные улучшения по сравнению с интерполяцией интенсивности наблюдаются в случае использования модели с учетом зеркального отражения, так как при этом более точно воспроизводятся световые блики. Однако даже если зеркальное отражение не используется, интерполяция векторов нормали приводит к более качественным результатам, чем интерполяция интенсивности, поскольку аппроксимация нормали в этом случае осуществляется в каждой точке. При этом значительно возрастают вычислительные затраты.
Чтобы закрасить куски бикубической поверхности, для каждого пиксела, исходя из уравнений поверхности, вычисляется нормаль к поверхности. Этот процесс тоже достаточно дорогой. Затем с помощью любой модели закраски определяется значение интенсивности. Однако прежде чем применить метод закраски к плоским или бикубическим поверхностям, необходимо иметь информацию о том, какие источники света (если они имеются) в действительности освещают точку. Поэтому мы должны рассматривать также и тени.
43.Технология CUDA это программно-аппаратная вычислительная архитектура NVIDIA, основанная на расширении языка Си, которая даёт возможность организации доступа к набору инструкций графического ускорителя и управления его памятью при организации параллельных вычислений. CUDA помогает реализовывать алгоритмы, выполнимые на графических процессорах видеоускорителей GeForce восьмого поколения и старше (серии GeForce 8, GeForce 9, GeForce 200), а также Quadro и Tesla.
Хотя трудоёмкость программирования GPU при помощи CUDA довольно велика, она ниже, чем с ранними GPGPU решениями. Такие программы требуют разбиения приложения между несколькими мультипроцессорами подобно MPI программированию, но без разделения данных, которые хранятся в общей видеопамяти. И так как CUDA программирование для каждого мультипроцессора подобно OpenMP программированию, оно требует хорошего понимания организации памяти. Но, конечно же, сложность разработки и переноса на CUDA сильно зависит от приложения.
Набор для разработчиков содержит множество примеров кода и хорошо документирован. Процесс обучения потребует около двух-четырёх недель для тех, кто уже знаком с OpenMP и MPI. В основе API лежит расширенный язык Си, а для трансляции кода с этого языка в состав CUDA SDK входит компилятор командной строки nvcc, созданный на основе открытого компилятора Open64.
Перечислим основные характеристики CUDA:
унифицированное программно-аппаратное решение для параллельных вычислений на видеочипах NVIDIA;
большой набор поддерживаемых решений, от мобильных до мультичиповых
стандартный язык программирования Си;
стандартные библиотеки численного анализа FFT (быстрое преобразование Фурье) и BLAS (линейная алгебра);
оптимизированный обмен данными между CPU и GPU;
взаимодействие с графическими API OpenGL и DirectX;
поддержка 32- и 64-битных операционных систем: Windows XP, Windows Vista, Linux и MacOS X;
возможность разработки на низком уровне.
Касательно поддержки операционных систем нужно добавить, что официально поддерживаются все основные дистрибутивы Linux (Red Hat Enterprise Linux 3.x/4.x/5.x, SUSE Linux 10.x), но, судя по данным энтузиастов, CUDA прекрасно работает и на других сборках: Fedora Core, Ubuntu, Gentoo и др.
Среда разработки CUDA (CUDA Toolkit) включает:
компилятор nvcc;
библиотеки FFT и BLAS;
профилировщик;
отладчик gdb для GPU;
CUDA runtime драйвер в комплекте стандартных драйверов NVIDIA
руководство по программированию;
CUDA Developer SDK (исходный код, утилиты и документация).
В примерах исходного кода: параллельная битонная сортировка (bitonic sort), транспонирование матриц, параллельное префиксное суммирование больших массивов, свёртка изображений, дискретное вейвлет-преобразование, пример взаимодействия с OpenGL и Direct3D, использование библиотек CUBLAS и CUFFT, вычисление цены опциона (формула Блэка-Шоулза, биномиальная модель, метод Монте-Карло), параллельный генератор случайных чисел Mersenne Twister, вычисление гистограммы большого массива, шумоподавление, фильтр Собеля (нахождение границ).
44. Технология SilverLight
Microsoft Silverlight  это программная платформа, включающая в себя [ Cкачайте файл, чтобы посмотреть ссылку ] для [ Cкачайте файл, чтобы посмотреть ссылку ], который позволяет запускать приложения, содержащие [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ], что характерно для [ Cкачайте файл, чтобы посмотреть ссылку ] (Rich Internet application). Версия 2.0 добавила поддержку для языков [ Cкачайте файл, чтобы посмотреть ссылку ][ Cкачайте файл, чтобы посмотреть ссылку ][ Cкачайте файл, чтобы посмотреть ссылку ] и интеграцию с [ Cкачайте файл, чтобы посмотреть ссылку ].
Silverlight предоставляет графическую систему, схожую с [ Cкачайте файл, чтобы посмотреть ссылку ], и объединяет [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ] в одной программной платформе. Он был разработан, чтобы работать с [ Cкачайте файл, чтобы посмотреть ссылку ] и с языками [ Cкачайте файл, чтобы посмотреть ссылку ]. XAML используется для [ Cкачайте файл, чтобы посмотреть ссылку ] страниц, использующих [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ]. Текст, содержащийся в приложениях Silverlight, недоступен для [ Cкачайте файл, чтобы посмотреть ссылку ], так как он не [ Cкачайте файл, чтобы посмотреть ссылку ], а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать [ Cкачайте файл, чтобы посмотреть ссылку ]для [ Cкачайте файл, чтобы посмотреть ссылку ] в [ Cкачайте файл, чтобы посмотреть ссылку ][ Cкачайте файл, чтобы посмотреть ссылку ].
Silverlight может воспроизводить [ Cкачайте файл, чтобы посмотреть ссылку ], [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ][ Cкачайте файл, чтобы посмотреть ссылку ] для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как [ Cкачайте файл, чтобы посмотреть ссылку ]. Так как[ Cкачайте файл, чтобы посмотреть ссылку ] является реализацией стандарта [ Cкачайте файл, чтобы посмотреть ссылку ] [ Cкачайте файл, чтобы посмотреть ссылку ], Silverlight поддерживает видео VC-1, только внутри контейнера [ Cкачайте файл, чтобы посмотреть ссылку ]. Кроме того, лицензионное соглашение говорит, что VC-1 разрешено использовать только в личных, некоммерческих целях («personal and non-commercial use of a consumer»)[ Cкачайте файл, чтобы посмотреть ссылку ]. Silverlight позволяет динамически загружать [ Cкачайте файл, чтобы посмотреть ссылку ] и использовать [ Cкачайте файл, чтобы посмотреть ссылку ] для взаимодействия с ним так же, как это делается в [ Cкачайте файл, чтобы посмотреть ссылку ]. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению[ Cкачайте файл, чтобы посмотреть ссылку ]. Начиная с версии 2.0, логика программы может быть описана в любом из языков [ Cкачайте файл, чтобы посмотреть ссылку ], включая [ Cкачайте файл, чтобы посмотреть ссылку ] такие как [ Cкачайте файл, чтобы посмотреть ссылку ] и [ Cкачайте файл, чтобы посмотреть ссылку ], которые в свою очередь исполняются в DLR ([ Cкачайте файл, чтобы посмотреть ссылку ]), а не CLR ([ Cкачайте файл, чтобы посмотреть ссылку ]).
45.Z- буфферизация
Z-буферизация  в [ Cкачайте файл, чтобы посмотреть ссылку ] [ Cкачайте файл, чтобы посмотреть ссылку ] способ учёта удалённости элемента [ Cкачайте файл, чтобы посмотреть ссылку ]. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если реализуется [ Cкачайте файл, чтобы посмотреть ссылку ]. Программно же существуют другие методы, способные конкурировать с ним: [ Cкачайте файл, чтобы посмотреть ссылку ] («алгоритм художника») и [ Cкачайте файл, чтобы посмотреть ссылку ] (BSP), но они также имеют свои достоинства и недостатки. Основной недостаток Z-буферизации состоит в потреблении большого объёма [ Cкачайте файл, чтобы посмотреть ссылку ]: в работе используется так называемый буфер глубины или Z-буфер.
Z-буфер представляет собой двумерный [ Cкачайте файл, чтобы посмотреть ссылку ], каждый элемент которого соответствует [ Cкачайте файл, чтобы посмотреть ссылку ] на экране. Когда [ Cкачайте файл, чтобы посмотреть ссылку ] [ Cкачайте файл, чтобы посмотреть ссылку ] пиксел, его удалённость просчитывается и записывается в ячейку Z-буфера. Если пикселы двух рисуемых объектов перекрываются, то их значения глубины сравниваются, и рисуется тот, который ближе, а его значение удалённости сохраняется в буфер. Получаемое при этом графическое изображение носит название [ Cкачайте файл, чтобы посмотреть ссылку ], представляющая собой [ Cкачайте файл, чтобы посмотреть ссылку ], каждый пиксел которого может принимать до 256 значений серого. По ним определяется удалённость от зрителя того или иного объекта трехмерной сцены. Карта широко применяется в постобработке для придания объёмности и реалистичности и создаёт такие эффекты, как [ Cкачайте файл, чтобы посмотреть ссылку ], атмосферная дымка и т.д. Также карта используется в 3д-пакетах для [ Cкачайте файл, чтобы посмотреть ссылку ], делая поверхность рельефной.
46. Обработка изображений
Обработка изображений  любая форма обработки информации, для которой входные данные представлены изображением, например, фотографиями или видеокадрами. Обработка изображений может осуществляться как для получения изображения на выходе (например, подготовка к полиграфическому тиражированию, к телетрансляции и т. д.), так и для получения другой информации (например, распознание текста, подсчёт числа и типа клеток в поле микроскопа и т. д.). Кроме статичных двухмерных изображений, обрабатывать требуется также изображения, изменяющиеся со временем, например видео.

Рисунок 74 Заголовок 215

Приложенные файлы

  • doc 15618163
    Размер файла: 457 kB Загрузок: 0

Добавить комментарий