Bonjour tout le monde,
Etant un peu fou, je me lance ds opengl sous Windev
Mais tout n'est pas au point !

Quelqu'un peut me dire pourquoi mon cube n'est pas texturé ???

merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
///////////////////////////////////////////////// 
//var globales 
tabPixel est un tableau de 50*50*4 entiers sans signe sur 1 octet 
lum est un tableau de 4 réels 
lum[1] = 0. 
lum[2] = 0. 
lum[3] = 1. 
lum[4] = 1. 
 
lum1 est un tableau de 4 réels 
lum1[1] = 0. 
lum1[2] = 0.5 
lum1[3] = 1. 
lum1[4] = 1. 
 
lum2 est un tableau de 4 réels 
lum2[1] = 1. 
lum2[2] = 1. 
lum2[3] = 0.5 
lum2[4] = 1. 
 
 
 
PROCEDURE creationFenetre(WIDTH,HEIGHT,nomFenetre,posX,posY) 
 
//creation de la fenetre 
glutInitDisplayMode(GLUT_RGBA + GLUT_SINGLE + GLUT_DEPTH); 
 
glutInitWindowSize(WIDTH,HEIGHT); 
glutInitWindowPosition(50,50); 
glutCreateWindow("Scène 3D"); 
 
//init 
glEnable(GL_DEPTH_TEST); 
glEnable(GL_LIGHTING) 
glEnable(GL_LIGHT0) 
 
 
initTexture() 
 
//Callback 
glutDisplayFunc(&callbackDisplay); 
glutReshapeFunc(&callbackReshape); 
 
// lance le gestionnaire glut 
glutMainLoop(); 
////////////////////////////////////////////////////////////////////////////////////
PROCEDURE callbackDisplay() 
glClearColor(0,0,0,0); // selectionne la couleur noire (qui est celle par défaut) 
glClear(GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT); 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
gluLookAt(4.,3.,3.,0.,0.,0.,0.,1.,0.); 
 
//lumieres 
//glLightfv(gl_LIGHT0,GL_position,&lum) 
glLightfv(GL_LIGHT0,GL_AMBIENT_AND_DIFFUSE,&lum1) 
glLightfv(GL_LIGHT0,GL_SPECULAR,&lum2) 
 
//textures 
idTexture est un entier 
glEnable(GL_TEXTURE_2D) 
glGenTextures( 1,&idTexture ) 
glBindTexture(GL_TEXTURE_2D, idTexture) 
glTexImage2D(GL_TEXTURE_2D, 0, 4, 50,50,0,GL_RGBA,GL_UNSIGNED_BYTE,&tabPixel) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) 
 
 
glBegin(GL_QUADS); 
 
/////////////////////// FACE 1 ////////////////////////// 
AppelDLL32("Opengl32.dll", "glNormal3d", 0.0, 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0, 1.0 ,-1.0 ) // Coin Haut droit (Haut) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0, 1.0 ,-1.0 ) // Coin Haut gauche (Haut) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0, 1.0 , 1.0 ) // Coin bas gauche (Haut) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0, 1.0 , 1.0 ) // Coin bas droit (Haut) 
 
 
/////////////////////// FACE 2 ////////////////////////// 
AppelDLL32("Opengl32.dll", "glNormal3d", 0.0, -1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 ,-1.0 , 1.0 ) // Coin Haut droit (Bas) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 ,-1.0 , 1.0 ) // Coin Haut gauche (Bas) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 ,-1.0 ,-1.0 ) // Coin bas gauche (Bas) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 ,-1.0 ,-1.0 ) // Coin bas droit (Bas) 
 
 
/////////////////////// FACE 3 ////////////////////////// 
AppelDLL32("Opengl32.dll", "glNormal3d", 0.0, 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 , 1.0 , 1.0 ) // Coin Haut droit (Avant) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 , 1.0 , 1.0 ) // Coin Haut gauche (Avant) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 ,-1.0 , 1.0 ) // Coin bas gauche (Avant) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 ,-1.0 , 1.0 ) // Coin bas droit (Avant) 
 
 
/////////////////////// FACE 4 ////////////////////////// 
AppelDLL32("Opengl32.dll", "glNormal3d", 0.0, 0.0, -1.0) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 ,-1.0 ,-1.0 ) // Coin Haut droit (Arrière) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 ,-1.0 ,-1.0 ) // Coin Haut gauche (Arrière) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 , 1.0 ,-1.0 ) // Coin bas gauche (Arrière) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 , 1.0 ,-1.0 ) // Coin bas droit (Arrière) 
 
 
/////////////////////// FACE 5 ////////////////////////// 
AppelDLL32("Opengl32.dll", "glNormal3d", -1.0, 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 , 1.0 , 1.0 ) // Coin Haut droit (Gauche) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 , 1.0 ,-1.0 ) // Coin Haut gauche (Gauche) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 ,-1.0 ,-1.0 ) // Coin bas gauche (Gauche) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", -1.0 ,-1.0 , 1.0 ) // Coin bas droit (Gauche) 
 
 
/////////////////////// FACE 6 ////////////////////////// 
AppelDLL32("Opengl32.dll", "glNormal3d", 1.0, 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 , 1.0 ,-1.0 ) // Coin Haut droit (Droite) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 0.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 , 1.0 , 1.0 ) // Coin Haut gauche (Droite) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 0.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 ,-1.0 , 1.0 ) // Coin bas gauche (Droite) 
AppelDLL32("Opengl32.dll", "glTexCoord2d", 1.0, 1.0) 
AppelDLL32("Opengl32.dll", "glVertex3d", 1.0 ,-1.0 ,-1.0 ) // Coin bas droit (Droite) 
 
// Fin du dessin 
glEnd() 
 
//Désactive le texturing 
glDisable(GL_TEXTURE_2D) 
glFlush(); 
////////////////////////////////////////////////////////////////////////////////////
PROCEDURE callbackReshape(w,h) 
 
glViewport(0,0,w,h); 
glMatrixMode(GL_PROJECTION); // Choisit la matrice de projection 
glLoadIdentity(); 
xt est un réel = w/h 
gluPerspective(45.0,xt,1.,10.); 
////////////////////////////////////////////////////////////////////////////////////
 
PROCEDURE initTexture() 
i est un entier 
j est un entier = 0 
k est un entier 
POUR j=1 A 50 
POUR i=1 A 50 
// Identification de la couleur du pixel sélectionné 
 
// Correspondance 
k = (j-1)*4*50 + (i-1)*4 
// Tableau de la texture 
tabPixel[k+1] = i 
tabPixel[k+2] = j 
tabPixel[k+3] = Hasard(250) 
tabPixel[k+4] = 0 
FIN 
FIN