Bunu OpenGL belgelerinde hiçbir yerde bulamadım. Daha önce cevaplanmış olsaydı özür dilerim. Ama soru şu: eğer pikselleri bir FBO'dan diğerine kopyalarsam ve bunların her biri birden fazla (aynı sayıda gerekli değil) renk ekine sahipse ve eğer maskem GL_COLOR_BUFFER_BIT ise, hangi renk ekleri (GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, ....) GL_COLOR_ATTACHMENTN) kopyaladı mı? Hepsi? Eğer evet ise, bu FBO'ların kendilerine eklenmiş farklı sayıda renk tamponları varsa ne olur? fbo1 2 renk ekleri vardır ve fbo2 4 renk ekleri vardırGL_COLOR_BUFFER_BIT maskesi belirtildiyse glBlitFramebuffer tüm renk eklerini kopyalar mı?
glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo2);
Not:
bu yolla bağlanan 2 FBOs olduğunu varsayın.Peki bu durumda glBlitFrameBuffer blit renk ekleri nedir?
Teşekkürler Nicol. Bunun farkındaydım. Benim sorum hala devam ediyor. ** \t ** glBindFramebuffer (GL_DRAW_FRAMEBUFFER, fbo2);; ** fbo1 \t ** glBindFramebuffer (GL_READ_FRAMEBUFFER, fbo1): Soru daha net hale uğruna, burada bu şekilde bağlanmıştır 2 FBOs vardır 2 renk ataşmanı vardır ve fbo2 4 renk aparata sahiptir. Peki bu durumda glBlitFrameBuffer renk eklerini nasıl kopyalar? – viktorzeid
@kvikram: "* Bunun farkındaydım. *" Hayır, sen değildin ve hala değilsin. Anlamakta başarısız olduğunuz şey "geçerli glReadBuffer" ve "GL_READ_FRAMEBUFFER'a bağlı * framebuffer *" arasındaki farktır. Dediğim gibi, bu eklerle ilgili değil *; framebuffers içindeki * okuma ve çizim arabellekleriyle ilgilidir. –
Teşekkürler Nicol. Sanırım anlayışımı temizledin. İlk adım okumak/çizmek için FBO'ları seçmek: \t glBindFramebuffer (GL_READ_FRAMEBUFFER, fbo1); \t glBindFramebuffer (GL_DRAW_FRAMEBUFFER, fbo2); ve sonra açıkça okumak için renk tampon/ glReadBuffer (GL_COLOR_ATTACHMENT0) çizmek söz; glDrawBuffer (GL_COLOR_ATTACHMENT3); ve ardından blit işlemini yapın: \t glBlitFramebuffer ..? Bu, renk eki 0'daki tamponu fbo1'deki renk eki3'te fbo1'den arabelleğe kopyalayacaktır. – viktorzeid