Fixed it!
So the problem ended up being the fact that the z-buffer associated with the render target wasn’t the same size, so it got clamped… It still smells of driver bug in fact, since depth testing, writing, etc, was turned off, but it was more or less simple to fix: just create a 1024×1024 depth buffer for the screen-based effects (like the SSAO)…
I think the whole frame buffer system on OpenGL is a bit convoluted, requiring you to jump through hoops to do something that should be simple… For example, let’s imagine I want to do a pass on the scene, where I write to a color buffer and the “default” depth buffer… I don’t think this is possible under OpenGL… I would have to create a frame buffer and a depth buffer, and do the render, but when I get back to the screen buffer, the depth buffer associated with it isn’t filled, so I couldn’t take advantage of early-Z, etc, without rendering to it again (because I can’t set the depth buffer of the screen buffer, like I can on DirectX, but I also can’t get the default one to give it to the second frame buffer I create)…
This can of course just be a lack of comprehension on my part on how OpenGL works, but I’ve found no references on this on the Internet…
Anyway, problem solved, now I only have 10000 other stuff to do!
Now listening to “Soundtrack for the Voices in my Head” by “Celldweller”
Link of the Day: Rammstein… a capella!
Comment
You must be logged in to post a comment.