Bonjour tout le monde,
Voilà j'ai un petit problème, je voudrais charger une texture et la mettre sur un carré. Mais je n'y comprend rien. Cela va faire presque deux semaines que je cherche sur tous les forums et sur tous les sites sans résultats. La plupart des sources sont sur windows et en c++ (je suis sur linux et je programme en c). Voici un bout de mon code.
Malgré le fait de ne pas avoir trouvé grand chose sur le net, j'ai trouvé quelques réponses à mes questions. Tout d'abord il me faut un chargeur d'images (ce que je n'ai pas), il me faut aussi activer le glEnable pour les textures2D (oui mais où?). Vous me serez d'un grand merci si vous pouviez m'expliquer le processus de chargement d'images sur opengl. En effet je ne comprend pas pourquoi il est obligatoire d'utiliser un chargeur d'image et surtout comment il marche. Bien sûr ce que je veux faire pour l'instant est très simple. Une texture sur un carré. Je vous remercie d'avance pour vos réponses.
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 #include<GL/gl.h> #include<GL/glu.h> #include<GL/glut.h> #include<stdio.h> #include<stdlib.h> void draw(void){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//glClear clears the window glColor3f(1.0,1.0,1.0);//etablishes what color to use for drawing object glBegin(GL_POLYGON);//defines the object to be drawn glVertex2f(-10,-10);//arg1=x arg2=y f means float glVertex2f(-10,10); glVertex2f(10,10); glVertex2f(10,-10); glEnd(); glutSwapBuffers(); } void init(void){ glClearColor(0.0,0.0,0.0,0.0);//etablishes what color the window will be cleared to glMatrixMode(GL_PROJECTION); glEnable(GL_TEXTURE_2D); glLoadIdentity(); glOrtho(-20.0,20.0,-20.0,20.0,-1.0,1.0); } int main(int argc, char **argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(640,480); glutInitWindowPosition(50,50); glutCreateWindow("Kirby"); init(); glutDisplayFunc(draw); glutMainLoop(); return 0; }
Partager