Salut a tous je suis nouveau sur le forum
cela fait plusieurs jour que je test les fonctions 2D d'opengl (glDrawPixels,
glCopyPixels,glRasterPos2i,glReadPixels) etc...... ,
Je suis trés decu des performances 2D d'opengl , afficher des 'tiles'
est vraiment trop lent .
Il existe une technique rapide pour afficher des 'tiles' avec les fonctions
glTexCoord2f et glVertex3f.
exemple:
glBindTexture(GL_TEXTURE_2D, textureID[0]);
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3f(1, 0, 0);
glTexCoord2f(1, 0); glVertex3f(0.5, 0.5, 0);
glTexCoord2f(1, 1); glVertex3f(0.5, -0.5, 0);
glTexCoord2f(0, 1); glVertex3f(1, 1, 0);
glEnd();
la encore je trouve qu'il y a beaucoups de contraintes et cette tech
nique est loin d'etre efficace, le code deviens vite assez gros pour pas
grand chose.
j'ai passer beaucoup de temps sur google pour essayer de trouver des
exemples de jeu 2d, scrolling parallax, multi directionnel, horizontal
vertical,a base de 'tiles', en opengl et vu le peu de resultats j'en conclus
que OpenGL pour la 2d c'est de la m.......
Je me rappel de l'époque ou je codais en assembleur sur amiga, en
quelques lignes je pouvais exprimer toute la puissance du blitter ou du
copper.
a l'époque des processeurs aux gigaherz et des API je me dis qu'il y a une certaine régression, on nous laisse de moins en moins la possibilité
de bidouiller nos puces (pour la compatibilité des programmes ??), on
est cantonner dans un schéma.
me reste t'il une seule solution ? . coder toute mes fonctions blitter en C
ou assembler, les utiliser dans un buffer pour ensuite l'injecter dans la
carte graphique.
j'attend vos avis sur les techniques efficaces pour faire de la 2D comme
au bon vieu temps. que ce sois en assembleur ou en C.
merci
p.s : désolé pour les fautes de francais
Partager