Bezier patches 3x3
Number of Triangle Strips = 2x where x is the tesselation level
a tesselation level of 1 would have 2 tri strips.
Level 1 = 21 = 2 strips
Level 2 = 22 = 4 strips
Level 3 = 23 = 8 strips
Level 4 = 24 = 16 strips
Number of vertices per strip is equal to (2y + 2) where y is equal to the level + 1
Level 1 = (21+1 + 2) = (4 + 2) = 6 vertices per strip
Level 2 = (22+1 + 2) = (8 + 2) = 10 vertices per strip
Level 3 = (23+1 + 2) = (16 + 2) = 18 vertices per strip
Level 4 = (24+1 + 2) = (32 + 2) = 34 vertices per strip
Total vertices per path is equal to (strips * vertices per strip)
Level 1 = 6 * 2 = 12 vertices per patch
Level 2 = 10 * 4 = 40 vertices per patch
Level 3 = 18 * 8 = 144 vertices per patch
Level 4 = 34 * 16 = 544 vertices per patch
Rendering the patches
//Point is an array of 3 floats
int strips = pow(2, level);
for(i = 0; i < strips, i++)
{
glBegin(GL_TRIANGLE_STRIP);
for(j = 0; j < (pow(2, (level + 1)) + 2), j++)
{
glVertex3fv(points[((i*strips) + j)]);
}
glEnd();
}