Предмет и область применения компьютерной графики
Предмет и область применения компьютерной графики
Компьютерная графика - это область информатики, которая охватывает все стороны формирования изображений с помощью компьютера.
КГ появилась в 1950-х годах, и поначалу давала возможность выводить на экране дисплея лишь несколько десятков отрезков. Сегодня средства компьютерной графики позволяют создавать реалистические изображения, не уступающие фотографическим снимкам. Создано разнообразное аппаратное и программное обеспечение для получения изображений различного вида и назначения - от простых чертежей до реалистических образов естественных объектов. КГ используют практически во всех научных и инженерных дисциплинах не только для наглядности восприятия и передачи информации, но и для проведения научно-исследовательских изысканий в разных областях науки и техники. Применение КГ для подготовки демонстрационных слайдов стало нормой. Трехмерные изображения применяют в медицине (компьютерная томография), картографии, полиграфии, геофизике, ядерной физике и других областях. Телевидение и все другие отрасли индустрии развлечений используют анимационные средства компьютерной графики (компьютерные игры, фильмы). Общепринятой практикой считается использование компьютерного моделирования при обучении пилотов и представителей других профессий (тренажеры).
Сделаем вывод: знание основ компьютерной графики сейчас необходимо и инженеру, и ученому и обычному пользователю.
Конечный результат применения средств компьютерной графики есть изображение. Известно, что наибольшее количество информации человек получает через зрение, через способность видеть. И уже в древние времена появились рисунки, схемы и карты, которые с одной стороны служили общению и передаче знаний между людьми, а с другой – находили применение при строительстве, в географии и в астрономии.
Современная компьютерная графика - это дисциплина, в основе которой лежат разнообразные сведения из математики и физики, из различных приложений этих наук. Это обобщенное понятие различных направлений в ее разработке, и в применении. Такие направления как геометрические преобразования, способы описания кривых и поверхностей, к настоящему времени уже исследованы и основательно проработаны. Ряд других областей продолжают развиваться очень активно и сегодня. Это методы растрового сканирования, удаление невидимых линий и поверхностей, моделирование цвета и освещенности, текстурирование, создание эффектов прозрачности и полупрозрачности и др. А создание голографических изображений методами электромагнитных физических преобразований изображения и визуализация их методами оптической голографии и КГ – дело недалекого будущего.
1. Сфера применения компьютерной графики включает четыре основных области.
Отображение информации
Проблема представления накопленной информации лучше всего может быть решена посредством графического отображения. Например, данные о климатических изменениях за продолжительный период представляют в виде графиков. О динамике популяций животного мира – в виде таблиц или диаграмм. Об экологическом состоянии различных регионов – в виде по-разному окрашенных участков территории и т.п. Это все визуализация баз данных наблюдений.
Ни одна из областей современной науки не обходится без графического представления информации.
Помимо визуализации результатов экспериментов и анализа данных натурных наблюдений существует обширная область математического моделирования процессов и явлений, которая просто немыслима без графического вывода. Например, описать процессы, протекающие в атмосфере или океане, без соответствующих наглядных картин течений или полей температуры практически невозможно. В геологии в результате обработки трехмерных натурных данных можно получить геометрию пластов, залегающих на большой глубине.
В медицине используют методы диагностики через компьютерную визуализацию внутренних органов человека. Томография, узи (ультразвуковое исследование) и др. позволяет получить трехмерную информацию, которая затем подвергается математической обработке и выводится на экран. Помимо этого применяют и двумерную графику: энцефалограммы, миограммы, сцинтиграфию, выводят на экран компьютера или на бумажный носитель в виде графиков или специфического изображения отдельных участков тела. Визуальное изучение этих изображений помогает установить или уточнить диагноз заболевания.
Проектирование
В строительстве и технике чертежи давно представляют собой основу проектирования новых сооружений или изделий. Процесс проектирования с необходимостью является итеративным, т.е. конструктор перебирает множество вариантов с целью выбора оптимального по каким-либо параметрам. Не последнюю роль в этом играют требования заказчика, который не всегда четко представляет себе конечную цель и технические возможности. Построение предварительных макетов - достаточно долгое и дорогое дело. Сегодня существуют развитые программные средства автоматизации проектно-конструкторских работ (САПР), позволяющие быстро создавать чертежи объектов, выполнять прочностные расчеты и т.п. Они дают возможность не только изобразить проекции изделия, но и рассмотреть его в объемном виде с различных сторон. Такие средства также чрезвычайно полезны для дизайнеров интерьера, ландшафта.
Моделирование
Под моделированием в данном случае понимается имитация различного рода ситуаций, возникающих, например, при полете самолета или космического аппарата, движении автомобиля и т.п. В английском языке это лучше всего передается термином simulation. Но моделирование используется не только при создании различного рода тренажеров. В телевизионной рекламе, в научно-популярных и других фильмах теперь синтезируются движущиеся объекты, визуально мало уступающие тем, которые могут быть получены с помощью кинокамеры. Кроме того, компьютерная графика предоставила киноиндустрии возможности создания спецэффектов, которые в прежние годы были попросту невозможны. В последние годы широко распространилась еще одна сфера применения компьютерной графики - создание виртуальной реальности.
Краткая история
Компьютерная графика в начальный период своего возникновения была далеко не столь эффектной, какой стала в настоящие дни. Компьютеры находились на ранней стадии развития и были способны воспроизводить только самые простые контуры (линии). Идея компьютерной графики не сразу была подхвачена, но ее возможности быстро росли. Постепенно она стала занимать одну из важнейших позиций в информационных технологиях.
Первой официально признанной попыткой использования дисплея для вывода изображения из ЭВМ явилось создание в Массачусетском технологическом университете машины Whirlwind-I в 1952 г. Таким образом, возникновение компьютерной графики можно отнести к 1950-м годам. Сам же термин "компьютерная графика" придумал в 1960 г. сотрудник компании Boeing У. Феттер.
Первое реальное применение компьютерной графики связывают с именем Дж. Уитни. Он занимался кинопроизводством в 50-60-х годах и впервые использовал компьютер для создания титров к кинофильму.
Следующим шагом в своем развитии компьютерная графика обязана Айвэну Сазерленду. Будучи студентом, он создал в 1961 г. программу рисования, названную им Sketchpad (альбом для рисования). Программа использовала световое перо для рисования простейших фигур на экране. Полученные картинки можно было сохранять и восстанавливать. В этой программе был расширен круг основных графических примитивов, в частности, помимо линий и точек был введен прямоугольник, который задавался своими размерами и расположением.
Первоначально компьютерная графика была векторной, т.е. изображение формировалось из тонких линий. Эта особенность была связана с технической реализацией компьютерных дисплеев. В дальнейшем более широкое применение получила растровая графика, основанная на представлении изображения на экране в виде матрицы однородных элементов (пикселей).
В том же 1961 г. студент Стив Рассел создал первую компьютерную видеоигру Spacewar ("Звездная война"), а научный сотрудник Bell Labs Эдвард Зэджек создал анимацию "Simulation of a two-giro gravity control system".
В связи с успехами в области компьютерной графики крупные корпорации начали проявлять к ней интерес, что в свою очередь стимулировало прогресс в области ее технической поддержки.
Университет штата Юта становится центром исследований в области компьютерной графики благодаря Д.Эвансуи А.Сазерленду, которые в это время были самыми заметными фигурами в этой области. Позднее их круг стал быстро расширяться. Учеником Сазерленда стал Э.Кэтмул, будущий создатель алгоритма удаления невидимых поверхностей с использованием Z-буфера (1978). Здесь же работали Дж.Варнок, автор алгоритма удаления невидимых граней на основе разбиения области (1969) и основатель Adobe System (1982), Дж.Кларк, будущий основатель компании Silicon Graphics (1982). Все эти исследователи очень сильно продвинули алгоритмическую сторону компьютерной графики.
В 1971 г. Гольдштейн и Нагель впервые реализовали метод трассировки лучей с использованием логических операций для формирования трехмерных изображений.
В 1970-е годы произошел резкий скачок в развитии вычислительной техники благодаря изобретению микропроцессора, в результате чего началась миниатюризация компьютеров и быстрый рост их производительности. И в это же время начинает интенсивно развиваться индустрия компьютерных игр. Одновременно компьютерная графика начинает широко использоваться на телевидении и в киноиндустрии. Дж.Лукас создает отделение компьютерной графики на Lucasfilm.
В 1977 г. появляется новый журнал "Computer Graphics World".
В середине 1970-х годов графика продолжает развиваться в сторону все большей реалистичности изображений. Э.Кэтмул в 1974 г. создает первые алгоритмы текстурирования криволинейных поверхностей. В 1975г. появляется упомянутый ранее метод закрашивания Фонга. В 1977 г. Дж.Блин предлагает алгоритмы реалистического изображения шероховатых поверхностей (микрорельефов); Ф.Кроу разрабатывает методы устранения ступенчатого эффекта при изображении контуров (антиэлайзинг). Дж.Брезенхем создает эффективные алгоритмы построения растровых образов отрезков, окружностей и эллипсов. Уровень развития вычислительной техники к этому времени уже позволил использовать "жадные" алгоритмы, требующие больших объемов памяти, и в 1978 г. Кэтмул предлагает метод Z-буфера, в котором используется область памяти для хранения информации о "глубине" каждого пикселя экранного изображения. В этом же году Сайрус и Бэк развивают алгоритмы клиппирования (отсечения) линий. А в 1979 г. Кэй и Гринберг впервые реализуют изображение полупрозрачной поверхности.
В 1980 г. Т.Уиттед разрабатывает общие принципы трассировки лучей, включающие отражение, преломление, затенение и методы антиэлайзинга. В 1984 г. группой исследователей (Горэл, Торрэнс, Гринберг и др.) была предложена модель излучательности, одновременно развиваются методы прямоугольного клиппирования областей.
В 1980-е годы появляется целый ряд компаний, занимающихся прикладными разработками в области компьютерной графики. В 1982 г. Дж.Кларк создает Silicon Graphics, тогда же возникает Ray Tracing Corporation, Adobe System, в 1986 г. компания Pixar отпочковывается от Lukasfilm.
В эти годы компьютерная графика уже прочно внедряется в киноиндустрию, развиваются приложения к инженерным дисциплинам. В 1990-е годы в связи с возникновением сети Internet у компьютерной графики появляется еще одна сфера приложения.
Здесь перечислены далеко не все серьезные шаги на пути развития графики, но более подробное знакомство с ее историей требует достаточно хорошего представления о теории и алгоритмах этой дисциплины, поэтому здесь присутствует лишь краткий обзор. Приоритет в развитии данного направления в информационных технологиях достаточно прочно удерживают американские исследователи.
В отечественной науке тоже были свои разработки, среди которых можно назвать ряд технических реализаций дисплеев, выполненных в разные годы:
1968, ВЦ АН СССР, машина БЭСМ-6, вероятно, первый отечественный растровый дисплей с видеопамятью на магнитном барабане;
1972, Институт автоматики и электрометрии (ИАиЭ), векторный дисплей "Символ";
1973, ИАиЭ, векторный дисплей "Дельта";
1977, ИАиЭ, векторный дисплей ЭПГ-400;
1982, Киев, НИИ периферийного оборудования, векторный дисплей СМ-7316, 4096 символов, разрешение 2048?2048;
1979-1984, Институт прикладной физики, серия растровых цветных полутоновых дисплеев "Гамма". Последние дисплеи данной серии имели таблицу цветности, поддерживали окна, плавное масштабирование.
В процессе развития компьютерной графики можно выделить несколько этапов.
В 1960-1970-е годы она формировалась как научная дисциплина. В это время разрабатывались основные методы и алгоритмы: отсечение, растровая развертка графических примитивов, закраска узорами, реалистическое изображение пространственных сцен (удаление невидимых линий и граней, трассировка лучей, излучающие поверхности), моделирование освещенности.
В 1980-е графика развивается более как прикладная дисциплина. Разрабатываются методы ее применения в самых различных областях человеческой деятельности.
В 1990-е годы методы компьютерной графики становятся основным средством организации диалога "человек-компьютер" и остаются таковыми по настоящее время.
Вопросы и упражнения
1. Назовите четыре основные области применения компьютерной графики.
2. Каковы основные направления развития компьютерной графики? Какие задачи они решают?
3. Где и когда впервые был использован дисплей в качестве устройства вывода ЭВМ?
4. Кем и когда была разработана первая интерактивная программа для рисования?
5. Назовите основных разработчиков методов закрашивания гладких поверхностей.
6. Кто является автором ряда алгоритмов построения растровых образов различных геометрических объектов?
7. Назовите авторов алгоритмов удаления невидимых линий.
8. В чем состоит основное различие между дисплеями с произвольным сканированием и растровым сканированием?
9. Чем отличается дисплей на запоминающей трубке от векторного дисплея с регенерацией изображения?
10. Каковы основные принципы работы цветной растровой электронно-лучевой трубки?
11. Как работает перьевой плоттер?
12. Назовите основные устройства ввода, использующиеся в компьютерной графике.
13. Какие из устройств ввода дают возможность работать в абсолютных координатах?
14. Перечислите области применения сканеров.
Следующая заготовка – компьютерный процесс
После компилятора выдается исполняемый файл, который может быть запущен на исполнение в конкретной ОС.
Команды в исполняемом файле - это непосредственно двоичный код команд процессора, который может быть исполнен непосредственно процессором, но в исполняемом файле есть не только команды но и служебная информация ОС, которая
описывает, например, в том числе и какие библиотеки нужны. То есть после компилятора исполняемый файл может быть исполнен в основном в той же ОС на которой он был откомпилирован (за исключением особых ситуаций кросс-компиляции или трансляции API и пр...но это уже дебри) и на том же семействе процессоров для которых он был скомпилирован.
Среда разработки это просто текстовый редактор+отладчик+интеграция этого всего с компилятором+еще куча инструментов в одном флаконе (например Eclipse или HiAsm...то, что вы видите когда редактируете исполняемую модель программы...кнопочки все эти...).
Есть CPU - вычислительная машина широкого профиля. Она может выполнять очень большое число различных видов операций. Есть GPU - вычислительная машина узкого направления. Ее предназначение - "графические вычисления". Она это делает быстрее CPU, но зато узкая специализация. Есть системы в которых GPU нет, а только CPU считает всю графику (например встраиваемые системы...сотовый телефон). Есть системы, где есть отдельный графический процессор (GPU). Но в графическую карту (на которой стоит GPU) входит еще и графическое ОЗУ (которое работает быстрее с GPU) и еще множество вещей..., но они обычно не упоминаются. В конечном итоге графическая карта для GPU это как материнская плата для CPU.
Основными инструментами разработки программного обеспечения являются:
1. Компилятор/интерпретатор.
2. Прикладные библиотеки, реализующие API (http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
)
3. Мозг программиста.
4. Компьютер.
Разберем по порядку, назначение каждого из инструментов.
1. (http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80
)
На сегодняшний день существуют сотни языков программирования и их модификаций. Но все это разнообразие в конечно итоге сводится к компиляции или интерпретации полученного программного кода, написанного программистом или сгенерированного автоматизированной системой (а такое тоже бывает, например HiAsm). В конечном итоге программный код в большинстве случаев переводится (http://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%82%D0%BE%D1%80
) в ассемблерный код, то есть компилятор (вернее его часть, называемая транслятор) переводит С++ на ассемблер, в свою очередь ассемблер представляет собой машинные инструкции, почти понятные процессору компьютера и достаточно "разжеванные" для него. Это нужно потому, что языки высокого уровня (например C++) для всех платформ и компьютеров одинаковые (за нечастыми исключениями это международный стандарт ISO, принятый для всего мира), а вот команды, которые понимает процессор, индивидуальны для каждого процессора. Ассемблер (не язык, а программный модуль компиляции языка ассемблера, находящийся в основе компилятора), превращает данные инструкции в двоичные коды, которые в свою очередь могут быть исполнены непосредственно на процессоре. Данные двоичные коды компонуются (или как это называется еще, линкуются) в готовую программу.
В результате прослеживается простая схема, тем не менее, очень сложная в реализации. Процесс состоит из четырех пунктов:
а. Написание программы на языке высокого уровня.
б. Перевод этой программы на ассемблер. Причем тут может быть не только ассемблер, но и байт-код (MSIL или JVM)...в целом
Предмет и область применения компьютерной графики
Компьютерная графика - это область информатики, которая охватывает все стороны формирования изображений с помощью компьютера.
КГ появилась в 1950-х годах, и поначалу давала возможность выводить на экране дисплея лишь несколько десятков отрезков. Сегодня средства компьютерной графики позволяют создавать реалистические изображения, не уступающие фотографическим снимкам. Создано разнообразное аппаратное и программное обеспечение для получения изображений различного вида и назначения - от простых чертежей до реалистических образов естественных объектов. КГ используют практически во всех научных и инженерных дисциплинах не только для наглядности восприятия и передачи информации, но и для проведения научно-исследовательских изысканий в разных областях науки и техники. Применение КГ для подготовки демонстрационных слайдов стало нормой. Трехмерные изображения применяют в медицине (компьютерная томография), картографии, полиграфии, геофизике, ядерной физике и других областях. Телевидение и все другие отрасли индустрии развлечений используют анимационные средства компьютерной графики (компьютерные игры, фильмы). Общепринятой практикой считается использование компьютерного моделирования при обучении пилотов и представителей других профессий (тренажеры).
Сделаем вывод: знание основ компьютерной графики сейчас необходимо и инженеру, и ученому и обычному пользователю.
Конечный результат применения средств компьютерной графики есть изображение. Известно, что наибольшее количество информации человек получает через зрение, через способность видеть. И уже в древние времена появились рисунки, схемы и карты, которые с одной стороны служили общению и передаче знаний между людьми, а с другой – находили применение при строительстве, в географии и в астрономии.
Современная компьютерная графика - это дисциплина, в основе которой лежат разнообразные сведения из математики и физики, из различных приложений этих наук. Это обобщенное понятие различных направлений в ее разработке, и в применении. Такие направления как геометрические преобразования, способы описания кривых и поверхностей, к настоящему времени уже исследованы и основательно проработаны. Ряд других областей продолжают развиваться очень активно и сегодня. Это методы растрового сканирования, удаление невидимых линий и поверхностей, моделирование цвета и освещенности, текстурирование, создание эффектов прозрачности и полупрозрачности и др. А создание голографических изображений методами электромагнитных физических преобразований изображения и визуализация их методами оптической голографии и КГ – дело недалекого будущего.
1. Сфера применения компьютерной графики включает четыре основных области.
Отображение информации
Проблема представления накопленной информации лучше всего может быть решена посредством графического отображения. Например, данные о климатических изменениях за продолжительный период представляют в виде графиков. О динамике популяций животного мира – в виде таблиц или диаграмм. Об экологическом состоянии различных регионов – в виде по-разному окрашенных участков территории и т.п. Это все визуализация баз данных наблюдений.
Ни одна из областей современной науки не обходится без графического представления информации.
Помимо визуализации результатов экспериментов и анализа данных натурных наблюдений существует обширная область математического моделирования процессов и явлений, которая просто немыслима без графического вывода. Например, описать процессы, протекающие в атмосфере или океане, без соответствующих наглядных картин течений или полей температуры практически невозможно. В геологии в результате обработки трехмерных натурных данных можно получить геометрию пластов, залегающих на большой глубине.
В медицине используют методы диагностики через компьютерную визуализацию внутренних органов человека. Томография, узи (ультразвуковое исследование) и др. позволяет получить трехмерную информацию, которая затем подвергается математической обработке и выводится на экран. Помимо этого применяют и двумерную графику: энцефалограммы, миограммы, сцинтиграфию, выводят на экран компьютера или на бумажный носитель в виде графиков или специфического изображения отдельных участков тела. Визуальное изучение этих изображений помогает установить или уточнить диагноз заболевания.
Проектирование
В строительстве и технике чертежи давно представляют собой основу проектирования новых сооружений или изделий. Процесс проектирования с необходимостью является итеративным, т.е. конструктор перебирает множество вариантов с целью выбора оптимального по каким-либо параметрам. Не последнюю роль в этом играют требования заказчика, который не всегда четко представляет себе конечную цель и технические возможности. Построение предварительных макетов - достаточно долгое и дорогое дело. Сегодня существуют развитые программные средства автоматизации проектно-конструкторских работ (САПР), позволяющие быстро создавать чертежи объектов, выполнять прочностные расчеты и т.п. Они дают возможность не только изобразить проекции изделия, но и рассмотреть его в объемном виде с различных сторон. Такие средства также чрезвычайно полезны для дизайнеров интерьера, ландшафта.
Моделирование
Под моделированием в данном случае понимается имитация различного рода ситуаций, возникающих, например, при полете самолета или космического аппарата, движении автомобиля и т.п. В английском языке это лучше всего передается термином simulation. Но моделирование используется не только при создании различного рода тренажеров. В телевизионной рекламе, в научно-популярных и других фильмах теперь синтезируются движущиеся объекты, визуально мало уступающие тем, которые могут быть получены с помощью кинокамеры. Кроме того, компьютерная графика предоставила киноиндустрии возможности создания спецэффектов, которые в прежние годы были попросту невозможны. В последние годы широко распространилась еще одна сфера применения компьютерной графики - создание виртуальной реальности.