Марширующие кубики
Марширующие кубы — это компьютерной графики алгоритм , опубликованный SIGGRAPH 1987 года. Лоренсеном и Клайном в журнале [ 1 ] для извлечения полигональной сетки изоповерхности ( из трехмерного дискретного скалярного поля элементы которого иногда называют вокселями ). Приложения этого алгоритма в основном связаны с медицинской визуализацией, такой как изображения данных КТ и МРТ , а также со специальными эффектами или трехмерным моделированием с использованием того, что обычно называют меташарами или другими метаповерхностями. Алгоритм марширующих кубов предназначен для использования в 3D; двумерная версия этого алгоритма называется алгоритмом марширующих квадратов .
История
[ редактировать ]Алгоритм был разработан Уильямом Э. Лоренсеном (1946-2019) и Харви Э. Клайном в результате их исследований для General Electric . В General Electric они работали над способом эффективной визуализации данных с устройств КТ и МРТ. [ 2 ]
Суть алгоритма состоит в том, чтобы разделить входной объем на дискретный набор кубов. Если предположить, что фильтрация линейной реконструкции каждый куб, содержащий часть заданной изоповерхности позволяет легко идентифицировать , поскольку значения выборки в вершинах куба должны охватывать целевое значение изоповерхности. Для каждого куба, содержащего участок изоповерхности, треугольная сетка, аппроксимирующая поведение трилинейного интерполянта создается во внутреннем кубе.
Первая опубликованная версия алгоритма использовала вращательную и отражательную симметрию, а также изменения знаков для построения таблицы с 15 уникальными случаями. Однако из-за существования неоднозначностей в поведении трилинейного интерполянта на гранях и внутри куба сетки, извлеченные с помощью Marching Cubes, представляли собой разрывы и топологические проблемы. Учитывая куб сетки, неоднозначность грани возникает, когда вершины его грани имеют чередующиеся знаки. То есть вершины одной диагонали на этой грани положительны, а вершины другой – отрицательны. Заметим, что в этом случае знаков вершин грани недостаточно для определения правильного способа триангуляции изоповерхности. Аналогично, внутренняя неоднозначность возникает, когда знаки вершин куба недостаточны для определения правильной триангуляции поверхности , т. е. когда для одной и той же конфигурации куба возможны множественные триангуляции.
Популярность Marching Cubes и его широкое распространение привели к нескольким улучшениям в алгоритме, позволяющим справиться с неоднозначностью и правильно отслеживать поведение интерполянта. Дерст [ 3 ] в 1988 году первым заметил, что таблица триангуляции, предложенная Лоренсеном и Клайном, была неполной и что некоторые случаи марширующих кубов допускают множественную триангуляцию. «Дополнительная ссылка» Дерста была на более раннюю, более эффективную (см. де Араужо) [ 4 ] ) алгоритм полигонизации изоповерхностей Уайвилла, Уивилла и Макфитерса. [ 5 ] Позже Нильсон и Хаманн [ 6 ] в 1991 году наблюдал существование неоднозначностей в поведении интерполянта на грани куба. Они предложили тест под названием «Асимптотический решатель», позволяющий правильно отслеживать интерполянт на гранях куба. Фактически, как заметил Натараджан [ 7 ] в 1994 году эта проблема неоднозначности возникает и внутри куба. В своей работе автор предложил тест устранения неоднозначности, основанный на интерполянтных критических точках, и добавил четыре новых случая в таблицу триангуляции Marching Cubes (подслучаи случаев 3, 4, 6 и 7). На этом этапе, даже несмотря на все улучшения, предложенные в алгоритме и его таблице триангуляции, сетки, созданные Марширующими кубами, все еще имели топологическую некогерентность.
The Marching Cubes 33, proposed by Chernyaev [ 8 ] в 1995 году это один из первых алгоритмов извлечения изоповерхностей, предназначенный для сохранения топологии трилинейного интерполянта. В своей работе Черняев расширяет число случаев в справочной таблице триангуляции до 33. Затем он предлагает другой подход к решению внутренних неоднозначностей, основанный на асимптотическом решателе. Позже, в 2003 году, Нильсон [ 9 ] доказали, что справочная таблица Черняева является полной и может отражать все возможные варианты поведения трилинейного интерполянта, а Левинер и др. [ 10 ] предложил реализацию алгоритма. Также в 2003 году Лопес и Бродли [ 11 ] расширил тесты, предложенные Натараджаном. [ 7 ] В 2013 году Кустодио и др. [ 12 ] отметил и исправил алгоритмические неточности, ставившие под угрозу топологическую корректность сетки, созданной алгоритмом Marching Cubes 33, предложенным Черняевым. [ 8 ]
Алгоритм
[ редактировать ]Алгоритм проходит через скалярное поле, одновременно беря восемь соседних местоположений (формируя таким образом воображаемый куб), а затем определяя многоугольник(и), необходимые для представления части изоповерхности , проходящей через этот куб. Отдельные полигоны затем объединяются в желаемую поверхность.
Это делается путем создания индекса предварительно рассчитанного массива из 256 возможных конфигураций полигонов (2 8 =256) внутри куба, рассматривая каждое из 8 скалярных значений как бит 8-битного целого числа. Если значение скаляра выше, чем значение iso (т. е. оно находится внутри поверхности), тогда соответствующий бит устанавливается в единицу, а если оно ниже (снаружи), он устанавливается в ноль. Окончательное значение после проверки всех восьми скаляров является фактическим индексом массива индексов полигонов.
Наконец, каждая вершина сгенерированных многоугольников помещается в соответствующую позицию вдоль края куба путем линейной интерполяции двух скалярных значений, соединенных этим краем.
Градиент . скалярного поля в каждой точке сетки также является вектором нормали гипотетической изоповерхности, проходящей из этой точки Следовательно, эти нормали можно интерполировать по краям каждого куба, чтобы найти нормали сгенерированных вершин, которые необходимы для затенения результирующей сетки с помощью некоторой модели освещения .
Патентные вопросы
[ редактировать ]Реализация алгоритма марширующих кубов была запатентована как патент США № 4710876. [ 2 ] Другой аналогичный алгоритм был разработан, названный марширующими тетраэдрами , чтобы обойти патент, а также решить небольшую проблему неоднозначности марширующих кубов с некоторыми конфигурациями кубов. Срок действия патента истек в 2005 году, и теперь графическому сообществу разрешено использовать его без лицензионных отчислений, поскольку с даты его выдачи (1 декабря 1987 г.) прошло более 20 лет. [ 2 ] ).
Источники
[ редактировать ]- ^ Лоренсен, Уильям Э.; Клайн, Харви Э. (1 августа 1987 г.). «Марширующие кубы: алгоритм построения трехмерной поверхности высокого разрешения». ACM SIGGRAPH Компьютерная графика . 21 (4): 163–169. CiteSeerX 10.1.1.545.613 . дои : 10.1145/37402.37422 .
- ^ Jump up to: а б с США выдали патент US4710876A , Клайн, Харви и Лоренсен, Уильям, «Система и метод отображения поверхностных структур, содержащихся во внутренней области твердого тела», выдан 1 декабря 1987 г.
- ^ Дюрст, Мартин Дж. (1 октября 1988 г.). "Re: Дополнительная ссылка на "марширующие кубики" " . ACM SIGGRAPH Компьютерная графика . 22 (5): 243. дои : 10.1145/378267.378271 . ISSN 0097-8930 . S2CID 36741734 .
- ^ де Араужо, Бруно; Лопес, Дэниел; Джепп, Полин; Хорхе, Хоаким; Уивилл, Брайан (2015). «Обзор неявной полигонизации поверхности». Обзоры вычислительной техники ACM . 47 (4): 60:1–60:39. дои : 10.1145/2732197 . S2CID 14395359 .
- ^ Уивилл, Джефф; Уивилл, Брайан; Макфитерс, Крейг (1986). «Структуры данных для мягких объектов». Визуальный компьютер . 2 (4): 227–234. дои : 10.1007/BF01900346 . S2CID 18993002 .
- ^ Нильсон, генеральный менеджер; Хаманн, Б. (1991). «Асимптотический решатель: разрешение неоднозначности в маршевых кубах». Продолжается визуализация '91 . стр. 83–91. дои : 10.1109/visual.1991.175782 . ISBN 978-0818622458 . S2CID 35739150 .
- ^ Jump up to: а б Натараджан, Б.К. (январь 1994 г.). «О создании топологически согласованных изоповерхностей из однородных образцов». Визуальный компьютер . 11 (1): 52–62. дои : 10.1007/bf01900699 . ISSN 0178-2789 . S2CID 526698 .
- ^ Jump up to: а б В., Черняев Е. (1995). Marching Cubes 33: построение топологически правильных изоповерхностей: представлено на выставке ГРАФИКОН '95, Санкт-Петербург, Россия, 03-07.07.1995 . ЦЕРН. Отдел вычислительной техники и сетей. OCLC 897851506 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Нильсон, генеральный менеджер (2003). «На маршевых кубиках». Транзакции IEEE по визуализации и компьютерной графике . 9 (3): 283–297. дои : 10.1109/TVCG.2003.1207437 .
- ^ Левинер, Томас; Лопес, Элио; Виейра, Антониу Уилсон; Таварес, Геован (январь 2003 г.). «Эффективная реализация случаев маршевых кубов с топологическими гарантиями». Журнал графических инструментов . 8 (2): 1–15. дои : 10.1080/10867651.2003.10487582 . ISSN 1086-7651 . S2CID 6195034 .
- ^ Лопес, А.; Бродли, К. (2003). «Повышение надежности и точности алгоритма марширующих кубов для изоповерхности» (PDF) . Транзакции IEEE по визуализации и компьютерной графике . 9 : 16–29. дои : 10.1109/tvcg.2003.1175094 . hdl : 10316/12925 .
- ^ Кастодио, Лис; Этене, Тьяго; Песко, Синезио; Сильва, Клаудио (ноябрь 2013 г.). «Практические соображения о топологической корректности Marching Cubes 33». Компьютеры и графика . 37 (7): 840–850. CiteSeerX 10.1.1.361.3074 . дои : 10.1016/j.cag.2013.04.004 . ISSN 0097-8493 . S2CID 1930192 .
См. также
[ редактировать ]Внешние ссылки
[ редактировать ]- Лоренсен, МЫ; Клайн, Харви Э. (1987). «Марширующие кубы: алгоритм построения трехмерной поверхности высокого разрешения». Компьютерная графика ACM . 21 (4): 163–169. CiteSeerX 10.1.1.545.613 . дои : 10.1145/37402.37422 .
- Нильсон, генеральный менеджер; Хаманн, Б. (1991). «Асимптотический решатель: разрешение неоднозначности в маршевых кубах». Продолжается визуализация '91 . стр. 83–91. дои : 10.1109/VISUAL.1991.175782 . ISBN 9780818622458 . S2CID 35739150 .
- Монтани, Клаудио; Скатени, Риккардо; Скопиньо, Роберто (1994). «Модифицированная справочная таблица для неявного устранения неоднозначности марширующих кубов». Визуальный компьютер . 10 (6): 353–355. дои : 10.1007/BF01900830 . S2CID 31316542 .
- Нильсон, генеральный менеджер; Джунвон Сон (1997). «Интервальная объемная тетраэдризация». Слушания. Визуализация '97 (Кат. № 97CB36155) . стр. 221–228. дои : 10.1109/VISUAL.1997.663886 . ISBN 978-0-8186-8262-9 . S2CID 5575097 .
- Пол Бурк. «Обзор и исходный код» .
- Мэтью Уорд. «Обзор GameDev» .
- «Вводное описание с дополнительной графикой» .
- «Марширующие кубики» . . Немного из ранней истории Marching Cubes.
- Ньюман, Тимоти С.; Йи, Хонг (2006). «Обзор алгоритма марширующих кубиков». Компьютеры и графика . 30 (5): 854–879. CiteSeerX 10.1.1.413.7458 . дои : 10.1016/j.cag.2006.07.021 .
- Стефан Диль. «Специализированные алгоритмы визуализации» (PDF) .