
- •«Медиа дизайн»
- •1. Преобразования в 2d пространстве.
- •Преобразование точки.
- •Преобразование фигуры.
- •Операция cмещения.
- •Пример:
- •Пример:
- •4. Перспективное проецирование.
- •Двухточечное проецирование по p, q.
- •Трёхточечное проецирование по p, q, r.
- •4. Стереографическая и специальные перспективные проекции.
- •Специальные перспективные проекции. Проекция на плоскость.
- •Проекция на сферу (рыбий глаз).
- •Проекция на цилиндрическую поверхность.
- •5. Масштабирование в окне. Масштабирование.
- •6. Нахождение параметров плоскости. Нахождение плоскости по точкам.
- •Метод определения плоскости по нормали.
- •Метод Ньюэла.
- •1. Организация ресурсов памяти в компьютерной графике.
- •Память.
- •Градация серого цвета.
- •Цветная электронно-лучевая трубка.
- •Современный дисплей. True Color.
- •2. Организация временных ресурсов в компьютерной графике. Вывод изображения.
- •Система черезстрочной развёртки.
- •Скоростной расчёт.
- •3. Аппаратные решения в компьютерной графике. Системные платы.
- •Примерная схема видеоадаптера.
- •Функции видеоадаптера:
- •Характеристики видеоконтроллера.
- •4. Физические принципы графических компьютерных устройств. Жидкокристаллический экран.
- •Плазменные дисплеи.
- •1. Аппроксимация непрерывного пространства в дискретной реализации. Отрисовка линий. Аппроксимация непрерывного пространства в дискретной реализации.
- •Алгоритм Брезенхема.
- •Улучшение алгоритма 1.
- •Для остальных октантов:
- •Улучшение алгоритма 2.
- •Алгоритм Флойда-Стейнберга.
- •2. Геометрическое сглаживание в-сплайнами. Алгоритм.
- •Следствия.
- •3. Построение реалистических изображений методами фрактальной геометрии. Необычные функции.
- •Чёртова лестница.
- •4. Понятие размерности пространства.
- •Объективные свойства пространства.
- •Фрактальная размерность.
- •Математический способ измерения размерности.
- •Размерность.
- •Психологический способ измерения размерности.
- •Соотношение Эйлера.
- •5. Топология фигур в пространстве. Топология.
- •6. Искривленность пространства.
- •7. Заполненность пространства или укладка.
- •Платоновы тела.
- •8. Психофизиологические аспекты восприятия пространства и воспроизведения его на плоскости. Иллюзии.
- •Как изобразить предметы на расстоянии вытянутой руки.
- •9. Методы удаления невидимых линий. Метод z-буфера.
- •Алгоритм, использующий z-буфер
- •Алгоритм плавающего горизонта.
- •Теперь полный алгоритм выглядит так:
- •Алгоритм плавающего горизонта.
- •Алгоритмы, использующие список приоритетов.
- •Алгоритм Ньюэла - Ньюэла - Санча для случая многоугольников
- •10. Психофизиологические аспекты восприятия цвета и света.
- •Свойства глаза.
- •11. Диффузное отражение.
- •12. Зеркальное отражение.
- •Свойства.
- •Модель освещения.
- •13. Аппроксимация света на модели Фонга.
- •Модель Фонга.
- •Общая модель закраски.
- •Закраска фигуры (Фонг) - завуалирование граней.
- •14. Модели цвета.
- •Системы смешения цветов.
- •Следствия.
- •Смешение цветов.
- •1. Системные требования Flash.
- •2. Системные требования Flash Player.
- •3. Инсталляция Flash.
- •4. Центр поддержки Flash и ресурсы Интернета.
- •5. Работа во Flash.
- •6. Рисование во Flash.
- •7. Анимация во Flash.
- •8. Интерактивные фильмы Flash.
- •9. Векторная и растровая графика.
- •10. Рабочая среда Flash.
- •11. Просмотр и тестирование фильма.
- •12. Тестирование фильма.
- •14. Использование панелей.
- •15. Использование контекстных меню.
- •16. Создание ярлыков и комментариев фильма.
- •17. Использование библиотеки.
- •18. Проводник фильма.
- •19. Просмотр Стола.
- •1. Инструменты рисования и закрашивания.
- •2. Перекрывание фигур во Flash.
- •3. Привязка.
- •4. Выбор настроек рисования.
- •1. Настройка атрибутов контура и заполнения.
- •2. Средства настроек контура и заполнения.
- •3. Определение цвета, стиля и толщины контура в панели Stroke.
- •4. Инструмент Paint Bucket.
- •5. Использование инструмента Ink Bottle.
- •6. Использование инструмента Eyedropper.
- •7. Блокировка градиента или растра как заполнения Стола.
- •8. Создание и редактирование основных цветов с помощью панели Mixer.
- •9. Изменение цветовых палитр.
- •10. Использование палитры, заданной по умолчанию и палитры Web-safe 216.
- •11. Сортировка палитры.
- •12. Импорт и экспорт цветовых палитр.
- •1. Импорт звука.
- •2. Озвучивание фильма.
- •3. Добавление звуков к кнопкам.
- •1. Выделение объектов.
- •2. Использование инструмента Arrow.
- •3. Изменение выделения.
- •4. Использование инструмента Lasso.
- •5. Выключение подсветки.
- •6. Группировка объектов.
- •7. Перемещение, копирование и удаление объектов.
- •8. Перемещение объектов.
- •9. Перемещение и копирование объектов вставкой.
- •10. Копирование объектов в буфер (Clipboard).
- •11. Копирование преобразованных объектов.
- •12. Удаление объектов.
- •13. Накапливание объектов в стек.
- •14. Изменение размеров объекта.
- •15. Вращение объектов.
- •16. Зеркальное отражение объектов.
- •17. Наклон объктов.
- •18. Восстановление преобразованных объектов.
- •19. Выравнивание объектов.
- •20. Перемещение точки регистрации.
- •21. Деление групп и объектов.
- •1. Создание слоев.
- •2. Просмотр слоев.
- •3. Редактирование слоев.
- •4. Служебные слои.
- •5. Слои-маски.
- •1. Создание ключевых кадров.
- •2. Слои в анимации.
- •3. Скорость воспроизведения.
- •4. Размножение неподвижных изображений.
- •5. Кадрированная анимация.
- •6. Использование хинтов фигуры.
- •7. Создание пошаговой анимации.
- •8. Редактирование анимации.
- •9. Калька.
- •10. Перемещение анимации.
Как изобразить предметы на расстоянии вытянутой руки.
Куб в обратной перспективе (близкая зона)
В аксонометрии (на расстоянии вытянутой руки)
Линейная перспектива (дальняя зона)
Мы видим очень тонким лучом 10o
а < b, следовательно, этот механизм называется обратной перспективой. Изобрели древние русские художники среди которых Рублёв.
9. Методы удаления невидимых линий. Метод z-буфера.
Это один из простейших алгоритмов удаления невидимых поверхностей. Идея z-буфера является простым обобщением идеи о буфере кадра. Буфер кадра используется для запоминания атрибутов (интенсивности) каждого пиксела в пространстве изображения, z-буфер — это отдельный буфер глубины, используемый для запоминания координаты z или глубины каждого видимого пиксела в пространстве изображения. В процессе работы глубина или значение z каждого нового пиксела, который нужно занести в буфер кадра, сравнивается с глубиной того пиксела, который уже занесен в z-буфер. Если это сравнение показывает, что новый пиксел расположен впереди пиксела, находящегося в буфере кадра, то новый пиксел заносится в этот буфер и, кроме того, производится корректировка z-буфера новым значением z. Если же сравнение дает противоположный результат, то никаких действий не производится. По сути, алгоритм является поиском по х и у наибольшего значения функции z (x, у).
Главное преимущество алгоритма - его простота. Кроме того, этот алгоритм решает задачу об удалении невидимых поверхностей и делает тривиальной визуализацию пересечений сложных поверхностей. Сцены могут быть любой сложности.
Основной недостаток алгоритма - большой объем требуемой памяти.
Заполнить буфер кадра фоном, а z-буфер памяти - числом zmin.
Преобразовать многогранник в растровую форму: ax + by + cz + d = 0 - плоскость. a). x1y1z1 x2y2z2 ... xnynzn
a =
(yi - yi+1)(zi + zi+1)
b =
(zi - zi+1)(xi+ xi+1)
c =
(xi- xi+1)(yi+ yi+1)
б). z = - (ax + by + d)/c Выражаем изменение плоскости вдоль одной из осей.
, где zн - новая; zc - старая.
Вычислить для каждой точки многоугольника (x,y) значение z(x,y) - глубины нахождения в прямоугольнике.
Сравнить полученное z с соответствующим z, полученным по координатам в буфере.
Если вычисленное z < zбуфера, то изображение помещаем в буфер кадра, а в буфере соответствующее значение z меняется на новое (zбуф = z).
Алгоритм, использующий z-буфер
Впервые он был предложен Кэтмулом. Работает этот алгоритм в пространстве изображения.
Главное преимущество алгоритма - его простота. Кроме того, этот алгоритм решает задачу об удалении невидимых поверхностей и делает тривиальной визуализацию пересечений сложных поверхностей. Сцены могут быть любой сложности. Поскольку габариты пространства изображения фиксированы, оценка вычислительной трудоемкости алгоритма не более чем линейна. Поскольку элементы сцены или картинки можно заносить в буфер кадра или в z-буфер в произвольном порядке, их не нужно предварительно сортировать по приоритету глубины. Поэтому экономится вычислительное время, затрачиваемое на сортировку по глубине.
Основной недостаток алгоритма - большой объем требуемой памяти. Если сцена подвергается видовому преобразованию и отсекается до фиксированного диапазона координат z значений, то можно использовать z-буфер с фиксированной точностью. Информацию о глубине нужно обрабатывать с большей точностью, чем координатную информацию на плоскости (x, у); обычно бывает достаточно 20 бит. Буфер кадра размером 512х512х24 бит в комбинации с г-буфером размером 512х512х20 бит требует почти 1.5 мегабайт памяти. Однако снижение цен на память делает экономически оправданным создание специализированных запоминающих устройств для z-буфера и связанной ним аппаратуры.
Альтернативой созданию специальной памяти для z -буфера является использование для этой цели оперативной памяти. Уменьшение требуемой памяти достигается разбиением пространства изображения на 4, 16 или больше квадратов или полос. В предельном варианте можно использовать z -буфер размером в одну строку развертки. Для последнего случая имеется интересный алгоритм построчного сканирования . Поскольку каждый элемент сцены обрабатывается много раз, то сегментирование z-буфера, вообще говоря, приводит к увеличению времени, необходимого для обработки сцены. Однако сортировка на плоскости, позволяющая не обрабатывать все многоугольники в каждом из квадратов или полос, может значительно сократить этот рост.
Другой недостаток алгоритма z-буфера состоит в трудоемкости и высокой стоимости устранения лестничного эффекта, а также реализации эффектов прозрачности и просвечивания. Поскольку алгоритм заносит пикселы в буфер кадра в произвольном порядке, то нелегко получить информацию, необходимую для методов устранения лестничного эффекта, основывающихся на предварительной фильтрации. При реализации эффектов прозрачности и просвечивания , пикселы могут заноситься в буфер кадра в некорректном порядке, что ведет к локальным ошибкам.
Хотя реализация методов устранения лестничного эффекта, основывающихся на префильтрации, в принципе возможна , практически это сделать трудно. Однако относительно легко реализуются методы постфильтрации (усреднение подпикселов). Напомним, что в методах устранения лестничного эффекта, основывающихся на постфильтрации, сцена вычисляется в таком пространстве изображения, разрешающая способность которого выше, чем разрешающая способность экрана.
Поэтому возможны два подхода к устранению летничного эффекта на основе постфильтрации.
В первом используется буфер кадра, заданный в пространстве изображения, разрешение которого выше, чем у экрана, и z-буфер, разрешение которого совпадает с разрешением экрана. Глубина изображения вычисляется только в центре той группы подпикселов, которая усредняется. Если для имитации расстояния от наблюдателя используется масштабирование интенсивности, то этот метод может оказаться неадекватным.
Во втором методе оба буфера, заданные в пространстве изображения, имеют повышенную разрешающую способность. При визуализации изображения как пикселная информация, так и глубина усредняются. В этом методе требуются очень большие объемы памяти. Например, изображение размером 512х512х24 бита, использующее z-буфер размером 20 бит на пиксел, разрешение которого повышено в 2 раза по осям х и y и на котором устранена ступенчатость методом равномерного усреднения , требует почти 6 мегабайт памяти.
Более формальное описание алгоритма z-буфера таково:
заполнить буфер кадра фоновым значением интенсивности или цвета.
заполнить z-буфер минимальным значением z;
преобразовать каждый многоугольник в растровую форму в произвольном порядке;
для каждого Пиксел(x, y) в многоугольнике вычислить его глубину z(x, у);
сравнить глубину z(x, у) со значением Z буфер( x, у), хранящимся в z -буфере в этой же позиции;
если z(х, у) > Z буфер (х, у), то записать атрибут этого многоугольника (интенсивность, цвет и т. п.) в буфер кадра и заменить Z буфер( х, у) на z ( х, у);
в противном случае никаких действий не производить;
в качестве предварительного шага там, где это целесообразно, применяется удаление нелицевых граней;
Если известно уравнение плоскости, несущей каждый многоугольник, то вычисление глубины каждого пиксела на сканирующей строке можно проделать пошаговым способом. Напомним, что уравнение плоскости имеет вид ах + by + cz+ d = 0 z = -(ax+by+d)/c 0
Для сканирующей строки у =
const. Поэтому глубина пиксела на этой
строке, у которого x1
= х +
х,
равна
z1
- z = -(ах1
+ d)/c+ (ах+ d)/с = a(x-x1)/c
или
z1
= z - (а /с)
x
Но
x
= 1, поэтому zi
= z - (а/с).
Дальнейшей иллюстрацией алгоритма послужит следующий пример.
Протыкающий треугольник
Пример. Алгоритм, использующий z-буфер.
Рассмотрим многоугольник, координаты угловых точек которого равны P1(10, 5, 10), P2(10, 25, 10), Р3(25, 25, 10), P4(25, 5, 10) и треугольник с вершинами P5(15, 15, 15), Р6(25, 25, 5), P7(30, 10, 5). Треугольник протыкает прямоугольник, как показано на рисунке. Эти многоугольники нужно изобразить на экране с разрешением 32х32, используя простой буфер кадра с двумя битовыми плоскостями. В этом буфере фон обозначен через 0, прямоугольник - через 1, а треугольник - через 2. Под z-буфер отводится 4 битовых плоскости размером 32х32 бит. Таким образом, содержимое z-буфера окажется в диапазоне от 0 до 16. Точка наблюдения расположена в бесконечности на положительной полуоси z, как показано на риунке, b.
Вначале и в буфере кадра, и в z-буфере содержатся нули. После растровой развертки прямоугольника содержимое буфера кадра будет иметь следующий вид:
(ФАЙЛ Z1)
Содержимое z-буфера таково:
(ФАЙЛ Z2)
Напомним, что в левом нижнем углу находится пиксел (0, 0).
Используя метол Ньюэла , получаем сравнение плоскости треугольника: 3x + y + 4z - 120 = 0
Значит, глубина треугольника в любой его точке задаётся уравнением z = -(3x + у - 120)/4
Для последовательных пикселов, лежащих на сканирующей строке z1 = z -3/4
Вычисление пересечений сторон треугольника со сканирующими строками развертки с учетом соглашения о половине интервала между соседними сканирующими строками дает следующие пары координат (25.2, 24.5), (25.5, 23.5), (25.8, 22.5), (26.2, 21.5), (26.5, 20.5), (26.8, 19.5), (27.2, 18.5), (27,5, 17.5), (27.8, 16.5), (28.2, 15.5), (28.5, 14.5), (28.8, 13.5), (29.2, 12.5), (29.5, 11.5), (29.8, 10.5) для строк от 24 до 10. Напомним, что активируется тот пиксел, у которого центр лежит внутри или на границе треугольника, т. е. при х1<=х<=х2.
Преобразование в растровую форму и сравнение глубины каждого пиксела со значением z-буфера дает новое состояние буфера кадра
(ФАЙЛ Z3)
После обработки треугольника состояние z-буфера таково:
(ФАЙЛ Z4)
Для примера рассмотрим пиксел (20, 15). Оценка z в центре этого пиксела дает z = -[(3), (20.5) + 15.5 - 120]/4 = 43/4 = 10.75
Сравнивая его со значением z-буфера в точке (20, 15) после обработки прямоугольника, видим, что треугольник здесь расположен перед прямоугольником. Поэтому значение буфера кадра в точке (20, 15) заменяется на 2. Поскольку в нашем примере z-буфер состоит лишь из 4 битовых плоскостей, он может содержать числа только в диапазоне от 0 до 15. Поэтому значение г округляется до ближайшего целого числа. В результате в ячейку (20, 15) z-буфера заносится число 11.
Линия пересечения треугольника с прямоугольником получается при подстановке z = 10 в уравнение плоскости, несушей треугольник. Результат таков: Зх + у - 80 = 0
Пересечения этой прямой с ребрами треугольника происходят в точках (20, 20) и (22.5, 12.5). Линия пересечения, на которой треугольник становится видимым, хорошо отражена в буфере кадра.
Алгоритм, использующий z-буфер, можно также применить для построения сечений поверхностей. Изменится только оператор сравнения:
z(x, у) > Zбуфер(х, у) and z(x, у) < Zсечения
где Zсечения - глубина искомого сечения. Эффект заключается в том, что остаются только такие элементы поверхности, которые лежат на самом сечении или позади него.