2010-12-07 95 views
0

我深度渲染場景到不同的幀緩衝區,問題有點難以解釋,但正如你可以在圖像中看到的深度圖,它實際上遭受像網格一樣的工件。你有什麼想法是什麼來源?深度渲染僞影

這裏是FB創建代碼:

self.shadowTexture = glGenTextures(1);   
    glBindTexture(GL_TEXTURE_2D, self.shadowTexture); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); 
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); 

    glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, w, h, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, None); 

    glBindTexture(GL_TEXTURE_2D, 0); 
    self.fbo = glGenFramebuffers(1) 
    glBindFramebuffer(GL_FRAMEBUFFER_EXT, self.fbo) 
    glDrawBuffer(GL_NONE); 
    glReadBuffer(GL_NONE); 
    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,GL_TEXTURE_2D, self.shadowTexture, 0); 

alt text

回答

4

你的問題很可能是來自於你的投影矩陣具有近及遠的飛機(指併攏像素之間太多的分離 - 事實正在遭受浮點精度問題)。縮小2架飛機之間的差距,這應該解決你的Z戰鬥問題。

+0

謝謝Goz,似乎是這樣。我實際上正在研究陰影貼圖,對光線和照相機投影矩陣使用合理的值是非常棘手的。 – 2010-12-07 13:53:49