Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 28. únor 2013, 22:03:59 Předmět: OpenGL frameBuffer[solved] |
|
|
Zdar
Mam jeden problem. Vzrastol vo mne zaujem o openGL, implementoval som zakladnu forward lighting. Neskor som sa rozhodol pre deferred shading tak som sa zacal sturat vo framebufferoch aby som to pochopil poriadne odspodu . Takze teraz mam vytvoreny frameBuffer, texturu v nom. Na zaciatku main loopu bindnem tento framebuffer spocitam transformacie a nasleduje render ktory by mal tym padom smerovat do daneho framebufferu.
potom bindnem defaultny buffer, kreslim cez neho jeden quad na ktory mapujem ony framebuffer. nejak ale nevidim vysledok, vobec netusim kde moze byt chyba. tu je kod main loopu:
kód: |
glBindFramebuffer(GL_FRAMEBUFFER, FramebufferName);
glUseProgram(programID);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
angle += 0.3;
float fAng = angle*3.1415/180.0;
smgr.pLights[0]->setPosition(glm::vec3(sin(fAng)*7, 0.0, cos(fAng)*7));
camera->update();
glUniform1i(TextureU, 0);
smgr.renderScene(camera);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(programOT);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, renderedTexture);
glUniform1i(TextureF, 0);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, quad_vertexbuffer);
glVertexAttribPointer(
0,
3,
GL_FLOAT,
GL_FALSE,
0,
(void*)0
);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(0);
root.captureMPF();
glfwSwapBuffers(); |
pri glBindTexture(GL_TEXTURE_2D, renderedTexture); renderedTexture je ona texture toho mojho framebufferu. to kreslenie quadu by mohlo byt v nejakej metode ale to som zatial neriesil a len tak narychlo to tam placol potreboval by som vediet ci nerobim nejaku chybu v postupnosti krokov pri renderovani... za mozne odpovede vopred dakujem
Naposledy upravil koso dne 1. březen 2013, 22:21:38, celkově upraveno 1 krát |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 28. únor 2013, 22:33:42 Předmět: |
|
|
otestuj ci je tvoje FBO kompletne pomocou glCheckFramebufferStatus(). taktiez mozes skust pouzit glBlitFramebuffer() kedy do GL_READ_FRAMEBUFFER bindnes FBO a do GL_WRITE_FRAMEBUFFER zase 0 teda defaultny framebuffer. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 28. únor 2013, 22:35:38 Předmět: |
|
|
Napadá mě že by mohl být problém s tím jestli je/není k framebufferu připojený depth target (myslím, že je potřeba ho tam mít).
A taky by mohlo pomoci se podívat jestli je FB kompletní přes "glCheckFramebufferStatus(EXT)". |
|
Návrat nahoru |
|
|
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 28. únor 2013, 23:00:42 Předmět: |
|
|
buffer po vytvoreni kontrolujem glCheckFramebufferStatus(), a depth attachment ma taktiez... ono to bude nejaka uplna prkotina ako sa tak poznam (Nou's signature reference ), len som chcel vediet ci postupnost krokov pri rendrovani mam spravne |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 1. březen 2013, 00:33:10 Předmět: |
|
|
Nezapomněl jsi nastavit glViewport pro ten vytvořený framebuffer? _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
michalferko
Založen: 29. 09. 2008 Příspěvky: 83
|
Zaslal: 1. březen 2013, 09:28:12 Předmět: |
|
|
Minimalne to prezen nejakym debugovacim softwareom, ci ten prvy prechod naplni G-Buffer rozumnymi datami. Viz napr. AMD CodeXL.
Ak je G-Buffer OK, ale nic nevidis, tak to moze byt napr. face-culling (skus ho vypnut), alebo aj nastavenie orezavacich rovin. Dalsie je to, ze sa pre G-Buffer nespravili mipmapy ale filtering si im nastavil na pracu s mipmapami. Iba ho nastav na LINEAR alebo NEAREST, nie ????_MIPMAP_????. Mozno najlepsie by bolo spravit to cez sampler object.
Toto boli moje najcastejsie chyby ked som to rozbehaval, hadam pomoze. _________________ Moje minihry a ine projekty |
|
Návrat nahoru |
|
|
koso
Založen: 28. 05. 2009 Příspěvky: 110
|
Zaslal: 1. březen 2013, 22:23:08 Předmět: |
|
|
Dakujem za postrehy, aspon som sa uistil ze FBO magic som robil dobre problem bol v malej chybicke ohladom vykreslovania toho quadu na ktory som buffer samploval. |
|
Návrat nahoru |
|
|
|