Шаг 59.
Основы компьютерной графики... . Модели описания поверхностей. Векторная полигональная модель. Третье представление

    На этом шаге мы рассмотрим последнее представление этой модели и сравним их.

    Третий способ описания (рисунок 1).


Рис.1. Линейно-узловая модель

    Этот способ (в литературе его иногда называют линейно-узловой моделью) основывается на иерархии: вершины - ребра - грани.

    Оценим затраты памяти:

 П3 = 8 х 3 х Рв + 12 х 2 х Ринд.вершин + 6 х 4 х Ринд.ребер,
где Рв - разрядность координат, Ринд.вершин и Ринд. ребер - разрядность индексов вершин и ребер соответственно.

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

  П1 = 6 х 4 х 3 х 4 = 288,
  П2 = 8 х 3 х 4 + 6 х 4 х 4 = 192,
  П3 = 8 х 3 х 4 + 12 х 2 х 4 + 6 х 4 х 4 = 288.

    Пусть для координат отведено 8 байтов (тип с плавающей точкой double), а для индексов - 4 байта. Тогда:

  П1 = 6 х 4 х 3 х 8 = 576, 
  П2 = 8 х 3 х 8 + 6 х 4 х 4 = 288,
  П3 = 8 х 3 х 8 + 12 х 2 х 4 + 6 х 4 х 4 = 384.

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

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг