(63*i)/15 );
cube.draw ();
bioskey (0 ); closegraph ();
>

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

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

Ребра между нелицевыми гранями также всегда не видны. Однако ребро между лицевой и нелицевой гранями вполне может быть и видимым.

10.2.2. Ограничивающие тела (Bounding Volumes)

При удалении невидимых линий и поверхностей постоянно возникает необходимость сравнения граней и объектов друг с другом. Такие задачи часто оказываются сложными и трудоемкими. Одним из средств, позволяющим заметно упростить подобные сравнения, является использование так называемых ограничивающих объемов (тел).

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

Следует, однако, иметь в виду, что если описанные тела пересекаются, то сами объекты при этом пересекаться не обязаны (рис. 10.15).

В качестве ограничивающих тел чаще всего используются прямоугольные параллелепипеды с ребрами, параллельными координатным осям. Тогда ограничивающее тело (в данном случае его называют bounding box) описывается шестью числами:

(х min ' У min > zmin )' (xmax » У max » zmax )» где первая тройка чисел задает одну вершину параллелепипеда, а вторая - противоположную. Сами числа представляют собой покоординатные значения минимума и максимума из координат точек исходного объекта.

Проверка на пересечение двух тел сводится просто к проверкам на пересечения промежутков

[х min ' х max 1 [Утт » У max 1 [zmin » zmax ]

Удаление невидимых линий и поверхностей

10. Удаление невидимых линий и поверхностей одного тела с соответствующими промежутками другого. В'случае если пересечение хотя бы одной пары промежутков пусто, то можно сразу заключить, что тела, а следовательно, и содержащиеся внутри их объекты, не пересекаются.


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