Mauvaise utilisation hardware?

Résolu
cs_mantrax Messages postés 6 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 13 septembre 2007 - 16 févr. 2007 à 14:19
cs_mantrax Messages postés 6 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 13 septembre 2007 - 18 févr. 2007 à 13:10
Bonjour, voila je suis confronté à un probleme très ennuyeux...
Je souhaite réaliser une interface opengl, et petit à petit ca avance, mais lorsque j'affiche un certain nombre d'objets (des cubes..), la carte graphique emet un bruit strident. Elle n'a pas de ventilateurs... il semblerait que ce soit une vibration du gpu. Enfin, je ne sais pas, je n'y comprend bien évidement rien, si ce n'est qu'elle va casser si je continue.
La question que je pose, c'est tout simplement... pourquoi ? :p

voici le code qui pose probleme, il suffit de changer le nom de l'objet dessiné ou le nombre d'itération pour obtenir des variations de tonalité dans le bruit

Routine d'affichage(){
...
for (int i=0;i<320;i++) {for(int j=0;j<200;j++) DrawQuad(i,j,0);}           <-------
...}

void DrawQuad(GLint x, GLint y, GLint z)
{
    glColor4d(1.0,0.2,0.7,0.8);     //bleu devant
    glBegin(GL_QUADS);
         glVertex3i(x+MATRIX_SIZE,y+MATRIX_SIZE,z+MATRIX_SIZE);
         glVertex3i(x+MATRIX_SIZE,y,z+MATRIX_SIZE);
         glVertex3i(x,y,z+MATRIX_SIZE);
         glVertex3i(x,y+MATRIX_SIZE,z+MATRIX_SIZE);
    glEnd();
}

Bon, j'espere que j'ai été suffisament précis. Il y a t-il une "mauvaise utilisation" possible de la machine opengl, pouvant mettre en péril le matériel ? Pourtant tous les codes sources que j'ai pu voir jusqu'a présent utilise la même architecture que mon programme.
Merci de votre attention.

5 réponses

pepsidrinker Messages postés 151 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 15 avril 2009
16 févr. 2007 à 14:42
C'est pas openGL, c'est ton hardware..
J'ai eu le meme probleme...
Mon laptop a crasher quelque jour apres...
laurent1024 a raison...mes condoléances d'avance...

Pepsidrinker
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
16 févr. 2007 à 14:30
Pour ta carte graphique qui chante je crois que l'on ne peut pas grand chose a part te présenter a l'avance nos condoléances. Pour alleger ton code tu peus mette dans un display list ton code draw quads (en supprimmant les x , y et z)  pour avoir un obj graphique unique. Apres c'est avec des translations que tu le positionne dans ton espace.
++
0
cs_mantrax Messages postés 6 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 13 septembre 2007
16 févr. 2007 à 17:23
ok merci..
enfin, je trouve ca curieux quand même, pourquoi ferait-elle du bruit uniquement sur mes applis, et pas dans les jeux?

@laurent: je voulais présenter un code compréhensible par tous, de plus désolé mais j'ai pas trouvé plus leger. Utiliser des translation m'oblige à creer une donnée, rajoute des lignes de code, et est beaucoup moins performant.

int entrop = 0;
push
    for (int i=0;i<320;i++)
        {glTranslated(MATRIX_SIZE,0,0);
        entrop = 0;
            for(int j=0;j<200;j++)
                {
                    glTranslated(0,MATRIX_SIZE,0);
                    glCallList(id_quad);
                    entrop++;
                }
                glTranslated(0,-MATRIX_SIZE*entrop,0);
        }
pop

j'ai essayer d'une autre facon, sans la variable entrop et avec plus de push/pop. Je ne sais ce qui est mieux mais de toute facon ce n'est pas satisfaisant.
je prefere :
//    push
//    for (int i=0;i<320;i++) {for(int j=0;j<200;j++)
           DrawQuad(i*MATRIX_SIZE,j*MATRIX_SIZE,0);}
//    pop
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
16 févr. 2007 à 18:20
Je t'ai repondu un peu vite tout a l'heure. tu peut faire des display liste avec tout tes cubes vu que a priori ca change pas d'un afichage a l'autre. Le display list c'est meixux a priori ca r ca te met les infos dans la carte graphique
++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mantrax Messages postés 6 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 13 septembre 2007
18 févr. 2007 à 13:10
Euh, oui, désolé je ne voyais pas où tu voulais en venir exactement. J'ai donc mis tout l'affichage en list, c'est effectivement plus leger dans la fonction d'affichage, et la perte de performance plus limitée.
Il y a néanmoins perte, ce qui me surprend, les listes étant sensée etre plus rapide à ce que j'ai compris.
Le projet consiste en un "écran", une surface d'affichage sur laquelle je pose pixels ou cubes, donc il devra etre dynamique. Ma premiere tache est de lui faire afficher les logs d'erreur ;)
Ma carte est effectivement en train de rendre l'âme, ca fait deux du meme modele (saphir radeon 9600) car il est arrivé la même chose à un ami. Peut-etre des fabriquants à éviter...
0
Rejoignez-nous