Как визуализируется одна поверхность NURBS?

Я знаю, что GPU эффективен для рендеринга треугольников. GPU не может визуализировать поверхность NURBS напрямую. Из ссылки NURBS в графическом конвейере OpenGL мы узнаем это. Для рендеринга NURBS требуется триангуляция. Я не знаю, где происходит операция триангуляции. Это выполняется программным обеспечением CAD для моделирования или графическим процессором? Я думаю, что это делается с помощью программного обеспечения для моделирования CAD. Таким образом, функциональность триангуляции поверхности NURBS является одной из основных задач для любого программного обеспечения моделирования CAD? Эта задача очень сложная или почти полностью решена академическими исследователями?

Почему у меня есть этот вопрос? Я считаю, что поверхности NURBS гладкие в программном обеспечении CAD моделирования? Однако, если я сначала преобразую поверхность NURBS в треугольную сетку и открою ее с помощью MeshLab. В MeshLab некоторые регионы не являются гладкими. Я надеюсь узнать, какая часть трубопровода вызывает проблему.

2 ответа

Существует несколько возможных причин увидеть разные изображения для рендеринга между программным обеспечением CAD Modeling, которое вы использовали, и MeshLab:

  • Когда программное обеспечение CAD визуализирует поверхность NURBS, разрешение треугольной сетки, которую оно генерирует внутри, обычно будет зависеть от уровня масштабирования. Когда вы использовали другое программное обеспечение (или даже команду в том же программном обеспечении САПР) для преобразования поверхности NURBS в треугольную сетку, нет гарантии, что вы получите ту же треугольную сетку.

  • Когда программное обеспечение САПР рендерит поверхность NURBS, а не только создает треугольную сетку, нормаль поверхности в каждой вершине треугольника также вычисляется из поверхности NURBS и передается в механизм рендеринга. Когда MeshLab рендерит сетку треугольника, которая, вероятно, не будет содержать никаких нормальных данных вершины, она должна будет вычислять нормальные данные вершины по своему собственному алгоритму (обычно выводимому из всех треугольников, совместно использующих одну и ту же вершину). Таким образом, разные нормальные данные вершин приводят к разным визуализированным изображениям.

  • Программное обеспечение САПР, которое вы использовали, и MeshLab могли использовать совершенно разные методы затенения.

В общем, это всего лишь несколько возможных причин. Если вы можете предоставить реальные изображения, это будет полезно в дальнейшем сужении реальной причины.

Обычно это делается на процессоре с помощью программного обеспечения САПР. Если бы вы могли опубликовать снимки экрана с разницей, которую вы видите, было бы легче диагностировать причину проблемы. Это может быть просто использование нормалей лица или что-то в этом роде.

Другие вопросы по тегам