Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Изоповерхность является трехмерным аналогом изолинии . Это поверхность, которая представляет точки постоянного значения (например, давления, температуры, скорости, плотности) в объеме пространства; другими словами, это набор уровня непрерывной функции , область определения которой - трехмерное пространство.

Изоповерхность иногда используется в более общем смысле применительно к доменам более чем трех измерений. [1]

Изоповерхность завихренности, тянущаяся от лопасти пропеллера. Обратите внимание, что это изоповерхность, нанесенная с помощью цветового среза.

Приложения [ править ]

Изоповерхности обычно отображаются с использованием компьютерной графики и используются в качестве методов визуализации данных в вычислительной гидродинамике (CFD), позволяя инженерам изучать особенности потока жидкости (газа или жидкости) вокруг объектов, таких как крылья самолета . Изоповерхность может представлять собой отдельную ударную волну в сверхзвуковом полете, или могут быть созданы несколько изоповерхностей, показывающих последовательность значений давления в воздухе, обтекающем крыло. Изоповерхности, как правило, являются популярной формой визуализации наборов объемных данных, поскольку их можно визуализировать с помощью простой полигональной модели, которую можно очень быстро нарисовать на экране.

В медицинской визуализации изоповерхности могут использоваться для представления областей определенной плотности в трехмерном компьютерном томографе, что позволяет визуализировать внутренние органы , кости или другие структуры.

Многие другие дисциплины, которые интересуются трехмерными данными, часто используют изоповерхности для получения информации о фармакологии , химии , геофизике и метеорологии .

Алгоритмы реализации [ править ]

Маршевые кубики [ править ]

Походные кубы алгоритм впервые был опубликован в 1987 SIGGRAPH производства по Lorensen и Cline, [2] , и это создает поверхность при пересечении ребер данных объемной сетки с объемным контуром. Там, где поверхность пересекает край, алгоритм создает вершину. Используя таблицу различных треугольников в зависимости от различных схем пересечения ребер, алгоритм может создать поверхность. Этот алгоритм имеет решения для реализации как на CPU, так и на GPU.

Асимптотическое решение [ править ]

Асимптотический Решающий алгоритм был разработан в качестве дополнения к марширующих кубов , чтобы разрешить возможность неоднозначности в нем.

Марширующие тетраэдры [ править ]

Маршируют тетраэдры алгоритм был разработан в качестве дополнения к марширующих кубов , чтобы решить двусмысленность в этом алгоритме и создать более высокое качество выходного поверхности.

Поверхностные сети [ править ]

Алгоритм Surface Nets размещает пересекающуюся вершину в середине объемного вокселя, а не на краях, что приводит к более гладкой выходной поверхности.

Двойное контурирование [ править ]

Двойной контурной алгоритм был впервые опубликован в 2002 году SIGGRAPH разбирательства Ju и Losasso, [3] разработан в качестве расширения для обеих поверхностных сеток и марширующих кубов . Он сохраняет двойную вершину в вокселе, но больше не в центре. Двойное контурирование использует положение и нормаль того места, где поверхность пересекает края воксела, для интерполяции положения двойной вершины в вокселе . Это дает преимущество в сохранении острых или гладких поверхностей, где поверхностные сетки часто выглядят блочными или неправильно скошенными. [4] Двойное контурированиечасто используется генерация поверхности, которая использует октодеревья в качестве оптимизации, чтобы адаптировать количество треугольников на выходе к сложности поверхности.

Двойное контурирование коллектора [ править ]

Двойственное контурирование многообразия включает анализ окрестностей октодерева для сохранения непрерывности поверхности многообразия [5] [6] [7]

Примеры [ править ]

Примерами изоповерхностей являются Metaballs или blobby objects, используемые в 3D-визуализации. Более общий способ построения изоповерхности - использовать представление функции .

См. Также [ править ]

  • Триангуляция (геометрия)
  • Неявная поверхность
  • Объемный рендеринг

Ссылки [ править ]

  1. ^ "Уравнение Гамильтона – Якоби" , Википедия , 06.12.2020 , получено 14.12.2020
  2. ^ Уильям Э. Лоренсен, Харви Э. Клайн: Марширующие кубики: алгоритм построения трехмерной поверхности с высоким разрешением. В кн .: Компьютерная графика, т. 21, № 4 июля 1987 г.
  3. ^ Тао Джу, Фрэнк Лосассо, Скотт Шефер, Джо Уоррен: Двойное контурирование данных Hermite. Архивировано 18 сентября 2017 г. в Wayback Machine. В: Транзакции ACM по графике, том 21, выпуск 3, июль 2002 г.
  4. ^ https://0fps.net/2012/07/12/smooth-voxel-terrain-part-2/
  5. ^ Скотт Шефер, Тао Джу, Джо Уоррен (2006). "Двойное контурирование многообразия" (PDF) . CS1 maint: несколько имен: список авторов ( ссылка )
  6. Lin X (30 декабря 2015 г.). Двойное контурирование коллектора .
  7. Lin X (23 октября 2016 г.). «Репозиторий Github - изоповерхность» .
  • Чарльз Д. Хансен; Крис Р. Джонсон (2004). Справочник по визуализации . Академическая пресса. С. 7–11. ISBN 978-0-12-387582-2.

Внешние ссылки [ править ]

  • Изоповерхностная полигонизация
  • Пакет contourist для числового Python генерирует триангуляции изоповерхностей для произвольных трехмерных функций, которые могут отображаться с использованием HTML5, как показано в этом jsfiddle.