Компьютерная графика. Полигональные модели

На рис. 10.45 приведена заметно более сложная сцена, требующая рекурсивного разбиения.

Предположим, что вначале грани отсортированы в порядке А, В, С.

На первом шаге берется грань А и все оставшиеся грани (В и С) разбиваются по границе проекции грани А (рис. 10.45, а). Грань В разбивается на части В} и В2, а грань С - на части С/ и С2.

При этом Fin- {A, Bj,C/}9

Fout" (В2> С2}.

Так как грань В} лежит дальше, чем грань А, то она отбрасывается. Взяв следующую грань из Fin, а именно грань Су, мы обнаруживаем, что она лежит ближе к наблюдателю, чем грань А. В этом случае мы производим рекурсивное разбиение множества Fin при помощи грани Су (или С). В результате этого грань А разбивается на две части А} и А2 и Fin = {С, А2}. Так как грань А2 лежит дальше, чем грань Су, то она отбрасывается, а грань Су выводится. Исчерпав таким образом Fim мы возвращаемся из рекурсии и получаем Fin ~ {Ah Су}. Эти части можно вывести сразу же, так-как они не закрывают друг друга и никакая другая грань их закрывать не может.

Далее берем множество внешних граней Fout. В качестве грани, производящей разбиение, выберем грань В2 и разобьем грань С2 на две части - С3 и С4.

Получаем Fin = {В2, С3}ь Fmt = {С4}. Так как грань С$ лежит дальше, чем грань В2, то она удаляется, а оставшаяся грань В2 выводится.

На последнем шаге выводится грань С4 из Fouh так как она, очевидно, ничем закрываться не может.

Таким образом видимыми являются грани Ah В2 и С, (рис. 10.46).

10.5. Специальные методы оптимизации Часто встречается имеющая свою специфику задача визуализации внутренности архитектурных сооружений (помещения, здания, лабиринты и т. п.). Одной из основных особенностей этой задачи является то, что при очень большом общем числе граней количество граней, видимых из данной точки, обычно оказывается сравнительно малым.

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

10.5.1. Потенциально видимые множества граней


⇐ Предыдущая| |Следующая ⇒