На этом шаге мы продолжим сравнение этих моделей, а также приведем достоинства и недостатки векторной полигональной модели.
Сравним три разновидности векторной полигональной модели, рассмотренных на предыдущих шагах, учитывая другие аспекты.
Скорость вывода полигонов. Если для полигонов необходимо рисовать линию контура и точки заполнения, то первый и второй варианты близки по быстродействию - и контуры, и заполнения рисуются одинаково. Отличия в том, что для второго варианта сначала надо выбирать индекс вершины, что замедляет процесс вывода. В обоих случаях для смежных граней повторно рисуется общая часть контура. Для третьего варианта можно предусмотреть более совершенный способ рисования контура - каждая линия будет рисоваться только один раз, если в массивах описания ребер предусмотреть бит, означающий, что это ребро уже нарисовано. Это обуславливает преимущества третьего варианта по быстродействию.
Блокирование повторного рисования линий контуров смежных граней позволяет решить также проблему искажения стиля линий, если линии контуров не сплошные, а, например, пунктирные.
Топологический аспект. Представим, что имеется несколько смежных граней. Что будет, если изменить координаты одной вершины в структурах данных? Результат приведен на рисунке 1.
Рис.1. Результат изменения координат одной вершины.
Поскольку для второго и третьего вариантов каждая вершина сохраняется в одном экземпляре, то изменение ее координат автоматически приводит к изменению всех граней, в описании которых сохраняется индекс этой вершины. Это полезно, например, в геоинформационных системах при описании соседних земельных участков или других смежных объектов.
Следует заметить, что подобного результата можно достичь и при структуре данных, соответствующей первому варианту. Можно предусмотреть поиск других вершин, координаты которых совпадают с координатами точки А.
Иначе говоря, поддержка такой операции может быть обеспечена как структурами данных, так и алгоритмически.
Однако когда нужно разъединить смежные грани, то для второго и третьего вариантов это сложнее, чем для первого - необходимо записать в массивы новую вершину, новые ребра и определить индексы в массивах граней.
При разработке новой графической системы обычно приходится решать такой вопрос: какие операции реализовывать только алгоритмически, а какие обеспечивать структурами данных? Ответ на это можно дать, проанализировав много других факторов. Здесь мы рассмотрели только малую часть из них.
Положительные черты векторной полигональной модели:
Недостатки полигональной модели:
На следующем шаге мы рассмотрим воксельную модель.