Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1382 connectés 

  FORUM HardWare.fr
  Programmation

  [c++/Ogl]Commant afficher une image en 2D?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++/Ogl]Commant afficher une image en 2D?

n°42395
yush
Posté le 24-06-2001 à 15:21:31  profilanswer
 

Encore une question sur openGL!
C'est sur un point qu'est moins documente que les autres car c'est de la 2D.
Je veux afficher une simple image en 2D. Je me sers donc de glDrawPixels().Mais l'image apparait a milieu de l'ecran.
Je change donc la position du raster avec glRasterPos(). Mais c'est po trop pratique.Pour mettre l'image en bas a gauche, la position du raster doit etre ( 1.1, -0.8). C'est pas genial pour mettre precisement l'image ou on veut!
Y'a pas un autre moyen pour afficher des images en 2D?Comment faites vous?Vous mappez une face avec une texture?
2eme question : quelle est la derniere version des fichiers .h, .lib et .dll d'Ogl et ou les trouver(j'ai rien vu sur www.opengl.org).Paske j'ai pas la fonction gluBuild2DMipmap()!

mood
Publicité
Posté le 24-06-2001 à 15:21:31  profilanswer
 

n°42397
janoscoder
Posté le 24-06-2001 à 15:39:00  profilanswer
 

tu viens de mettre le doigt sur un problème de OpenGL, c'est qu'il n'est pas vraiment cool pour la 2D (surtout que sur les cartes non pro, y'a pas les imaging extensions).
DrawPixels est la solution la plus directe pour afficher des données qui changent souvent, genre chaque frame, et sont petites (genre du texte)
Copier sur une texture et afficher, c'est clair qu'il faut pas y toucher trop souvent, car le format interne est prfois le résultat d'une traduction du format visible, ce que rend OpenGL aussi peu efficace pour jongler avec les textures.
Mais quand il faut redimensionner, étirer, etc, c'est mieux que glDrawPixels.
Pour le raster pos, même si tu changes l'origine des coordonnées, tu buteras toujours contre le problème de la fenêtre aux cordonnées bizarre, mais en étant propre, tou se gère assez faclement.
 
sinon c'est glu32.dll qu'il faut trouver pour glu. Un chti google.
Enfin, nvidia, pour promouvoir ses cartes, fait du support développeur, et tu trouveras sur leur site, les .h et tout et tout.


---------------
-----------------------
n°42418
yush
Posté le 24-06-2001 à 19:49:53  profilanswer
 

Merci mon petit Jano.
Mais pour faire de la 2D il faut quel API?
Pas OpenGL apparement.
DirectX8?(mmmmmmmmmoooooouaaaaaaarrrffffffff!) :) encore pire.
DirectX 7?
Je comprends plus rien.
Les cartes permettent de faire de la 3D en hardware donc on a pu le droit de faire de la 2D?

n°42421
Alload
Posté le 24-06-2001 à 20:14:06  profilanswer
 

DirectDraw de DirectX.
 
C'est pas compliqué, si tu veux les tutorials Microsoft downloades la version DirectX 7 SDK car dans le 8 ils ne sont plus présents.
 
Enfait DirectDraw utilise directement la carte graphique, t'as pas besoin de t'embeter.

n°42513
yush
Posté le 25-06-2001 à 11:33:55  profilanswer
 

Ca marche encore DirectDraw ds DirectX8.
Je croyais qu'il avait garde DirectDraw juste pour la compatibite. Kesk'ils voulaient qu'on utilise alors?

n°42522
youdontcar​e
Posté le 25-06-2001 à 11:48:18  profilanswer
 

pour afficher une image 'en 2d', tu passes généralement par un polygone.
 
de mémoire, sous dx, tu peux passer directement les coordonnées écran (x, y, z, w) avec les matrices world, view, proj à l'identité. il faut que tes coordonnées x, y soient déjà transformées pour le répère du viewport (ie 0..taille du viewport ou -tailleviewport/2 ... tailleviewport/2, me souviens plus).
 
 
le mieux (je trouve) est de ne pas zigouiller les matrices view & proj déjà setupées et donc de passer des coordonnées caméra.
 
donc coordonneesEcranCamera = coordonnesEcran * View.GetInverse()
 
et du coup, tu spécifies les coordonnées (x, y) dans le repère homogène ( x de -1 à 1, pareil pour y).
 
///  
 
pour afficher du texte, il y a déjà des fonctions présentes sous DX.
 
sinon tu peux y aller à fond à fond à fond et faire un polygone par lettre, comme dans quake ou zelda 64 :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c++/Ogl]Commant afficher une image en 2D?

 

Sujets relatifs
Prog en C - Affichage d'une imageJAVA : comment afficher une image ?
[html / css] changer la couleur 'hover' d'un lien image[PERL/WWW] Comment afficher les warnings et les erreurs??
[Java Script]comment ne pas afficher la croix rouge....image
[PHP] Faire 1 select count et l'afficher ! HELP :-)[HTML]Comment virer la bordure d'une image de lien?
Comment faire se substituer une image par une autre dans un hyperlink 
Plus de sujets relatifs à : [c++/Ogl]Commant afficher une image en 2D?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR