Тесселяция (компьютерная графика)

В компьютерной графике тесселяция — это разделение наборов данных полигонов (иногда называемых наборами вершин ), представляющих объекты сцены на подходящие структуры для рендеринга . Специально для рендеринга в реальном времени данные мозаично разбиваются на треугольники , например в OpenGL 4.0 и Direct3D 11 . [1] [2]
В графическом рендеринге [ править ]
Ключевое преимущество тесселяции для графики в реальном времени заключается в том, что она позволяет динамически добавлять и вычитать детали из трехмерной полигональной сетки и ее краев силуэта на основе параметров управления (часто расстояния камеры). В ранее ведущих методах реального времени, таких как параллакс-картирование и рельефное картографирование , детали поверхности можно было моделировать на уровне пикселей, но детализация краев силуэта была фундаментально ограничена качеством исходного набора данных. [3]
В конвейере Direct3D 11 (часть DirectX 11) графическим примитивом является патч . [4] Тесселятор в соответствии с параметрами тесселяции , на основе треугольников генерирует тесселяцию патча такими как TessFactor , который управляет степенью мелкости сетки . Тесселяция вместе с шейдерами , такими как шейдер Фонга , позволяет создавать более гладкие поверхности, чем было бы создано исходной сеткой. [4] Переложив процесс тесселяции на аппаратное обеспечение графического процессора , сглаживание можно выполнять в реальном времени. Тесселяция также может использоваться для реализации поверхностей разделения , масштабирования уровня детализации и точного отображения смещения . [5] OpenGL 4.0 использует аналогичный конвейер, где тесселяция треугольников контролируется шейдером управления тесселяцией и набором из четырех параметров тесселяции. [6]
В системе автоматизированного проектирования [ править ]
В автоматизированном проектировании построенная конструкция представлена топологической моделью граничного представления , где аналитические трехмерные поверхности и кривые, ограниченные гранями, ребрами и вершинами, составляют непрерывную границу трехмерного тела.Произвольные трехмерные тела часто слишком сложны для непосредственного анализа. Таким образом, они аппроксимируются (тесселяируются) сеткой из небольших, легко анализируемых частей трехмерного объема — обычно это либо неправильные тетраэдры , либо неправильные шестигранники . Сетка используется для анализа методом конечных элементов . [ нужна ссылка ]
Сетка поверхности обычно создается для отдельных граней и ребер (аппроксимированных полилиниями ), так что исходные предельные вершины включаются в сетку. Чтобы гарантировать, что аппроксимация исходной поверхности соответствует потребностям дальнейшей обработки, для генератора сетки поверхности обычно определяются три основных параметра:
- Максимально допустимое расстояние между плоским полигоном аппроксимации и поверхностью (известное как «провисание»). Этот параметр гарантирует, что сетка достаточно похожа на исходную аналитическую поверхность (или полилиния похожа на исходную кривую).
- Максимально допустимый размер полигона аппроксимации (для триангуляций это может быть максимально допустимая длина сторон треугольника). Этот параметр обеспечивает достаточную детализацию для дальнейшего анализа.
- Максимально допустимый угол между двумя соседними полигонами аппроксимации (на одной грани). Этот параметр гарантирует, что даже очень маленькие выступы или впадины, которые могут оказать существенное влияние на анализ, не исчезнут в сетке.
Алгоритм создания сетки обычно контролируется тремя вышеуказанными и другими параметрами. Некоторые типы компьютерного анализа построенной конструкции требуют адаптивного уточнения сетки , то есть сетки, которая становится более мелкой (с использованием более строгих параметров) в областях, где анализ требует большей детализации. [1] [2]
См. также [ править ]
- ATI TruForm - бренд аппаратного устройства тесселяции с 2001 года.
- TeraScale (микроархитектура) § Аппаратная тесселяция - новое устройство, выпущенное в июне 2007 г.
- Graphics Core Next § Геометрический процессор — самая последняя модель с января 2011 г.
- Тесселяционный шейдер
- Прогрессивная сетка
- Генерация сетки
Внешние ссылки [ править ]
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б Графическая система OpenGL®: спецификация (версия 4.0 (базовый профиль) — 11 марта 2010 г.)
- ↑ Перейти обратно: Перейти обратно: а б MSDN: Обзор тесселяции
- ^ Рост, Рэнди (30 июля 2009 г.). Язык шейдеров OpenGL . Аддисон-Уэсли. п. 345. ИСБН 978-0321637635 .
- ↑ Перейти обратно: Перейти обратно: а б Аби-Чахла, Феди (16 сентября 2008 г.). «Тесселяция» . Аппаратное обеспечение Тома . Проверено 27 апреля 2013 г.
- ^ Тарик, Сара. «Тесселяция D3D11» (PDF) . Нвидиа . Проверено 27 апреля 2013 г.
- ^ «Тесселяция» . OpenGL . Проверено 27 апреля 2013 г.