1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| type
TCoord = Record
X, Y, Z : glDouble;
end;
TFace = Record
V1, V2, V3, V4 : Integer;
Vt1, Vt2, Vt3, Vt4 : Integer;
end;
TVt = Record
X, Y, Z : glDouble;
End;
Var
Vertex : Array of TCoord;
CoordText : Array of TVt;
Face : Array of Tface;
Nom_Texture : string;
Image_texture : glUint;
procedure afficher_models ();
var
i : integer;
begin
//glClear(GL_COLOR_BUFFER_BIT or dGL_DEPTH_BUFFER_BIT); // nettoie la scene et le deph buffer
//glLoadIdentity(); // recentre la vue
for i := 0 to length(face) - 1 do
begin
if triangle_ou_cube(Face,i) = 3 then
begin
GlBegin( Gl_Triangles );
//Glcolor3ub(255, 100, 250);
glBindTexture(GL_TEXTURE_2D, Image_Texture);
glTexCoord2f(CoordText[(Face[i].Vt1)].X, CoordText[(Face[i].Vt1)].Y); //-1?
GlVertex3d(Vertex[Face[i].V1].X, Vertex[Face[i].V1].Y, Vertex[Face[i].V1].Z);
GlVertex3d(Vertex[Face[i].V2].X, Vertex[Face[i].V2].Y, Vertex[Face[i].V2].Z);
GlVertex3d(Vertex[Face[i].V3].X, Vertex[Face[i].V3].Y, Vertex[Face[i].V3].Z);
GlEnd();
end
else
begin
GlBegin( Gl_Quads );
// Glcolor3ub(140, 90, 180);
glBindTexture(GL_TEXTURE_2D, Image_texture);
glTexCoord2f(CoordText[(Face[i].Vt1)].X, CoordText[(Face[i].Vt1)].Y);
GlVertex3d(Vertex[Face[i].V1].X, Vertex[Face[i].V1].Y, Vertex[Face[i].V1].Z);
GlVertex3d(Vertex[Face[i].V2].X, Vertex[Face[i].V2].Y, Vertex[Face[i].V2].Z);
GlVertex3d(Vertex[Face[i].V3].X, Vertex[Face[i].V3].Y, Vertex[Face[i].V3].Z);
GlVertex3d(Vertex[Face[i].V4].X, Vertex[Face[i].V4].Y, Vertex[Face[i].V4].Z);
GlEnd();
end;
end;
end;] |
Partager