Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-D моделирование инженерных конструкций.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.43 Mб
Скачать

Алгоритм разбиения области

  • Гипотеза о способе обработки информации глазом и мозгом.

  • Когерентность (однородность смежных областей).

Принцип: область разбивается на окна и в каждом окне решается вопрос о том, пусто ли оно или достаточно просто для визуализации; если это не так, то окно разбивается дальше до тех пор, пока не станет простым или его размер не достигнет размера .

При надо максимально 9 разбиений.

Конкретная реализация алгоритма зависит от метода разбиения и критерия определения простоты изображения в окне.

Простой вариант 1:

  • область разбивается последовательно на четыре прямоугольные части;

  • критерий простоты — объекты не попадают в области.

Алгоритм, использующий z-буфер

Принцип: используются два буфера: регенерации (значения ), z-буфер (z-координата).

Буфер регенерации заполняется значениями при параллельном анализе z-координаты со значениями z-буфера.Шаги:

  1. в z-буфере заносятся максимально возможные значения z;

  2. буфер регенерации заполняется значениями фона;

  3. каждый объект раскладывается в растр;

если меньше значения z-буфера в элементе , то:

    1. заносится в элемент z-буфера;

    2. значение помещается в элемент буфера регенерации.

Достоинство — простота реализации, нет сортировки.

Недостаток — нужен большой объем памяти по z-буфер.

Объем памяти: информация о значении — 24 бита ( ), информация о глубине 20 бит.

Алгоритм построчного сканирования (пи)

Принцип: расширение алгоритма преобразования многоугольника в растровую форму; разница в том, что имеем дело не с одним многоугольником, а со всеми сразу.

Шаги:

  1. Создается таблица ребер (ТР). Она содержит все ребра многоугольников, отсортированные по меньшей y-координате.

Описание ребра содержит:

  1. создается таблица многоугольников (ТМ).

Описание многоугольников содержит:

  1. Создается ТАР.

Содержит все активные ребра на текущей сканирующей строке. Ребра упорядочены по возрастанию x-координаты.

Сравнительная характеристика

  1. Методы закраски полигональной сетки.

Однотонная закраска.

Вычисляется 1 уровень , который используется для закраски всего многоугольника. При этом предполагается, что:

  • Источник света расположен в бесконечности ( на всей полигональной грани)

  • Наблюдатель находится в бесконечности ( на всей полигональной грани)

  • Многоугольник представляет реальную моделируемую поверхность, а не является аппроксимацией криволинейной поверхности.

Если 1) или 2) неприемлемо, можно использовать усредненное значение , вычисленные в центре многоугольника.

3-е предположение тоже часто не выполняется, но оно оказывает большое влияние на результат: каждая из видимых граней аппроксимированной поверхности хорошо отличима от других, т.к. каждой из этих граней отличается от соседних граней (эффект полос Маха).

Интерполяция интенсивностей (метод Гуро).

Процесс закраски осуществляется в 4 этапа:

Вычисляются нормали к поверхностям.

Определяются нормали в вершинах путем усреднения нормалей по всем граням, которым принадлежит вершина.

Используя нормали в вершинах и применяя произвольный метод закраски, вычисляются значения в вершинах.

Каждый многоугольник закрашивается путем линейной интерполяции значений в вершинах сначала вдоль каждого ребра, а затем между ребрами вдоль каждой сканирующей строки:

Интерполяция векторов нормали (метод Фонга).

Закраска Фонга требует больших вычислительных затрат, но она позволяет разрешить многие проблемы метода Гуро. При закраске Гуро вдоль сканирующей строки интерполируется значение , а при закраске Фонга – вектор нормали. Затем он используется в модели освещения для вычисления . При этом достигается лучшая локальная аппроксимация кривизны поверхности, и получается более реалистичное изображение. Особенно правдоподобно выглядят зеркальные блики.

Этапы закраски:

Вычисляются нормали к поверхностям.

Определяются нормали в вершинах путем усреднения нормалей по всем граням, которым принадлежит вершина.

Для каждой точки сканирующей строки определяется вектор нормали путем линейной интерполяции значений N (сначала в вершинах, затем - между ребрами).

Для каждой точки сканирующей строки вычисляется значение .

Метод Фонга приводит к более качественным результатам, т.к. аппроксимация нормали осуществляется в каждой точке. Уменьшаются полосы Маха.