Bonjour, j'espère que quelqu'un pourra m'aider sur le sujet, je suis là dessus depuis environs 5 heures et je n'arrive pas a y aboutir!


Voici la situation, j'ai un canevas openGL qui fait 700x477 dans ma fenetre wxWidgets et je dessine un cube

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
 
void GL_MAILLAGE::Dessine(wxPaintEvent &event) { 
    wxPaintDC dc(this);
    SetCurrent();
 
    if (!m_init) InitGL();
 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
 
    GLint viewport[4]; 
    glGetIntegerv(GL_VIEWPORT, viewport); 
 
    const float aspectRatio = (float)(viewport[2]) / (float)(viewport[3]); 
    gluPerspective(45, aspectRatio, 0.1, 100); 
 
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
 
    glEnable (GL_DEPTH_TEST);
 
       gluLookAt(5,5,10,0,0,0,0,1,0);                       
       glBegin (GL_QUADS); 
               glColor3d(1,0,0); 
               glVertex3i (-1,-1,1);  // premiere face
               glVertex3i (-1,1,1); 
               glVertex3i (1,1,1); 
               glVertex3i (1,-1,1); 
 
               glColor3d(0,0,1); 
               glVertex3i (-1,-1,-1); // deuxieme face
               glVertex3i (-1,1,-1); 
               glVertex3i (1,1,-1); 
               glVertex3i (1,-1,-1); 
 
               glColor3d(0,1,0); 
               glVertex3i (-1,1,-1);  // troisieme face
               glVertex3i (1,1,-1); 
               glVertex3i (1,1,1); 
               glVertex3i (-1,1,1); 
 
               glColor3d(1,1,0); 
               glVertex3i (-1,-1,-1);  // quatrieme face
               glVertex3i (1,-1,-1); 
               glVertex3i (1,-1,1); 
               glVertex3i (-1,-1,1); 
 
               glColor3d(0,1,1); 
               glVertex3i (-1,-1,-1);  // cinquieme face
               glVertex3i (-1,-1,1); 
               glVertex3i (-1,1,1); 
               glVertex3i (-1,1,-1); 
 
               glColor3d(1,0,1);       // sixieme face
               glVertex3i (1,-1,-1); 
               glVertex3i (1,-1,1); 
               glVertex3i (1,1,1); 
               glVertex3i (1,1,-1); 
       glEnd(); 
glFlush();
SwapBuffers();
}
 
 
void GL_MAILLAGE::InitGL() {  
    glViewport(0, 0, (GLint)700, (GLint)477); 
    glClearColor(0.0f,0.0f,0.0f,0.0f);
    m_init = true;   
}

Le problème est que je dessine un cube qui a des coté de longueur 1 et je dois faire un gluLookAt(5,5,10,0,0,0,0,1,0); sinon il est beaucoup TROP gros (voir pas visible)

Ce qui a pour conséquence que lorsque je veux dessiner pour de vrai (en chargeant un fichier) et que les coordonnées sont d'environ 30, -25, -30 etc... je ne suis pas capable d'avoir un rendu adéquat. (Je ne suis pas capable de voir le solide au complet etc...) et je ne trouve pas un gluLookAt pour me permettre de le voir en entier je ne vois que des parties seulement!

Au secours! Si quelqu'un voit une omission, une erreur ou une suggestion que je pourrais vérifier ca serait grandement apprécié car je sais plus quoi faire!