Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Время выполнения Алгоритма Художника

Листинг 5.10. Программа чтения файла формата PCX. | Листинг 5.12. Функция извлечения спрайта из загруженного PCXфайла. | Листинг 5.13. Функция рисования спрайта. | Листинг 5.14. Сохранение фона под спрайтом. | Листинг 5.15. Отображение символа. | Листинг 5.16. Tombstone (TOMB.С). | ТРЕТЬЕ ИЗМЕРЕНИЕ | Листинг 6.1. Определение точки и линии в трехмерном пространстве. | Листинг 6.2. Определение трехмерного многоугольника. | Листинг 6.3. Описание трехмерного объекта на основе многоугольников. |


Читайте также:
  1. II. ОРГАНИЗАЦИЯ ВЫПОЛНЕНИЯ И НАУЧНОЕ РУКОВОДСТВО выпускной квалификационной (дипломной) РАБОТОЙ
  2. III.ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ
  3. IV). Фотосъёмки 13 сентября 1944, полученные во время полёта 464 BG: 4M97
  4. NB! — Время отвлечения для ребенка моложе 12 лет должно быть равно не менее чем половине времени сосредоточения.
  5. V. Время
  6. V. Порядок выполнения работ.
  7. V. Порядок выполнения работ.

Алгоритм художника хорошо, но, к сожалению, медленно работает. В худшем случае, количество операций примерно равно O(n2), где n - количество многоугольников.

Алгоритм Z - буфера

Поскольку скорость и объем памяти ПК постоянно увеличивается, на смену Алгоритму Художника пришел Алгоритм Z-буфера. Этот алгоритм более прост в реализации, чем Алгоритм Художника. (Сегодня большинство высокопроизводительных графических систем и графических станций имеют аппаратную реализацию этого алгоритма, что избавляет от необходимости решать проблему удаления невидимых поверхностей самостоятельно).

Реализация Алгоритма Z-буфера проста. Все, что для этого нужно - сам 2-буфер, который имеет такой же объем, как и видеобуфер. В нашем случае это будет матрица целых чисел размером 320х200. Затем мы заполняем ее значениями Z-координат многоугольников, следуя таким правилам:

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

2. Определяем Х- и Y-компоненты для каждой точки (необходимо помнить, что может быть сколько угодно точек с одинаковыми значениями Х- и Y-координат и различными значениями Z.)

3. Затем используем уравнение плоскости для плоскости, общей с многоугольником, решая его относительно компонента Z для каждой пары Х- и Y-координат, после чего вычисляем значение Z для всех точек в границах многоугольника.

4. Записываем значение Z и цвет для каждой точки Z-буфера.

5. Затем мы смотрим, какая из точек будет нарисована на экране. Чтобы сделать это, найдем точку со значением Z-координаты, ближайшей к плану просмотра.

6. Рисуем пиксель с цветом данной точки.


Дата добавления: 2015-07-12; просмотров: 157 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Алгоритм Художника, Тест 1| Использование уравнения плоскости для вершин многоугольника

mybiblioteka.su - 2015-2024 год. (0.006 сек.)