Processing math: 100%
Computergrafik

GL Tesselierungsbeispiel

GL Tesselierung | | Blender Tesselierungsbeispiel

Tesselierung der Funktion

f(x,y)=sin(x2+y2)

durch regelmäßiges Gitter aus Quads (Quadmesh):

Tessel
double func(double x,double y)
   {return(3*sin(sqrt(x*x+y*y)/3));}

glBegin(GL_QUADS);

for (i=-100; i<=100-step; i+=step)
   for (j=-100; j<=100-step; j+=step)
   {
      float f0=func(i,j);
      glColor3f(0,f0,f0);
      glVertex3d(i,j,f0);
      float f1=func(i+step,j);
      glColor3f(0,f1,f1);
      glVertex3d(i+step,j,f1);
      float f2=func(i+step,j+step);
      glColor3f(0,f2,f2);
      glVertex3d(i+step,j+step,f2);
      float f3=func(i,j+step);
      glColor3f(0,f3,f3);
      glVertex3d(i,j+step,f3);
   }

glEnd();


Tesselierung einer Kugel in Polarkoordinaten:

Sphere

Kugelkoordinaten:

f(α,β)=(sin(α)sin(β)cos(β)cos(α)sin(β)),α[0,2Π],β[0,Π]
for (j=0; j<=200-step; j+=step)
{
   glBegin(GL_QUAD_STRIP);

   for (i=0; i<=200; i+=step)
   {
      alpha=(float)i/100*M_PI;
      beta1=(float)j/100*M_PI/2;

      beta2=(float)(j+step)/100*M_PI/2;

      glVertex3d(sin(alpha)*sin(beta1),
                 cos(beta1),
                 cos(alpha)*sin(beta1));

      glVertex3d(sin(alpha)*sin(beta2),
                 cos(beta2),
                 cos(alpha)*sin(beta2));
   }

   glEnd();
}


GL Tesselierung | | Blender Tesselierungsbeispiel

Options: