#opengl-es #nurbs
#opengl-es #nurbs
Вопрос:
В OpenGL NURBs можно рисовать с помощью вычислителей. Но, похоже, оценщики были удалены из спецификации OpenGL ES, чтобы облегчить ее. В таком случае, как можно рисовать NURBs с помощью OpenGL ES API?
Ответ №1:
Вам не удастся реализовать NURBS самостоятельно. Это означает, что вам нужно выполнить выборку кривой или поверхности в отдельных точках и, таким образом, преобразовать ее в обычную линейную полосу или набор треугольников соответственно. Затем это можно нарисовать с помощью обычных массивов вершин / буферов, которые также должны быть быстрее, чем вычислители или функции GLU NURBS.
Ответ №2:
В OpenGL кривые NURBS отображаются в 2 этапа — 1) оцените некоторые точки (100 или 1000) на кривой, используя математическую формулу. Это можно сделать на GPU в OpenGL4, используя SSBO (объекты буфера хранения шейдеров). 2) визуализируйте оцененные точки в виде линейной полосы, используя VBO.
Если вы хотите разобраться в NURBS более подробно, то здесь доступно отличное веб-приложение.