Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритмы удаления скрытых линий и поверхностей. 13Содержание книги
Поиск на нашем сайте С.Ф. Егоров
к выполнению лабораторных работпо дисциплинам «Инженерная и компьютерная графика 2» И «Компьютерная графика» Рекомендовано учебно-методическим советом ФГБОУ ВО по направлению 09.03.01 - Информатика и вычислительная техника по направлению 10.05.03 - Информационная безопасность автоматизированных систем Рег. номер 11/Ф06/ГОС2
Методические рекомендации по организации самостоятельной работы студентов составлены в соответствии с рабочей программой учебной дисциплины, разработанной на основе Федерального государственного образовательного стандарта по направлению: 09.03.01 - Информатика и вычислительная техника, профиль: вычислительные машины, комплексы, системы и сети, профиль: автоматизированные системы обработки информации и управления, профиль: системы автоматизированного проектирования и по направлению 10.05.03 - Информационная безопасность автоматизированных систем, специализация: защищенные автоматизированные системы управления при изучении дисциплин «Инженерная и компьютерная графика 2» и «Компьютерная графика».
Рецензент: Коробейников А. В., канд. техн. наук, зав. кафедры «Программное обеспечение» ИжГТУ имени М.Т. Калашникова
Составитель: Егоров С. Ф., канд. техн. наук, доцент кафедры «Вычислительная техника» ИжГТУ имени М.Т. Калашникова
Рекомендовано Ученым советом факультета для использования в учебном процессе в качестве учебно-методических материалов для студентов, обучающихся по направлению: 09.03.01 - Информатика и вычислительная техника, профиль: вычислительные машины, комплексы, системы и сети, профиль: автоматизированные системы обработки информации и управления, профиль: системы автоматизированного проектирования и по направлению 10.05.03 - Информационная безопасность автоматизированных систем, специализация: защищенные автоматизированные системы управления при изучении дисциплин «Инженерная и компьютерная графика 2» и «Компьютерная графика» (протокол №_ 19 _ от «_ 14 _» мая 2018 г.)
Рекомендовано Советом факультета «Информатика и вычислительная техника» к использованию в качестве учебно-методических материалов для использования в учебном процессе для направления 09.03.01 - Информатика и вычислительная техника (бакалавриат, профиль: вычислительные машины, комплексы, системы и сети) по дисциплине «Инженерная и компьютерная графика 2» (протокол № _ 8 _ от _ 22.11.2013г.)
Лабораторные работы по дисциплинам «Компьютерная графика» и «Инженерная и компьютерная графика 2» посвящены изучению преобразования координат и трехмерной графике персонального компьютера IBM PC и алгоритмов реалистичной анимации: удалении скрытых линий и окраски поверхностей в зависимости от освещения. Приводятся указания по оформлению и содержанию отчета, контрольные вопросы, пример программы.
© С. Ф. Егоров, составление, 2018 © ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова», 2018 Тема: Синтез реалистичного 3D-изображения. Цели работы: 1. Изучить геометрические основы машинной графики. Освоить способы задания трехмерных объектов, геометрические преобразования объектов (перенос, масштабирование, поворот). 2. Разработать трехмерную сцену, состоящую из двух объектов (сфера, куб, тетраэдр или др.). Задать траектории движения объектов и закрасить грани с использованием алгоритмов удаления невидимых поверхностей (лаб. раб. № 2). 3. Написать программу, которая в разработанной трехмерной сцене закрашивает видимые грани с учетом источника освещения (лаб. раб. № 3). Рекомендуемая литература: 1. Хныкина А.Г. Инженерная и компьютерная графика [Электронный ресурс]: учебное пособие / А.Г. Хныкина. — Электрон. текстовые данные. — Ставрополь: Северо-Кавказский федеральный университет, 2016. — 99 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/69383.html 2. Папуловская Н.В. Математические основы программирования трехмерной графики [Электронный ресурс]: учебно-методическое пособие / Н.В. Папуловская. — Электрон. текстовые данные. — Екатеринбург: Уральский федеральный университет, 2016. — 112 c. — 978-5-7996-1942-8. — Режим доступа: http://www.iprbookshop.ru/68345.html 3. Колесниченко Н. М. Инженерная и компьютерная графика [Электронный ресурс]: учебное пособие / Н. М. Колесниченко, Н. Н. Черняева. — Электрон. текстовые данные. — М.: Инфра-Инженерия, 2018. — 236 c. — 978-5-9729-0199-9. — Режим доступа: http://www.iprbookshop.ru/78267.html 4. Говорова С.В. Инженерная и компьютерная графика [Электронный ресурс]: лабораторный практикум / С.В. Говорова, И.А. Калмыков. — Электрон. текстовые данные. — Ставрополь: Северо-Кавказский федеральный университет, 2016. — 165 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/69382.html Оглавление 1. Преобразования, связанные с системой координат. 4 1.1. Двумерные матричные преобразования. 5 1.2. Однородные координаты и матричное представление двумерных преобразований. 7 1.3. Трехмерные матричные преобразования. 10 Модели освещения. 21 3.1. Зеркальное отражение света. 21 3.2. Диффузное отражение света. 22 Методы закраски. 24 4.1. Метод Гуро. 24 4.2. Метод Фонга. 25 4.3. Метод построчной закраски треугольника. 27 5. Контрольные вопросы.. 28 6. Выбор варианта задания для студентов. 28 Содержание общего отчета. 28 Пример программы на языке Delphi 29 Выводы: 36
Чтобы научиться управлять изображением на экране, вносить изменения в его положение, форму, ориентацию, размер, существуют специальные геометрические преобразования, которые позволяют изменять эти характеристики объектов в пространстве. Представим задачу создания компьютерного имитатора полетов на военном самолете. Объекты на земле, как и сам самолет, изменяют свое положение: вращается антенна локатора, движется танк. При этом наблюдатель видит эту картину из определенной точки в пространстве в выбранном направлении. Необходимо описать эти сложные преобразования математически. Введем три вида систем координат. Первая из них – мировая система координат – задается осями 1. Преобразовать координаты объекта, заданные в собственной (локальной) системе координат, в мировые координаты. 2. Преобразовать координаты объекта, заданные уже в мировой системе координат, в систему координат наблюдателя (совместить с проекционной плоскостью наблюдателя плоскость YoX мировой системы). 3. Спроецировать полученные координаты на проекционную плоскость в системе координат наблюдателя. Отметим определенную двойственность впечатлений, возникающих при взаимных перемещениях систем координат относительно друг друга. Представим себе, что мы наблюдаем кубик в пространстве. Пусть теперь этот кубик начнет вращаться вокруг, например, вертикальной оси. Мы увидим, что кубик вращается. Но тот же самый эффект мы получим, если сами начнем облетать вокруг кубика и рассматривать его с разных сторон. Визуальный эффект остается тем же самым, хотя в первом случае наша система координат остается неподвижной, а во втором – вращается по орбите. Этот эффект можно использовать при выводе формул движения в пространстве.
1.1. Двумерные матричные преобразования Рассмотрим преобразования координат точек на плоскости. На рис. 1 точка
Рис. 1. Операция переноса или трансляции точки
Математически этот перенос можно описать с помощью вектора переноса
Масштабированием объектов называется растяжение объектов вдоль соответствующих осей координат относительно начала координат. Эта операция применяется к каждой точке объекта. Масштабирование достигается умножением координат точек на некоторые константы. В том случае, когда эти константы равны между собой, масштабирование называется однородным. На рис. 2 приведен пример однородного масштабирования треугольника
Рис. 2. Операция масштабирования
После применения операции однородного масштабирования с коэффициентом 2 он переходит в треугольник
Рассмотрим далее операцию вращения (поворота) точки на некоторый угол относительно начала координат. На рис. 3 точка
Рис. 3. Операция поворота точки
Найдем преобразование координат точки А в точку В. Обозначим
Так как
В матричном виде вращение точки А на угол
1.2. Однородные координаты и Ранее были рассмотрены три вида преобразований точек на плоскости. Два из них – операции вращения и масштабирования ‑ описываются в виде произведения матрицы на вектор, а третья – операция переноса – описывается как сумма двух векторов. В случае последовательного выполнения любой комбинации операций вращения и масштабирования результат легко можно записать в виде произведения матриц соответствующих преобразований. Это будет матрица результирующего поворота и масштабирования. Очевидно, что удобнее применять результирующую матрицу вместо того, чтобы каждый раз заново вычислять произведение матриц. Однако таким способом нельзя получить эту результирующую матрицу преобразования, если среди последовательности преобразований присутствует хотя бы один перенос. Матричное произведение в компьютерной графике также называют композицией. Было бы удобнее иметь математический аппарат, позволяющий включать в композиции преобразований все три выше указанные операции. При этом получился бы значительный выигрыш в скорости вычислений. Однородные координаты и есть этот математический аппарат. Двумерный вектор В общем случае осуществляется переход от n -мерного пространства к Рассмотрим некоторые свойства однородных координат. Некоторые точки, не определенные в n-мерном пространстве, становятся вполне определенными при переходе к однородным координатам. Например, однородный вектор Рассмотрим точку трехмерного пространства
Рис. 4. Проекция точки Аналогично, рассматривая применение однородных координат для векторов трехмерного пространства, можно представить трехмерное пространство как проекцию четырехмерного пространства на гиперплоскость В однородных координатах преобразование центральной перспективы можно определить матричной операцией. Эта матрица записывается в виде
Эта матрица определяет преобразование точки объекта, заданной в однородных координатах, в точку перспективной проекции (также в однородных координатах). Пусть
Теперь точки двумерного пространства будут описываться трехэлементными векторами-строками, поэтому и матрицы преобразований, на которые будет умножаться вектор точки, будут иметь размеры 3´3. Запишем матричное преобразование операции переноса для однородных координат:
или При последовательном переносе точки
Запишем матричный вид операции масштабирования:
Определим матрицу масштабирования Так же, как последовательные переносы являются аддитивными, покажем, что последовательные масштабирования будут мультипликативными:
Для операции поворота матричный вид будет такой:
Определим матрицу поворота
Таким образом, доказано, что два, а значит, и любое количество последовательных поворотов можно записать в виде одной матрицы суммарного поворота. Также легко заметить, что любая последовательность операций, включающая в себя перенос, масштабирование и вращение в однородных координатах, может быть представлена одной матрицей, которая является произведением матриц данных операций. Таким образом, с помощью композиции матричных преобразований можно получить одно общее результирующее преобразование. Для этого будем использовать матрицы T, S и R. С вычислительной точки зрения гораздо проще и быстрее применять матрицу уже готового результирующего преобразования к точке вместо того, чтобы применять их последовательно одну за другой. Для примера рассмотрим задачу поворота объекта на плоскости относительно некоторой произвольной точки Вот эта последовательность элементарных преобразований (рис. 5): 1. Перенос, при котором точка 2. Поворот на заданный угол. 3. Перенос, при котором точка из начала координат возвращается в первоначальное положение
Рис. 5. Последовательность преобразований при повороте объекта
Точка
1.3. Трехмерные матричные преобразования Подобно тому как двумерные преобразования описываются матрицами размером Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси Заметим, что на практике удобнее применять левостороннюю систему координат, т. к. в этом случае удобнее интерпретировать тот факт, что точки с большими значениями Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю:
Операция масштабирования:
Перейдем к операции поворота, с ней в трехмерном случае придется разбираться побольше, чем в двумерном. Так как при двумерном повороте в плоскости Матрица поворота вокруг оси
и вокруг оси
Обратные преобразования (т.е. приводящие к противоположным действиям) будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:
для операции масштабирования – на обратные значения:
для поворота – выбором отрицательного угла поворота:
не забываем, что cos(-a)=cos(a), а sin(-a)=-sin(a). Результатом нескольких последовательных поворотов будет матрица
Здесь верхняя матрица размером После перемножения любого числа матриц вида
Здесь верхняя часть размером Алгоритм трассировки лучей
Общая идея: Есть источник, свет от источника падает на объект, поступает к наблюдателю (отразившийся от поверхности объекта). Однако не многие из лучей источника дойдут именно до наблюдателя. Сколько лучей надо учитывать?
Идея Аппеля: отслеживать (трассировать) луч в обратном направлении от наблюдателя к объекту через все точки растра. Упрощения: 1. Объект преобразован в с. к. изображения. 2. От центральной проекции переходим к параллельной (точка наблюдения стремится к бесконечности по z): - все лучи параллельны оси z; - каждый луч проходит через пиксель на экране до объекта.
Алгоритм Для каждого луча отслеживается, какие грани объекта имеют с ним пересечение, проверяется пересечение луча с каждой из граней, получается точка пересечения. Точки пересечения сортируются по глубине (по Z-координате). Точка пересечения с Zmin – видимая поверхность для данного пиксела. Атрибут этой точки грани и является характеристикой пиксела экрана.
1. Поиск точек пересечения с плоскостью грани. A = (y2 ‑ y1)×(z3 ‑ z1) ‑ (y3 ‑ y1)×(z2 ‑ z1); B = (z2 ‑ z1)×(x3 ‑ x1) ‑ (z3 ‑ z1)×(x2 ‑ x1); C = (x2 ‑ x1)×(y3 ‑ y1) ‑ (x3 ‑ x1)×(y2 ‑ y1);
А) Вводят оболочку, с которой можно легко найти пересечение (окружность, прямоугольник). Окружность: центр О(x, y), R проходит через P1, P2, P3. Прямоугольник: Xmin, Xmax, Ymin, Ymax. Б) Определяем пересечение с оболочкой. Окружность: рассчитываем расстояние S от центра окружности О(Xo, Yo) до точки Pп(Xп, Yп). Если S≤R, то пересечение с оболочкой есть.
при выполнении всех этих условия точка пересечения трассирующего луча с гранью находится в прямоугольной оболочке грани. В) Если есть пересечение с оболочкой, определим, лежит ли точка
В формуле присутствует знак модуля. Знак выражения, стоящего Точка D лежит внутри треугольника ABC только тогда, когда все 3 треугольника ABD, BCD и CAD (именно с таким порядком вершин!) имеют одинаковую пространственную ориентацию. Считаем выражения для площадей этих треугольников (без модулей) и сравниваем их знаки. Если в описании граней единичного выпуклого замкнутого объекта все вершины перечислены в порядке, например, против часовой стрелки, то для определения видимости грани необходимо вычислить ее текущую ориентацию в г. с. к., и если она не совпадает с описанной (т. е. не против часовой стрелки), то грань не выводится (метод ориентации грани: лицевая/нелицевая). Этот метод очень прост, но не учитывает экранирование грани другой гранью объекта, а только ее ориентацию «к наблюдателю»/«от наблюдателя». Достоинства метода трассировки лучей: 1. Включает в себя растровую развертку. 2. Легко можно учитывать модель освещения (включая прозрачность, фактуру и т. д.). 3. Слабо зависит от числа граней в изображении. Недостатки: 1. Медленный поиск точки пересечения луча с гранью. 2. Быстродействие зависит от разрешения экрана. Модели освещения
Наиболее простым для моделирования источником является рассеянный естественный свет, т. к. он обеспечивает постоянное освещение всех поверхностей независимо от их ориентации. К сожалению, такой свет дает весьма нечеткие изображения, поскольку нередки ситуации, когда освещение обеспечивается только естественным светом. При естественном освещении две смежные стороны куба должны быть закрашены одинаково, а их общее ребро должно быть неразличимо. Более сложным (с точки зрения моделирования), но зато более реальным источником света является точечный источник, при использовании которого освещенность поверхности зависит от ее ориентации: если лучи направлены перпендикулярно к поверхности, она освещена ярко. Чем меньше угол падения лучей, тем меньше освещенность. Такое изменение освещенности позволяет эффективно распознавать трехмерную структуру объекта.
Зеркальное отражение света
Поверхность считается идеально зеркальной, если на ней отсутствуют какие-либо неровности, шероховатости. Собственный цвет у такой поверхности не наблюдается. Световая энергия падающего луча отражается только по линии отраженного луча. Какое-либо рассеяние в стороны от этой линии отсутствует. В природе, вероятно, нет идеально гладких поверхностей, поэтому полагают, что если глубина шероховатостей существенно меньше длины волны излучения, то рассеивания не наблюдается. Для видимого спектра можно принять, что глубина шероховатостей поверхности зеркала должна быть существенно меньше 0,5 мкм. Если поверхность зеркала отполирована неидеально, то наблюдается зависимость интенсивности отраженного света от длины волны: чем больше длина волны, тем лучше отражение, так красные лучи отражаются сильнее, чем синие. При наличии шероховатостей имеется зависимость интенсивности отраженного света от угла падения. Отражение света максимально для углов q, близких к 90 °. Падающий луч, попадая на слегка шероховатую поверхность реального зеркала, порождает не один отраженный луч, а несколько лучей, рассеиваемых по различным направлениям. Зона рассеивания зависит от качества полировки и может быть описана некоторым законом распределения. Как правило, форма зоны рассеивания симметрична относительно линии идеального зеркально отраженного луча. К числу простейших, но достаточно часто используемых относится эмпирическая модель распределения Фонга, согласно которой интенсивность зеркально отраженного излучения пропорциональна (cos a)р, где a ‑ угол отклонения от линии идеально отраженного луча. Показатель р находится в диапазоне от 1 до 200 и зависит от качества полировки. Запишем это таким образом:
где I ‑ интенсивность излучения источника; КS ‑ коэффициент пропорциональности.
Диффузное отражение света
Этот вид отражения присущ матовым поверхностям. Матовой можно считать такую поверхность, размер шероховатостей которой уже настолько велик, что падающий луч рассеивается равномерно во все стороны. Такой тип отражения характерен, например, для гипса, песка, бумаги.
|
||||
|
Последнее изменение этой страницы: 2020-10-24; просмотров: 189; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.012 с.) |