69862

Компьютерная графика, курс лекций

Книга

Информатика, кибернетика и программирование

Объем информации, содержащейся в векторном представлении, не зависит от физических размеров изображения. Например, на одной картинке представлен отрезок от точки (0,0) до точки (10,10), а на другой – от точки (1000,1000) до точки (10000,10000).

Русский

2015-01-14

6.57 MB

108 чел.

Кафедра "Автоматизированные станочные системы"

Троицкий Д.И.

КУРС ЛЕКЦИЙ ДЛЯ СТУДЕНТОВ НАПРАВЛЕНИЯ 220200

ТУЛА 2004


Рассмотрено на заседании каф. АСС

02.03.2004, протокол №8.

Зав. каф. АСС проф. Иноземцев А.Н.


СОДЕРЖАНИЕ

С.

[1]
Области применения компьютерной графики

[1.1] Цифровое представление графики

[1.2] Основные операции над графическими объектами

[2] ИСТОРИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ

[2.1] Развитие аппаратных и программных средств

[2.2] Применение в кинематографе

[3] технические средства компьютерной графики: мониторы, графические адаптеры, плоттеры, принтеры, сканеры

[3.1] Устройства вывода. Экраны

[3.2] Устройства вывода твердых копий

[3.3] Устройства ввода. Сканеры

[3.4] Устройства ввода. Цифровые фотоаппараты

[3.5] Устройства координатного ввода

[4] СВОЙСТВА РАСТРОВЫХ ИЗОБРАЖЕНИЙ

[4.1] Форматы хранения графической информации

[4.2] Цветовые модели растровых изображений

[5] системы координат, типы преобразований
графической информации

[5.1] Проблемы геометрического моделирования

[5.2] Понятие однородных координат

[5.3] Геометрические операции над моделями

[6] виды геометрических моделей их свойства,
параметризация моделей

[6.1] Поверхностные модели

[6.2] Аналитические поверхности

[6.3] Составные поверхности

[6.4] Параметризация моделей

[7] 2D и 3D моделирование в рамках графических систем

[7.1] Методы построения 3D тел

[7.2] Анализ твердотельных моделей

[8] алгоритмы визуализации: отсечения, развертки, удаления невидимых линий и поверхностей, закраски

[8.1] Полигональная визуализация и линии очерка

[8.2] Основные растровые алгоритмы

[8.3] Удаление скрытых линий

[8.4] Способы создания фотореалистических изображений

[9] тенденции построения современных графических систем: графическое ядро, приложения,
инструментарий для написания приложений

[9.1] Понятие конвейеров ввода и вывода графической информации

[9.2] Cтандарты в области разработки графических систем

[9.3] Библиотека DirectX

[9.4] Графические процессоры, аппаратная реализация графических функций

[9.5] 3D акселерация

[10] КОМПЬЮТЕРНАЯ АНИМАЦИЯ

[10.1]  Принципы создания анимации

[11] классификация и обзор современных графических систем

[11.1] Основные функциональные возможности современных графических систем

[11.1.1] Графические системы класса 2D

[11.1.2] Графические системы класса 3D

[11.2] Принципы построения “открытых” графических систем

[11.3] Организация диалога в графических системах

[12]
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

[13]
СПИСОК ЛИТЕРАТУРЫ


СПИСОК СОКРАЩЕНИЙ

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

dpi (dots per inch) – точек на дюйм, единица измерения разрешения растровых изображений

SECAM (Sequentiel Couleur Avec Memoire) – стандарт передачи аналогового цветного телевизионного изображения, принятый в России и Франции (1967)

PAL (Phase Alternate Line) - стандарт передачи аналогового цветного телевизионного изображения, принятый в большинстве стран Азии

NTSC (National Television System Committee) - стандарт передачи аналогового цветного телевизионного изображения, принятый в США и Японии (1945)

DVD (Digital Video Disk) - формат цифровой записи видеофильмов с высоким качеством

VHS (Video Home System) - стандарт записи аналогового видеосигнала на бытовых видеомагнитофонах, разработанный фирмой Sony (1975)

CRT (Cathode Ray Tube) – электронно-лучевая трубка, кинескоп

TFT (Thin Film Transistor) – технология изготовления плоских экранов на светоизлучающих транзисторах

COM – последовательный интерфейс для связи компьютера со внешними устройствами. Разъем: .

LPT (Line PrinT) – параллельный интерфейс для связи компьютера со внешними устройствами. Разъем: .

USB (Universal Serial Bus) – последовательный интерфейс для связи компьютера со внешними устройствами. Разъем: .

MPx (megapixel) – миллион пикселов, характеристика разрешения цифровой камеры.

ПЗС (прибор с зарядовой связью), CCD (Charge-Coupled Device) – светочувствительная матрица, применяемая в цифровых камерах

CAПР, CAD (Computer-Aided Design) – система автоматизированного проектирования

ПК – персональный компьютер

VR (virtual reality) – виртуальная реальность

JPEG (Joint Photographic Experts Group) - формат сжатия мультимедийных данных с потерями

ZIP – метод сжатия данных без потерь, основанный на кодировании Хаффмана

LZW (Lempel, Ziv, Welch) – метод сжатия данных без потерь, названный по фамилиям разработчиков

TIFF (Tagged Image File Format) – формат хранения растровых изображений со сжатием

FEM, МКЭ (Finite Elements Modeling) – метод конечных элементов.

B-Rep (boundary representation) – один из способов моделирования объемных тел

C-Rep (constructive representation) – один из способов моделирования объемных тел


ПРЕДИСЛОВИЕ

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

В главах 1-14 представлены теоретические сведения об аппаратном и программном обеспечении компьютерной графики и основных алгоритмах обработки растровых и векторных изображений. Подробно рассмотрены вопросы трехмерного моделирования.

  1.  
    Области применения компьютерной графики

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

Рис. .. Дерево компьютерной графики.

  1.  Цифровое представление графики

По способу цифрового представления все изображения делятся на две группы: векторные и растровые.

а)

б)

Рис. . - Типичное векторное (а) и растровое (б) изображения1.

Векторные изображения состоят из базовых геометрических элементов двух видов: отрезков и дуг (). При этом отрезок задается четырьмя числами (координатами начала x1,y1 и конца x2,y2), а дуга – шестью: координатами центра x1,y1, начальным и конечным углами и начальным R1 и конечным R2 радиусами. Если R1= R2, то дуга является сегментом окружности. При R1 R2 дуга является сплайном – особой кривой, свойства которой будут рассмотрены позднее.

Рис. .- Базовые элементы векторных изображений.

Растровые изображения состоят из большого количества одинаковых квадратиков, называемых пикселами (от англ. picture element – элемент изображения). Для каждого пиксела запоминаются его цвет или яркость.

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

Табл.  .

Преимущества

Недостатки

Векторные изображения

Малый размер файла

Невозможность передачи полутонов

Масштабируемость без потери качества

Необходимость создания изображения только на компьютере

Легкость редактирования

Растровые изображения

Фотореалистичная передача полутонов

Потеря качества при масштабировании

Легкость получения сканированием

Трудность редактирования

Большой размер файла

Объем информации, содержащейся в векторном представлении, не зависит от физических размеров изображения. Например, на одной картинке представлен отрезок от точки (0,0) до точки (10,10), а на другой – от точки (1000,1000) до точки (10000,10000). Обе картинки займут одинаковое место в памяти, поскольку для хранения одной координаты зарезервирован один и тот же объем памяти - скажем, 6 байт. Тогда описание отрезка любой длины всегда будет занимать ровно 64=24 байта. Это важное свойство векторных изображений, позволяющее в масштабе 1:1 работать с чертежами целых зданий, мостов, самолетов и других крупных объектов.

  1.  Основные операции над графическими объектами

Под масштабированием (scaling) понимается пропорциональное изменение размеров изображения как в сторону увеличения, так и в сторону уменьшения ().

а) исходное изображение

б) масштаб 2:1

в) масштаб 1:2

Рис. . – Масштабирование изображений.

Следует помнить, что при черчении масштаб изображения нельзя брать произвольно – он должен браться из установленного в ЕСКД ряда 1; 2; 2,5; 4; 5; 10; 15; 20; 25; 40; 50; 75; 100; 200; 400; 500; 800; 1000.

Легкость редактирования векторных изображений связана с тем, что они четко разделены на ряд объектов, у каждого из которых можно поменять описывающие его параметры. Например, для переноса отрезка вдоль оси Х на расстояние d достаточно прибавить величину d к абсциссам его концов. В случае же с растровым представлением тот же отрезок оказывается "рассыпанным" на большое количество не связанных между собой пикселов и перенести его оказывается фактически невозможно ().

а) перенос векторного отрезка

б) перенос растрового отрезка

Рис. . – Редактирование векторных (а) и растровых (б) изображений.

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

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

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

  1.  ИСТОРИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ

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

Мощный импульс развитию средств компьютерной графики дала программа лунных экспедиций Apollo (1961-1972). Для тренировки астронавтов было необходимо на тренажере воспроизвести условия посадки на Луну с учетом освещения, углов обзора, лунного пейзажа. Для решения этой задачи и были созданы первые системы компьютерной графики. Компьютеры того времени все же не позволяли обеспечить полную имитацию обстановки, поэтому часть изображения создавалась обычными телекамерами. Компьютерная графика также широко применялась при передаче телевизионных изображений с межпланетных станций. Уже в 1968 на станции Mariner 9 была установлена компьютерная сканирующая система для передачи изображения поверхности Марса.

  1.  Развитие аппаратных и программных средств

Первые системы автоматизированного проектирования (САПР, англ. CAD) для разработки чертежей на компьютере появились в 60-е гг. ХХ века ().

Дальнейшее развитие компьютерной техники, рост объемов памяти и быстродействия привел к появлению возможности обработки сложных цветных изображений. Одним из первых применений таких систем стали разнообразные игры (). Видеоигры фирм Atari, Commodore др., подключаемые к бытовому телевизору, вышли на рынок во второй половине 70-х гг. ХХ века имели значительный коммерческий успех.

Рис. . – Одна из первых САПР "Блокнот"

и ее создатель И. Сазерленд (1961).

Рис. . – Одна из первых компьютерных графических игр

"Космическая война" (начало 60-х гг. ХХ века).

  1.  Применение в кинематографе

В начале 80-х гг. ХХ века стало возможным снимать кино на компьютере, заменяя компьютерными изображениями дорогостоящие модели. Впервые 30-секундный монохромный эпизод, созданный средствами компьютерной графики, был включен в знаменитый фильм Дж. Лукаса "Звездные войны: Эпизод IV" (Star Wars: Episode IV, 1977). На его создание ушло три месяца. В 1981 студия У. Диснея выпустила фильм "Трон" (Tron), бóльшая часть эпизодов которого представляла собой компьютерную анимацию, совмещенную с живыми актерами. Качество изображения оставляло желать лучшего ().

а)

б)

Рис. . – Кадр из фильма "Трон" (а) и схема его построения (б).

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

Параллельно развивалось и такое направление КГ, как деловая графика. Во второй половине 80-х гг. ХХ века персональные компьютеры (ПК) получили определенные графические возможности (цветные дисплеи, струйные принтеры) и соответствующее программное обеспечение для построения диаграмм и графиков (электронные таблицы Lotus, Quattro Pro, Excel), чертежей (САПР AutoCAD), для работы дизайнера (CorelDRAW и Adobe Photoshop). Дальнейший рост производительности позволил перенести на ПК системы трехмерного моделирования (3D Studio, SolidEdge), ранее функционировавшие лишь на специальных рабочих станциях.

 

Рис. . – Шлемы для виртуальной реальности.

Еще одно бурно развивающееся направление компьютерной графики – виртуальная реальность (VRvirtual reality). Средства VR предназначены для воздействия на все органы чувств человека, включая осязание, за счет чего создается иллюзия взаимодействия с несуществующим виртуальным миром. Оборудование для VR включает в себя специальный шлем или очки-монитор, создающие стереоскопическую картинку, меняющуюся при изменении положения головы человека, костюм или перчатки, отслеживающие движения человека и обеспечивающие воздействие на органы осязания (например, надувные подушечки имитируют давление на кончики пальцев), а также наушники.

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

  1.  технические средства компьютерной графики: мониторы, графические адаптеры, плоттеры, принтеры, сканеры

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

Рис. . – Аппаратные средства компьютерной графики.

На  представлены основные аппаратные средства компьютерной графики. Рассмотрим каждое из них подробнее.

  1.  Устройства вывода. Экраны

Рис. . – Монитор CRT.

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

Размер экрана традиционно выражается в дюймах. Для обычной работы вполне достаточен экран с диагональю в 17 дюймов. Для профессиональной работы с компьютерной графикой лучше приобрести монитор большего размера.

Частота кадровой развертки измеряется в герцах и показывает, сколько раз в секунду электронный луч перерисовывает картинку на экране. Чем выше частота, тем ниже мерцание изображения и тем ниже нагрузка на зрение. Лучше всего работать при частоте 100..120Гц. Минимально допустимая частота – 60Гц, ниже этой величины мерцание становится явно заметным. Частота зависит от текущего разрешения. Например, монитор может работать с частотой 100Гц в режиме 800600 и только 75Гц – в режиме 1024768.

К недостаткам CRT-мониторов относятся высокое энергопотребление (200..500Вт), наличие внутри корпуса опасно высокого напряжения в 20..40 тысяч вольт, заметный нагрев при работе, накопление статического заряда на экране, большие габариты и вес (монитор с диагональю 21 дюйм весит около 50кг).

Рис. .TFT-монитор.

TFT-мониторы
() формируют изображение из большого количества разноцветных светодиодов. Такие мониторы имеют фиксированное разрешение (например, 1024768). Работа при меньшем разрешении возможна, но качество изображения при этом резко ухудшается. TFT-мониторы потребляют мало энергии, используют низковольтное питание, легки и малогабаритны. В ряде моделей экран можно повернуть на 90о для работы с документами формата А4. В то же время TFT-мониторам присущ ряд существенных недостатков. Они обеспечивают худшую цветопередачу по сравнению с CRT-мониторами, а также принципиально не позволяют выполнять цветовую калибровку, поэтому не применяются в полиграфии; размер пиксела на экране TFT-монитора несколько больше размера пятна люминофора у CRT-монитора и картинка выглядит более зернистой. Наконец, по стоимости TFT-мониторы дороже CRT-мониторов с тем же размером экрана.

Экраны, работающие на иных принципах (LCD, плазменные панели) не получили широкого распространения.

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

  1.  Устройства вывода твердых копий 

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

а) струйный принтер

б) струйный плоттер

Рис. . – Устройства струйного вывода.

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

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

а) черно-белый

б) цветной

Рис. . – Лазерные принтеры.

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

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

Принтеры и плоттеры подключаются к компьютеру по интерфейсу COM, LPT или USB.

  1.  Устройства ввода. Сканеры

Сканеры () позволяют оцифровать изображение и представить его в растровом виде. Чаще всего используются планшетные сканеры формата A4. Разные модели отличаются скоростью сканирования и качеством распознавания мелких деталей изображения – так называемым оптическим разрешением. Для сканирования оригиналов большого формата на плоттер можно установить сканирующую головку.

Рис. . – Планшетный сканер.

Сканеры передают данные в компьютер по интерфейсу COM, LPT или USB. Последний вариант предпочтителен, так как он обеспечивает наибольшую скорость передачи данных.

  1.  Устройства ввода. Цифровые фотоаппараты

Цифровой фотоаппарат () фактически представляет собой сканер, фиксирующий картинку, создаваемую объективом на его фоточувствительной ПЗС-матрице. Полученное изображение передается в компьютер, обычно по USB-интерфейсу. Главный параметр цифрового фотоаппарата – число пикселов, на которые разбивается картинка. Чем оно выше, тем более мелкие детали будут различимы. При 3 MPx (мегапикселах) и выше достигается качество отпечатка 1015см, сравнимое с обычной фотографией.

Рис. . – Цифровой фотоаппарат.

  1.  Устройства координатного ввода

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

а) оптическая мышь

б) планшет

в) световое перо

г) трекбол

Рис. . – Устройства координатного ввода
.

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

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

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

Трекбол (, г) является аналогом мыши, в котором пользователь вращает пальцами шарик. Трекбол не требует места на столе для своего перемещения и широко применяется в ноутбуках.

Экран типа "touch screen" позволяет непосредственно нажимать пальцем или специальной палочкой (стилусом) на его поверхность. Такие экраны широко применяются в различных справочных системах, автоматах продажи билетов, банкоматах, а также в карманных компьютерах (), где чувствительный экран заменяет собой клавиатуру.

Рис. . – Карманный компьютер с экраном типа touch screen.

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

  1.  СВОЙСТВА РАСТРОВЫХ ИЗОБРАЖЕНИЙ

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

Разрешение (resolution) – важнейший параметр растровой картинки. Разрешение показывает, на сколько пикселов разбивается единица длины изображения и традиционно меряется в точках на дюйм (dots per inch, dpi). Очевидно, чем выше разрешение, чем более мелкие детали будут четко показаны на изображении и тем больший объем памяти оно займет.

На  показано одно и то же растровое изображение, выполненное с различными разрешениями.

а) 600dpi 

б) 300dpi

в) 100dpi

Рис. . – Различные разрешения растрового изображения.

Ясно видно, что при низком разрешении возникает так называемый эффект пикселизации - картинка явно распадается на довольно крупные квадратики и изображение теряет четкость.

Выбор разрешения зависит прежде всего от дальнейшей судьбы изображения. Дело в том, что разрешение изображения должно соответствовать разрешению применяемого устройства вывода ().

Табл. .

Устройство вывода/применение изображения

Рекомендуемое разрешение

Только монитор (например, размещение в Интернете)

72..96dpi

Раcпознавание текста при помощи FineReader

300dpi

Струйный принтер

300..600dpi

Лазерный принтер

600dpi

Плоттер большого формата (свыше 3м)

18..30dpi

Плоттер среднего формата (А2..А0)

180..300dpi 

С точки зрения качества отпечатка можно сказать, что изображение с разрешением 300dpi при качественной печати неотличимо от обычной фотографии. Именно с таким разрешением выполняется печать цифровых фотографий. В то же время обычные "химические" фотографии пока обеспечивают гораздо большее разрешение. На кадре пленки 35мм удается зафиксировать до 20 млн. "пикселов" (сгустков молекул серебра), в то время как лучшие на сегодняшний день цифровые фотоаппараты дают только 10..12 млн. пикселов.

С другой стороны, экранное разрешение в 72..96dpi более чем достаточно для восприятия изображений. В большинстве режимов работы монитора число пикселов на экране превосходит качество привычной телевизионной картинки. Так, в системе телевидения SECAM передается 625 строк изображения (в PAL и NTSC еще меньше), что заметно ниже качества картинки при разрешении монитора 1024768. Еще хуже качество изображения с видеомагнитофона стандарта VHS, дающего всего 240 строк. DVD-диски обеспечивают около 800 строк. Недостаточное разрешение телевизионных изображений компенсируется их просмотром с большого расстояния (3..4м), при этом мелкие детали "додумываются" человеческим мозгом. В целом же на сегодняшний день из всех применяемых носителей графической информации наилучшее разрешение (около 3000dpi) дает широкоформатная 70мм кинопленка. Приближается к такому уровню изображение специальных цифровых видеокамер Sony CineAlta с разрешением 1080dpi (), специально созданных по заказу режиссера Дж. Лукаса для съемок фильма "Звездные войны: Эпизод II".

Рис. . – Цифровая камера Sony CineAlta с разрешением 1080dpi.

Цветовая глубина растрового изображения указывает, сколько памяти в битах будет выделено для хранения информации о цвете каждого пиксела. При глубине в 1 бит пиксел принимает только два значения – 0 и 1, соответствующие белому и черному цветам. Такой режим обычно называется Lineart и применяется, к примеру, при сканировании текста. Для работы с черно-белыми изображениями предназначен режим "Оттенки серого" [Grayscale], при котором на каждый пиксел выделяется 8 бит, дающих 28=256 оттенков серого цвета. Наконец, в полноцветном режиме на пиксел выделяется 24 или 48 бит, что дает 224=16777216 и 2482.81014 оттенков соответственно. В подавляющем большинстве случаев устройства вывода цветных изображений (мониторы, особенно TFT, и струйные принтеры) не обеспечивают отображения цветов свыше 24 бит, к тому же человеческий глаз практически не замечает разницу между 16 миллионами и 2.81014 оттенков.

Вы сами можете легко проверить этот факт. В настройках свойств монитора есть пункт "Качество цветопередачи" (). В большинстве случаев можно выбрать значения глубины в 16, 24 или 32 бита. Вряд ли вы сможете визуально заметить разницу между глубиной в 24 и 32 бита, хотя последний вариант требует гораздо большей загрузки процессора и замедляет работу всей системы.

Рис. . – Диалоговое окно установления цветовой глубины монитора (Windows XP).

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

Пусть мы сканируем область изображения размером 2030мм (0.781.18 дюйма) с разрешением 300 dpi. При этом картинка будет разбита на 3000.78=234 пиксела по горизонтали и 3001.18=354 пиксела по вертикали. Теперь отсканируем ту же область с разрешением 600 dpi. Получим 6000.78=468 пикселов по горизонтали и 6001.18=708 пикселов по вертикали. Что же, при изменении разрешения картинка увеличилась в два раза?

Для растровых изображений существуют два отдельных понятия: пиксельный размер и размер отпечатка. Размер отпечатка может задаваться произвольно и зависит от возможностей вашего оборудования. Если умножить длину или ширину отпечатка в дюймах на разрешение, то получим пиксельный размер изображения:

Ширина, дюймов разрешение, dpi = пикселов по горизонтали

Высота, дюймов разрешение, dpi = пикселов по вертикали

()

Пусть с цифрового фотоаппарата получена фотография размером 22721704 пиксела. C каким качеством можно напечатать такую фотографию на листе формата А4 (210297мм или 8.211.6 дюйма)?

Из ) имеем следующие уравнения:

8.2  X = 1704

11.6  Y = 2272

Обратите внимание, что длинная сторона снимка в 2272 пиксела располагается по длинной стороне листа. Получаем X  207, Y  195. Таким образом, на листе формата А4 можно получить отпечаток с разрешением примерно 200dpi – вполне приемлемо для такого формата.

Решим обратную задачу. Мы хотим получить отпечаток 1015см (46 дюйма) с разрешением 300dpi. Какой пиксельный размер изображения для этого понадобится? Получаем следующие уравнения:

6 300 = X

4 300 = Y

Отсюда X = 1800, Y = 1200. Всего в картинке должно быть 18001200=2160000 пикселов или 2,16MPx. Следовательно, для получения отпечатка желаемого качества нужен цифровой фотоаппарат с матрицей более 2MPx.

  1.  Форматы хранения графической информации

Растровые изображения, особенно высокого разрешения и с большой цветовой глубиной, занимают значительные объемы памяти. Попробуем подсчитать, сколько места в памяти займет цветная картинка формата А4 (8.211.6 дюйма), если ее отсканировать с разрешением 300dpi и цветовой глубиной 24 бита.

Подсчитаем размер изображения в пикселах:

X=11.6300=3480

Y=8.2300=2460

Таким образом, всего картинка состоит из 34802460=8560800 точек. На каждую точку отводится 24 бита или 3 байта. Тогда общий объем памяти для хранения изображения будет равен 85608003=25682400 байт или 24.5 Мб.

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

Принципиально существуют два способа сжатия информации: без потерь и с потерями ().

Рис. . – Алгоритмы сжатия информации.

При сжатии без потерь распакованные из архива данные точно соответствуют первоначальным, поэтому такими способами можно сжимать текст и исполнимые файлы программ. Принцип сжатия основан на поиске в файле повторяющихся фрагментов и вынесении их в отдельную таблицу. Сжатие без потерь реализовано в формате хранения растровых изображений TIFF, причем можно на выбор указать алгоритм сжатия: LZW или ZIP. На  приведено диалоговое окно сохранения изображения в формате TIFF программы Adode Photoshop, в котором нужно явно указать способ сжатия.

Рис. . – Выбор вида сжатия файла (Adode Photoshop 8.0) .

Названия алгоритмов образованы по первым буквам фамилий их авторов.

Сжатие с потерями основано на том факте, что, удалив мелкие детали изображения, можно резко сократить объем файла (в 100 и более раз). После распаковки полученный файл будет отличаться от исходного, поэтому таким способом сжимают только изображения, видео и звук. Алгоритм сжатия с потерями был разработан группой специалистов Joint Photographic Experts Group и получил название JPEG.

а)

б)

Рис. . – Сжатие изображения с потерями.

а) исходное изображение (24Кб)

б) изображение формата JPEG с 40% качеством (13Кб)

При сохранении файла в формате JPEG указывается уровень качества: от максимального (100%) до минимального. Чем ниже качество, тем меньше размер файла (). Формат JPEG лучше всего использовать, если изображение предназначено для вывода не экран, поэтому он широко распространен в Интернете.

  1.  Цветовые модели растровых изображений

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

– HSB (hue, saturation, brightness – оттенок, насыщенность, яркость);

– RGB (red, green, blue – красный, зеленый, синий);

– CMYK (cyan, magenta, yellow, black – голубой, малиновый, желтый, черный).

Применяются и специальные модели такие, как Indexed Color (Индексированный цвет) и Duotone (Двутоновое изображение).

Рис. . - Цветовая модель RGB.

Как известно, большая часть видимого спектра может быть представлена смешением в различных пропорциях красного, зеленого и синего цветов. Это RGB модель (). В изображениях с RGB моделью используются три цвета, или канала. Значение яркости каждого пиксела изменяется обычно от 0 (черный) до 255 (белый) для каждого из трех основных цветов RGB. Например, ярко-красный цвет должен иметь значения яркости R=246, G=20, B=50. При равенстве всех трех значений изображение будет серого цвета, при установке всех значений в 255 – ярко-белым, а при установке всех каналов в 0 – черным. Обычно RGB модель используют, если изображение является самосветящимся, например, если это картинка на экране монитора. В модели RGB работает телевидение и вся видеозапись.

Модель CMYK () в основном применяется при цветной печати изображений, которые мы рассматриваем в отраженном свете. Как и в случае с моделью RGB, три цвета – голубой, малиновый и желтый – при смешивании образуют все остальные цвета, в том числе и черный. Так как красители содержат примеси, то при соответствующем смешивании они образуют глубокий коричневый цвет вместо черного. Чтобы получить настоящий черный, надо добавлять чисто черные чернила. Кстати, в аббревиатуре CMYK для обозначения черного цвета (black) используется буква К, а не В, для избежания путаницы со словом Blue (синий).

Рис. . – Цветовая модель CYMK.

В CMYK-модели величина каждого основного цвета измеряется в процентном отношении. Чем насыщеннее цвет, тем выше его процент. Например, ярко-красный оттенок определяется 2% голубого, 93% малинового, 90% желтого и 0% черного цветов.

При типографской печати в модели CMYK (а именно в ней выполняется практически вся цветная печать) выполняется цветоделение – преобразование полноцветного изображения в четыре отдельных слоя голубого, малинового, желтого и черного цветов (). Далее каждый из этих слоев печатается на прозрачной пленке и уже с этих пленок выполняется цветная офсетная печать.

а) исходное изображение

 

голубой

малиновый

желтый

черный

б) цветовые слои

Рис. . – Цветоделение.

Модель HSB была разработана в качестве "объективной", не зависящей от применяемого оборудования. В этой модели параметр H (оттенок) задается углом от 0 до 360о, которому соответствует оттенок цвета на стандартном цветовом круге. На круге последовательно расположены цвета видимого спектра; красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый. Для их запоминания придумана поговорка: "Как Однажды Жак-Звонарь Головой Сломал Фонарь".

Рис. . – Цветовая модель HSB.

Яркость (B) является координатой Х цветового треугольника и изменяется от 0 до 100. Значению 0 соответствует черный цвет.

Насыщенность (S) является координатой Y цветового треугольника и изменяется от 0 до 100. Значению 0 соответствует белый цвет (отсутствие красителя).

Цветовые модели можно преобразовывать одна в другую, поэтому, если необходимо напечатать изображение в цвете, то лучше сначала редактировать его в режиме RGB, более пригодном для просмотра на мониторе, а потом преобразовать в CMYK.

Режим индексированного цвета использует только 256 цветов. За счет этого заметно уменьшается размер файла. Этот режим применяется, например, при создании графики для Web-страниц. В файле дополнительно хранится таблица, в которой приведены значения всех 256 цветов в какой-либо цветовой модели (обычно RGB).

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

  1.  системы координат, типы преобразований
    графической информации
     

Перейдем теперь к рассмотрению вопросов обработки векторных изображений. Как мы уже знаем, векторное изображение хранится в виде набора координат своих базовых элементов – отрезков и дуг. Над векторными изображениями можно выполнять так называемые аффинные преобразования – перенос, поворот и масштабирование. При аффинных преобразованиях сохраняются углы между элементами векторного изображения.

  1.  Проблемы геометрического моделирования

Методы выполнения аффинных преобразований хорошо известны из аналитической геометрии. Например, рассмотрим перенос (трансляцию) и поворот. Пусть на плоскости имеется двухмерная система координат XOY. В этой системе точка М имеет координаты х, у. Пусть на той же плоскости имеется еще одна система координат. Тогда в этой новой системе та же точка М будет иметь в общем случае иные координаты х', y'. Отметим, что одна система координат переводится в другую при перемещении ее центра вдоль отрезка, соединяющего начала координат обоих систем. Тогда переход от одной прямоугольной декартовой системы координат к другой описывается формулами:

()

Здесь , , , , ,  - произвольные числа.

Данное преобразование показано на .

Рис. . - Общий случай перехода от одной координатной системы к другой.

Плоскопараллельный перенос (трансляция) точки заключается в алгебраическом сложении ее координат с приращениями dx и dy:

x'=x+dx

y'=y+dy

()

Это равносильно перемещению точки вдоль отрезка (х, у) - (dx, dy).

Пусть точку М(х,у) нужно повернуть вокруг начала координат на угол . Новые координаты точки после поворота определяются по формулам ():

()

Рис. . - Поворот системы координат.

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

  1.  Понятие однородных координат

Матрицы применяются для описания элементарных операций над геометрическими примитивами. Для этого вводится понятие однородных координат точки на плоскости.

На плоскости точка в однородных координатах описывается не двумя, а тремя числами. Пусть на плоскости есть точка М с координатами х,у. Тогда ее однородными координатами называются три одновременно не равных нулю числа х1, х2, х3 таких, что .

В машинной графике точке с координатами х, у на плоскости ставится в соответствие точка с координатами х, у, 1 в пространстве (). Фактически точка х, у проектируется на плоскость, параллельную координатной и отстоящей от нее на расстояние, равное единице.

Рис. . - Однородные координаты точки.

В проективной геометрии однородные координаты обычно записываются как х12:1. Их также удобно представить в виде hx1:hx2:h, где h есть Z - координата проективной плоскости.

Основное преимущество однородных координат - возможность замены операций с вещественными числами на операции с целыми числами. Такая замена является абсолютно необходимой, поскольку целочисленная арифметика на компьютере выполняется в десятки раз быстрее, чем арифметика с плавающей точкой. Например, точка имеет однородные координаты 0,5:0.1:2.5 при h=1. Просто переместим проективную плоскость повыше, приняв h=10. Тогда координаты примут вид 5:1:2.5. Третья координата при выводе на экран не используется, а первые две стали целыми числами.

Рассмотрим матричную запись аффинных преобразований на плоскости ().

Табл. .

ПРЕОБРАЗОВАНИЕ

МАТРИЧНАЯ ЗАПИСЬ

Перенос на TX, TY

Поворот на угол

Масштабирование с коэффициентами по осям SX, SY

Здесь X, Y, h - однородные координаты произвольной точке в исходной системе координат.

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

  1.  Геометрические операции над моделями

Современные системы компьютерной графики работают не только с плоскими изображениями, но и с объемными (трехмерными). Для выполнения преобразований в трех измерениях естественно распространить матричные операции и на трехмерные геометрические объекты. Для этого по аналогии с двухмерным случаем введем понятие однородных координат точки в пространстве. Заменим тройку чисел (x, y, z) четверкой (x, y, z, 1). В общем виде однородные координаты представляются в виде .

Рис. . – Куб и гиперкуб.

Как представить себе смысл величины h? По аналогии с двухмерным случаем h есть расстояние от координатного пространства XYZ до проективной гиперплоскости, на которую это пространство проектируется. Размерность гиперплоскости равна четырем. Мысленно представить себе четырехмерный объект практически невозможно (). Например, каждой гранью четырехмерного гиперкуба является привычный нам трехмерный куб и т.д.

Зададим элементарные операции в пространстве в виде матриц.

Матрица вращения вокруг оси абсцисс на угол :

Следует помнить, что матрица соответствует линейной системе уравнений координат точек.

Матрица вращения вокруг оси ординат на угол :

Матрица вращения вокруг оси аппликат на угол :

Очень важное свойство вращения в пространстве состоит в том, что оно некоммутативно. Коммутативностью называется независимость результата операции от порядка следования операндов. Например, для обычных чисел AB=BA. Для матриц же такое правило не соблюдается: при умножении матриц в общем случае ABBA. И действительно, результат вращения тела в пространстве зависит от последовательности выполнения вращений. Отметим, что вращение на плоскости вcегда коммутативно. Мы можем сначала повернуть объект на 15о, а затем на 30о, или наоборот – сначала на 30о, а затем на 15о – в обоих случаях тело окажется повернутым на 45о.

Матрица масштабирования с коэффициентами сжатия/растяжения  вдоль оси абсцисс,  - оси ординат, - оси аппликат:

Для определения переноса объекта удобно воспользоваться вектором переноса с координатами , вдоль которого объект и перемещается в направлении вектора. Тогда можно записать следующую матрицу переноса:

  1.  виды геометрических моделей их свойства,
    параметризация моделей

Системы 3D моделирования должны тем или иным образом математически представлять трехмерные поверхности, из которых образуются моделируемые тела.

  1.  Поверхностные модели

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

Существуют следующие основные типы поверхностей

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

Области поверхностей также могут быть развернуты в трехмерные объекты (). Следует отметить, что системы поверхностного моделирования не распознают такие формы, как твердые объемные тела; они представляют их просто как поверхности (на  семь плоских граней), соединенные друг с другом неким образом в пространстве и ограничивающие "пустой" объем.

Рис. . – Формирование развернутых плоских и криволинейных поверхностей.

   

Рис. . – Формирование объемного объекта разверткой плоской области.

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

3. Поверхности сопряжении и пересечений. Возможность построения плавного сопряжения одной поверхности с другой является наиболее мощным и часто используемым на практике средством поверхностного моделирования. Кроме этого, может быть доступно средство определения пересечения поверхностей.

Рис. . – Получение поверхности вращения.

 

Рис. . – Поверхности сопряжения.

На  показано, как в трехмерном пространстве можно построить обычное и плавное сопряжения боковых поверхностей параллелепипеда и цилиндра. Проблема порождения результирующей поверхности в данном случае сводится к задаче построения методом сплайн-интерполяции особых кривых в трехмерном пространстве, "выходящих" из сторон квадрата и "входящих" в автоматически генерируемую кривую на поверхности цилиндра, по которой заданные поверхности должны пересекаться.

  1.  Аналитические поверхности

4. Аналитические поверхности. Каждая такая поверхность определяется одним математическим уравнением с неизвестными X, Y и Z (эти неизвестные обозначают искомые координаты поверхности). Иначе говоря, чтобы изобразить любую аналитическую поверхность, необходимо знать математическое уравнение, которым она описывается. На  представлена поверхность, описываемая уравнением .

Рис. . – Аналитически заданная поверхность.

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

Рис. . – Шуховская башня – пример использования

гиперболоида вращения в технике.

  1.  Составные поверхности

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

Рис. . – Поверхность Кунца.

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

Стороны каркаса чаще всего представляют собой NURBS-сплайны (nonuniform rational B-spline) – гладкие кривые, соединяющие заданные точки (). 

Рис. . – Сплайн и его физическое представление.

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

Хотя методы поверхностного моделирования обладают многими достоинствами, существует ряд ограничений на их использование. Основными являются следующие ограничения:

  •  возникновение неоднозначности при попытке моделирования реального твердого тела;
  •  недостаточность точности представления некоторых поверхностных моделей для обеспечения надежных данных о трехмерных объемных телах;
  •  сложность процедур удаления скрытых линий и отображения внутренних областей.

  1.  Параметризация моделей

Создавать параметрические графические объекты возможно либо путем программирования, либо путем интерактивного формирования модели непосредственно при рисовании. В ряде CАD-систем можно чертить изображение с одновременным заданием закона построения, который, однако, потом нельзя изменить в случае ошибки (придется удалить все построение и начать его заново), либо такое изменение сильно затруднено.

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

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

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

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

На элементы 2D геометрии могут быть наложены следующие типы параметрических связей и ограничений:

  •  вертикальность прямых и отрезков;
  •  горизонтальность прямых и отрезков;
  •  коллинеарность отрезков;
  •  параллельность прямых и отрезков;
  •  перпендикулярность прямых и отрезков;
  •  выравнивание характерных точек объектов по вертикали;
  •  выравнивание характерных точек объектов по горизонтали;
  •  зеркальная симметрия графических объектов (в том числе относительно проекции ребра детали на плоскость эскиза);
  •  равенство радиусов дуг и окружностей;
  •  равенство длин отрезков;
  •  касание кривых;
  •  объединение характерных точек объектов;
  •  принадлежность точки кривой;
  •  фиксация характерных точек объектов;
  •  фиксация и редактирование размеров;
  •  присвоение размеру имени переменной;
  •  задание аналитических зависимостей (уравнений и неравенств) между переменными.

  1.  2D и 3D моделирование в рамках графических систем

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

Тело представляется набором ограничивающих его поверхностей, составляющих оболочку тела ().

Рис. . – Тело и его оболочка.

Оболочка выделяет часть пространства, находящуюся "внутри" тела. Оболочки тела не должны пересекать друг друга и сами себя. В ряде случаев тело определяется несколькими оболочками. Например, внутренние полости в теле ограничены дополнительной оболочкой, находящейся внутри основной.

Рис. . – Внешние и внутренние оболочки тела.

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

Рис. . – Грани и поверхности тела.

Существует несколько подходов к описанию тел. Наиболее широко применяются способы, известные как C-Rep и B-Rep.

Способ C-Rep (constructive representation) заключается в представлении любого тела как совокупности базовых тел: призм, цилиндров, сфер, конусов. Комбинируя базовые тела различным образом, можно получить достаточно большое разнообразие моделей. Трехмерное моделирование в системе AutoCAD фактически выполнено по способу C-Rep, хотя и с существенными дополнениями.

Способ C-Rep обеспечивает выполнение булевских операций объединения, пересечения и вычитания над базовыми и производными телами ().

Объединение

Разность

Пересечение

Множества

Твердые тела

Рис. . – Булевские операции над множествами и твердыми телами.

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

Операцию вычитания тел можно свести к операции пересечения. Для этого нужно вывернуть второе тело "наизнанку" и найти точки его объема, одновременно принадлежащие и объему первого тела. Вывернутое наизнанку тело S обозначается . Тогда . Все булевы операции выполняются по единому алгоритму.

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

 

 

Рис. . – Дерево построения тела и его представление в системе Компас 3D.

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

Взаимное расположение поверхностей задается графом смежности ().

1

2

3

4

1

Х

0

1

1

2

0

Х

1

1

3

1

1

Х

0

4

1

1

0

Х

Рис. . - Тело, его граф смежности и соответствующая матрица.

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

()

  1.  Методы построения 3D тел 

Несмотря на большое разнообразие систем 3D моделирования, основанных на B-Rep-представлении трехмерных объектов, методы построения таких объектов в целом остаются одними и теми же. К базовым способам получения 3D тел относятся:

- выдавливание плоского контура;

- кинематическое построение;

- вращение плоского контура;

- лофтинг;

Выдавливание плоского контура – наиболее простой способ построения тела. Замкнутая плоская несамопересекающаяся кривая (контур) перемещается параллельно самой себе, образуя при своем перемещении тело ().

а)

б)

Рис. . – Получение тела простым выдавливанием плоского контура (а)
и выдавливанием с наклоном (б)

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

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

а) направляющая и образующая

б) выдавливание по направляющей

в) готовая модель

Рис. . - Кинематическая операция.

Операция вращения требует наличия замкнутого контура и оси вращения ().

Рис. . – Получение тела операцией вращения.

При этом ось может совпадать с частью контура – при этом образуется тело без внутреннего отверстия. Угол поворота контура вокруг оси не обязательно равен 360о. Можно, например, повернуть контур на 180о и получить "половину" детали.

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

а) исходный набор сечений 1,2,3

б) построение солида

в) готовая модель

Рис. .. Лофтинг.

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

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

а) базовый солид

б) добавление выступа

в) вырезание отверстия

г) готовая модель

Рис. .. Создание сложных тел.

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

Запомним несколько базовых правил 3D моделирования:

1. Отбросьте такие элементы, как скругления, фаски и ребра жесткости – они создаются потом при помощи специальных команд.

2. Разбейте тело на ряд элементарных частей. Эти части могут быть и "пустыми" – например, пустой цилиндр образует сквозное отверстие.

3. Для каждого элементарного тела представьте плоский эскиз, на основе которого можно получить такое тело.

4. Если на детали есть повторяющиеся элементы, их следует объединять в массивы, а не отрисовывать поодиночке.

5. Помните, что все размеры на модели задаются параметрически. Это означает, что их можно в любой момент поменять. Фактически одна 3D модель соответствует большому множеству конструктивно подобных деталей.

  1.  Анализ твердотельных моделей

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

Рис.  . – Модель детали и ее массо-инерционные характеристики
(Компас 3
D v8+).

Очень важное применение твердотельных моделей – расчеты прочности и теплопередачи на основе метода конечных элементов (FEMFinite Elements Modeling). Суть метода заключается в том, что весь объем твердого тела разбивается на большое количество элементов, имеющих форму прямоугольной призмы или, чаще, тетраэдра. Для каждого элемента сравнительно легко можно рассчитать нагрузки, деформации, теплопередачу и т. д. с учетом влияния всех соседних элементов. Таким образом, тело аппроксимируется набором взаимосвязанных частей. Метод позволяет задавать граничные условия на перемещение, напряжение, температуру для любой точки объекта (). Оптимизация дает возможность выбора минимально допустимых размеров при данных нагрузках и граничных условиях и подобрать материал с нужными свойствами. Подобная возможность хорошо сочетается с системами автоматизированного расчета материалоемкости изделий. Требуемый материал выбирается из баз данных, содержащих информацию по основным материалам и материалам-заменителям.

а) распределение напряжений
в модели

б) расчет деформированной геометрии модели

Рис.  . – Применение МКЭ (CosmosWorks).

При расчетах по МКЭ необходимо задать основные характеристики материала:

-тип материала: изотропный, ортотропный, анизотропный, композитный;

-модуль эластичности;

-отношение Пуассона;

-плотность;

-коэффициент термического расширения;

-теплопроводность;

-коэффициент трения;

-допустимые напряжения кручения и изгиба по координатным осям.

Расчет методом конечных элементов требует огромного количества вычислений, поэтому время его выполнения составляет от 25-30 минут до нескольких часов даже при использовании мощных рабочих станций. По результатам расчета прежде всего делается вывод об общем соответствии конструкции заданным нагрузкам и граничным условиям. Затем анализируются наиболее нагруженные области с целью возможной корректировки, направленной на снижение нагрузок и более равномерное их распределение. Если же результаты расчета оказываются неудовлетворительными, конструктор может либо внести изменения в расчетные нагрузки, либо переработать конструкцию и повторить цикл расчета методом конечных элементов. В случае, если расчетные параметры значительно меньше предельно допустимых, имеет смысл провести оптимизацию конструкции.

Прочностные расчеты методом МКЭ являются обязательными в ряде отраслей промышленности (в первую очередь, в авиастроении). Уверенность в корректности данного метода была столь велика, что фирма Boeing поставила на конвейер авиалайнер Boeing 777 без изготовления и летных испытаний прототипа, основываясь лишь на результатах компьютерного моделирования. Однако в последнее время появились сообщения о том, что расчет по МКЭ простейших ферменных конструкций дает неверные результаты. Хотя для таких расчетов МКЭ обычно не применяется, требуются дополнительные исследования для установления границ применимости МКЭ.

  1.  алгоритмы визуализации: отсечения, развертки, удаления невидимых линий и поверхностей, закраски

Созданную 3D модель поверхности или тела необходимо визуализировать – вывести на экран. При визуализации трехмерные объекты проецируются на плоскость, поэтому любая визуализация, в конечном счете, сводится к построению тех или иных проекций.

Все проекции делятся на два вида – центральные и параллельные ().

а)

б)

Рис.  . – Центральная (а) и параллельная (б) проекции.

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

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

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

Рис.  . – Полигон кривой.

Рис.  . – Определение шага полигона.

Точки на полигоне идут с некоторым шагом, который зависит от принятой точности отображения . Вычислим допустимый шаг точек полигона. Пусть кривая задана уравнением r(t). Точка t0 () лежит на кривой и является одной из вершин полигона. Нужно найти точку, являющуюся следующей вершиной полигона, причем отклонение полигона от кривой не должно превышать . Кривую в окрестностях точки t0 можно представить как сегмент окружности радиуса :

()

По теореме Пифагора длина хорды h, соединяющей точки t0 и t1, равна

()

Поскольку величина h мала, можно считать, что длина хорды примерно равна длине дуги. Тогда приращение  с учетом  равно

()

Если кривая резко меняет направление, может потребоваться заметное уменьшение величины для соблюдения заданной точности отображения.

  1.  Полигональная визуализация и линии очерка

Чтобы изобразить проекцию целого тела, а не отдельной кривой, используют наборы полигонов, называемые сетками. Обычно при визуализации строятся полигоны границ тела и нескольких его характерных линий ().

Рис.  . – Сетка визуализации тела.

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

Рис.  . – Линии очерка поверхности.

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

а)

б)

в)

7Рис.  . – Тор (а), параллельная (б) и центральная (в) проекции
его линий очерка.

  1.  Основные растровые алгоритмы

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

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

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

Простейшее решение состоит в следующем: по координатам отрезка получить уравнение прямой и, подставляя в него целочисленные значения координат, менять цвет у получающихся точек. Если концы отрезка имеют координаты (x1, y1) и (x2, y2), то отрезок задается уравнением:

()

При этом x меняется от x1 до x2. Напишем простейшую процедуру построения отрезка:

dY:=ABS(Y2-Y1)/(X2-X1));

y:=y1;

for x:=x1 to x2 do

begin

 PutPixel(x, round(y));

 y:=y+dy

 end;

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

а)        б)

Рис.  . - Четырехсвязная (а) и восьмисвязная (б) развертки отрезка.

Четырехсвязная развертка отрезка включает те и только те точки, квадратные окрестности которых пересекаются с отрезком. Восьмисвязная развертка отрезка включает те и только те точки, боковые стороны квадратных окрестностей которых пересекаются с отрезком.

Приведем алгоритм для генерации четырехсвязной развертки:

x:=x1;

y:=y1;

n:=x2-x1;

m:=y2-y1;

d:=(m/n);

e:=d/2;

for i:=1 to n+m do

 begin

 x:=x+1;

 e:=e+d; { отклонение }

 if e>0.5 then

   begin

     y:=y+1;

     e:=e-1

   end

  else

   begin

    x:=x+1;

    e:=e+d

   end;

  PutPixel(x,y)

 end;

 

Здесь в  переменной е хранится разница между координатой Y текущей точки отрезка и координатой Y точки пересечения отрезка с правой границей квадратной  окрестности текущей точки растровой развертки. При e0.5 отрезок пересекает окрестность точки, лежащей справа от текущей, и нужно сместиться вправо. При  e0.5 отрезок пересекает окрестность точки, лежащей выше текущей, и надо сместиться вверх ().

Рис.  . – Схема работы алгоритма четырехсвязной развертки отрезка.

Как указывалось выше, очень важна эффективность алгоритма развертки. Как известно, компьютер работает с целыми числами гораздо быстрее, чем с вещественными. Поэтому было бы очень желательно придумать такой алгоритм растровой развертки, который использовал бы только целые числа. Целочисленные алгоритмы для развертки графических примитивов были разработаны инженером компании IBM Брезэнхемом и носят его имя.

Ниже приведена процедура на языке Паскаль, реализующая алгоритм Брезенхема для восьмисвязной развертки отрезка.

Procedure Bresenham(x1,y1,x2,y2,Color: integer);

var

dx,dy,incr1,incr2,d,x,y,xend: integer;

begin

 dx:= ABS(x2-x1);

 dy:= Abs(y2-y1);

 d:=2*dy-dx;  {начальное значение для d}

 incr1:=2*dy;  {приращение для d<0}

 incr2:=2*(dy-dx); {приращение для d>=0}

  if x1>x2 then  {начинаем с точки с меньшим знач. x}

 begin

 x:=x2;

 y:=y2;

 xend:=x1;

end

else

begin

 x:=x1;

 y:=y1;

 xend:=x2;

end;

 PutPixel(x,y,Color); {первая точка отрезка}

 While x<xend do

 begin

x:=x+1;

  if d<0 then

    d:=d+incr1  {выбираем нижнюю точку}

  else

begin

 y:=y+1;

 d:=d+incr2; {выбираем верхнюю точку, y-возрастает}

end;

  PutPixel(x,y,Color);

 end;{while}

end;{procedure}

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

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

Рис.  . –Определение принадлежности точки многоугольнику.

Проведем через точку P горизонтальную полупрямую (луч) и определим число пересечений этой полупрямой с ребрами многоугольника. Если это число нечетно, то точка Р лежит внутри многоугольника, четно – снаружи.

Заполнение растровой области хорошо знакомо программистам, поскольку почти во всех языках программирования есть соответствующие команды (например, в языке Pascal это команда FloodFill,  в Delphi – метод FloodFill объекта TCanvas и т.д.)

Рис.  . – Заполнение растровой области с затравкой.

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

Для выполнения заливки используется специальная структура данных, называемая стеком (stack). Стек работает по принципу "первым вошел – последним вышел" ().

Рис.  . - Стек.

Хорошим аналогом стека является магазин автомата Калашникова (программистская шутка гласит, что АКМ – лучшее средство для превращения стека в очередь). При извлечении значений из стека нужно помнить о том, что теперь они будут идти в обратном порядке. Если мы занесли в стек сначала а, потом b,  потом c, то первым извлечется с, затем b и, наконец, а.

Эффективный алгоритм заливки основан на построчном сканировании заполняемой области. Вот его схема:

Инициализируем стек, помещая в него координаты затравочного пиксела.  Пока стек не пуст:

извлекаем пиксел  (х,у)  из стека;

заполняем максимально возможный интервал,  в котором находится пиксел,  вправо и влево вплоть до достижения граничных пикселов;

запоминаем крайнюю левую Lx и крайнюю правую Rx абсциссы заполненного интервала;

в соседних строках над и под интервалом  (Lx,Rx) находим незаполненные к настоящему моменту внутренние пикселы области,  которые,  как мы уже заметили, объединены в интервалы,  а в каждом из этих интервалов находим крайние правые пикселы.  Каждый из этих пикселов вносим в стек в качестве затравочного.

Такой алгоритм правильно заполняет область любой конфигурации, в том числе и с "островами" внутри.

  1.  Удаление скрытых линий

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

Рис.  . – Одна и та же сцена до и после удаления скрытых линий.

 

Рис.  . – Схема удаления скрытых линий.

На  показана поверхность сложной формы, которая проецируется на картинную плоскость. Точка 1 загораживает точку 2, потому что их проекции на картинную плоскость совпадают и при этом точка 1 находится ближе к наблюдателю (точке зрения), чем точка 2. Точка 3 же не загораживает точку 2, так она не находится между точкой 2 и наблюдателем.

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

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

а)

б)

в)

Рис.  . – Варианты взаимного расположения ребра и грани.

а) ребро перед гранью; б) ребро за гранью; в) ребро пересекает грань

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

Для растровых изображений большое распространение получил метод Z-буфера. Название метода объясняется тем, что в нем используется специально выделенная область памяти для хранения относительной "глубины" (координаты Z) пикселов изображения. Еще одна область памяти, называемая "буфер кадра", хранит пикселы текущего создаваемого изображения.

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

Данный алгоритм применим и к векторным изображениям. В этом случае последовательность шагов такова:

1. Заполнить буфер кадра фоновым изображением.

2. Заполнить буфер глубины значениями глубины фона.

3. Для каждой грани сцены последовательно:

- преобразовать проекцию грани в растровую форму (например, при помощи алгоритма Брэзенхема);

- для каждого пиксела проекции вычислить его глубину z=z(x,y);

- сравнить значение z(x,y)   с соответствующим значением буфера глубины Z(x,y);

- Если z(x,y)< Z(x,y),  то:

- записать этот пиксел в буфер кадра;

- записать значение z(x,y) в соответствующую позицию буфера глубины Z(x,y).

Метод Z-буфера хорошо пригоден для накладывания изображения трехмерной сцены на заранее подготовленный фон. Результат работы метода Z-буфера показан на .

Рис.  . – Результат визуализации методом Z-буфера (SolidWorks 2003).

  1.  Способы создания фотореалистических изображений

Рассмотренные ранее алгоритмы позволяют строить проекции граней и ребер объектов и удалять скрытые линии. Но каким образом на изображении () получаются плавные переходы цвета, тени, материалы тел, как учитываются источники освещения? Комплекс задач, связанных с визуализацией материалов при заданных условиях освещения, получил название рендеринга (англ. rendering). Более узко в КГ под рендерингом понимают получение фотореалистичного изображения объекта.

Для выполнения рендеринга, помимо собственно 3D сцены, необходимо задать условия освещения и оптические свойства всех задействованных в сцене материалов. Рассмотрим сначала свойства источников света. Мы видим тела либо в отраженном свете (Луна отражает свет Солнца), либо благодаря собственному свечению нагретого тела (Солнце светится само). Глаз человека привык к естественному источнику – Солнцу, температура поверхности которого примерно 6000оС. При этом Солнце имеет избыток лучей в желто-красной зоне спектра. Искусственные источники света обычно несколько искажают цветовосприятие. Например, лампы накаливания дают значительный избыток желтых лучей. Лампы дневного света более сбалансированы по спектральному составу, из-за чего их свет по сравнению с солнечным кажется холодным.

Световой луч, независимо от его источника, падая на поверхность, частично поглощается, частично отражается и частично пропускается. Если часть света проходит сквозь материал, он называется прозрачным. Для визуализации наиболее важен отраженный свет. Он делится на две составляющие: диффузно отраженный и зеркально отраженный. При диффузном отражении лучи отходят от поверхности хаотично во всех направлениях, а поверхность называется матовой. При зеркальном отражении лучи идут строго в заданном направлении в соответствии с законом "угол падения равен углу отражения" ().

а) диффузное отражение

б) зеркальное отражение

Рис.  . – Отражение от матовой (а) и зеркальной (б) поверхностей.

Свет, падающий на поверхность, может быть рассеянным (англ. ambient light) и направленным (англ. spotlight). Интенсивность рассеянного света одинакова во всех направлениях. Направленным является свет удаленного точечного источника. Например, свет Солнца на Луне при отсутствии атмосферы является направленным, на Земле же он рассеивается атмосферой во всех направлениях и в условиях облачности становится рассеянным.

Таким образом, наблюдатель сцены видит четыре вида света:

- рассеянный, освещающий всю сцену;

- диффузно отраженный то матовых поверхностей;

- зеркально отраженный от зеркальных поверхностей;

- пропущенный через прозрачные материалы.

От каждой точки поверхности в точку наблюдения приходит рассеянный свет одинаковой интенсивности. Интенсивность рассеянного света I в точке наблюдения равна:

,

()

где  - интенсивность источника рассеянного света;

- коэффициент отражения материала (0 для абсолютно черного тела и 1 для идеального зеркала).

Интенсивность диффузно отраженного света  от точечного источника определяется по закону Ламберта:

 

,

()

где  - интенсивность точечного источника направленного света;

- коэффициент диффузного отражения материала (1 для матовой поверхности и 0 для идеального зеркала);

- угол между направлением на точечный источник света и нормалью к поверхности.

Зеркальные поверхности отражают разные количества света в разных направлениях, что вызывает образование бликов. Интенсивность зеркально отраженного света можно определить по закону Фонга:

,

()

где  - коэффициент зеркального отражения материала (0 для матовой поверхности и 1 для идеального зеркала);

- угол между направлением отраженного света и направлением к точке наблюдения;

n – коэффициент блеска. Чем выше n, тем больше блик на материале.

Интенсивность пропущенного света определяется по закону Бугера:

,

()

где  - интенсивность света на входе в прозрачный материал;

l – толщина материала;

- коэффициент поглощения света данным материалом.

Непосредственно при рендеринге по формулам (10)-(13) для каждой точки поверхности рассчитываются интенсивности четырех видов света. При этом учитываются координаты и характеристики источников освещения. Для создания реалистичного изображения, как правило, нужно применить не менее трех источников света: один дает общую подсветку рассеянным освещением, а два других источника – направленные, обеспечивают светотень.

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

Рис.  . – Представление поверхности в виде триангуляционной сетки.

Такая закраска выполняется одним из следующих основных способов: однотонно, путем интерполяции значений интенсивности и путем интерполяции нормалей.

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

Метод интерполяции значений интенсивности (, б) предложен Гуро и часто называется "рендеринг по Гуро" (Gouraud rendering). При этом методе рассчитываются интенсивности отраженного света в углах каждого треугольника, а интенсивности для внутренних точек треугольника находятся методом интерполяции (усреднения значений). Метод Гуро делает визуализацию более гладкой, хотя "граненость" полностью не устраняется.

Метод интерполяции нормалей (, в) или метод Фонга (Phong rendering) заключается на интерполяции нормалей к поверхности в пределах треугольника. Нормали в вершинах находятся точно, а нормали во всех остальных точках вычисляются методом интерполяции. При этом нормали плавно меняют направление при переходе от одного треугольника к другому, что позволяет полностью устранить "граненость", но за счет значительного объема вычислений.

а)однотонная закраска

б)метод Гуро

в)метод Фонга

Рис.  . – Различные виды закраски поверхностей (AutoCAD 2004).

Многие объекты имеют не гладкую, а текстурную поверхность, отличающуюся наличием случайно расположенных цветовых разводов или впадин и выступов. Корка апельсина, мрамор, кожа, дерево – примеры текстурных поверхностей. Текстурные поверхности создаются либо путем случайного смещения нормалей, либо путем наложения на поверхность растровой картинки – текстуры ().

а) наложение случайного
цветового шума "под мрамор"

б) наложение фотографии-текстуры

Рис.  . – Создание текстурных поверхностей (3D Studio Max).

  1.  тенденции построения современных графических систем: графическое ядро, приложения,
    инструментарий для написания приложений

Как было сказано выше, одна из важнейших функций 3D САПР – визуализация проектируемого или анализируемого объекта. Для изображения трехмерных объектов на экране монитора требуется проведение серии процессов (так называемого конвейера) с последующей трансляцией результата в двумерный вид. Первоначально, объект представляется в виде набора точек, или координат, в трехмерном пространстве. Трехмерная система координат определяется тремя осями: горизонтальной, вертикальной и глубины. Объектом может быть дом, человек, машина, самолет или целый 3D мир и координаты определяют положение вершин (узловых точек), из которых состоит объект, в пространстве. Соединив вершины объекта линиями, мы получим каркасную модель, называемую так из-за того, что видимыми являются только края поверхностей трехмерного тела. Каркасная модель определяет области, составляющие поверхности объекта, которые могут быть заполнены цветом, текстурами и освещаться лучами света.

Рис.  .- Каркасная модель куба

Даже при таком упрощенном объяснении конвейера 3D графики становится ясно, как много требуется вычислений для прорисовки трехмерного объекта на двумерном экране. Можно представить, насколько увеличивается объем требуемых вычислений над системой координат, если объект движется.

Рис.  . - Модель самолета с закрашенными поверхностями

  1.  Понятие конвейеров ввода и вывода графической информации

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

Определение состояния объектов (Situation modeling) – эта часть программы не имеет прямого отношения к компьютерной графике, она моделирует тот мир, который будет отображаться в дальнейшем.

Определение соответствующих текущему состоянию геометрических моделей (Geometry generation) – эта часть конвейера создает геометрическое представление текущего момента нашего маленького "виртуального мира".

Разбиение геометрических моделей на примитивы (Tesselation) – эта первая действительно зависимая от "железа" стадия. На ней создается внешний вид объектов в виде набора определенных примитивов, разумеется, на основе информации из предыдущего шага конвейера. Наиболее распространенным примитивом в наше время является треугольник, и большинство современных программ и ускорителей работают именно с треугольниками. Не буду вдаваться в математические подробности, но на треугольники всегда можно разбить любой плоский многоугольник и именно тремя точками можно однозначно задать плоскость в пространстве.

Рис.  . – Конвейер 3D визуализации.

Привязка текстур и освещения (Texture and light definition) – на этой стадии определяется, как будут освещены геометрические примитивы (треугольники), а также какие и как на них в дальнейшем будут наложены текстуры. Под текстурами понимаются изображения, передающие внешний вид материала объекта т.е. негеометрическую визуальную информацию. Хороший пример текстуры – песок на абсолютно ровном пляже. Как правило, на этой стадии информация вычисляется только для вершин примитива.

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

Отбрасывание невидимых примитивов (Culling) – на этой стадии из списка примитивов исключаются полностью невидимые (оставшиеся позади или сбоку от зоны видимости).

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

Закраска примитивов (Fill) – на этой стадии собственно и происходит построение в буфере кадра (памяти отведенной под результирующие изображение) картинки, на основе информации о примитивах, сформированной предыдущей стадией конвейера, и прочих данных. Таких, как текстуры, таблицы тумана и прозрачности и пр. Как правило, на этой стадии для каждой точки закрашиваемого примитива определяется ее видимость, например с помощью буфера глубин (Z-буфера) и, если она не заслонена более близкой к наблюдателю точкой (другого примитива), вычисляется ее цвет. Цвет определяется на основе информации об освещении и наложении текстур, определенной ранее для вершин этого примитива. Большинство характеристик ускорителя, которые можно почерпнуть из его описания относятся именно к этой стадии, так как в основном именно эту стадию конвейера ускоряют аппаратно (в случае недорогих и доступных плат).

Финальная обработка (Post processing) – обработка всей результирующей картинки, как единого целого, какими-либо двумерными эффектами.

Теперь попробуем разобраться, как все обстоит на самом деле. Во-первых, некоторые стадии этого конвейера могут быть переставлены местами, разбиты на части или совмещены. Во-вторых, они могут отсутствовать вообще (редко) или могут появится новые (часто). И, в-третьих, результат работы каждой из них может быть послан (в обход других стадий) обратно. Например, картинку, полученную на последней стадии, можно использовать как новую текстуру для 8-ой стадии,  реализуя таким образом эффект отражающих поверхностей (зеркал), таких как мраморный пол в игре Unreal.

  1.  Cтандарты в области разработки графических систем

Программируемый интерфейс приложений (API, Application Programming Interface) состоит из функций, управляющих 3D конвейером на программном уровне, но при этом может использовать преимущества аппаратной реализации 3D, в случае наличия этой возможности. Если имеется аппаратный ускоритель, API использует его преимущества, если нет, то API работает с оптимальными настройками, рассчитанными на самые обычные системы. Таким образом, благодаря применению API, любое количество программных средств может поддерживаться любым количеством аппаратных 3D ускорителей.

Для 3D приложений существуют следующие API:

Microsoft Direct3D

Criterion Renderware

Argonaut BRender

Intel 3DR

Компания Apple продвигает свой собственный интерфейс Rave, созданный на основе их собственного API Quickdraw 3D.

Для профессиональных приложений, работающих под управлением WindowsNT, доминирует интерфейс OpenGL. Компания Autodesk, крупнейший производитель инженерных САПР, разработала свой собственный API, называемый Heidi. Свои API разработали и такие компании, как Intergraph - RenderGL, и 3DFX - GLide.

Существование и доступность 3D интерфейсов, поддерживающих множество графических подсистем и приложений, увеличивает потребность в аппаратных ускорителях трехмерной графике, работающих в режиме реального времени. Развлекательные приложения, главный потребитель и заказчик таких ускорителей, но не стоит забывать и о профессиональных приложениях для обработки 3D графики, работающих под управлением Windows NT, многие из которых переносятся с высокопроизводительных рабочих станций, типа Silicon Graphics, на PC платформу. Интернет приложения сильно выиграют от невероятной маневренности, интуитивности и гибкости, которые обеспечивает применение трехмерного графического интерфейса. Взаимодействие в World Wide Web будет гораздо проще и удобнее, если будет происходить в трехмерном пространстве.

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

OpenGL – созданная первоначально для профессиональных графических станций и программ трехмерного моделирования, библиотека. Постепенно она пришла на платформу PC, в основном благодаря стремительному прогрессу в области аппаратного обеспечения. Наличие поддержки этой библиотеки у ускорителя крайне желательно, из-за большого числа программ,  ориентированных на нее. Библиотека является в некотором роде высокоуровневой, так как берет на себя все действия, начиная с середины 4-ой ступени нашего конвейера. С одной стороны - это здорово облегчает работу программистам, с другой - способно несколько осложнить ее же, особенно при реализации нестандартных эффектов или необходимости использовать новые возможности ускорителя выходящие за рамки OpenGL. Хороший пример полезности подобного подхода – возможность выпустить версию OpenGL значительно ускоряющую (конкретно – геометрические преобразования) работу программ на новых процессорах с SIMD наборами команд – AMD 3Dnow! и Intel SSE (Katmai New Instructions, MMX2). Очевидным достоинством, также, является переносимость программ на другие, не Wintel-платформы. Существенным, но быстро исправляемым, недостатком – отсутствие ее полного варианта для некоторых распространенных ускорителей.

Direct3D – библиотека, являющаяся частью Microsoft DirectX и поддерживаемая, сейчас, практически всеми ускорителями. Фактически, представляет собой две библиотеки – низкоуровневую (начиная с 7 стадии) и высокоуровневую (с 5-ой). Результат – большая гибкость для программиста в реализации его идей и, как следствие, головная боль для него же из-за множества связанных с конкретной реализацией ускорителя параметров. Сейчас идет бурное развитие этого продукта Microsoft, и, судя по всему, версия 6 Direct3D (которая уже официально вышла) будет вполне достойным конкурентом OpenGL по своим возможностям и скорости.

Glide – собственная низкоуровневая библиотека (стадия 7 конвейера и далее) фирмы 3Dfx, добившаяся популярности благодаря большому распространению первых, действительно успешных ускорителей (на базе набора чипов Voodoo). Но, скорее всего, эта библиотека уйдет со сцены в ближайшие несколько лет. Она не поддерживается другими ускорителями и не будет ими поддерживаться (без разрешения 3Dfx это является незаконным)

Рис.  . – Основные 3D библиотеки.

Существует около 10 библиотек низкого уровня, созданных разработчиками различных ускорителей, такие как R-Redline фирмы Rendition, S3D Toolkit фирмы S3 и т.д. Как и следовало ожидать, программы, написанные специально для них, постепенно исчезают.

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

  1.  Библиотека DirectX

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

DirectX представляет собой набор из нескольких API (application programming interface - интерфейс программирования приложений), позволяющих разработчикам игр и других интерактивных приложений получать доступ к специфическим функциям аппаратного обеспечения, без необходимости написания аппаратно-зависимого программного кода. DirectX основан на наборе интерфейсов COM или классов. COM расшифровывается, как Component Object Model (Компонентная Модель Объектов), и представляет собой спецификацию интерфейса, в котором функции вызываются через указатели. Таким образом, объекты COM могут описываться такими языками программирования, как C/C++, Delphi или даже Basic. Интерфейс COM используется не только в DirectX, но и на уровне операционной системы в качестве модели объектов и является сердцем одной из самой широко применяемой технологии - OLE (Objects Linking and Embedding - связывание и встраивание объектов).

Текущая версия DirectX включает в себя следующие API:

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

DirectSound - Как видно из названия, этот компонент обеспечивает аппаратнонезависимый интерфейс воспроизведения звука. DirectSound позволяет приложениям полностью использовать возможности аппаратных компонентов, обеспечивающих работу со звуком, например, микширование без временных задержек.

DirectInput - Обеспечивает аппаратнонезависимый ввод данных в систему в режиме реального времени. События, обрабатываемые DirectInput, формируются Клавиатурой, Мышкой и Джойстиком.

DirectPlay - Представляет собой независимый протокол для осуществления связи между компьютерами. Может применяться для многопользовательских игр, связь в которых осуществляется через Интернет, локальную сеть или прямое последовательное соединение с помощью кабеля. Интерфейс, именуемый DirectPlay Lobby, позволяет создавать онлайновые места встреч в интернет, попадая в которые, множество людей могут объединяться и совместно участвовать в играх.

Direct3D - Эта подсистема создания трехмерных графических изображений. Состоит из API низкого уровня, который обеспечивает несколько базовых возможностей создания изображения, и API высокого уровня, который осуществляет комплекс операций, образующих изображение.

  1.  Графические процессоры, аппаратная реализация графических функций

Рынок графических подсистем до появления понятия мультимедиа был относительно прост в развитии. Важной вехой в развитии был стандарт VGA (Video graphics Array), разработанный компанией IBM в 1987 году, благодаря чему производители видеоадаптеров получили возможность использовать более высокое разрешение (640х480) и большую глубину представления цвета на мониторе компьютера. С ростом популярности ОС Windows, появилась острая потребность в аппаратных ускорителях двумерной графики, чтобы разгрузить центральный процессор системы, вынужденный обрабатывать дополнительные события. Отвлечение CPU на обработку графики существенно влияет на общую производительность GUI (Graphical User Interface) - графического интерфейса пользователя, а так как ОС Windows и приложениям для нее требуется как можно больше ресурсов центрального процессора, обработка графики осуществлялась с более низким приоритетом, т.е. делалась очень медленно. Производители добавили в свои продукты функции обработки двумерной графики, такие, как прорисовка окон при открытии и свертывании, аппаратный курсор, постоянно видимый при перемещении указателя, закраска областей на экране при высокой частоте регенерации изображения. Итак, появился процессор, обеспечивающий ускорение VGA (Accelerated VGA - AVGA), также известный, как Windows или GUI ускоритель, который стал обязательным элементом в современных компьютерах.

Внедрение мультимедиа создало новые проблемы, вызванные добавлением таких компонентов, как звук и цифровое видео к набору двумерных графических функций. Сегодня легко заметить, что многие продукты AVGA поддерживают на аппаратном уровне обработку цифрового видео. Следовательно, если на Вашем мониторе видео проигрывается в окне, размером с почтовую марку - пора установить в Вашей машине мультимедиа ускоритель. Мультимедиа ускоритель (multimedia accelerator) обычно имеет встроенные аппаратные функции, позволяющие масштабировать видеоизображение по осям x и y, а также аппаратно преобразовывать цифровой сигнал в аналоговый, для вывода его на монитор в формате RGB. Некоторые мультимедиа акселераторы могут также иметь встроенные возможности декомпрессии цифрового видео.

  1.  3D акселерация

Итак, самый общий ускоритель состоит из геометрического процессора (Geometry Processor, пока практически всегда отсутствует), механизма установки (Setup engine, стадия 7 конвейера) и механизма отрисовки примитивов – закраски (Fill engine, стадии 8 и 9) который при детальном рассмотрении оказывается комбинацией двух блоков – обработки текстур (Texel engine) и обработки буфера кадра (Pixel engine).

Рис.  . – Структура 3D-ускорителя.

Производительность ускорителя зависит от процессора, производительности памяти, шины и самих обрабатывающий блоков. Как правило, приводятся два числа – максимальная пропускная способность (треугольников в секунду, triangle throughput) и максимальная производительность закраски (точек в секунду, fill rate). Такой подход возможен, но не очень корректен. Да и все мы знаем, что лучшим тестом является скорость игры, в которую мы любим играть (fps, кадров в секунду на каком-то стандартном наборе действий) и качество изображения (в цифрах не измерить). Именно эти параметры и необходимо узнать в первую очередь в Internet или, может быть у соседа в подъезде, но не стоит при этом забывать о сильной зависимости числа кадров от объема памяти и мощности процессора компьютера этого самого соседа.

Если не вдаваться в глубокие технические подробности, закраска происходит следующим образом: блок обработки буфера кадра определяет видна ли закрашиваемая точка, например с помощью буфера глубин (Z Buffer). Если она видна, блок обработки текстур вычисляет цвет текстуры соответствующий этой точке примитива. Здесь есть несколько важных моментов – интерполяция (filtering, сглаживание) и выбор уровня текстуры (mip-mapping). Первый обеспечивает изображение без резких прямоугольных пикселей, даже когда вы находитесь вблизи предмета и разрешение текстуры явно недостаточно. Второй устраняет искажения (странные узоры) возникающие при черезмерном удалении от текстуры, выбирая аналог текстуры с меньшим разрешением. Фактически, существует несколько режимов комбинирования этих двух методов. Сейчас наиболее распространены билинейная фильтрация (bilinear filtering - вначале определяется необходимая для этого расстояния текстура, а затем - значение цвета линейно интерполируется между четырьмя соседними точками текстуры, по каждой из координат на поверхности выбранной текстуры) и три-линейная (trilinear - две билинейных для двух текстур, с меньшим и большим разрешениями, затем результат интерполируется между ними). Последняя выглядит более приятно, но и требует больших затрат, так как не реализуется за один такт на современных ускорителях с одним блоком обработки текстур и, в результате, вдвое понижает скорость закраски. Сейчас появились первые ускорители с анизотропной (anisotropic - внутри куба, из двух наборов по 4 соседних точки текстур, и того по 8 точкам) фильтрацией, которая выглядит совсем хорошо, но и занимает еще вдвое больше времени. Затем вычисленный с помощью одного из вышеописанных методов цвет текстуры помещается в буфер кадра, заменяя находившееся там ранее значение, либо комбинируется с ним по какому-либо правилу (combination, blending, alpha-blending), как минимум, ускоритель должен поддерживать режимы Источник*Приемник (Src*Dest) и Источник+Приемник (Src+Dest). Подобные возможности позволяют реализовать цветное освещение, эффекты типа металла или отражения, реализовывать трилинейную фильтрацию там где она не поддерживается аппаратно и т.д. (Так называемое многопроходное построение изображения, multipass rendering).

Как правило, для каждой точки текстуры, кроме RGB цвета, можно задать степень ее прозрачности (alpha, RGBA формат текстуры), которая будет использоваться ускорителем для регулирования воздействия источника на приемник.

Важны также точность представления цветов, 16 бит – Hi-Color или 32 бита – True-Color (последний гораздо лучше) и точность буфера глубин (Z-Buffer, 16 бит хуже, 24 и 32 лучше) используемого для определения видимости отдельных точек примитива.

  1.  КОМПЬЮТЕРНАЯ АНИМАЦИЯ

Любое анимированное изображение – кинофильм, телепередача, компьютерная анимация – основано на дефекте человеческого зрения. В сетчатке глаза при попадании на нее световых волн происходят химические процессы, скорость которых относительно невелика – около 0,04с. События, протекающие быстрее, чем за 0,04с, человек просто не видит – попробуйте рассмотреть, как комар машет крыльями. В то же время инертность глаза позволяет при рассматривании ряда последовательно проецируемых положений объекта создать иллюзию плавного движения. Поэтому любая анимация состоит из ряда неподвижных изображений (кадров), сменяющих друг друга с большой частотой (обычно 24 или 25 кадров в секунду).

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

  1.   Принципы создания анимации

Как и любая другая графика, анимация делится на два вида: 2D и 3D. Основным инструментом для создания 2D анимации служит система Macromedia Flash (файлы с анимацией имеют расширение swf и часто встречаются на Web-страницах), а для 3D анимации – 3D Studio Max. Стандартный формат сохранения любой анимации в Windows называется avi.  Чтобы уменьшить размер, занимаемый avi-файлами, используются различные методы сжатия. В основном идея заключается в том, что целиком хранятся только опорные кадры (например, каждый двадцатый), а для промежуточных кадров запоминается лишь информация о разнице между текущим кадром и предыдущим. Различные форматы сжатия получили название кодеков. Для воспроизведения avi-файла на компьютере должен быть установлен соответствующий драйвер, также обычно называемый кодеком.

а) ключевой кадр №1

б) промежуточный кадр №20

в) ключевой кадр №40

Рис.  . – Создание анимации с ключевыми кадрами (3D Studio Max).

Процесс разработки анимации заключается в создании ряда ключевых кадров (keyframes). В этих кадрах задаются последовательные положения объектов, изменения их цвета, формы, освещенности и пр. Все промежуточные кадры рассчитываются автоматически. Если в ходе анимации меняется форма объекта, то такой процесс называется морфингом (morphing). На  показана сцена морфинга, в которой вручную были созданы кадры 1 и 40, а кадры с 2 по 39 автоматически рассчитывались системой 3D Studio Max. В результате получилась иллюзия плавного превращения сферы в сплющенную полусферу.

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

Рис.  . – Треки анимации (3D Studio Max)

Отдельные сцены, созданные при помощи 3D Studio Max и сохраненные в avi-файлы, монтируют в единый фильм. Видеомонтаж на компьютере чаще всего делается при помощи программы Adobe Premiere. Она позволяет отображать различные переходы между кадрами, синхронизировать звуковую дорожку, вставлять титры и т.д. Процесс монтажа окончательного компьютерного фильма называется "post production".

  1.  классификация и обзор современных графических систем

Эволюция графических стандартов естественно отражает процесс развития средств КГ - от векторной графики до систем виртуальной реальности.

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

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

Наиболее известными проектами по стандартизации базисных систем являются Core System, GKS, GKS-3D, PHIGS, PHIGS+. Основное направление развития этих проектов заключалось в усилении изобразительных возможностей для визуализации геометрических объектов (2D, 3D, удаление скрытых линий и граней, полутоновая закраска, текстурирование и пр.). Стандарт на базисную графическую систему включает в себя функциональное описание и спецификации графических функций для различных языков программирования.

Концепция виртуального устройства начала разрабатываться с момента появления аппаратно-независимых графических систем. Интерфейс виртуального устройства разделяет аппаратно-зависимую и аппаратно-независимую части графической системы. Он обеспечивает заменяемость графических устройств (терминальную независимость), а также возможность работы с несколькими устройствами одновременно. Интерфейс виртуального устройства может существовать в форме программного интерфейса и/или протокола взаимодействия двух частей графической системы. Наиболее четко концепция виртуального устройства представлена в проекте CGI.

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

Дальнейшее развитие растровых функций связано с появлением многооконных графических систем Х Window и MS Windows (а также NeWS и Display Postscript), обеспечивших удобные средства для манипулирования растровыми изображениями. Эти средства явились основой для развития систем обработки изображений и для организации эффективного многооконного пользовательского интерфейса с использованием меню, диалоговых панелей, полос просмотра и пр. Отметим, что традиционные средства вывода геометрических примитивов (линий, дуг, многоугольников) и текстов также имеются в этих системах.

Сегодня, наиболее развитые проекты РЕХ и OpenGL неплохо совмещают основные достижения как геометрического так и растрового направления.

  1.  Основные функциональные возможности современных графических систем

  1.  Графические системы класса 2D

GKS - стандарт ISO на базисную графическую систему. Впервые опубликован в 1982 году. Принят в качестве международного стандарта в 1985 году. Разработаны спецификации GKS для языков С, Fortran, Pascal, Ada. В соответствии или с учетом стандарта GKS разработано большое количество графических систем, например GKS-3D и PHIGS.

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

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

Поддерживается сегментация. Атрибуты сегментов - видимость, укайуемость, выделенность, приоритет, преобразование. Сегменты могут копироваться на рабочую станцию, удаляться, включаться в другие сегменты.

Растровые функции отсутствуют. Используемая цветовая модель - индексированная таблица RGB (Red-Green-Blue).

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

MGKS или MiniGKS - сокращенные варианты GKS без сегментации и с минимальным количеством функций опроса. Эти проекты прошли мимо внимания разработчиков стандартов но были поддержаны многими разработчиками конкретных графических систем.

GKS-N или New GKS, проект обсуждавшийся в ISO (1989 год) направлен на улучшение функциональных характеристик GKS. Заметно явное влияние проекта CGI. Последующих публикаций не было.

PostScript (Adobe Systems, 1985) - язык описания страниц для растровых печатающих устройств. Отличительная особенность - широкие изобразительные возможности при минимальном наборе графических функций. Множество графических систем и настольных издательских систем поддерживают PostScript. Некоторые производители лазерных принтеров обеспечивают его аппаратную поддержку. PostScript использован для выполнения графических функций в многооконных системах NeWS и Display PostScript. Привлекательные свойства этого языка способствовали появлению его трехмерных расширений.

Широкие изобразительные возможности языка PostScript обеспечены понятием траектории (path), которая может быть составлена из линий, дуг, сегментов кривой Безье и текстовых символов. В процессе вывода траектории могут подвергаться произвольным линейным преобразованиям. Замкнутые траектории могут быть закрашены, заполнены растровым образцом (pixmap) или заштрихованы другими траекториями. Заполнение может производится по различным правилам (even-осЫ, nonzero-winding-number). Линии могут быть различного типа, переменной толщины и иметь скругления в точках соединения. Работа с текстами происходит на основе богатой библиотеки шрифтов. Поддерживается несколько цветовых моделей - RGB, CMY (CyanMagenta- Yellow) и HSV (Hue-Saturation-Value).

CGI - проект стандарта (ISO, 1986) на интерфейс виртуального устройства. На стадии обсуждения этот проект фигурировал в публикациях под названием VDI. CGI ориентирован не на прикладных, а на системных программистов, занимающихся разработкой графических систем. Функциональные возможности CGI сформированы с учетом разработанных ранее проектов GKS и CGM (Computer Graphics Metafile). Заметно влияние проектов PostScript и Х Window System.

Функции вывода поддерживают работу с линиями, многоугольниками, прямоугольниками, маркерами, текстами, дугами, секторами и сегментами круга и эллипса, а также замкнутыми фигурами, составленными из этих примитивов. Замкнутые объекты могут закрашиваться, заштриховываться или заполняться растровым образцом. Набор атрибутов CGI аналогичен набору атрибутов GKS. Конвейер преобразования ограничен преобразованием рабочей станции.

Функции сегментации аналогичны имеющимся в GKS.

Растровые функции поддерживают работу с отображаемыми и виртуальными битовыми картами. Первые являются частью видеопамяти устройства. Вторые могут быть полноцветными или двухцветными матрицами пикселов в неотображаемой памяти. Двухцветные виртуальные битовые карты могут служить в качестве маски для операции заполнения областей, а также для задания символов, маркеров, курсоров и пр. Атрибутами карт являются прозрачность, основной и фоновый цвет. Введены различные режимы наложения цветов при выводе пикселов (and, or, xor, ...).

Функции ввода аналогичны имеющимся в GKS с некоторыми дополнениями. Введено понятие триггера, позволяющего установить режим срабатывания отдельных устройств в зависимости от некоторого события. Более четко, определены понятия подсказки, эха и подтверждения. Введены два новых логических устройства ввода - растровая область и обобщенное устройство ввода.

Х Window System - многооконная графическая система, разработанная в Массачусетском Технологическом институте. Первые публикации появились в 1986 году. Одна из основных целей разработки - обеспечение сетевой прозрачности и возможности использования широкого спектра цветных и монохромных графических станций.

Система разделена на две части, клиент и сервер, взаимодействующие с помощью Х-протокола. Прикладному программисту предоставлена библиотека базисных функций Х Lib и надстроенная над ней библиотека инструментальных средств Х Toolkit. Функции управления обеспечивают возможность манипулирования системой окон и контроля за действиями пользователя. Параметры графических функций включают в себя идентификаторы дисплея и окна, а также графический контекст, содержащий значения атрибутов и другие параметры отображения.

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

Структуризация или сегментация данных не поддерживается.

Растровые функции обеспечивают широкие возможности для манипулирования с битовыми и пиксельными матрицами (Bitmap, Pixmap). Кроме того, пиксельные матрицы могут использоваться в качестве образца заполнения, а битовые - в качестве маски отсечения. Используемая цветовая модель - RGB.

Функции ввода на базисном уровне обеспечивают развитый механизм обработки событий, от мыши и клавиатуры. Функции более высокого уровня (Х Toolkit и библиотека виджетов) обеспечивают работу с меню, диалоговыми панелями, полосами просмотра и пр.

Microsoft Windows - многооконная надстройка над операционной системой MS DOS на IBM РС. Версия Windows NT трансформировалась в полноценную операционную систему. Обеспечивает многозадачный режим. Графические функции системы аналогичны имеющимся в Х Window, однако в параметрах функций нет идентификатора дисплея. Поддерживается метафайл.

NeWs (Sun Microsystems, 1987) и Display Postscript (Adobe Systems,1990) - многооконные графическиесистемы, в основе которых лежит PostScript. Обладают эффективными графическими возможностями, унаследованными от языка PostScript. В системе NeWS появились 3D траектории.

  1.  Графические системы класса 3D

Core System - первый проект (ANSI) по стандартизации базисной графической сиетемы. Функциональное описание было опубликовано в 1977 году. На этот проект были замкнуты усилия многих разработчиков графических средств в течение последующих 5 лет. Построен на концепции рисующего элемента (2D и 3D) и обеспечивает работу только с линиями, маркерами и текстами. Для управлениями параметрами проектирования используется аналогия с камерой. Поддерживается сегментация. После появления стандартов GKS-3D и PHIGS проект Core System потерял свою актуальность.

GKS-3D - расширенный вариант GKS (ISO, 1987), позволяющий работать с трехмерными графическими объектами. В этот проект включены следующие дополнительные (по отношению к GKS) возможности:

Функции вывода дополнены семью 3D-примитивами - те же, что в GKS с приставкой 3D и набор заполняемых областей 3D. Для последнего примитива введены атрибуты контура, аналогичные атрибутам линий. Введен атрибут для управления алгоритмами удаления скрытых линий и граней. Введены 3D-преобразования 3D-нормализация, видовое преобразование, 3D-преобразование рабочей станции. Видовое преобразование позволяет производить параллельное и центральное проецирование.

Функции сегментации расширены возможностью работы с 3D-сегментами. Введено преобразование 3D-сегментов.

Функции ввода дополнены двумя логическими устройствами для ввода координат 3D и линий 3D.

XGKS, GEX - проекты объединения систем Х Window и GKS/GKS-3D. Обсуждались в литературе по стандартизации, но не получили дальнейшего развития.

PHIGS - альтернативный по отношению к GKS-3D стандарт (ANSI-1986, ISO-1989), обеспечивающий возможность интерактивных манипуляций с иерархически структурированными графическими объектами. Получил дальнейшее развитие в проектах PHIGS+ и РЕХ. Сравнительные с GKS-3D характеристики следующие:

Набор примитивов и атрибутов аналогичен имеющимся в GKS-3D. Поддерживается несколько цветовых моделей - RGB, CIE (Commission Internationale de l'Eclairage), HSV (Hue-Saturation-Value), HLS (Hue-Lightness-Saturation). Вместо 3D преобразования нормализации введено модельное преобразование.

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

PHIGS+(или PHIGS-PLUS) - проект расширения PHIGS (ISO/ANSI Draft 1990), направленный на обеспечение основных требований прикладных программ в области - освещения, полутоновой закраски и эффективного описания сложных поверхностей. Для этих целей в PHIGS+ включен следующий набор примитивов:

- набор полилиний с данными,

- кривая нерационального В-сплайна,

- кривая нерационального В-сплайна с данными,

- полигональная область с данными, набор полигональных областей с данными,

- набор треугольников с данными,

- полоса треугольников с данными, набор четырехугольных ячеек с данными,

- поверхность нерационального В-сплайна,

- поверхность нерационального В-сплайна с данными.

Примитивы, имеющие суффикс "с данными" позволяют включить дополнительную информацию, являющуюся частью определения примитива. Например, в случае набора треугольников для каждой грани и/или вершины можно задать комбинации цвета, нормаль и прикладные данные. Далее, существует механизм управления, позволяющий определить, какие данные следует использовать, а какие пропустить во время отображения. PHIGS+ различает переднюю и заднюю поверхности грани на основе геометрической нормали. Различные значения цвета и другие атрибуты могут быть определены для передней и задней граней. Для вычисления освещенности кроме геометрических характеристик задаются отражательные свойства поверхности, а также расположение источников цвета и их характеристики.

РЕХ (MIT Х Consortium) - проект расширения системы Х Window для поддержки PHIGS+. Первоначальная версия XPHIGS 1.0 - 1987 год, последняя версия PEX 6.0 - 1992 год. Одна из двух систем (другая - OpenGL), обеспечивающих наиболее развитые на сегодняшний день инструментальные средства для построения реалистичных изображений. Суть проекта РЕХ состоит в описании механизма расширения Х-протокола и Х-сервера для обеспечения функций PHIGS+, что, в первую очередь, предназначено для системных программистов. С точки зрения прикладного программиста функциональные возможности РЕХ в части изображения пространственных объектов соответствуют системе PHIGS+. Однако, начиная с версии 5.2 в РЕХ появились новые возможности, обеспечивающие устранение ступенчатости (antialiasing) и текстурирование поверхностей. Средства работы с растровыми изображениями поддерживаются с помощью Х Window и дополнительных расширений.

  1.  Принципы построения “открытых” графических систем

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

Информационное

общество

з

а

к

о

н

Информационное

пространство

о

д

а

т

е

ИНФОРМАЦИОННАЯ

ИНФРАСТРУКТУРА

л

ь

н

о

-

ресурсы

и

н

ф

о

р

информационные

вычислительные

м

а

т

и

в

н

телекоммуникации

технология

открытых

систем

а

я

б

а

з

а

Рис.  . - Cоотношение понятий: информационное общество, информационное пространство, информационная инфраструктура, технология открытых систем.

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

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

В ТОС службы машинной графики обеспечивают функции, необходимые для создания и манипулирования выводимыми на экран изображениями. К этим службам относятся определение выводимых на экран элементов и управление ими, определение атрибутов изображения. Эти службы определены в спецификациях по описаниям многомерных графических объектов и изображений в независимой от устройства форме.

  1.  Организация диалога в графических системах

Начало интерактивных вычислений и, следовательно, исследование человеко-машинного интерфейса принято отсчитывать с 1959 г., когда на конференции Юнеско по обработке информации Г. Стречи предложил режим разделения времени при решении задач на компьютерах.  По мере роста мощности компьютеров росли и затраты на диалоговую компоненту программного обеспечения. Вопрос эффективности использования машин обострился во время стремительного выхода на рынок рабочих станций, объединивших интерактивность с графикой. Термин эффективность с тех пор изменил свое значение - если раньше он отражал такие характеристики как процессорное время и объем занимаемой памяти, то теперь под ним понимают простоту разработки, легкость сопровождения и удобство работы с программой. Поэтому затраты на исследование и разработку пользовательского интерфейса являются оправданными. В настоящее время большие усилия прикладываются к разработке методов и созданию инструментальных средств в рамках систем, получивших название UIMS - User Interface Management System.

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

Все основные черты интерфейса с пользователем на современных рабочих станциях суть производные от работ по Xerox Park:

· управление окнами;

· использование графических символов ("икон") для представления объектов;

· стиль взаимодействия, называемый непосредственным манипулированием;

· популярность мыши как устройства позиционирования на экране;

· объектно-ориентированный стиль программирования.

С тех пор система классификации инструментария для создания и управления пользовательским интерфейсом рассматривается на трех уровнях:

· Системы управления окнами (WMS-Window Manager System);

· Специализированный инструментарий;

  - обычный (MacIntosh, SunView ј),

  - объектно-ориентированный (Smalltalk-80, Andrew, InterView).

· Системы управления пользовательским интерфейсом.

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

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

В научной литературе пока нет согласованного взгляда на термин UIMS - точное его значение само является объектом исследования. Одна из версий принадлежит Майерсу: "Система проектирования интерфейса пользователя есть интегрированный набор средств, помогающих программисту в создании и управлении различными интерфейсами пользователя. Эти системы обычно называют системами управления пользовательским интерфейсом (UIMS - User Interface Management Systems), но предпочтительнее называть их системами проектирования (UIDS - User Interface Development Systems), поскольку UIMS ассоциируется только с частью системы, работающей во время исполнения программы (но не с частью, используемой во время разработки), или с системами, включающими явные компоненты управления диалогом. UIDS обеспечивает как разработку, так и реализацию интерфейса и, таким образом, покрывает более широкий класс программ".

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

Структурная схема компонент UIMS/UIDS представлена на .

Рис.  . - Уровни в системах разработки пользовательского интерфейса

  1.  
    ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

  1.  
    СПИСОК ЛИТЕРАТУРЫ

Основная литература по курсу

1. Е.В. Шикин, А.В. Боресков, А.А. Зайцев Начала компьютерной графики. – М.: "ДИАЛОГ-МИФИ", 1993. – 138с.

2. Роджерс Д., Адамс Дж. Математические основы машинной графики: Пер. с англ. – М.: Мир, 2001 – 604с.  

3. Тихомиров Ю. Программирование трехмерной графики. – СПб.: BHV-Санкт-Петербург, 1998

Дополнительная литература

1. D. Hearn, M. Baker Computer Graphics, C Version. Prentice Hall, 1997.

2. Голованов Н.Н. Геометрическое моделирование. – М.: Издательство Физико-математической литературы, 2002. – 472с.

3. Ласло М. Вычислительная геометрия и компьютерная графика на С++. – М.: Бином, 1997

1 На рис.1,б представлена фотография лучших студентов спец. 220300 САПР ТулГУ (2003г.)


стилус

изменение координаты Y

способы

сжатия

красный

синий

зеленый

голубой

малиновый

желтый

цветовой круг

насыщенность

0

100

100

0

яркость

?

внешняя

оболочка

внутренняя

оболочка

поверхность

грань

нормаль

направляющая

образующая

ось

контур

1

2

3

эскиз 2

эскиз 3

кривая r(t)

полигон

граница

характерные линии

затравка

"остров"

граница

изменение координаты X

Социальные

Политические

экономические

аспекты

технические


 

А также другие работы, которые могут Вас заинтересовать

46465. Октябрьская революции 1917 года 16.57 KB
  Поэтому попытка анализа политической ситуации событий расстановки и действий политических сил времени революции факторов приведших к братоубийственной войне стала темой моей работы. Революция без контрреволюции не бывает и не может быть . Причем как можно более объективно чтобы получить по возможности наиболее полное представление о причинах вызвавших именно такой ход революции. Ход Октябрьской революции 1917 года К осени 1917 года политическое и социальноэкономическое обострение ситуации достигло своего пика.
46467. Выготский Л.С. Проблема речи и мышления в учении Ж. Пиаже 16.59 KB
  Пиаже Центральное звено позволяющее свести к единству все отдельные особенности детского мышления заключается с точки зрения основной теории Пиаже в эгоцентризме детского мышления. Пиаже определяет эгоцентрическую мысль как переходную промежуточную форму мышления располагающуюся с генетической функциональной и структурной точки зрения между артистической мыслью и направленным разумным мышлением. Корни эгоцентризма Пиаже видит в двух обстоятельствах. Пиаже избегает выражения бессознательное рассуждение считая его весьма скользким и...
46468. Система технического обслуживания и ремонта техники. Основные положения. Термины и определения 16.61 KB
  Система ППР предусматривает следующие основные положения: 1 ремонт оборудования выполняется через планируемые промежутки времени называемые межремонтными периодами; 2 после планового капитального ремонта характеристика оборудования приближается к паспортным данным нового оборудования; 3 в течение ремонтного цикла оборудование в строгой очередности проходит все плановые ремонты предусмотренные системой; 4 кроме плановых ремонтов выполняется техническое обслуживание оборудования; 5 чередование периодичность и объем...
46470. Базовые системные оппозиции языка: язык-речь, структура-функция, форма- содержание 16.67 KB
  Базовые системные оппозиции языка: языкречь структурафункция форма содержание. Они и являются базовыми системными оппозициями языка. Языкречь. Язык система знаков и грамматическая система обязательная для всех членов языкового коллектива.
46471. Анализ финансовой устойчивости предприятия 16.69 KB
  Стабильные сильные и устойчивые предприятия имеют больше преимуществ в борьбе со слабыми. Как произвести оценку финансовой устойчивости предприятия что означают те или иные показатели мы рассмотрим в данном материале. Залогом выживаемости и основой стабильности положения предприятия служит его устойчивость.
46472. Развитие и кодификация советского права в 1950-60-х гг. 16.7 KB
  были приняты Основы законодательства в области судоустройства уголовного процесса и уголовного права. принимаются Основы гражданского законодательства и Основы гражданского судопроизводства. Верховным Советом СССР были приняты новые Основы уголовного законодательства СССР и союзных республик. Основы состояли из 4 разделов и 47 статей.
46473. Концепция социальной ответственности 16.71 KB
  Концепция социальной ответственности основана на идее что компании могут достигнуть более высоких эффективности и качества благодаря повышению степени доверия к ним со стороны общества и его членов. В практике ведения бизнеса в своем социальном видении компании выделяют четыре основных аспекта социальной ответственности: 1. Поэтому частью миссии компании является обогащение жизни общества. Чтобы судить о степени приверженности бизнеса к КСО очень важна система измерителей позволяющих судить об эффективности и...