gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004
-
25 sept. 2004 à 23:59
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 2007
-
27 sept. 2004 à 23:32
Salut à tous :
J'ai quelques soucis conceptuels quant à l'enregistrement d'images. Cad : je modélise un objet 3D, et je dois avoir la possibilité soit d'afficher soit d'enregistrer un jpeg correspondant à ce qui aurait été affiché dans ma fenetre glut.
J'avais tjrs une question sans réponse sur le forum,
sur les moyens d'afficher du texte de couleur (autre que noir)
dans ma fenetre glut. L'utilisation de glutBitmapCharacter semble
limiter au noir, non ?
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 26 sept. 2004 à 10:11
Ben voilà pour l'enregistrement tibur a répondu ^^
Pour ce qui concerne glutBitmapCharacter, peut-être en faisant un glColor3f() avant ça changera la couleur du texte?
Mais de toutes façons cette façon d'afficher du texte n'est pas géniale parce que d'une part il me semble bien que tu n'as pas la même flexibilité qu'avec un rendu par textures (genre pour faire tourner le texte, ou l'afficher en 3D, ou encore changer sa taille de façon dynamique...).
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 26 sept. 2004 à 16:44
Hmm...je vois pas...
D'une part, t'as bien vérifié que wri_jpeg() fonctionne bien?
Après, sinon, y'a une source qui permet de faire une capture d'écran et d'enregistrer dans un TGA sur le site, c'est une des sources de xarier, si ça peut t'aider...
Si j'étais toi, d'abord je testerais wri_jpeg(), genre en lui donnant une mini-image du style
unsigned char data = {...les données RGB...};
Ensuite, si wri_jpeg fonctionne, vérifie que la partie glReadPixels() fonctionne, par exemple en utilisant les pixels lus pour les mettre sur une texture (glTexImage2D, ou plutôt gluBuild2DMipmaps ^^).
Enfin, si les 2 fonctionnent, ben je vois pas comment le lien entre les 2 ne marcherait pas...
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004 26 sept. 2004 à 19:52
Mouais,
la fonction wri_jpeg pose pas de probleme.
Mais readpixel, donc.
quand j'essais de mapper avec rgb rempli,
l'image est brouillée (comme qd je mappais mon onjet avec
un tableau dont les donnees n'étaient pas contigues)
faut croire que l'ordre dans lequel readpixel lit est différent
de celui ds lequel le fichier les attend.
gilimcce
Messages postés33Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention27 septembre 2004 27 sept. 2004 à 16:25
Pour Founto >>
Merci pour ton lien :
si j'ai bien tout lu, il me faut :
utiliser les fichiers
TGALoader.h/cpp
TxtRenderer.h/cpp
Util.h/cpp
Si je divise ma fenetre en 3 :
sous glviewport j'appelle
TextRenderer::init
puis TextRenderer:Ecrire2D
Coté passage de parametre :
void TxtRenderer::Init(
const char* str_fichier_tga, // le fichier contenant la texture ?
Couleur couleur, // ... couleurs predefinies
int x, int y, // coordonnees ou la texture est inseree ?
TGAFiltering filtering, // ???
int largeur_car, int hauteur_car, // ok
int espace_v, int espace_h // espace entre mots et lignes ?
)
Merci pour les quelques precisions...
Ah... aussi,
pourquoi ecrit-on
#include "SDL.h" et pas <SDL.h> ?
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 27 sept. 2004 à 23:32
"SDL.h" et "SDL_opengl.h", j'utilise ces notations parce que ce sont celles utilisées dans l'aide de SDL, mais tu peux mettre <SDL.h> si ça te chante.
Pour TxtRenderer :
void TxtRenderer::Init(
const char* str_fichier_tga, // le fichier contenant la texture, au format TGA (j'ai fait un prog pour créer une texture TGA si tu veux, c'est dans mes sources ;))
Couleur couleur, // couleur du texte, prédéfinie ou pas, tu peux utiliser le constructeur de la classe Couleur, qui prend 3 floats précisant les valeurs RGB.
int x, int y, // coordonnées du point où commence à s'écrire le texte
TGAFiltering filtering, // filtering de la texture; regarde dans TGALoader.h; le filtering, c'est une valeur que tu donnes à OpenGL qui empêche plus ou moins l'effet de pixellisation des textures.
int largeur_car, int hauteur_car, // ça t'as compris...
int espace_v, int espace_h //espace entre 2 lettres aux niveaux horizontal et vertical, tu peux modifier les valeurs du code que je t'ai filé si tu veux tester par toi-même.
)
Je devrais peut-être poster ce TxtRenderer sur CppFrance d'ailleurs...
---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/