Альфа-смешение: алгоритм выполнения - Курсовая работа

бесплатно 0
4.5 66
Понятие компьютерной графики. Реализация альфа-смешения. Демонстрация свойств прозрачных тел: отображение непрозрачного предмета сквозь прозрачный и сокрытие прозрачного предмета (или его части) за непрозрачным. Описание используемых алгоритмов.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Компьютерная графика - это область деятельности, в которой компьютеры используются в качестве инструмента создания изображений и обработки визуальной информации , полученной из реального мира. По способам задания изображений графику можно разделить на две основные категории: двумерная графика и трехмерная. Векторная графика представляет изображение как набор геометрических примитивов. Изображение может без потерь масштабироваться, поворачиваться, деформироваться и имитировать трехмерную графику. В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки: больший объем памяти, необходимый для работы с изображениями, потери при редактировании.Создаваемая сцена будет состоять из двух предметов: трехмерной модели граненого стакана и модель куба. Стакан будет исполнять роль прозрачного предмета, а куб - непрозрачного. Стакан состоит из 20 боковых граней и грани основания стакана, все грани должны быть прозрачными. Куб - стандартная геометрическая модель, имеющая 6 граней, выполненных в форме правильных прямоугольников, квадратов. В данном стакане предусмотрено 20 боковых граней, каждая грань строится по принципу соединения вершин в один полигон, например: одна из боковых граней имеет вершины 0, 20, 21, 1 (цикл: i, i 20, i 21, i 1).В предыдущем разделе для построения трехмерных объектов были заданы координаты вершин объектов в мировой системе координат. Необходимо получить из заданных координат видовые (и экранные для ортогональной проекции) координаты. Для видовых координат следует применить перспективные преобразования для придачи разрабатываемым объектам реалистичности. Конечно, можно собрать трехмерную модель без использования перспективного преобразования, но тогда возможен так называемый обман зрения, возникающий изза ракурса модели, но применив перспективные преобразования, данный эффект исчезнет. Экранные координаты вершин получим после того, как к видовым координатам применим перспективные преобразования, в данном случае и будем собирать наши модели.Так как в двумерном пространстве строится трехмерная модель, то изза этого возникает эффект перекрытия граней, то есть грани отрисовываются в одном и том же месте. Для этого воспользуемся алгоритмом Ньюла-Ньюэла-Санча, иначе называющимся алгоритм художника. Идея алгоритма художника, состоит в том, что, используя упорядоченность граней по глубине, выводится с закраской грани, начиная с дальних граней. При этом грани, которые выводятся позже, закрывают собою невидимые части более дальних граней. Метод состоит из трех основных шагов: 1. упорядочение всех полигонов в соответствии с их наибольшими z-координатами;Для сокращения числа полигонов можно вычислить для каждой грани вектор нормали, и по его значению определить грани, которые будут видны. Идея алгоритма состоит в том, что по углу между направлением взгляда и нормалью к поверхности можно определить расположение граней, лицевая она или же нет. Нормаль к поверхности находится с помощью трех точек, так как через любые три точки можно провести плоскость. Координаты вектора нормали следующие: N (Nx, Ny, Nz). В результате получим следующую систему уравнений: Преобразуем данную систему в матрицу размером 4Х4.Так как расчет нормалей в нашей сцене мы уже реализовали, то добавить освещение к нашим объектам уже не составит больших проблем. Цвет и настройки прозрачности у объектов разные, но система цветов одна, поэтому зададим предварительно значения альфа-канала для граней куба полностью непрозрачными - 255, а для граней стакана значения определим следующие: 80 для боковых граней, и 100 для основания стакана.Тип данных Предназначение int Используются для целочисленных вычислений double Используются для точных вычислений bool Используется для логических преобразований и операций int [] Используется в качестве массивов, хранящих целые значения (номера полигонов, вершин) double [] Используется в качестве массивов, хранящих вещественные числа, например массив, хранящий средние значения координаты ZПеременная Тип данных Функция b Класс Bitmap Используется для работы с изображениями, определяемыми данными пикселей g Класс Graphics Инкапсулирует поверхность рисования image Класс Image Позволяет загрузить фоновое изображение для компонентов программы Vertex Point3D [] Определяет структуру координат вершин Order int [] Массив, задающий порядок отображения граней, порядковые номера полигонов D double [] Массив, хранящий среднее значение по координате Z плоскостиРассмотрим основные функции и процедуры. Главная процедура, в которой происходит преобразование координат, создание полигонов, вычисление средних значений координаты Z, закрашивание поверхностей и создание модели освещения. Сортирует грани по глубине и заполняет массив упорядоченных граней для отображения. Вычисляет нормаль к поверхности и заполняет массив с координатой Z этой нормали.Процедура "ПОКАЗАТЬСЦЕНУ" вызывается каждый раз при изменении изображения сцены, данная процедура содержит в своем теле основную проц

План
Оглавление

Введение

1. Постановка задачи

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

2.1 Преобразование координат

2.2 Алгоритм удаления невидимых граней

2.3 Определение лицевых и не лицевых граней с помощью вектора нормали

2.4 Закраска трехмерного объекта с использованием простой модели освещения

3. Описание программы

3.1 Введенные типы данных и их предназначение

3.2 Основные переменные и их предназначение

3.3 Описание основных процедур и функций

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

4. Тестирование программы

4.1 Описание интерфейса

4.2 Руководство по использованию программы

4.3 Результат

Заключение

Список использованных источников

Приложения

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

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

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

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

Трехмерная графика оперирует с объектами в трехмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию . В трехмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном . В качестве полигона обычно выбирают треугольники. Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу (поворота/сдвига/масштабирования), мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект. В данной работе предстоит создать трехмерную сцену посредством Microsoft Visual Studio, а конкретнее с помощью программирования на языке высокого уровня C#. альфа смешение алгоритм графика

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?