robossembler.org/docs/technologies/tesselation.md
Igor Brylyov 48f2b974db - Подправлена вёрстка markdown
- Исправлены точки, запятые
- Перенёс статью в раздел  Технологии
2023-01-10 08:57:20 +00:00

41 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: tesselation
title: Алгоритмы тесселяции моделей САПР
---
## Предисловие
Основными разновидностями моделирования в 3D-графике являются:
- Полигональное моделирование, описывает поверхность массивом точек (Mesh);
- САПР моделирование, описывает поверхность математической функцией (CAD).
При **полигональном** моделировании выбирается некий **предел** точек, поэтому не возможно избежать **изломов** криволинейной поверхности, создать **идеальную** ее плавность. В данном случае САПР имеет преимущество.
В то же время, для визуализации 3д графики на мониторе компьютера, все 3D-модели, в том числе и САПР, автоматически переводятся в полигональную сетку. В данном случае полигональное моделирование имеет преимущество.
- При визуализации полигональных моделей, их поверхность практически не изменяется (некоторое изменение будет в любом случае).
- При визуализация САПР моделей происходит автоматическая **тесселяция**, которая дискретизирует поверхность в сетку из треугольников, при этом нужно выбирать баланс между избыточной **ресурсоемкостью** на визуализацию, либо **точностью** визуализации.
## Примеры популярных алгоритмов тесселяции (meshing)
Все алгоритмы тесселяции схожи в том, что строят массив точек, иcходя из предела дискретизации.
### IncrementalMesh
IncrementalMesh алгоритм является частью САПР библиотеки Open CASCADE Technology (OCCT). Это один из наиболее универсальных алгоритмов. Он хорошо подходит для визуализации, машинного обучения, симуляции машин и механизмов. Алгоритм реализует тесселяцию на основе **допуска** отклонения по расстоянию и углу. Он помещает тесселированные прокси фигуры в объем самой САПР модели и определяет массив точек исходя из заданного допуском отклонения от оригинала.
Подробнее в статье [OCCT User Guides](https://dev.opencascade.org/doc/overview/html/occt_user_guides__mesh.html)
### *Алгоритмы тесселяции для Метода Конечных Элементов (FEM)*
*Следующие алгоритмы схожие по назначению, это, в основном, механика твёрдого деформируемого тела, и подобные исследования для материалов объемов тел, которые расчитываются FEM методами.*
#### Netgen
Netgen использует несколько параметров, включая максимальный и минимальный размеры элементов, степень детализации сетки, количество шагов оптимизации и т.д. Netgen в основном работает в 3D. В зависимости от заданных параметров он может изготавливать элементы с размерами, адаптированными к локальным кривизнам - большими на участках плоской поверхности и меньшими на гнутых участках. Как только сетка построена для ребер и граней, Netgen выполняет дополнительные итерации для упрощения сетки. Установка этого параметра в 0 отключает упрощение. Netgen в целом медленнее, чем Mefisto, и более чувствителен к качеству входных моделей.
Подробнее на сайте проекта [ngsolve.org](https://ngsolve.org/)
#### Gmsh
Gmsh работает в 3D и делает 4 прохода: анализ геометрии, анализ сетки, тесселяция, постобработка. Gmsh использует упомянутую выше OCCT для функций конструктивной геометрии и взаимодействует с дополнительной внешней сеткой и библиотеками адаптации сетки Netgen и Mmg3d для упрощения на этапе постобработки.
Подробнее на сайте проекта [gmsh.info](https://gmsh.info/)