Автор: Горшков А.С. кандидат физико-математических наук,
г. Москва
Источник: International Conference Graphicon 1999, Moscow, Russia, http://www.graphicon.ru/.
Разработан принципиально новый метод и система алгоритмов для построения 3D моделей, ориентированных на широкий круг задач, где применяется 3D графика (САПР, томография, 3D игры). Отличительными свойствами нового механизма, обеспечивающими принципиальные преимущества перед известными и наиболее распространенными подходами на основе триангуляции иz-буфера, являются полноценно аналитический подход к формированию структур данных, в частности исчерпывающее использование линейных математических методов, а также специальное обобщение известных растровых алгоритмов 2D графики. Благодаря этому достигнута возможность полностью отказаться от примененияz-буфера, а также реализовывать поверхность 3D моделей не только из треугольников, но и полигонов (многоугольников) общего вида(полиангуляция). В результате достигается значительно большее разнообразие моделируемых форм при значительно меньшем числе элементов внешней поверхности(количество полигонов может быть меньше на один-два порядка относительно необходимого числа треугольников) и, соответственно, очень высокая производительность. При необходимости достижения максимальной скорости обработки на основе аппаратной поддержки(3D акселератора) такой акселератор может быть реализован наиболее компактно благодаря очень высокой степени унификации всех алгоритмических решений, что обеспечит его невысокую стоимость.
Ключевые слова: : полигон, полиэдр, полиангуляция, пиксельный растр, х-буфер, z-буфер, xz-буфер, компрессия.
Разработанная автором новая методика построения алгоритмов 3D обработки была предложена с целью решения следующих важнейших задач обработки и отображения трехмерных данных.
Перечисленные выше новые возможности обеспечиваются на основе следующих новых наиболее важных алгоритмических решений:
Метод согласованных циклов представляет собой об'единение нескольких программных циклов различной длины, которые должны быть выполнены синхронно, т.е. более короткие растянуты до наиболее длинного, в один общий цикл специального вида. Частным случаем применения такого метода является хорошо известный алгоритм Брезенхэма построения отрезков прямых на дискретном изображении, на основе изучения и обобщения которого и был получен новый метод.
Основной смысл применения данного подхода состоит в избежании использования операции деления при пропорциональных расчетах. Это позволяет реализовывать наиболее быстро операции растяжения-сжатия масивов данных, что особенно актуально для задач проективной графики. Всякая строка изображения2D проекции об'емной сцены состоит из интервалов, образованных отрезками2D текстур либо3D трасс. Каждый такой отрезок задается на исходных данных соответственно двумя или тремя координатами. Тогда при необходимости линейно спроектировать такой отрезок на интервал строки изображения заданной длины возникает задача пересчета координат, которая решается в форме известных пропорций, т.е. операций, содержащих умножение и деление. Устранение необходимости этих операций, заметно ограничивающих скорость обработки, достигается на основе операции приведения по модулю.
Другим достоинством данного метода является гарантированное непересечение промежуточными отсчетами границ как входных массивов данных, так и конечного изображения, что исключает необходимость их проверки, в силу того, что начало и конец каждого отдельного цикла обхода данных изначально заданы и тем самым жестко фиксированы. Это обстоятельство заметно ограничивает скорость часто применяемого подхода на основе погонного вычисления координат путем постоянного приращения, когда происходит одновременное накопление вычислительных ошибок.
Метод имеет наиболее простую и быструю реализацию для случаев вычисления только адресов данных(если собственно координаты не требуются). В частности, алгоритм построения отрезка прямой по сравнению с исходным вариантом, который обычно приводится в литературе по программированию графики, резко сократился по размеру кода и по времени реализации.
Важнейшие случаи применения данного метода следующие:
В основу нового подхода к построению моделей об'емных тел положена простая идея разбиения пространства на блоки путем разрезов его секущими плоскостями. В качестве исходного элемента применяется тело наиболее простой формы- параллелепипед, последовательное сечение которого образует набор выпуклых полиэдров (многогранников), т.е. тел, поверхность которых образована выпуклыми полигонами соответствующего порядка, который, как правило, выше третьего.
Такое разбиение обладает следующим важным свойством: каждый из полученных полиэдров находится по ту или иную сторону относительно каждой их использованных для сечения плоскостей, что позволяет сформировать двоичный код, однозначно задающий положение каждого из них относительно остальных.
Лишние полиэдры далее отбрасываются, и в итоге образуется тело требуемой формы, поверхность которого аппроксимирована выпуклыми полигонами (рис.1). Очевидно, что всякое выпуклое тело, например, кристалл алмаза, будет представлено одним полиэдром, большинство же реальных тел невыпуклые, и это обуславливает необходимость применения для их моделирования данного аппарата.
В силу выпуклости каждого из элементов этого общего набора плоская проекция полученного тела строится как последовательность проекций примыкающих к внешней поверхности полиэдров в порядке, определяемым их кодом в бинарном дереве. Код положения каждого такого полиэдра модифицируется с учетом конкретного ракурса проекции с помощью маски ИСКЛ-ИЛИ, биты которой определяют видимость-невидимость лицевой стороны каждой секущей плоскости. Также в силу выпуклости каждый полиэдр на проекции оказывается представлен только его видимыми гранями, лежащих на внешней поверхности модели. В итоге обеспечивается очень простая и быстрая сортировка по глубине, выявляющая необходимость отображения те или иных полигонов в простой последовательности.
Каждый из полученных полиэдров снова может рассматриваться как новое подпространство, к которому может быть применена та же технология обработки- сечение новыми плоскостями, построение нового бинарного дерева относительных положений и устранение ненужных элементов.
Существенным преимуществом представленной технологии является возможность легко получать разрезы и сечения об'ектов, так как это лишь одна из функций, используемых для их построения. Сечение при этом представляет собой набор несмежных полигонов(в общем случае и невыпуклых), лежащих в одной общей плоскости (рис.2).
С математической точки зрения данный алгоритмический аппарат является предельно простым, фактически все процедуры построены на единственной формуле пересечения отрезка прямой и плоскости. Основная сложность реализации связана с генерацией эффективных структур данных.
Существуют также более простые частные случаи этого метода. Например, для построения рельефа местности или об'емных карт сначала выполняется разбиение и поэлементое двоичное кодирование на плоскости, а не в пространстве, после чего на каждом полученном выпуклом полигоне этой плоскости строится выпуклый полиэдр указанным выше способом.
Для достижения наивысшей производительности и поддержания очень высокой скорости обработки данных (быстрая генерация новых полиэдров при сечении и быстрая сортировка при изменении ракурса проекции) разработан также метод наиболее скоростного построения растра проекции. Существо метода заключается в построении промежуточных структур данных, обеспечивающих последовательное заполнение изображения строка за строкой, интервал за интервалом. Под интервалами понимаются непрерывные последовательности пикселов и соответствующих им ячеек памяти, которые должны заполняться по одному общему алгоритму.
Существуют интервалы следующих типов:
После получения последовательности отображаемых на экран полигонов, отсортированных и ранжированных в порядке уменьшения глубины относительно экрана, производится отсечение перекрывающихся элементов и заполняется массив специальных структур данных, который и будет определять формирование строк на конечном этапе. Такие промежуточные структуры представляют собой по существу буфер границ областей, который строится, в силу того, что эти области полигональные, также по методу согласованных циклов.
Данный метод также может быть распространен и на общий случай обычной триангуляции, когда неизбежно приходится применять z-буфер. Буфер границ областей, который можно также условно назвать «x-буфером», так как он обеспечивает формирование строчных границ отдельных интервалов, в этом случае выступает в роли «xz-буфера», потому что может также поддерживать обработку пересекающихся по глубине строчных отрезков. В любом случае достигается существенное преимущество по скорости обработки, так как сортировка по глубине выполняется не над отдельными точками, а над целыми областями, затем строчными интервалами отсортированных областей.
Способ промежуточного представления данных для обеспечения такого метода развертки проекций сходен с известными методами компресии(сжатия) 2D изображений путем погонного уплотения(RLE – run-length encoding). Тем самым он также может рассматриваться как их расширение на область 3D форматов данных и послужить в дальнейшем основой для разработки универсального стандарта.
Представленные алгоритмы реализованы в форме функций на языкеBorland C++ (пакеты версий4.52 и 5.02) иTurbo Assembler 5.0 и собраны в предельно компактную библиотеку процедур(общий об'ем текста составляет лишь несколько десятков килобайт). Основные отличительные свойства этой библиотеки:
Представленный в настоящем докладе новый алгоритмический аппарат и технология моделирования и обработки 3D об'ектов составляют новый шаг в развитии методов 3D моделирования и графики. Данная методика по существу дает исчерпывающие возможности в использовании полноценно математических методов работы с 3D об'ектами на классе линейного приближения.
Разработанный алгоритмический аппарат максимизирует производительность за счет специальной ускоренной обработки об'ектов линейного типа(построенных на основе отрезков прямых и полигональных участков плоскостей).
Расширены возможности по моделированию об'ектов более разнообразных форм благодаря переходу от триангуляционной аппроксимации их поверхностей к полиангуляционной. Способ генерации полигональных поверхностей при этом также обеспечивает интегрированную обработку, при которой ввод и генерация данных производятся на основе задания ключевых параметров, а не самих конкретных значений, что резко повышает производительность разработчика. Достигнута возможность отказа от поточечной сортировки элементов3D сцены по их удаленности на основеz-буфера. Применение z-буфера при этом не исключается совсем, но отодвигается либо на случаи нелинейной обработки (использование таких форм как шар, цилиндр, конус, тор- рис.3), либо при неэффективности применения детальных аналитических расчетов, когда их об'ем сопоставим по сложности с поточечной проверкой с помощью z-буфера. Существенно усовершенствованы методы растровой графики. Реализованные в данной технологии структуры промежуточных данных имеют свойства сжатого представления сложной информации и могут быть использованы для расширения методов компрессии изображений.
Горшков Алексей Станиславович, кандидат физико-математических наук. Закончил Московский физико-технический институт. Научно-практическая специализация- прикладная математика и цифровая обработка информации. Опубликовано около40 научных статей в центральных научных журналах включая «Доклады Академии наук СССР», а также монография «Цифровая обработка сигналов: атомарные функции и теория чисел» (М.: Машиностроение, 1994, 224 с.). Выступал с докладами на ГРАФИКОН в1992, 1995, 1996 гг.
E-mail: f2813@msk.sitek.net.