Использование кривых и поверхностей NURBS
Функции non-Uniform Rational B-Spline (NURBS) предоставляют общее и мощное описание кривых и поверхностей в двух и трех измерениях, преобразуя кривые и поверхности в оценщики OpenGL. Функции NURBS могут представлять геометрию во многих автоматизированных механических системах проектирования. Они могут отображать кривые и поверхности в различных стилях, а также могут автоматически обрабатывать адаптивные подразделения, которые тесселлируют предметную область на более мелкие треугольники в областях с высокой кривизной и вблизи края силуэта. Функции NURBS делятся на следующие категории.
Для управления объектом NURBS используйте:
- gluNewNurbsRenderer (создание объекта NURBS)
- gluDeleteNurbsRenderer (удаляет объект NURBS)
- gluNurbsCallback (устанавливает функцию обработки ошибок)
Чтобы указать нужные кривые, используйте следующую команду:
Чтобы указать нужные поверхности, используйте следующую команду:
Можно также указать область обрезки, которая определяет подмножество поверхностного домена NURBS для оценки, чтобы можно было создавать поверхности с гладкими границами или с отверстиями.
Чтобы указать область обрезки, используйте следующую команду:
Как и в случае с квадричными объектами, вы можете управлять отрисовкой кривых и поверхностей NURBS. Вы можете определить следующее:
- Следует ли отбрасывать кривую или поверхность, управляющий многоугольник которой находится за пределами текущего окна просмотра.
- Максимальная длина (в пикселях) краев многоугольников, используемых для отрисовки кривых и поверхностей.
- Будете ли вы принимать матрицу проекции, матрицу modelview и окно просмотра с сервера OpenGL или предоставлять их с помощью gluLoadSamplingMatrices.
Используйте gluNurbsProperty , чтобы задать эти свойства, или используйте значения по умолчанию. Вы можете запросить объект NURBS о его стиле отрисовки с помощью gluGetNurbsProperty.