}

Выходное изображение, сгенерированное программой трехмерного наблюдения

Рис. 7.55. Выходное изображение, сгенерированное программой трехмерного наблюдения

ТРЕХМЕРНЫЕ АЛГОРИТМЫ ОТСЕЧЕНИЯ

В главе 6 обсуждались преимущества использования нормированных границ отсекающего окна в двухмерных алгоритмах отсечения. Подобным образом трехмерные алгоритмы отсечения можно применить к нормированным границам объема наблюдения. Это позволяет крайне эффективно реализовать конвейер проектирования и процедуры отсечения. Все аппаратно-независимые преобразования (геометрические и проектирования) сворачиваются и применяются до выполнения процедур отсечения. В трехмерном случае каждая граница отсечения нормированного объема наблюдения представляет собой плоскость, параллельную одной из декартовых плоскостей, вне зависимости от типа проекции и исходной формы объема наблюдения.

Если однородный параметр /г равен 1, однородные координаты аналогичны декартовым координатам проекции. Такая ситуация часто возникает при параллельном проектировании. Однако перспективная проекция дает однородный параметр, который является функцией координаты г любой точки пространства. Однородный параметр перспективной проекции может даже быть отрицательным. Так бывает, когда точки располагаются за центром проекции. Кроме того, представления поверхностей объектов рациональными сплайнами часто формулируются в однородных координатах, где однородный параметр может быть положительным или отрицательным. Следовательно, если отсечение выполняется в координатах проекции после деления на однородный параметр к, некоторая координатная информация может теряться, и объекты не будут отсекаться корректно.

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

ТРЕХМЕРНЫЕ КОДЫ ОБЛАСТЕЙ

Расширим концепцию кода области (раздел 6.7) на три измерения, просто введя пару дополнительных разрядов для учета ближней и дальней плоскостей отсечения. Таким образом, теперь будет использоваться шестиразрядный код области, как показано на рис. 7.56. Разряды в этом примере нумеруются справа налево и соответствуют левой, правой, нижней, верхней, ближней и дальней плоскостям отсечения (в таком порядке).

ТРЕХМЕРНОЕ ОТСЕЧЕНИЕ ТОЧЕК И ЛИНИЙ

Для обычных точек и отрезков, определенных на сцене, которая не лежит позади центра проекции, все однородные параметры положительны, и коды областей можно установить, используя условия (7.47). Затем, определив для каждой точки на сцене код области, можно легко найти положения точек, входящих или не входящих в объем наблюдения. Например, код области 101000 сообщает, что точка находится над объемом наблюдения и позади него, а код области 000000 указывает на внутреннюю

Значения трехмерного шестиразрядного кода области, идентифицирующие пространственные положения относительно границ объема наблюдения

Рис. 7.57. Значения трехмерного шестиразрядного кода области, идентифицирующие пространственные положения относительно границ объема наблюдения


⇐ вернуться назад | | далее ⇒