Изоповерхность — это трехмерный аналог изолинии . Это поверхность , которая представляет точки постоянного значения (например , давление , температура , скорость , плотность ) в объеме пространства; другими словами, это множество уровня непрерывной функции , областью определения которой является 3-пространство .
Термин «изолиния» также иногда используется для областей, имеющих более 3 измерений. [1]
Изоповерхности обычно отображаются с помощью компьютерной графики и используются в качестве методов визуализации данных в вычислительной гидродинамике (CFD), позволяя инженерам изучать особенности потока жидкости (газа или жидкости) вокруг объектов, таких как крылья самолета . Изоповерхность может представлять отдельную ударную волну в сверхзвуковом полете, или может быть сгенерировано несколько изоповерхностей, показывающих последовательность значений давления в воздухе, обтекающем крыло. Изоповерхности, как правило, являются популярной формой визуализации для объемных наборов данных, поскольку они могут быть визуализированы с помощью простой полигональной модели, которую можно очень быстро нарисовать на экране.
В медицинской визуализации изоповерхности могут использоваться для представления областей определенной плотности при трехмерном КТ- сканировании, что позволяет визуализировать внутренние органы , кости или другие структуры.
Многие другие дисциплины, интересующиеся трехмерными данными, часто используют изоповерхности для получения информации о фармакологии , химии , геофизике и метеорологии .
Алгоритм marching cubes был впервые опубликован в трудах SIGGRAPH 1987 года Лоренсеном и Клайном [2] , и он создает поверхность путем пересечения краев сетки объема данных с контуром объема. Там, где поверхность пересекает край, алгоритм создает вершину. Используя таблицу различных треугольников в зависимости от различных шаблонов пересечения краев, алгоритм может создать поверхность. Этот алгоритм имеет решения для реализации как на CPU, так и на GPU.
Асимптотический решающий алгоритм был разработан как расширение алгоритма марширующих кубов с целью устранения возможной неоднозначности в нем.
Алгоритм марширующих тетраэдров был разработан как расширение алгоритма марширующих кубов с целью устранения неоднозначности в этом алгоритме и создания выходной поверхности более высокого качества.
Алгоритм Surface Nets помещает пересекающуюся вершину в середину объемного воксела, а не по краям, что приводит к более гладкой выходной поверхности.
Алгоритм двойного контурирования был впервые опубликован в трудах SIGGRAPH 2002 года Джу и Лосассо [3], разработанных как расширение как для поверхностных сетей, так и для марширующих кубов. Он сохраняет двойную вершину внутри воксела , но больше не в центре. Двойное контурирование использует положение и нормаль того места, где поверхность пересекает края воксела, для интерполяции положения двойной вершины внутри воксела. Это имеет преимущество сохранения острых или гладких поверхностей, где поверхностные сети часто выглядят блочными или неправильно скошенными. [4] Двойное контурирование часто использует генерацию поверхности, которая использует октодеревья в качестве оптимизации для адаптации количества треугольников на выходе к сложности поверхности.
Двойственное контурирование многообразия включает анализ окрестности октодерева для поддержания непрерывности поверхности многообразия [5] [6] [7]
Примерами изоповерхностей являются « Метаболы » или «объекты-капли», используемые в 3D-визуализации. Более общий способ построения изоповерхности — использовать представление функции .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )