begin process at 2012 05 29 12:00:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

DirectX

 > 

Frame Buffer OpenGL


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

Frame Buffer OpenGL

mardi 17 février 2009 à 14:58:31 | Frame Buffer OpenGL

roger000

Hi !

 

For a project, I need to render some part of my scene in 2 opengl frame buffer, and to merge them by depth buffer comparison.

 

So I tried to split this problem in 2 tasks:

  1. First:
    1. Render a part of the scene into a framebuffer
    2. Switch this framebuffer with the backbuffer
    3. Switch the back buffer with the framefuffer
  2. Second:
    1. Merge the 2 framebuffer

 

 

I implemented the first part:

 

************FBO SETUP PART ********

 

// Create 2 render buffer

int [] MyRenderBuffer = newint[2];

glGenRenderbuffersEXT(2, MyRenderBuffer);

 

// Bind the first render buffer

glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, MyRenderBuffer[0]);

// Allocate memory for its: colorimetry buffer

glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,GL_RGBA, CV.width, CV.height);

 

// Bind the first render buffer

glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, MyRenderBuffer[1]);

// Allocate memory for its: depth buffer

glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, CV.width, CV.height);

 

// Create a Frame Buffer Object & bind it

int [] MyFBO = newint[1];

glGenFramebuffersEXT(1, MyFBO);

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFBO[0]);

 

// Attach the fist render buffer with the FBO "COLOR_ATTACHMENT0"

glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,GL_RENDERBUFFER_EXT, MyRenderBuffer[0]);

// Attach the fist render buffer with the FBO "DEPTH _ATTACHMENT0"

glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,GL_DEPTH_ATTACHMENT_EXT,GL_RENDERBUFFER_EXT, MyRenderBuffer[1]);

 

// Bind the OpenGL Standard framebuffer

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);

 

// Check FBO Status

int status_fbo =glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);

int normal_status =GL_FRAMEBUFFER_COMPLETE_EXT;

 

 

 

 

 

************DRAW ********

// Bind the FBO

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);

 

// Draw my scene

Draw();

 

// Re bind the OpenGL Standard framebuffer

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);

 

 

// Then SDL swaps buffers.

 

 

Results:

  • My status_fbo is equal to "GL_FRAMEBUFFER_COMPLETE_EXT" ! (good)
  • If I disable the line "glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);"  in the "Draw part", my scene is correctly shown on the screen. (good)
  • If I enable line "glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);"  in the "Draw part", nothing is shown (no good)

 

Question:

Please, is anyone could help me to identify the mistake? I think I don't really switch the back buffer with my FBO, but I don't know why...



Cette discussion est classée dans : buffer, gl, ext, framebuffer, mso


Répondre à ce message

Sujets en rapport avec ce message

openGL : scintillement [ par dletozeun ] bonjour,Je debute avec l'openGL en c++ et je n'utilise pas glut.En fait mon prog dessine des lignes blanches dans une fenetre mais les lignes ne s'afi OpenGL : les vertex buffer ca marche comment ? [ par eplanet ] Bonjour à tous, je voudrais me mettre aux vertex buffer pour optimiser un programme en openGL, seulement, lorsque j'écris la ligne :        glBindBuff OpenGL : modifier un vertex buffer ? [ par eplanet ] Bonsoir, je fais un petit jeu en openGL en utilisant les vertex buffer, et je voudrais pouvoir transformer au cours du temps les données contenues dan effacement viewport [ par vladisback ] je réalise actuellement un logiciel de modelisation 3d, j'ai donc plusieurs viewports mais lorsque j'efface avec glClear(GL_COLOR_BUFFER_BIT | GL_DEPT Problème d'affichage, couleurs, faces visibles/cachées [ par Tibabou ] Bonjour/soir, Avec le code ci-dessous, j'obtiens une sphère "bizarre", j'ai le même problème avec des cubes, on voit le fond à certains endroits:<IMG openGL3.3: probleme de texture [ par jngl ] bonjour, je suis entrain de développez un application C++ avec openGL3.3, SFML2(pour la fenêtrage) et openCTM pour charger les model3D. je n'arrive TEXTURE SUR UNE SPHERE TOURNANTE [ par Batman60 ] bonsoirj'ai un problème de texture sur une spherela texture ne  tourne pas et ne prend pas la forme de la sphere ,mais la sphere tournevoic tableau [ par blueburry ] Bonjour, g besoin de retirer d'un buffer sBuf une chaine de caracteres ki vient juste apres le mot Subject: et avant le retour de chariot et de la pla caracteres chelous avec ReadFile() ???? [ par SnOOpss ] Salut j'ai un probleme tout con avec Readfile()                 HANDLE hdl;                 hdl=CreateFile(data3,GENERIC_RE Dessiner dans une fenêtre avec buffer [ par CyberP ] Je voulais savoir comment faire pour afficher un buffer de couleurs sur une fenêtre ? Ou au pire comment dessiner tout simplement dans la fenêtre sans


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 2,153 sec (3)

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