Рисование кривой Безье с ограниченными подразделениями в OpenGL - PullRequest
0 голосов
/ 19 ноября 2011

Можно ли сказать OpenGL нарисовать кривую Безье 4 градуса (5 контрольных точек) с 10 подразделениями?

Я пытался с этим:

point ctrlpts[] = {..., ..., ..., ...};
glMap1f(GL_MAP1_VERTEX_3, 0, 1, 3, 5, ctrlpts);
glBegin(GL_LINE_STRIP);
      for (i = 0; i <= 30; i++) 
         glEvalCoord1f((GLfloat) i/30.0);
glEnd();

Но это просто хорошо рисует кривую. Я думаю, что я хочу, чтобы алгоритм внутри кривой Безье рисовал только до 10 подразделений и затем останавливался. Линия должна выглядеть немного граненой.

1 Ответ

4 голосов
/ 19 ноября 2011

Ну, просто зациклите от 0 до 10 и разделите на 10.

OpenGL знает только плоские примитивы. Кривые лежат за пределами его понимания. Что делают оценщики, так это то, что они позволяют вам сообщать коэффициенты OpenGL для интерполирующей функции, а затем вы сообщаете OpenGL, что нужно выбрать функцию для заданных параметров.

Технически оценщики OpenGL - устаревшая технология. Они не ускоряются и не упрощают разработку драйверов. Они были удалены из ядра OpenGL-3 по той простой причине, что вы можете реализовать оценщик, например функциональность, используя вершинный шейдер, который затем ускоряется графическим процессором, и вы можете использовать для них тесселяторы для генерации точек выборки в графическом процессоре в виде хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...