Компьютерная графика

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Компью́терная гра́фика (также маши́нная графика) — область деятельности, в которой компьютеры наряду со специальным программным обеспечением используются в качестве инструмента как для создания (синтеза) и редактирования изображений, так и для оцифровки визуальной информации, полученной из реального мира, с целью дальнейшей её обработки и хранения.

История[править | править код]

Первые вычислительные машины 40-х годов XX-века ("ABC", 1942 г., "ENIAC", 1946 г., "EDSAC", 1949 г., "МЭСМ", 1950 г.) разрабатывались и использовались строго для расчётов и не имели отдельных средств для работы с графикой. Однако уже тогда некоторые энтузиасты пытались использовались ЭВМ первого поколения на электронных лампах для получения и обработки изображений. Программируя память ЭВМ и устройств вывода информации, построенных на основе матрицы электрических ламп, можно было получать простые узоры. Лампы накаливания включались и отключались в определенном порядке, образуя изображения различных фигур.

В конце 40-х и начале 50-х годов во многих компьютерах стали применяться электронно-лучевые трубки (ЭЛТ) в виде осциллографов, или трубок Вильямса, которые использовались как оперативная память. Теоретически, записывая 0 или 1 в определенном порядке в такую память, на экране можно было отобразить определённое изображение, но на практике это не использовалось. В 1952 году британский инженер Александр Дуглас (Alexander Shafto "Sandy" Douglas) написал шуточную программу "OXO" (Крестики-нолики) для программируемого компьютера EDSAC (1949 г.), ставшую в истории первой компьютерной игрой. Изображение решетки и ноликов с крестиками строилось путём программирования трубки Вильямса или прорисовывалось на соседнем ЭЛТ.

В 50-х годах вычислительные возможности компьютеров и графические возможности периферийных устройств не позволяли получить высокую детализацию, но давали возможность осуществить посимвольный вывод изображений на экраны мониторов и типовых принтеров. Изображения строились из алфавитно-цифровых символов (символьная графика, позже пришло название ASCII-графика и ASCII-Art). Принцип прост: разница в плотности алфавитно-цифровых знаков и неспособность человеческого зрения различать детали с расстояния позволили создавать на компьютере рисунки и псевдографические объекты. Подобные изображения на бумаге создавали машинистки на печатных машинках в конце XIX века.

В 1950 году энтузиаст Бенджамин Лапоски (Ben Laposky), математик, художник и чертежник, начал экспериментировать с экраном осциллографа, строя сложные динамичные фигуры - осцилионы. Танец света создавался сложнейшими настройками на этом электронно-лучевом приборе. Для запечатления изображений применялись высокоскоростная фотография и особые объективы, позже были добавлены пигментированные фильтры, наполнявшие снимки цветом.

В 1950 году в военном компьютере Whirlwind-I (по-русски "Вихрь", "Ураган"), встроенном в систему SAGE противовоздушной обороны США, впервые был применён монитор как средство отображения визуальной и графической информации.[источник не указан 1002 дня]

В 1955 году в лаборатории Массачусетского технологического института (MIT) было изобретено световое перо (Light pen). Это светочувствительное устройство ввода компьютера, в основном наутилус, который используется для выбора текста, рисования изображений и взаимодействия с элементами пользовательского интерфейса на экране компьютера или монитора. Перо хорошо работает только с ЭЛТ(CRT)-мониторами, поскольку они сканируют экран попиксельно, что даёт компьютеру способ отслеживать ожидаемое время сканирования электронным лучом и определять положение пера на основе последней метки времени сканирования. На кончике пера находится фотоэлемент, испускающий электронный импульсы и одновременно реагирующий на пиковое свечение, соответствующее моменту прохода электронного луча. Достаточно синхронизировать и сопоставить импульс с положением электронной пушки, чтобы определить, куда именно указывает перо.

Световые перья широко использовались в вычислительных терминалах 1960-х годов. С появлением ЖК (LCD)-мониторов в 90-х годах они практически вышли из употребления, так как с экранами этих устройств работа светового пера стала невозможной.

В 1957 году инженер Рассел Кирш (Russell A. Kirsch) из Национального бюро стандартов США изобрел для компьютера SEAC первый сканер и получил на нём первое цифровое изображение — скан-фото своего сына Уолдена (анг. Walden).[источник не указан 1002 дня]

В 60-е годы XX века начался реальный расцвет компьютерной графики. С приходом новых высокопроизводительных по тем меркам компьютеров с мониторами на транзисторах (2-е поколение ЭВМ) и позже микросхем (3-е поколение ЭВМ) машинная графика стала не только сферой энтузиастов, но серьезным научно-практическим направлением развития компьютерных технологий. Появились первые суперкомпьютеры (СВС 6600 и Cray-1), позволившие работать не только с быстрыми вычислениями, но и с компьютерной графикой на новом уровне.

В 1960 году инженер-дизайнер Ульям Феттер (William Fetter) из авиастроительной корпорации Боинг (англ. Boeing) впервые ввел термин "компьютерная графика". Рисуя дизайн кабины пилотов самолёта на рабочем компьютере, он решил таким образом описать в технической документации род своей деятельности. В 1964 г. Ульям Феттер создал на компьютере также проволочную графическую модель человека под названием "человек Боинга", он же "первый человек", использованную позже в телерекламе.

В 1962 году программист Стив Рассел (Steve Russell) из МТИ на компьютере DEC PDP-1 разработал отдельную программу с графикой - компьютерную игру «Spacewar!». Создание её заняло около 200 человеко-часов. Игра использовала джойстик и обладала интересной физикой с симпатичной графикой. Однако первой компьютерной игрой, но без графики, можно считать программу Александра Дугласа "OXO" ("Крестики-нолики", 1952)

В 1963 году на основе компьютера "TX-2" американский инженер-программист из МТИ, пионер компьютерной графики Айвен Сазерленд (Ivan Edward Sutherland) создал программно-аппаратный комплекс Sketchpad[en], позволявший рисовать точки, линии и окружности на трубке световым пером. Поддерживались базовые действия с примитивами: перемещение, копирование и др. По сути, это был первый векторный редактор, ставший прообразом современных САПР (систем автоматизированного проектирования), таких как AutoCAD или Компас-3D. Также эту программу можно считать первым графическим интерфейсом, вышедшим за 10 лет до Xerox Alto (1973 г.), раньше появления самого термина. В 1968 г. Айвеном Сазерлендом был создан прообраз первого компьютерного шлема виртуальной реальности, названный "Дамокловым мечом" по аналогии с древнегреческой легендой.

В середине 1960-х гг. появились разработки в промышленных приложениях компьютерной графики. Так, под руководством Т. Мофетта и Н. Тейлора фирма Itek разработала цифровую электронную чертёжную машину (графопостроитель).

В 1963 году программист из Bell Labs Эдвард Зейджек (Edward E. Zajac) разработал первую компьютерную анимацию - движение спутника вокруг Земли. Анимация демонстрировала теоретический спутник, использовавший гироскопы для поддержки своей ориентации относительно Земли. Вся компьютерная обработка была сделана на компьютерах серий IBM 7090 или 7094 с использование программы ORBIT.[источник не указан 611 дней]

В последующие годы выходят и другие, более сложные и значимые анимации: "Tesseract" ("Тессеракт", он же "Гиперкуб", 1965 г.) Майкла Нолла из «Bell Labs», "Hummengbird" ("Колибри", 1967 .) Чарльза Цури и Джеймса Шаферса, "Кошечка" (1968 г.) Николая Константинова, "Metadata" ("Метаданные", 1971 г.) Питера Фолдерса и т..д.

В 1964 году выпущен IBM 2250, первый коммерческий графический терминал для мейнфрейма IBM/360.

В 1964 году компания General Motors совместно с IBM представляет систему автоматизированного проектирования DAC-1.

В 1967 году профессор Дуглас Энгельбарт (Douglas Carl Engelbart) конструирует первую компьютерную мышь (указатель XY-координат) и показывает её возможности на выставке в Сан-Франциско в 1968 г.

В 1967 году сотрудник IBM Артур Аппель описывает алгоритм удаления невидимых ребер (в т. ч. частично скрытых), позднее названный лучевым кастингом, отправной точкой современной 3D-графики и фотореализма.

В 1968 году[1] в СССР группой под руководством Н. Н. Константинова создана компьютерная модель имитации движения кошки. Машина БЭСМ-4, выполняя написанную программу решения дифференциальных уравнений, рисовала мультфильм «Кошечка»[2] - прорыв для своего времени. Аналогичные алгоритмы динамики движения были переоткрыты на западе только в 80-х годах! Для визуализации использовался алфавитно-цифровой принтер.

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

В 70-х годах появляются первые цветные мониторы и цветная графика - новый рывок в развитии компьютерной графики. Суперкомпьютеры с цветными дисплеями стали использоваться для создания спецэффектов в кино (фантастическая эпопея 1977 г. "Звездные войны" режиссёра Джорджа Лукаса, фантастический ужастик "Чужой" (анг. "Alien") киностудии XX-век Fox и режиссёра Ридли Скотта, позже недооцененный научно-фантастический фильм 1982 года «Трон» (англ. Tron) студии Walt Disney и режиссёра Стивена Лисбергера). В этот период компьютеры стали ещё более быстродействующими, их научили рисовать 3D-изображения, возникла трехмерная графика и новое направление визуализации - фрактальная графика. Появились персональные компьютеры с графическими интерфейсами, использующие компьютерную мышь (Xerox Alto, 1973 г.).

В 1971 году математик Анри Гуро, в 1972 году Джим Блинн и в 1973 году Буй Туонг Фонг разрабатывают модели затенения, позволяющие графике выйти за рамки плоскости и точно отобразить глубину сцены. Джим Блинн стал новатором в области внедрения карт рельефа, техники моделирования неровных поверхностей, а алгорим Фонга впоследствии стал основным в современных компьютерных играх.

В 1972 году пионер компьютерной графики Эдвин Катмулл (Edwin Catmull) создаёт первое 3D-изображение - проволочную и текстурированную модель собственной левой руки.

В 1975 году французский математик Бенуа Мандельброт (Benoît B. Mandelbrot), программируя компьютер модели IBM, строит на нём изображение результатов вычисления комплексной математической формулы (множество Мандельброта), и в результате анализа полученных повторявших закономерностей даёт красивым изображениям название "фрактал" (с лат. дробный, разбитый). Возникает фрактальная геометрия и новое перспективное направление в компьютерной графике - фрактальная графика.

В конце 70-х годов, с появлением персональных компьютеров 4-го поколения - на микропроцессорах, графика с промышленных систем переходит на рабочие места и в дома простых пользователей. Зарождается индустрия видеоигр и компьютерных игр. Первым массовым персональным компьютером с цветной графикой стал ПК Apple II (1977 г.), позже Apple Macintosh (1984 г.)

В 80-х годах, с развитием видеосистемы персональных компьютеров IBM PC (1981 г.) графика становится более детализированной и цветопередающей (повышается разрешение изображений и расширяется цветовая палитра). Появляются первые видеостандарты MDA, CGA, EGA, VGA, SVGA. Разработаны первые стандарты файловых графических форматов, например GIF (1987), возникает графическое моделирование.

Текущее состояние[править | править код]

Основные области применения[править | править код]

Научная графика — первые компьютеры использовались лишь для решения научных и производственных задач. Чтобы лучше понять полученные результаты, производилась их графическую обработка, строились графики, диаграммы, чертежи рассчитанных конструкций. Первые графики на машине получались в режиме символьной печати. Затем появились специальные устройства — графопостроители (плоттеры) для вычерчивания чертежей и графиков чернильным пером на бумаге. Современная научная компьютерная графика даёт возможность проводить вычислительные эксперименты с наглядным представлением их результатов.

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

Конструкторская графика используется в работе инженеров-конструкторов, архитекторов, изобретателей. Это обязательный элемент САПР (систем автоматизации проектирования). Средствами конструкторской графики можно получать как плоские изображения (проекции, сечения), так и пространственные трёхмерные изображения.

Иллюстративная графика — это произвольное рисование и черчение на экране монитора. Пакеты иллюстративной графики относятся к прикладному программному обеспечению общего назначения. Простейшие программные средства иллюстративной графики называются графическими редакторами.

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

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

Компьютерная анимация — это получение движущихся изображений на экране дисплея. Художник создаёт на экране рисунки начального и конечного положения движущихся объектов; все промежуточные состояния рассчитывает и изображает компьютер, выполняя расчёты, опирающиеся на математическое описание данного вида движения. Такая анимация называется мультипликация по ключевым кадрам. Также существуют другие виды компьютерной анимации: процедурная анимация, шейповая анимация, программируемая анимация и анимация, где художник сам отрисовывает все кадры вручную. Полученные рисунки, последовательно выводимые на экран с определённой частотой, создают иллюзию движения.

Мультимедиа — это объединение высококачественного изображения на экране компьютера со звуковым сопровождением. Наибольшее распространение системы мультимедиа получили в области обучения, рекламы, развлечений.

Научная работа[править | править код]

Компьютерная графика является также одной из областей научной деятельности. В области компьютерной графики защищаются диссертации, а также проводятся различные конференции:

Техническая сторона[править | править код]

По способам задания изображений графику можно разделить на категории:

Двухмерная графика[править | править код]

Двухмерная (2D — от англ. two dimensions — «два измерения») компьютерная графика классифицируется по типу представления графической информации, и следующими из него алгоритмами обработки изображений. Обычно компьютерную графику разделяют на векторную и растровую, хотя обособляют ещё и фрактальный тип представления изображений.

Векторная графика[править | править код]

Пример векторного рисунка

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

Изображение в векторном формате даёт простор для редактирования. Изображение может без потерь масштабироваться, поворачиваться, деформироваться, также имитация трёхмерности в векторной графике проще, чем в растровой. Дело в том, что каждое такое преобразование фактически выполняется так: старое изображение (или фрагмент) стирается, и вместо него строится новое. Математическое описание векторного рисунка остаётся прежним, изменяются только значения некоторых переменных, например, коэффициентов.

При преобразовании растровой картинки исходными данными является только описание набора пикселей, поэтому возникает проблема замены меньшего числа пикселей на большее (при увеличении), или большего на меньшее (при уменьшении). Простейшим способом является замена одного пикселя несколькими того же цвета (метод копирования ближайшего пикселя: Nearest Neighbour). Более совершенные методы используют алгоритмы интерполяции, при которых новые пиксели получают некоторый цвет, код которого вычисляется на основе кодов цветов соседних пикселей. Подобным образом выполняется масштабирование в программе Adobe Photoshop (билинейная и бикубическая интерполяция).

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

Растровая графика[править | править код]

Пример растрового рисунка

Растровая графика всегда оперирует двумерным массивом (матрицей) пикселей. Каждому пикселю сопоставляется значение яркости, цвета, прозрачности — или комбинация этих значений. Растровый образ имеет некоторое число строк и столбцов.

Без особых потерь растровые изображения можно только лишь уменьшать, хотя некоторые детали изображения тогда исчезнут навсегда, что иначе в векторном представлении. Увеличение же растровых изображений оборачивается видом на увеличенные квадраты того или иного цвета, которые раньше были пикселями.

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

Растровую графику используют дизайнеры, аниматоры, художники работающие с отдельными графическими работами и заказами для индивидуальной продажи. Растровые изображения не идут в тираж и не используются в массовой продаже, так как при увеличении размера, изображение теряет качество, однако именно растровая графика позволяет делать почти живописные работы, более проработанные дизайны и более быстрые разработки, которые уже потом при необходимости редактируются и воспроизводятся в нужном формате с применением векторных программ.[источник не указан 280 дней]

Фрактальная графика[править | править код]

Фрактальное дерево

Фрактал — объект, отдельные элементы которого наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего лишь несколькими математическими уравнениями.

Фракталы позволяют описывать целые классы изображений, для детального описания которых требуется относительно мало памяти. С другой стороны, фракталы слабо применимы к изображениям вне этих классов.

Трёхмерная графика[править | править код]

Трёхмерная графика (3D — от англ. three dimensions — «три измерения») оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.

Трехмерная графика бывает полигональной и воксельной. Воксельная графика аналогична растровой. Объект состоит из набора трехмерных фигур, чаще всего кубов. А в полигональной компьютерной графике все объекты обычно представляются как набор поверхностей, минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.

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


Всеми визуальными преобразованиями в векторной (полигональной) 3D-графике управляют матрицы (см. также: аффинное преобразование в линейной алгебре). В компьютерной графике используется три вида матриц:

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

Ежегодно проходят конкурсы трёхмерной графики, такие как Magick next-gen или Dominance War.

CGI графика[править | править код]

Основная статья: CGI (графика)

CGI (англ. computer-generated imagery, букв. «изображения, созданные компьютером») — изображения, получаемые компьютером на основе расчёта и использующиеся в изобразительном искусстве, печати, кинематографических спецэффектах, на телевидении и в симуляторах. Созданием движущихся изображений занимается компьютерная анимация, представляющая собой более узкую область графики CGI.

Представление цветов в компьютере[править | править код]

Система цветопередачи RGB

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

Стандартные способы хранения и обработки цвета в компьютере обусловлены свойствами человеческого зрения. Наиболее распространены системы RGB для дисплеев и CMYK для работы в типографском деле.

Иногда используется система с большим, чем три, числом компонент. Кодируется спектр отражения или испускания источника, что позволяет более точно описать физические свойства цвета. Такие схемы используются в фотореалистичном трёхмерном рендеринге.

Реальная сторона графики[править | править код]

Любое изображение на мониторе, в силу его плоскости, становится растровым, так как монитор это матрица, он состоит из столбцов и строк. Трёхмерная графика существует лишь в нашем воображении, так как то, что мы видим на мониторе — это проекция трёхмерной фигуры, а уже создаём пространство мы сами. Таким образом, визуализация графики бывает только растровая и векторная, а способ визуализации это только растр(набор пикселей), а от количества этих пикселей зависит способ задания изображения.

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

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]

  • Никулин Е.А. Компьютерная графика. Модели и алгоритмы (недоступная ссылка). СПб: издательство "Лань". - 708 с. (2017). Дата обращения 24 ноября 2018. Архивировано 24 ноября 2018 года.
  • Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. — СПб: БХВ-Петербург, 2003. — 560 с. — 3000 экз. — ISBN 5-94157-264-6.
  • Компьютер рисует фантастические миры (ч.2) // Компьютер обретает разум = Artificial Intelligence Computer Images / под ред. В.Л. Стефанюка. — М.: Мир, 1990. — 240 с. — 100 000 экз. — ISBN 5-03-001277-X (рус.); 7054 0915 5 (англ.).
  • Дональд Херн, М. Паулин Бейкер. Компьютерная графика и стандарт OpenGL = Computer Graphics with OpenGL. — 3-е изд. — М.: «Вильямс», 2005. — С. 1168. — ISBN 5-8459-0772-1.
  • Эдвард Энджел. Интерактивная компьютерная графика. Вводный курс на базе OpenGL = Interactive Computer Graphics. A Top-Down Approach with Open GL. — 2-е изд. — М.: «Вильямс», 2001. — С. 592. — ISBN 5-8459-0209-6.
  • Сергеев Александр Петрович, Кущенко Сергей Владимирович. Основы компьютерной графики. Adobe Photoshop и CorelDRAW - два в одном. Самоучитель. — М.: «Диалектика», 2006. — С. 544. — ISBN 5-8459-1094-3.
  • Кнабе Г. А. Энциклопедия дизайнера печатной продукции. Профессиональная работа. — К.: «Диалектика», 2005. — С. 736. — 3000 экз. — ISBN 5-8459-0906-6.

Ссылки[править | править код]