- glNewList(Models[ModelNumber].DL, GL_COMPILE);
- glpointsize(4);
- gllinewidth(2);
- gldisable(gl_blend);
- glenable(gl_depth_test);
- glEnable(GL_CULL_FACE);
- glCullFace(GL_FRONT);
- glDisable(GL_TEXTURE_2D);
- glDisable(GL_ALPHA_TEST);
- glBegin(GL_triangles);
- for i := 1 to Model.Textures[0].stop do begin
- for i2 := 1 to 3 do begin
- if (i2=1) or (Model.Triangles[i].Surface=true) then
- glnormal3f(-Model.Triangles[i].N[i2][1],-Model.Triangles[i].N[i2][2],-Model.Triangles[i].N[i2][3]);
- //glColor3f(Model.Triangles[i].Color[1],Model.Triangles[i].Color[2],Model.Triangles[i].Color[3]);
- glVertex3f(Model.Triangles[i].Points[i2][1],Model.Triangles[i].Points[i2][2],Model.Triangles[i].Points[i2][3]);
- end;
- end;
- glEnd;
- glEnable(GL_TEXTURE_2D);
- glEnable(GL_ALPHA_TEST);
- glAlphaFunc(GL_GREATER, 1/2);
- for i := 1 to Model.TextureNumber do begin
- // hier sucht der nur die passende texturadresse
- for i2 := 1 to textureNumber do begin
- if textures[i2].name=Model.Textures[i].name then begin
- glbindtexture(GL_Texture_2d,textures[i2].Tex);
- end;
- end;
- // und denn zeichnet er alle dreiecke, mit der betraffenden texture
- glBegin(GL_triangles);
- for i2 := Model.Textures[i-1].stop+1 to Model.Textures[i].stop do begin
- for i3 := 1 to 3 do begin
- if (i3=1) or (Model.Triangles[i2].Surface=true) then
- glnormal3f(-Model.Triangles[i2].N[i3][1],-Model.Triangles[i2].N[i3][2],-Model.Triangles[i2].N[i3][3]);
- //glColor3f(Model.Triangles[i2].Color[1],Model.Triangles[i2].Color[2],Model.Triangles[i2].Color[3]);
- glTexCoord2f(Model.Triangles[i2].UV[i3][1],Model.Triangles[i2].UV[i3][2]);
- glVertex3f(Model.Triangles[i2].Points[i3][1],Model.Triangles[i2].Points[i3][2],Model.Triangles[i2].Points[i3][3]);
- end;
- end;
- glEnd;
- end;
- glEndList;