Векторные редакторы позволяют создавать изображения типа схем, чертежей, диаграмм, простых рисунков. Одним из наиболее известных векторных редакторов является Corel Draw. Характерные возможности этого редактора — привязка линий к определенной позиции на изображении, создание выносок и размерных линий, работа с многостраничными изображениями, стандартный интерфейс Windows, многоуровневый откат, кроссплатформенность (имеются версии для Windows, OS/2, MAC, различных вариантов UNIX). Примеры других векторных редакторов — Microsoft Paint, iGrafx Designer, Visio 2000, Adobe Illustrator.
Растровые графические редакторы выполняют такие функции, как воспроизведение сложных изображений типа фотографий, их редактирование с помощью операций закрашивания, обрезания, маскирования, изменения параметров всего изображения или его участков. В этом классе графических редакторов лидирующее положение занимает Adobe Photoshop. При его использовании все изображение строится из набора отдельных слоев-картинок, имеющих прозрачные и закрашенные участки. Можно создавать, удалять, копировать, комбинировать участки, регулировать прозрачность и порядок расположения слоев. В пакете предусмотрены возможности построения и редактирования также векторных изображений.
Для синтеза трехмерных изображений в САПР преимущественно используют средства таких известных систем, как CATIA, Unigraphics, Inventor, Solidworks и др. Однако кроме них существуют и применяютсяграфические библиотеки и пакеты компьютерной графики и геометрического моделирования, непосредственно не связанные с проектированием в технике.
К числу графических библиотек, получивших наибольшее распространение, относится библиотека графических процедур Open GL. Open Graphics Library — открытая графическая библиотека и спецификация (стандарт) на интерфейсы программирования трехмерной графики. Библиотеку выпускают такие корпорации, как Microsoft, Silicon Graphics, а также просто группы программистов. В библиотеке OpenGL имеются процедуры построенияграфических примитивов (к числу которых относят точки, линии, полигоны), удаления невидимых линий, Z-буферизации, реалистичной засветки, задания положения тел и камеры наблюдения и т.п. Примитивы могут быть как векторными, так и растровыми. Важной особенностью технологии OpenGL является инвариантность к аппаратно-программным платформам.
Единицей информации в OpenGL является вершина, из вершин формируются более сложные объекты. Программист создает вершины, указывает, как их соединять (линиями или многоугольниками), устанавливает координаты и параметры камеры и ламп, а библиотека Open GL берет на себя работу создания изображения на экране. С помощью Open GL создаются трехмерные поверхности, текстуры, моделируются источники света, создаются эффекты тумана, прозрачности, смешивания цветов, имеются операции анимации с передвижением объектов сцены.
Альтернативой OpenGL для платформыMicrosoft является комплекс DirectX (Direct eXtension). Он представлет собой API ( Application Programming Interface) для решения задач, относящихся к мультимедийным приложениям, в частности, для разработки компьютерных игр. В DirectX входит несколько API, один из них Direct3D используется для 3D-графики, другие - для звука, музыки, устройств ввода и т.д. Microsoft DirectX — это графический интерфейс прикладного программирования (Application Programming Interface, API). До появления API каждый производитель графических процессоров использовал собственный механизм общения с приложением, и разработчикам приложений приходилось писать отдельный код для каждого графического процессора, который они хотели поддержать. Поэтому для каждого приложения указывалось, какие именно видеокарты оно поддерживает.
Чтобы решить проблему совместимости разных прикладных программ с видеокартами, был выполнена унификация интерфейсов - разработан специальный графический API. Стандарт DirectX включает API для звука, музыки, устройств ввода и т.д. За 3D-графику в DirectX отвечает API Direct3D, и когда говорят о видеокартах, то имеют в виду именно его (поэтому понятия DirectX и Direct3D взаимозаменяемы).
Примеры функций в Direct3D: масштабирование, перемещение и вращение объектов, представленных матрицами; мировое преобразование (трансформации координат объектов, заданных в локальных системах, в мировую систему координрат); проецирование (перспективное и ортогональное); инициализация и очистка z-буфера; переход в систему координат камеры и др.
Первый графический процессор с поддержкой API DirectX 10 — это NVIDIA GeForce 8800. Графический процессор предназначен для хранения, обработки и передачи на монитор данных о выводимом на экран изображении. ГП существенно повышает производительность компьютера, освобождая центральный процессор (ЦП) от обработки графических данных. По своей сложности современные ГП могут превосходить ЦП.
Графические процессоры имеют конвейерную архитектуру. В классическом варианте различают вершинные и пиксельные процессоры — конвейеры. Поступающие в ГП данные об изображаемом объекте сначала обрабатываются в вершинном процессоре (Vertex Pipeline) с помощью программ, называемых вершинными шейдерами(Vertex Shader). Шейдер- функция и программа компьютерной графики для создания тех или иных эффектов в изображениях. Виды шейдеров: вершинные, пиксельные, геометрические.
Вершинный шейдер рассчитывает геометрию сцены и параметры вершин (координаты, цвет, освещение и др.), может выполнять такие операции, как деформация и анимация, модификации и уничтожение объектов, могут изменять или трансформировать 3D-объекты.
Далее происходит сборка (Setup) трехмерной модели в полигоны. На этом этапе вершины соединяются между собой линиями, образуя каркасную модель. При соединении вершин друг с другом образуются полигоны (треугольники).
После этапа сборки данные поступают в пиксельный процессор, который определяет конечные пикселы, их цвета, которые будут выведены в кадровый буфер. Пиксельный процессор работает под управлением пиксельным шейдером. Пиксельный процессор в итоге своей работы выдает конечное значение цвета пиксела и Z-значение для последующего этапа конвейера.
При обработке графической информации возможны ситуации, когда заняты все вершинные процессоры и лишь часть пиксельных процессоров, остальные пиксельные процессоры простаивают. Поэтому компания NVIDIA предложила применять и разработала унифицированные графические процессоры, которые могли бы выполнять как вершинные, так и пиксельные шейдеры. Унифицированные процессоры NVIDIA GeForce 8800 могут выполнять также обычные расчеты, чего вообще не было предусмотрено в графических процессорах предыдущих поколений. Унифицированные процессоры NVIDIA называются унифицированными потоковыми процессорами (Unified Streaming Processors, SP) и представляют собой скалярные процессоры общего назначения для обработки данных с плавающей запятой. Процессор распределения задач способен распараллеливать шейдерный код на сотни потоков (до 512 потоков), увеличивая эффективность выполнения вершинных и пиксельных операций.
Успехи компании NVIDIA в производстве ГП более 10 лет назад привели к обладанию большим количеством инноваций, продвижению на мировом рынке ее собственной платформы для портативных устройств NVIDIA Tegra, а также мобильных видеокарт, которые действительно востребованы на мировом рынке – производители выставки 2011 представили бессчетное множество планшетников, и подавляющее большинство из них базируется именно на NVIDIA Tegra 2.
NVIDIA Tegra — процессор, объединяющий функции целого компьютера в одном чипе (система на кристалле, SoC — System-on-Chip), разработанный компанией NVIDIA как платформа для производства мобильных устройств, таких как смартфоны, смартбуки, КПК и тд. Кристалл Tegra объединяет в себе ARM-процессор, графический процессор, медиа- и DSP- процессоры, контроллеры памяти и периферийных устройств, имея при этом низкое энергопотребление. Первый в мире мобильный суперчип NVIDIA® Tegra™ 2 обеспечивает экстремальные возможности мультизадачности с первым мобильным двухядерным CPU и лучшие сетевые возможности: просмотр интернет-страниц вдвое быстрее, аппаратно-ускоренный флеш и игры консольного качества с GPU NVIDIA® GeForce®.
NVIDIA GPU становятся основой всей линейки продуктов MacBook, а также iMac, Mac Mini, Mac Pro и Apple TV решений.
Напомним, что традиционно в процессорах существует два типа математики: векторная и скалярная. В случае векторной математики данные (операнды) представляются в виде n-мерных векторов, при этом над большим массивом данных проводится всего одна операция. Самый простой пример — задание цвета пиксела в виде четырехмерного вектора с координатами R, G, B, A, где первые три координаты (R, G, B) задают цвет пиксела, а последняя — его прозрачность. В качестве простого примера векторной операции можно рассмотреть сложение цвета двух пикселов. При этом одна операция осуществляется одновременно над двумя 4-мерными векторами. В скалярной математике операции осуществляются над парой чисел. Понятно, что векторная обработка увеличивает скорость и эффективность обработки.