diff --git a/docs/3d/tessellation_intro.md b/docs/3d/tessellation_intro.md new file mode 100644 index 0000000..63e462f --- /dev/null +++ b/docs/3d/tessellation_intro.md @@ -0,0 +1,51 @@ +--- +id: algoritm_eksporta +title: Алгоритмы тесселяции САПР моделей. +--- + +

Алгоритмы тесселяции САПР моделей.

+ +- [Предисловие](#предисловие) +- [Примеры популярных алгоритмов тесселяции:](#примеры) + - [IncrementalMesh](#IncrementalMesh) + - [Netgen](#netgen) + - [Gmsh](#gmsh) + +## Предисловие. +Основными разновидностями моделирования в 3д графике являются: + +- полигональное моделирование, описывает поверхность массивом точек (Mesh); +- САПР моделирование, описывает поверхность математической функцией (CAD). + +При **полигональном** моделировании выбирается некий **предел** точек, поэтому не возможно избежать **изломов** криволинейной поверхности, создать **идеальную** ее плавность. В данном случае САПР имеет преимущество. + +В то же время, для визуализации 3д графики на мониторе компьютера, все 3д модели, в том числе и САПР, автоматически переводятся в полигональную сетку. В данном случае полигональное моделирование имеет преимущество. + +- При визуализации полигональных моделей, их поверхность практически не изменяется (некоторое изменение будет в любом случае). + +- При визуализация САПР моделей происходит автоматическая **тесселяция**, которая дискретизирует поверхность в сетку из треугольников, при этом нужно выбирать баланс между избыточной **ресурсоемкостью** на визуализацию, либо **точностью** визуализации. + +## Примеры популярных алгоритмов тесселяции (Meshing). +Все алгоритмы тесселяции схожи в том что строят массив точек изходя из предела дискретизации. + +### IncrementalMesh. +IncrementalMesh алгоритм является частью Open CASCADE Technology (OCCT), САПР библиотеки. +Это один из наиболее универсальных алгоритмов, особенно подходит для поделей визуализации, машинного обучения, симуляции машин и механизмов. +Алгоритм реализует тесселяцию на основе **допуска** отклонения по расстоянию и углу, помещает тесселированную прокси фигуры объем самой САПР модели, и определяет массив точек исходя из заданного допуском отклонения от оригинала. + +[подробнее](https://dev.opencascade.org/doc/overview/html/occt_user_guides__mesh.html "подробная статья по ссылке") + +### *Алгоритмы тесселяции для Метода Конечных Элементов (FEM).* + +*Следующие алгоритмы схожие по назначению, это, в основном, механика твёрдого деформируемого тела, и подобные исследования для материалов объемов тел, которые расчитываются FEM методами.* + +#### Netgen. +Netgen использует несколько параметров, включая максимальный и минимальный размеры элементов, степень детализации сетки, количество шагов оптимизации и т. д. +Netgen в основном работает в 3д. В зависимости от заданных параметров он может изготавливать элементы с размерами, адаптированными к локальным кривизнам - большими на участках плоской поверхности и меньшими на гнутых участках. Как только сетка построена для ребер и граней, Netgen выполняет дополнительные итерации для упрощения сетки. Установка этого параметра в 0 отключает упрощение. Netgen в целом медленнее, чем Mefisto, и более чувствителен к качеству входных моделей. + +[подробнее](https://ngsolve.org/ "подробная статья по ссылке") + +#### Gmsh. +Gmsh работает в 3д и делает 4 прохода: анализ геометрии, анализ сетки, тесселяция, постобработка. Gmsh использует упоминаемую выше OCCT для функций конструктивной геометрии и взаимодействует с дополнительной внешней сеткой и библиотеками адаптации сетки Netgen и Mmg3d, для упрощения, на этапе постобработки + +[подробнее](https://gmsh.info/ "подробная статья по ссылке") diff --git a/sidebars.js b/sidebars.js index 9ec1c12..c2def80 100644 --- a/sidebars.js +++ b/sidebars.js @@ -74,5 +74,12 @@ module.exports = { 'workflow-rules' ], }, + { + type: 'category', + label: '3д графика', + items: [ + '3d/tessellation_intro' + ], + }, ], -}; \ No newline at end of file +};