Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_KG.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.8 Mб
Скачать
  1. Отличие и сходство видимости в сценах для выпуклых и невыпуклых фигур?

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

Невыпуклые многогранные поверхности подобным свойством не обладают, однако и в этом случае изменение видимости при переходе от одних элементов к соседним также носит регулярный характер. А именно, либо элемент полностью невидим, либо полностью видим, либо если он частично видим, а частично нет, то его проекция на картинную плоскость обязательно пересекается с проекцией другого ребра многогранника, через которое проходит складка проектирования поверхности многогранника на картинную плоскость, т., е. такая последовательность ребер многогранника, каждое .из которых является смежным к двум граням, различным образом ориентированным по отношению к наблюдателю (нормали к этим граням направлены в разные стороны относительно луча проектирования) (рис. 12.4.).

Рис. 12.4.

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

  1. Постановка задачи удаления невидимых граней выпуклого многогранника?

Пусть в пространстве задан многогранник (не обязательно выпуклый). Задача состоит в построении его изображения на картинной плоскости либо с использованием центральной проекции с центром проектирования Р либо ортогонального проектирования с направляющим вектором l.

Пусть F - некоторая грань многогранника. Плоскость, несущая эту грань, разделяет пространство на два полупространства. Назовем полупространство, в которое "смотрит" внешняя нормаль к грани F, положительным (рис.12.5).

Рис. 12.5.

В случае центральной проекции назовем грань F многогранника лицевой, если центр проектирования Р лежит в положительном по отношению к грани F полупространстве, и нелицевой, если Р лежит в отрицательном полупространстве. В случае ортогональной проекции назовем грань F лицевой, если вектор проектирования I и вектор п внешней нормали к грани F образуют острый угол, и нелицевой - в противном случае.

Если многогранник является выпуклым, то удаление всех нелицевых граней полностью решает задачу визуализации с удалением невидимых граней. В случае произвольного многогранника нелицевые грани заведомо невидимы, поэтому нужно проанализировать на предмет видимости лишь лицевые грани многогранника. Хотя в этом случае метод не дает окончательного решения, тем не менее количество граней, подлежащих анализу, можно сократить примерно вдвое, так как нелицевые грани заведомо невидимы (рис.12.6).

Рис. 12.6.

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

Пусть теперь F1, F2, ..., FN - грани многогранника. Рассмотрим одну из граней, например, Fi . Обозначим вершины, инцидентные грани Fi через V1, V2,..., Vk. Найдем вектор нормали к грани Fi, вычислив векторное произведение любых двух смежных ребер этой грани. Имеем, например:

ni = [ V1, V2, V3, V4].

Пусть ni = (Ai, Bi, Ci), тогда опорная функция грани Fi имеет вид:

где p = p(x, y, z).

Тогда уравнение плоскости, несущей грань Fi можно записать так:

Li(x, у, z) = 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]