В компьютерной графике тесселяция — это разделение наборов данных полигонов (иногда называемых наборами вершин ), представляющих объекты на сцене, на подходящие структуры для рендеринга . В частности, для рендеринга в реальном времени данные тесселируются в треугольники , например, в OpenGL 4.0 и Direct3D 11. [ 1] [2]
Ключевым преимуществом тесселяции для графики в реальном времени является то, что она позволяет динамически добавлять и вычитать детали из трехмерной полигональной сетки и ее контуров силуэта на основе параметров управления (часто расстояния камеры). В ранее лидирующих методах реального времени, таких как отображение параллакса и отображение рельефа , детали поверхности могли моделироваться на уровне пикселей, но детализация контуров силуэта была принципиально ограничена качеством исходного набора данных. [3]
В конвейере Direct3D 11 (часть DirectX 11) графическим примитивом является патч . [4] Тесселятор генерирует тесселяцию патча на основе треугольников в соответствии с параметрами тесселяции, такими как TessFactor , который управляет степенью детализации сетки . Тесселяция вместе с шейдерами , такими как шейдер Фонга , позволяет создавать более гладкие поверхности, чем те, которые были бы сгенерированы исходной сеткой. [4] Выгружая процесс тесселяции на оборудование графического процессора , сглаживание может выполняться в реальном времени. Тесселяция также может использоваться для реализации поверхностей подразделения , масштабирования уровня детализации и точного отображения смещения . [5] OpenGL 4.0 использует аналогичный конвейер, где тесселяция в треугольники контролируется шейдером управления тесселяцией и набором из четырех параметров тесселяции. [6]
В автоматизированном проектировании сконструированная конструкция представлена топологической моделью граничного представления , где аналитические трехмерные поверхности и кривые, ограниченные гранями, ребрами и вершинами, составляют непрерывную границу трехмерного тела. Произвольные трехмерные тела часто слишком сложны для прямого анализа. Поэтому они аппроксимируются (тесселируются) сеткой небольших , легко анализируемых частей трехмерного объема — обычно либо неправильных тетраэдров , либо неправильных гексаэдров . Сетка используется для конечно-элементного анализа . [ требуется цитата ]
Сетка поверхности обычно генерируется для отдельных граней и ребер (аппроксимируется к полилиниям ), так что исходные предельные вершины включаются в сетку. Чтобы гарантировать, что аппроксимация исходной поверхности соответствует потребностям дальнейшей обработки, для генератора поверхностной сетки обычно определяются три основных параметра:
Алгоритм, генерирующий сетку, обычно контролируется тремя указанными выше и другими параметрами. Некоторые типы компьютерного анализа построенной конструкции требуют адаптивного уточнения сетки , которое представляет собой сетку, сделанную тоньше (используя более сильные параметры) в областях, где анализ требует большей детализации. [1] [2]