Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : capture d'écran et plaquage sur un quad [ Linux / OpenGL ] (Fr33z)

jeudi 17 juillet 2008 à 13:51:05 | capture d'écran et plaquage sur un quad

Fr33z

Bonjour à tous.

Après avoir bien cherché sur internet divers tutoriaux, aides, et manuels, je n'ai toujours pas compris comment a partir d'un écran, faire une copie de cet écran dans une texture pour ensuite réappliquer cette texture sur un polygone par exemple.

Je n'arrive pas a trouver les erreurs de ce bout de code :

glEnable(GL_TEXTURE_2D);
GLuint RenderedTex; // Je déclare ma texture
glGenTextures(1,&RenderedTex); // Je la définie..
glBindTexture(GL_TEXTURE_2D,RenderedTex); //.. Et la sélectionne


// Ici je dessine le triangle que je veux "copier"
glBegin(GL_TRIANGLES);
  glColor3ub(255,0,0);
glVertex2d(-0.5,-0.5);
  glColor3ub(0,255,0);
glVertex2d(0,0.5);
  glColor3ub(0,0,255);
glVertex2d(0.5,-0.5);
glEnd();

glCopyTexImage2D(GL_TEXTURE_2D,0,GL_RGB,0,0,
           RESOLUTION_LARGEUR,RESOLUTION_HAUTEUR,0); //Ici je fais la copie de l'écran tout entier dans la texture active, soit RendererTexture

// Et là je plaque la texture sur un quad...
glBegin(GL_QUADS);
            glTexCoord2f(0, 0); glVertex2f(-0.5, -0.5f) ;
            glTexCoord2f(1, 0); glVertex2f(0.5, -0.5f) ;
            glTexCoord2f(1, 1); glVertex2f(0.5, 0.5f) ;
            glTexCoord2f(0, 1); glVertex2f(-0.5, 0.5f) ;
glEnd();


Le problème est que ce qui est affiché est le quad, mais avec la couleur bleu (la dernière sélectionnée)... Hors j'aimerai avoir le triangle déssiné sur le quad..

Merci de m'éclairer !

jeudi 17 juillet 2008 à 18:01:08 | Re : capture d'écran et plaquage sur un quad

luhtor

De la doc d'openGL:
glCopyTexImage2D defines a two-dimensional texture image, or cube-map texture image with pixels from the current GL_READ_BUFFER.

Manque peut etre un appel à glReadBuffer(...);

Tu binds ta texture dès le début alors qu'elle ne sert que pour le quad en fin => Pas logique.
Tu créés une texture a chaque frame, il semblerait => Cata...

jeudi 17 juillet 2008 à 18:41:48 | Re : capture d'écran et plaquage sur un quad

Fr33z

Merci pour la réponse, mais j'avoue que je ne comprend pas trop...

Je lis dans la documentation que glReadBuffer sert a sélectionner un tampon... Pourquoi y aurait-il d'autres tampons que celui dans lequel je suis entrain de dessiner?
Je comprend pas non plus comment glCopyTexImage2D "sait" dans quelle texture copier l'écran?

Merci beaucoup pour la réponse en tous cas

jeudi 17 juillet 2008 à 18:47:49 | Re : capture d'écran et plaquage sur un quad

luhtor

Bas tu as en général deux tampons... celui dans lequel tu dessines et celui qui est affiché par l'écran. Donc ca fait deja deux, et on peut en avoir d'autre.

glCopyTexImage2D prend probablement la texture courante, cad celle que tu as lié lors du dernier appel a glBindTexture.

vendredi 18 juillet 2008 à 10:33:40 | Re : capture d'écran et plaquage sur un quad

goast_tu

Salut

Je ne suis pas sur mais si je ne me trompe pas il faut d'abord creer une texture vide avec glTexImage2D et seulement après tu peut écrire dedans avec glCopyTexImage2D

++



Cette discussion est classé dans : écran, gl, texture, gltexcoord2f, quad


Répondre à ce message

Sujets en rapport avec ce message

BMP Transparante [ par barraq ] Voila j'ai un petit soucis de transparance avec les images BMP J'afficher mes arbres en utilisant le format TGA, mais la transparance ne semble marche OPENGL TEXTURE BMP [ par Batman60 ] bonjourvoici mon code compilé sur dev-cppc'est un cube tournant 3D affichant un bmp sur les six facesje voudrais texturer plusieurs bmp sur les six fa CLASSE SDL JPEG (OPENGL) [ par Batman60 ] au secours je n'arrive pas à afficher la texture voulue sur les faces choisie du cubeLE CLASSE .H: class Csdl{    public:     Csdl();&n transparence en OpenGl [ par F0ra ] Bonjour, J'ai un problème en OpenGl Je voudrais rendre uniquement la couleur rose< Problème de placage de texture [ par unrealgun ] Bonjour,Je suis en train de développer uGUI en C++ sous linux avec SDL et OpenGL.Voila mon probleme : je charge une image PNG transparente avec SDL_Im [opengl] texture avec une couleur transparente [ par lafouine1986 ] Bonjour à toutes et tous,voilà je me permets de vous demander de l'aide car je suis comme bloqué...Je désire créer un opengl un arbre de type imposteu [OpenGL] rotation [ par F0ra ] Bonjour,J'ai un problème pour réaliser une rotation en OpenGL au centre du rectangle.J'ai esayé avec glRotatef(ang,0.0,0.0,1.0);  le problème l'origni REDESSINER UNE FENËTRE (case WM_PAINT) [ par Batman60 ] salutje cherche comment faire pour redessiner une fenêtre après chargement de fichier jpeg ou bitmap suite à un evénement WM_COMMAND (GetOpenfilename( PB POUR LA GESTION MULTIFENETRES [ par algeros ] Voici un code ://////////////////////////////////////////////////////////////////                                                          //   Name: Texture transparente [ par F0ra ] Bonjour,Je voudrais aff


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,22 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.