Изоповерхность
Изоповерхность — это трёхмерный аналог изолинии . Это поверхность , которая представляет точки постоянной величины (например , давления , температуры , скорости , плотности ) в объеме пространства; другими словами, это множество уровня непрерывной функции которой , областью определения является 3-пространство .
Термин изолиния также иногда используется для областей более чем трех измерений. [1]
Приложения [ править ]
Изоповерхности обычно отображаются с помощью компьютерной графики и используются в качестве методов визуализации данных в вычислительной гидродинамике (CFD), позволяя инженерам изучать особенности потока жидкости (газа или жидкости) вокруг объектов, таких как крылья самолета . Изоповерхность может представлять собой отдельную ударную волну при сверхзвуковом полете или может быть создано несколько изоповерхностей, показывающих последовательность значений давления в воздухе, обтекающем крыло. Изоповерхности, как правило, являются популярной формой визуализации объемных наборов данных, поскольку их можно визуализировать с помощью простой полигональной модели, которую можно очень быстро нарисовать на экране.
В медицинской визуализации изоповерхности могут использоваться для представления областей определенной плотности на трехмерной компьютерной томографии, что позволяет визуализировать внутренние органы , кости или другие структуры.
Многие другие дисциплины, интересующиеся трехмерными данными, часто используют изоповерхности для получения информации о фармакологии , химии , геофизике и метеорологии .
Алгоритмы реализации [ править ]
Марширующие кубики [ править ]
Алгоритм марширующих кубов был впервые опубликован в материалах SIGGRAPH 1987 года Лоренсеном и Клайном. [2] и он создает поверхность путем пересечения краев сетки объема данных с контуром объема. Там, где поверхность пересекает край, алгоритм создает вершину. Используя таблицу различных треугольников в зависимости от различных шаблонов пересечений ребер, алгоритм может создать поверхность. Этот алгоритм имеет решения для реализации как на CPU, так и на GPU.
Асимптотический решатель [ править ]
Алгоритм асимптотического решателя был разработан как расширение маршевых кубов , чтобы устранить возможность неоднозначности в нем.
Марширующие тетраэдры [ править ]
Алгоритм марширующих тетраэдров был разработан как расширение марширующих кубов , чтобы устранить неоднозначность в этом алгоритме и создать выходную поверхность более высокого качества.
Поверхностные сети [ править ]
Алгоритм Surface Nets помещает пересекающуюся вершину в середину объемного воксела, а не по краям, что приводит к более гладкой выходной поверхности.
Двойной контуринг [ править ]
Алгоритм двойного контурирования был впервые опубликован в материалах SIGGRAPH в 2002 году Джу и Лосассо. [3] Разработан как расширение как наземных сетей , так и маршевых кубов. Он сохраняет двойную вершину внутри вокселя , но уже не в центре. Двойное контурирование использует положение и нормаль того места, где поверхность пересекает края воксела, для интерполяции положения двойной вершины внутри воксела. Преимущество этого метода заключается в сохранении острых или гладких поверхностей, тогда как поверхностные сетки часто выглядят блочными или неправильно скошенными. [4] При двойном контурировании часто используется генерация поверхности, которая использует окто-деревья в качестве оптимизации для адаптации количества треугольников на выходе к сложности поверхности.
Двойной контур коллектора [ править ]
многообразия Двойной контур включает анализ окрестности октодерева для сохранения непрерывности поверхности многообразия. [5] [6] [7]
Примеры [ править ]
Примерами изоповерхностей являются « Меташары » или «объекты-капли», используемые в 3D-визуализации. Более общий способ построения изоповерхности — использовать представление функции .
См. также [ править ]
Ссылки [ править ]
- ^ «Уравнение Гамильтона – Якоби» , Arc.Ask3.Ru , 06 декабря 2020 г. , получено 14 декабря 2020 г.
- ^ Уильям Э. Лоренсен, Харви Э. Клайн: Марширующие кубы: алгоритм построения трехмерной поверхности с высоким разрешением. В: Компьютерная графика, Vol. 21, №. 4 июля 1987 г.
- ^ Тао Джу, Фрэнк Лосассо, Скотт Шефер, Джо Уоррен: Двойное контурирование данных Эрмита. Архивировано 18 сентября 2017 г. в Wayback Machine в: Транзакции ACM в графике, том 21, выпуск 3, июль 2002 г.
- ^ «Гладкая воксельная местность (Часть 2)» . 12 июля 2012 г.
- ^ Скотт Шефер, Тао Джу, Джо Уоррен (2006). «Двойной контур коллектора» (PDF) .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Лин Икс (30 декабря 2015 г.). Двойной контуринг коллектора . Архивировано из оригинала 11 сентября 2020 года . Проверено 28 апреля 2020 г.
- ^ Лин Икс (23 октября 2016 г.). «Репозиторий Github — изоповерхность» . Гитхаб .
- Чарльз Д. Хансен; Крис Р. Джонсон (2004). Руководство по визуализации . Академическая пресса. стр. 7–11. ISBN 978-0-12-387582-2 .
Внешние ссылки [ править ]
- Полигонизация изоповерхностей
- Пакет контуристов для числового Python генерирует триангуляции изоповерхностей для произвольных трехмерных функций, которые можно отобразить с помощью HTML5, как показано в этом jsfiddle.