I want to create a NurbsSurface in OpenGL. I use a 40x48 grid of control points. In addition, I create indexes to determine the order of the vertices.

Thus, I created my surface of triangles. Just to avoid confusion. I have
float[] vertices=x1,y1,z1,x2,y2,z2,x3,y3,z3.......
and
float[] indices= 1,6,2,7,3,8....
Now I do not want to draw triangles. I would like to interpolate surface points. I was thinking about Nurbach or B-Splines.
Hint: To define Nurbs algorithms, I have to interpolate the patch by patch. In my understanding, one patch is defined as, for example, points 1,6,2,7 or 2,7,3,8 (Please open the image).
First of all, I created vertices and indexes to use the vertex shader. But in fact, this would be enough to draw it in the old way. In this case, I would define the vertices and indices as follows:
float[] vertices= v1,v2,v3... with v=x,y,z
and
float[] indices= 1,6,2,7,3,8....
OpenGL has a Nurbs feature ready to use. glNewNurbsRenderer. Therefore, I can easily make a patch. Unfortunately, I do not understand how to sew patches together. I found an explanation for the teapot example , but (maybe I became obsessed with this). I can not pass the decision into my business. You can help?