begin process at 2012 02 10 20:14:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

OpenGL

 > 

capture d'écran et plaquage sur un quad


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

capture d'écran et plaquage sur un quad

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ée 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 Texture avec OpenGl [ par Zakata ] Bonjour,Voila j'ai un petit soucis avec les textures et OpenGl. J'ai dans l'espoir de réussir à mettre une image de fond sur une fenetre OpenGl. J'ai 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 [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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales