Быстрый ответ - нет.NURBS довольно сложны, и было бы сложно написать эффективный шейдер, который мог бы отображать их на GPU.Я думаю, что это возможно, но обычно это не делается, потому что есть лучший способ.
Лучшим способом является рендеринг патчей Bézier непосредственно на GPU, поскольку любой NURBS может быть преобразован в связанный набор патчей Bézier,Чтобы сгенерировать патчи, вы выполняете вставку узла в каждый узел, пока он не достигнет той же кратности, что и степень;например, на кубическом NURBS вы должны выполнять вставку узлов в каждый узел, пока каждый узел не станет тройным узлом.Контрольные точки NURBS можно затем рассматривать как подключенную сетку Безье.
С этим связана проблема, характерная для шейдеров: когда вы триангулируете свои патчи Безье, очень важно, чтобы патчи, которые имеют общую границу, также имели общий доступ.точно такие же настройки тесселяции, иначе на поверхности NURBS будут трещины из-за несоответствия тесселяции.Если вы используете фиксированные настройки тесселяции, это не проблема, но если вы используете тесселяцию, зависящую от вида, то вам нужно убедиться, что для каждой границы патча рассчитана независимая от вида «зависимая от вида» тесселяция, чтобы соседние патчи соответствовали друг другу.