картинную плоскость (экран) часто оказывается, что отдельные части объектов (или
даже некоторые объекты сами) оказываются скрытыми от наблюдателя другими объектами сцены
По способу изображения объекта:
По пространству, в котором решается задача
По точности получаемого решения
A
B
C
D
Нормали к граням А и В смотрят в сторону наблюдателя (наблюдатель находится в положительном полупространстве по отношению к плоскости, проходящей через соответствующую грань). Такие грани называются лицевыми (front-faced).
Для граней C и D нормали направлены от наблюдателя, их называют нелицевыми (back-faced).
foreach(p in pixels)
if(p.z < zBuffer[p.x, p.y])
draw( p );
zBuffer[p.x, p.y] = p.z;
}
Если сперва вывести объект В, а потом вывести объект А поверх него, то в результате получится корректное изображение (для тех пикселов, которые принадлежат как проекции грани А, так и проекции грани В, последним будет выведено значение, соответствующее грани А, которое и должно быть видно).
Тогда ни одна из граней, лежащих в том же полупространстве, что и наблюдатель, не может быть закрыта ни одной из граней из другого полупространства. Таким образом, удалось осуществить частичное упорядочение граней исходя из возможности загораживания друг друга.
void BSPNode::Draw() {
if(face->Sign(viewer) == 1) {
if(negative) negative->Draw();
face->Draw();
if(positive) positive->Draw();
} else {
if(positive) positive->Draw();
face->Draw();
if(negative) negative->Draw();
}
}
x
y
z
A1
A2
A3
A1
A3
A2
e2
e1
e2
e1
Возможно включить или выключить запись в z-буфер
glDepthMask(TRUE); или glDepthMask(FALSE);
Сохраняем последовательность команд
Освобождаем номер дисплейного списка
glCallList(n);
Воспроизводим сохраненную последовательность команд (с теми же самыми параметрами!)
glDeleteLists(n,1);
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть