Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // loop over u and v to define per-vertex attributes
- var maxindex = 0;
- for(var i=0; i<=uSegments; i++) {
- for(var j=0; j<=vSegments; j++) {
- // current position (u,v) on the surface
- var u = uMin + i * (uMax-uMin) / uSegments;
- var v = vMin + j * (vMax-vMin) / vSegments;
- // current index into the vertex buffers
- var vindex = i*(vSegments+1) + j;
- var p = definition.position(u,v);
- vposition[vindex*3] = p[0];
- vposition[vindex*3+1] = p[1];
- vposition[vindex*3+2] = p[2];
- // index inside the
- var iindex = i*vSegments + j;
- // indices for drawing two triangles per patch
- if(i<uSegments && j<vSegments) {
- var ii = iindex*6;
- triangles[ii++] = vindex;
- triangles[ii++] = vindex+(vSegments+1);
- triangles[ii++] = vindex+(vSegments+1)+1;
- triangles[ii++] = vindex+(vSegments+1)+1;
- triangles[ii++] = vindex+1;
- triangles[ii++] = vindex;
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement