Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CG_lk.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.22 Mб
Скачать

4.5. Алгоритмы удаления скрытых линий и поверхностей

4.5.1 Трехмерное отсечение

В общем случае объекты, описанные в мировых координатах, отсекаются по границам видимого объема.

Двумя наиболее распространенными формами трехмерного отсекателя являются прямоугольный параллепипед, используемый при параллельном проецировании и усеченная пирамида (пирамида видимости), используемая при центральном проецировании (Рис.4.10)

Рис.4.10 Трехмерные отсекатели: а) параллепипед; б) пирамида видимости.

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

- первый бит - если конец отрезка дальше объема;

- второй бит - если конец отрезка ближе объема;

- третий бит - если конец отрезка выше объема;

- четвертый бит - если конец отрезка ниже объема;

- пятый бит - если конец отрезка правее объема;

- шестой бит - если конец отрезка левее объема.

В противном случае в соответствующие биты заносится 0.

Если коды концов отрезка равны 0, то оба конца видны и отрезок также будет полностью виден. Если побитовое логическое произведение кодов концов отрезка не равно 0, то он полностью невидим. Если же это логическое произведение равно 0, то отрезок может оказаться или частично видимым или полностью невидимым. В этом случае необходимо определять пересечение отрезка с гранями отсекающего объема.

Подробно с данными алгоритмами можно ознакомиться в [ ].

Поиск кодов точки относительно отсекающего прямоугольного параллелепипеда является прямым обобщением соответствующего двумерного алгоритма. Если отсекателем служит усеченная пирамида, задача усложняется. Один из методов [ ] заключается в преобразовании отсекателя в каноническую форму, где :

Хпр. = 1, Хлев. = -1, Уверх.= 1, Унижн.= -1, Zдальн.= 1

В более естественном методе, меньше искажающем форму отсекателя, отрезок, соединяющий центр проекции с центром усеченной пирамиды, совмещается с осью z правой координатной системы (Рис. 4.11).

Уравнение прямой на плоскости XZ, несущей проекцию правой грани отсекателя, имеет вид:

где

Рис. 4.11 Усеченная пирамида

Уравнение этой прямой можно использовать для определения местоположения точки Р1 подставив ее координаты x, y, z в функции:

> 0, если Р справа от плоскости;

= 0, если Р на плоскости;

< 0, если Р слева от плоскости.

Для левой грани:

> 0, если Р справа от плоскости;

= 0, если Р на плоскости;

< 0, если Р слева от плоскости.

Верхняя грань:

> 0, если Р выше плоскости;

= 0, если Р на плоскости;

< 0, если Р ниже плоскости.

Нижняя грань:

< 0, если Р ниже плоскости;

q = 0, если Р на плоскости;

> 0, если Р выше плоскости.

Ближняя грань:

> 0, если Р ближе плоскости;

= 0, если Р на плоскости;

< 0, если Р дальше плоскости.

Дальняя грань:

< 0, если Р дальше плоскости;

= 0, если Р на плоскости;

> 0, если Р ближе плоскости.

Чем ближе к бесконечности, тем больше форма отсекателя приближается к прямоугольному параллелепипеду.

Примечание: в приведенном методе можно получить некорректные результаты, если концы отрезков лежат за центром проекции.

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