Изоповерхность является трехмерным аналогом изолинии . Это поверхность, которая представляет точки постоянного значения (например, давления, температуры, скорости, плотности) в объеме пространства; другими словами, это набор уровня непрерывной функции , область определения которой - трехмерное пространство.
Изоповерхность иногда используется в более общем смысле применительно к доменам более чем трех измерений. [1]
Приложения [ править ]
Изоповерхности обычно отображаются с использованием компьютерной графики и используются в качестве методов визуализации данных в вычислительной гидродинамике (CFD), позволяя инженерам изучать особенности потока жидкости (газа или жидкости) вокруг объектов, таких как крылья самолета . Изоповерхность может представлять собой отдельную ударную волну в сверхзвуковом полете, или могут быть созданы несколько изоповерхностей, показывающих последовательность значений давления в воздухе, обтекающем крыло. Изоповерхности, как правило, являются популярной формой визуализации наборов объемных данных, поскольку их можно визуализировать с помощью простой полигональной модели, которую можно очень быстро нарисовать на экране.
В медицинской визуализации изоповерхности могут использоваться для представления областей определенной плотности в трехмерном компьютерном томографе, что позволяет визуализировать внутренние органы , кости или другие структуры.
Многие другие дисциплины, которые интересуются трехмерными данными, часто используют изоповерхности для получения информации о фармакологии , химии , геофизике и метеорологии .
Алгоритмы реализации [ править ]
Маршевые кубики [ править ]
Походные кубы алгоритм впервые был опубликован в 1987 SIGGRAPH производства по Lorensen и Cline, [2] , и это создает поверхность при пересечении ребер данных объемной сетки с объемным контуром. Там, где поверхность пересекает край, алгоритм создает вершину. Используя таблицу различных треугольников в зависимости от различных схем пересечения ребер, алгоритм может создать поверхность. Этот алгоритм имеет решения для реализации как на CPU, так и на GPU.
Асимптотическое решение [ править ]
Асимптотический Решающий алгоритм был разработан в качестве дополнения к марширующих кубов , чтобы разрешить возможность неоднозначности в нем.
Марширующие тетраэдры [ править ]
Маршируют тетраэдры алгоритм был разработан в качестве дополнения к марширующих кубов , чтобы решить двусмысленность в этом алгоритме и создать более высокое качество выходного поверхности.
Поверхностные сети [ править ]
Алгоритм Surface Nets размещает пересекающуюся вершину в середине объемного вокселя, а не на краях, что приводит к более гладкой выходной поверхности.
Двойное контурирование [ править ]
Двойной контурной алгоритм был впервые опубликован в 2002 году SIGGRAPH разбирательства Ju и Losasso, [3] разработан в качестве расширения для обеих поверхностных сеток и марширующих кубов . Он сохраняет двойную вершину в вокселе, но больше не в центре. Двойное контурирование использует положение и нормаль того места, где поверхность пересекает края воксела, для интерполяции положения двойной вершины в вокселе . Это дает преимущество в сохранении острых или гладких поверхностей, где поверхностные сетки часто выглядят блочными или неправильно скошенными. [4] Двойное контурированиечасто используется генерация поверхности, которая использует октодеревья в качестве оптимизации, чтобы адаптировать количество треугольников на выходе к сложности поверхности.
Двойное контурирование коллектора [ править ]
Двойственное контурирование многообразия включает анализ окрестностей октодерева для сохранения непрерывности поверхности многообразия [5] [6] [7]
Примеры [ править ]
Примерами изоповерхностей являются Metaballs или blobby objects, используемые в 3D-визуализации. Более общий способ построения изоповерхности - использовать представление функции .
См. Также [ править ]
- Триангуляция (геометрия)
- Неявная поверхность
- Объемный рендеринг
Ссылки [ править ]
- ^ "Уравнение Гамильтона – Якоби" , Википедия , 06.12.2020 , получено 14.12.2020
- ^ Уильям Э. Лоренсен, Харви Э. Клайн: Марширующие кубики: алгоритм построения трехмерной поверхности с высоким разрешением. В кн .: Компьютерная графика, т. 21, № 4 июля 1987 г.
- ^ Тао Джу, Фрэнк Лосассо, Скотт Шефер, Джо Уоррен: Двойное контурирование данных Hermite. Архивировано 18 сентября 2017 г. в Wayback Machine. В: Транзакции ACM по графике, том 21, выпуск 3, июль 2002 г.
- ^ https://0fps.net/2012/07/12/smooth-voxel-terrain-part-2/
- ^ Скотт Шефер, Тао Джу, Джо Уоррен (2006). "Двойное контурирование многообразия" (PDF) . CS1 maint: несколько имен: список авторов ( ссылка )
- ↑ Lin X (30 декабря 2015 г.). Двойное контурирование коллектора .
- ↑ Lin X (23 октября 2016 г.). «Репозиторий Github - изоповерхность» .
- Чарльз Д. Хансен; Крис Р. Джонсон (2004). Справочник по визуализации . Академическая пресса. С. 7–11. ISBN 978-0-12-387582-2.
Внешние ссылки [ править ]
- Изоповерхностная полигонизация
- Пакет contourist для числового Python генерирует триангуляции изоповерхностей для произвольных трехмерных функций, которые могут отображаться с использованием HTML5, как показано в этом jsfiddle.