
- •4. 3. Архитектура видеоадаптеров ega и vga
- •Монитор
- •Видеопамять
- •Текстовый режим
- •Знакогенератор
- •Атрибуты символов
- •Атрибуты символов (монохромный режим)
- •Видеопамять в графических режимах
- •Режимы 4 и 5
- •Режим 6
- •Режимы 0Dh и 0Eh
- •Режим 0Fh
- •Режим 10h
- •Режим 11h
- •Режим 12h
- •Режим 13h
- •5. 7. Видеоадаптеры svga
- •Видеопамять svga
- •Слоеный пирог
- •Увидеть весь мир через замочную скважину
- •Больше цветов больше бит
- •Стандарт vesa
- •6. 11.1. Введение
- •11.2. Преобразование отрезков из векторной формы в растровую
- •Простейший пошаговый алгоритм
- •Алгоритм Брезенхэма для отрезков прямых
- •11.3. Растровая развертка литер
- •Пропорциональное размещение литер. Нижние выносные элементы
- •17,18 Введение в модели закрашивания
- •Геометрические составляющие для нахождения отраженного света.
- •Вычисление диффузионной составляющей
- •Зеркальное отражение
- •Фоновые источники и фоновые отражения
- •Комбинирование компонентов освещения
- •Добавление цвета
- •[Править] Описание алгоритма
- •0.6.1 Двумерный алгоритм Коэна-Сазерленда
- •[Править] Достоинства
- •[Править] Недостатки
- •О трассировке лучей
- •Матрицы и вектора
- •Обратная трассировка лучей Определение цвета точки. Текстурные карты и свойства материалов
- •16 15. Цвет в компьютерной графике
- •Перспективная проекция
- •10 Лекции по компьютерной графике
- •3.1. Координаты и преобразования
- •3.3. Преобразование в однородную систему координат
- •Поворот вокруг фиксированной точки
- •[Править] Отличия от ega
- •[Править] Текстовые режимы
- •[Править] Графические режимы
- •[Править] Стандартные графические режимы
- •[Править] Нестандартные графические режимы (X-режимы)
11.3. Растровая развертка литер
В гл. 3 рассмотрен общий метод изображения литер, основанный на матрице точек. Тот же метод используется и при построении растровых изображений: точечное представление литеры помещается в заданную позицию буфера регенерации. Наименьшей сеткой, с помощью которой можно описывать литеры с приемлемым качеством, является сетка 5 х 7; для представления прописных и строчных литер необходима матрица размером 5 x 9. Для символов более высокого качества требуется еще большая матрица.
Пропорциональное размещение литер. Нижние выносные элементы
Можно очень легко построить растровый генератор литер, обеспечивающий две возможности обычной типографской печати, которые отсутствуют во многих дисплейных системах: пропорциональное размещение литер и нижние выносные элементы букв. Пропорциональное размещение — это изменение интервалов между центрами литер с учетом различия в их размерах по ширине, например между i и w. В случае пропорционального размещения не все литеры будут занимать одно и то же число растровых единиц по горизонтали. Нижние выносные элементы {части литер, опущенные ниже базовой линии, как в строчных буквах g, j, p, q и у) изображаются путем сдвига описывающих их матриц вниз по отношению к другим литерам (рис. 11.8).
Связанный с каждой литерой код представляет собой матрицу, которая состоит из разрядов, описывающих литеру. Значение true каждого разряда в матрице свидетельствует о том, что пэл с соответствующими координатами внутри матрицы является частью литеры и поэтому окрашивается в цвет, отличающийся от фона. Пропорциональное размещение литер и их нижние выносные элементы реализуются путем связывания с каждой точечной матрицей, определяющей литеру, ее ширины, а также булевой переменной, истинность которой означает, что литера имеет нижний выносной элемент. Следующая программа на Паскале показывает, как можно задавать и изображать литеры:
17,18 Введение в модели закрашивания
Механизм отражения света от текущей поверхности очень сложен и зависит от многих факторов. В модели закрашивания, часто используемой в графике, предполагается, что объекты сцены освещаются двумя типами источников: точечными источниками света и фоновым светом (ambient ligt ). Эти источники света <<сверкают>> на различных поверхностях объектов, и падающий свет взаимодействует с поверхностью одним из трех возможных способов:
-- некоторая часть поглощается поверхностью и превращается в тепло;
--некоторая часть отражается от поверхности;
--некоторая часть проходит внутрь объекта, как в случае куска стекла.
Если весь падающий свет поглощается, то данный объект воспринимается как черный, поэтому его называют абсолютно черным телом (blackbody). Если весь свет проходит сквозь объект, то он виден только в результате эффекта рефракции, который мы будем рассматривать в главе 14.
Здесь мы сосредоточимся на той составляющей света, которая отражается от поверхности или рассеивается ею. Некоторая часть этого отраженного света движется как раз в таком направлении, чтобы достигнуть глаза, вследствие чего объект становится виден. Количество света, падающее в глаз, прежде всего определяется геометрией окружения. Мы будем различать два типа отражения падающего света:
-- диффузное рассеяние (diffuse scattering) происходит, когда часть падающего света слегка проникает внутрь поверхности и излучается обратно равномерно по всем направлениям. Рассеянный свет сильно взаимодействует с поверхностью, поэтому его цвет обычно зависит от природы материала, из которого сделана эта поверхность;
--зеркальные отражения (specular reflections) больше похожи на зеркало и имеют ярко выраженную направленность: падающий свет не поглощается объектом, а отражается прямо от его наружной поверхности. Это порождает блики, и поверхность выглядит блестящей. В простейшей модели зеркального света отраженный свет имеет такой же цвет, что и падающий свет, что материал похожим на пластмассу. В более сложной модели цвет отраженного света пробегает интервал бликов, что дает лучшее приближение металлических поверхностей. Мы рассмотрим обе модели зеркального отражения.
Большинство поверхностей сочетают в себе оба типа отражения; это зависит от характеристик самих поверхностей, таких как шероховатость и тип материала, из которого сделаны эти поверхности. Считается, что суммарное количество света, отраженного от поверхности в определенном направлении, складывается из диффузного и зеркального компонентов. Для каждой интересующей нас точки поверхности вычисляется величина каждого компонента, достигающего глаза. Эта задача решается при помощи алгоритмов, рассматриваемых ниже.