3. Накладывающаяся поверхность полностью находится перед 5 относительно точки наблюдения.

4. Проекции ограничивающих областей двух поверхностей на плоскость наблюдения не перекрываются.

Перечисленные проверки выполняются в указанном порядке, и сразу после того, как какая-то проверка даст положительный ответ, начинается обработка следующей перекрывающейся поверхности. Если все проектирующиеся поверхности дали положительный ответ хотя бы при одной проверке, 5 - наиболее удаленная поверхность. В таком случае никакого переупорядочения не требуется, и 5 преобразуется в стандарт развертки.

Проверка 1 выполняется в два этапа. Вначале проверяется наложение по оси х, затем по оси у. Если ни в одном направлении не наблюдается перекрытия поверхностей, две плоскости не могут закрывать одна другую. На рис. 9.13 приведен пример двух поверхностей, которые не перекрываются ни в направлении х, ни в направлении у, но перекрываются в направлении 2.

I

МЕТОД BSP-flEPEBA

Метод дерева бинарного разбиения пространства (binary space-partitioning - BSP) позволяет эффективно определить видимость объекта, занося поверхности в буфер кадров от фона к переднему плану, как в алгоритме художника. BSP-дерево особенно полезно, когда положение точки наблюдения меняется, но объекты на сцены фиксированы.

Для объектов, описанных многоугольными гранями, плоскости деления можно выбрать совпадающими с плоскостями поверхностей многоугольников. Затем с помощью уравнений многоугольников определяются задние и передние многоугольники, и дерево строится с одной плоскостью деления для каждой грани. Любой многоугольник, пересекаемый плоскостью деления, разбивается на две части. Построенное BSP-дерево обрабатывается в следующем порядке: вначале правые узлы, затем левые. Таким образом поверхности подготавливаются к отображению в порядке от фона к переднему плану, так что объекты переднего плана рисуются поверх фоновых. В некоторых системах для построения и обработки BSP-деревьев используются быстрые аппаратные реализации.

МЕТОДЫ ДЕЛЕНИЯ ОБЛАСТИ

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

Чтобы реализовать этот метод, нужно установить проверки, которые помогут быстро определить, что область является частью одной поверхности, или что эта область слишком сложна, чтобы ее можно было просто проанализировать. Изначально к общей проекции применяются проверки, позволяющие определить, нужно ли разделить общую область на меньшие прямоугольники. Если проверки указывают, что проекция достаточно сложна, она делится на части. Затем проверки применяются ко всем меньшим областям, которые при необходимости также разбиваются (если проверки показали, что видимость суммарной поверхности все еще неопределенная). Данный процесс продолжается, пока не удастся однозначно отнести фрагмент к одной поверхности, или пока не будет достигнуто предельное разрешение. Чтобы легко реализовать этот принцип, нужно на каждом шаге последовательно делить область на четыре равные части, как показано на рис. 9.20. Данный подход подобен используемому при построении квадродерева (четверичного дерева, quadtree). Зону просмотра при разрешении 1024 на 1024 пикселей можно описанным способом подвергнуть делению 10 раз, пока подзона не сократится до размера одного пикселя.


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