Файл: Лекции Компьютерная графика.pdf

Добавлен: 29.10.2018

Просмотров: 6927

Скачиваний: 24

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Не поддерживается:

• Internet Explorer

и др. на движке Microsoft Trident (например, Avant Browser,

GreenBrowser

);

• Konqueror

;

браузерами на основе Blink (например, Maxthon 3, Яндекс.Браузер, Vivaldi, Google
Chrome

и Chromium) (до версии 59);

в связи с переходом на браузерный движок WebKit/Blink с Gecko поддержка
APNG

прекращена в браузерах Flock (с версии 3.0 и выше) и Epiphany (с версии

2.28 и выше), Opera Blink (с 15.0).

Браузеры на основе старых версий WebKit (Konqueror, Rekonq, Midori).

WebP

(web picture,

.webp) — формат графических файлов, обеспечивающий

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

компанией Google Inc. в 2010 г. Основан на алгоритме сжатия неподвижных изоб-

ражений (ключевых кадров) из видеокодека VP8, использует контейнер RIFF

(подробнее о сжатии см. на стр.

19

).

Изображения в формате WebP, сжатые без потери качества, имеют размер на

28% меньший, чем PNG. Изображения в формате WebP с потерей качества имеют

размер на 25–34% меньший, чем JPEG при равных значениях параметров. WebP

также поддерживает прозрачность (альфа-канал).

Форматы WebP и WebM (web movie) продвигаются в качестве веб-стандартов

компанией Google в рамках инициативы по уменьшению мирового интернет-трафика

и улучшению качества интернет-технологий. WebP и WebM основаны на кодеке
VP8

, разработанном компанией On2 Technologies, впоследствии купленной компа-

нией Google.

В настоящее время просмотр изображений в формате WebP поддерживается бра-

узерами Google Chrome (начиная с 9 версии) и Opera (начиная с версии 11.10).

Android

поддерживает чтение и запись WebP изображений, начиная с версии 4.0.

С помощью специальной

JavaScript

-библиотеки возможно отображение в браузерах,

поддерживающих видео в формате WebM , в частности в Firefox 4.0 и более новых.

Существует также порт библиотеки libwebp под названием libwebpjs/libwebpas на

JavaScript

и

ActionScript

, позволяющий использовать WebP во всех популярных бра-

узерах (поддержка IE6+ осуществляется с помощью дополнительного модуля Adobe
Flash

).

MIFF

(Magick Image File Format,

.miff, .mif) — платформенно независимый

формат растровых изображений, используемый программой отображения и анализа

географических данных MapInfo. MIFF состоит из текстового заголовка файла и би-

нарной части с растром. Хранит визуализацию карты в текстовом формате, который

может распознаваться сторонними приложениями. Используется в качестве форма-

та обмена между приложениями геоинформационных систем. В файле содержатся

графические данные (объекты), а также может содержаться описание таблицы дан-

ных, содержащей атрибутивную информацию, связанную с объектами.

30


background image

PAM

(NetPBM,

.pam) — формат растровых изображений в виде 2-мерной це-

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

для BW палитры используются расширения

.pbm, “Grayscale” — .pgm, RGB — .ppm,

абстрактный формат для этих расширений —

.pnm.

DjVu

(d´ej`a vu — «уже виденное»,

.djvu, .djv) — технология сжатия изобра-

жений с потерями, разработанная специально для хранения сканированных доку-

ментов — книг, журналов, рукописей и прочее, где обилие формул, схем, рисунков

и рукописных символов делает чрезвычайно трудоёмким их полноценное распозна-

вание. Также является эффективным решением, если необходимо передать все ню-

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

не только содержание, но и цвет и фактура бумаги; дефекты пергамента: трещинки,

следы от складывания; исправления, кляксы, отпечатки пальцев; следы, оставлен-

ные другими предметами.

DjVu

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

ство книг в этом формате доступно в файлообменных сетях. Формат оптимизиро-

ван для передачи по сети таким образом, что страницу можно просматривать ещё

до завершения скачивания. DjVu-файл может содержать текстовый (OCR) слой,

что позволяет осуществлять полнотекстовый поиск по файлу. Кроме того, DjVu-

файл может содержать встроенное интерактивное оглавление и активные ссылки,

что позволяет реализовывать удобную навигацию в DjVu-книгах.

Для сжатия цветных изображений в DjVu применяется специальная техноло-

гия, разделяющая исходное изображение на три слоя: передний план, задний план и

чёрно-белую (однобитовую) маску. Маска сохраняется с разрешением исходного фай-

ла; именно она содержит изображение текста и прочие чёткие детали. Разрешение

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

для экономии места. Передний план содержит цветовую информацию о деталях, не

попавших в задний план; его разрешение понижается ещё сильнее. Затем задний

и передний планы сжимаются с помощью вейвлет-преобразования, а маска —

алгоритмом JB2.

Особенностью алгоритма JB2 является то, что он ищет на странице повторяю-

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

документах каждые несколько подряд идущих страниц пользуются общим «слова-

рём» изображений.

Для сжатия большинства книг можно обойтись только двумя цветами. В этом

случае используется всего один слой, что позволяет достичь рекордной степени сжа-

тия. В типичной книге с чёрно-белыми иллюстрациями, отсканированной с разреше-

нием 600 dpi, средний размер страницы составляет около 15 Кб, т. е. приблизительно

в 100 раз меньше, чем исходный файл.

DjVu

используется сжатие данных с потерями. Для особо важных докумен-

тов, возможно, будет разумнее использовать более «надёжные» форматы: PNG,
JPEG 2000

, TIFF и т. п. В общей сложности выигрыш объёма в этом случае

составляет 4–10 раз.

В основе формата DjVu лежат несколько технологий, разработанных в AT&T.

Это:

алгоритм отделения текста от фона на отсканированном изображении;

31


background image

• вейвлетный

алгоритм сжатия фона IW44;

алгоритм сжатия чёрно-белых изображений JB2 ;

универсальный алгоритм сжатия ZP;

алгоритм распаковки «по запросу»;

алгоритм «маскировки» изображений.

6.

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

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

оперирует с объектами в трёхмерном пространстве.

Обычно результаты 3D-графики представляют собой плоскую картинку, проек-

цию.

Любое изображение на мониторе, в силу его плоскости, становится растровым,

так как монитор — это матрица, он состоит из столбцов и строк. Трёхмерная графика

существует лишь в нашем воображении, так как то, что мы видим на мониторе — это

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

визуализация графики бывает только растровая и векторная, а способ визуализации

— это только растр (набор пикселей), а от количества этих пикселей зависит способ

задания изображения.

Трёхмерная компьютерная графика

широко используется в кино, компью-

терных играх.

В трёхмерной компьютерной графике все объекты обычно представляются как

набор поверхностей или частиц.

Минимальную поверхность называют полигоном.

В качестве полигона обычно выбирают треугольники.

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

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

поворота;

сдвига;

масштабирования.

Любой полигон можно представить в виде набора из координат его вершин. Так,

у треугольника будет 3 вершины. Координаты каждой вершины представляют со-

бой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим

новый вектор. Сделав такое преобразование со всеми вершинами полигона, полу-

чим новый полигон, а преобразовав все полигоны, получим новый объект, повёрну-

тый/сдвинутый/масштабированный относительно исходного.

32


background image

6.1. Рендеринг

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

рендеринга

.

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

Здесь модель — это описание любых объектов или явлений на строго опреде-

лённом языке или в виде структуры данных. Такое описание может содержать гео-

метрические данные, положение точки наблюдателя, информацию об освещении,

напряжённость физического поля, степени наличия какого-то вещества и пр.

Обычно в компьютерной графике (художественной и технической) под ренде-

рингом

понимают создание плоского изображения (картинки) по разработанной

3D-сцене. Синонимом в данном контексте является визуализация.

Существуют встроенные и отдельные программные продукты, выполняющие

рендеринг

. Обычно программные пакеты трёхмерного моделирования и анимации

включают в себя также и функцию рендеринга.

В зависимости от цели различают пре-рендеринг как достаточно медленный

процесс визуализации, применяющийся в основном при создании видео, и ренде-
ринг в реальном режиме

(времени), применяемый в компьютерных играх. По-

следний часто использует 3D-ускорители.

Компьютерная программа, производящая рендеринг, называется рен-
дером (render), рендерером (renderer) или визуализатором.

6.2. Методы визуализации

На текущий момент разработано множество алгоритмов визуализации. Суще-

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

получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо

долгое время. Даже трассирование малого количества лучей, достаточного, чтобы

получить изображение, занимает чрезмерно много времени, если не применяется

аппроксимация (сэмплирование).

Вследствие этого было разработано четыре группы методов, более эффективных,

чем моделирование всех лучей света, освещающих сцену.

1. Растеризация (rasterization)

и метод сканирования строк (scanline rendering).

Визуализация производится проецированием объектов сцены на экран без рас-

смотрения эффекта перспективы относительно наблюдателя.

2. Ray casting.

Сцена рассматривается как наблюдаемая из определённой точки.

Из точки наблюдения на объекты сцены направляются лучи, с помощью кото-

рых определяется цвет пикселя на двумерном экране. При этом лучи прекра-

щают своё распространение (в отличие от метода обратного трассирования),

33


background image

когда достигают любого объекта сцены либо её фона. Возможно используют-

ся какие-то очень простые техники добавления оптических эффектов. Эффект

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

запускаются под углом, зависящим от положения пикселя на экране и макси-

мального угла обзора камеры.

3. Глобальное освещение (global illumination, radiosity).

Использует математику

конечных элементов, чтобы симулировать диффузное распространение света

от поверхностей и при этом достигать эффектов «мягкости» освещения.

4. Трассировка лучей (ray tracing).

Из точки наблюдения на объекты сцены на-

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

ном экране. Но при этом луч не прекращает своё распространение, а разделя-

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

пикселя на двумерном экране: отражённый, теневой и преломлённый. Коли-

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

и влияет на качество и фотореалистичность изображения. Благодаря своим

концептуальным особенностям метод позволяет получить фотореалистичные

изображения, но при этом он очень ресурсоёмкий, и процесс визуализации за-

нимает значительные периоды времени.

6.3. Шейдеры

Шейдер (shader) — это программа для определения окончательных па-
раметров объекта или изображения.

Она может включать в себя произвольной сложности описание поглощения и рас-

сеяния света, наложения текстуры, отражение и преломление, затенение, смещение

поверхности и эффекты пост-обработки.

Программируемые шейдеры обладают высокой эффективностью и гибкостью.

Сложные с виду поверхности могут быть визуализированы при помощи простых гео-

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

поверхности из трёхмерной керамической плитки на абсолютно плоской поверхно-

сти.

В программных графических движках вся цепочка рендеринга — от опреде-

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

игры. В эту цепочку можно было включать собственные нестандартные видеоэф-

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

набором эффектов, который заложен в аппаратное обеспечение.

Вот два примера. Попробуйте нырнуть под воду в Quake 2 на программном и на

OpenGL

-рендеринге. При всём качестве аппаратно ускоренной картинки, вода там

— просто синий светофильтр, в то время как в программном есть эффект плеска во-

ды. В Counter-Strike эффект ослепления от светошумовой гранаты на аппаратном

34