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

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


История

Первые вычислительные машины 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). Всё просто: разница в плотности алфавитно-цифровых знаков и особенности человеческого зрения: не воспринимать детали изображения c большого расстояния, позволила создавать на компьютере рисунки и псевдографические объекты. Подобные изображения до появления компьютеров на бумаге создавали машинистки на печатных машинках в конце 19 века.

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

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

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

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

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

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

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

В 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.[источник не указан 512 дней]

В последующие годы выходят и другие, но более сложные и значимые анимации: "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-х годах! Для визуализации использовался алфавитно-цифровой принтер.

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

В 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 (билинейная и бикубическая интерполяция).

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

Растровая графика

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

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

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

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

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

Фрактальная графика

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

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

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

Трёхмерная графика

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

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

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


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

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

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

CGI графика

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

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

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

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

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

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

Реальная сторона графики

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

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

См. также

Примечания

Литература

  • Никулин Е.А. Компьютерная графика. Модели и алгоритмы. СПб: издательство "Лань". - 708 с. (2017).
  • Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. — СПб: БХВ-Петербург, 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.

Ссылки