13.5.2. Еще одно значение простоты При первом определении простоты требуется, чтобы в область было втянуто не более одной грани. Но если втянуто несколько непересекающихся граней, то для решения задачи HSR не потребуется выполнять никаких вычислений глубин. В этом случае подпрограмма isSimple_drawIt() построит список граней, втянутых в данную область, и проверит их на взаимное непересечение. Если это условие соблюдено, то подпрограмма просто нарисует поочередно каждую из этих граней. Обдумайте сложность данного подхода. В частности, как проверить совокупность граней, втянутых в область, на непересечение? Стоит ли такое определение простоты того, чтобы реализовывать его?

13.5.3. Альтернативные подходы к разбиению Когда ребра граней пересекают экран дисплея по диагонали (как на рис. 13.13), то может потребоваться много уровней разбиения, поскольку границы областей никогда не «выровняются» с ребрами. На рис. 13.16 предлагается другой подход к разбиению области: по вершине А самой заметной грани сцены. Два ребра и Е2 продолжены до границ области, определяя тем самым четыре подобласти /?4. Теперь треугольник не пересекается с тремя из новых подобластей, существенно упрощая их. Если применить к каждой из этих подобластей те же тесты, что и прежде, то простые области будут визуализироваться, а непростые разбиваться дальше. Рассмотрите изменения, которые следует осуществить в методе квадрантного разбиения для реализации данного подхода. Нарисуйте сцену с несколькими полигональными гранями и покажите, как будут выполняться разбиения с целью выявления видимых поверхностей.

13.5.4. Введение сглаживания Как можно осуществлять сглаживание во время выполнения HSR с использованием разбиения области? Рассмотрите разбиение ниже уровня пикселов с последующим усреднением. Обдумайте, как можно это сделать и насколько эффективна будет данная технология.

Разбиение области вдоль ребра

Рис. 13.16. Разбиение области вдоль ребра

13.6. О методах удаления невидимых линий

13.6. О методах удаления невидимых линий


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