Subdivision

previoustop

void subdivide(float *v1, float *v2, float *v3) {
     GLfloat v12[3], v23[3], v31[3];
     GLint i;
 
     for(i = 0; i < 3; i++) {
         v12[i] = v1[i] + v2[i];
         v23[i] = v2[i] + v3[i];
         v31[i] = v3[i] + v1[i];
     }
     normalize(v12);
     normalize(v23);
     normalize(v31);
     drawtriangle(v1, v12, v31);
     drawtriangle(v2, v23, v12);
     drawtriangle(v3, v31, v23);
     drawtriangle(v12, v23, v31);
 }
...
    for(i = 0; i < 20; i++) {
        subivide(&vdata[tindices[i][0]][0],
        subivide(&vdata[tindices[i][1]][0],
        subivide(&vdata[tindices[i][2]][0]);
     }
 
 
 

Michel Buffa

ESSI