ecs-sandbox icon indicating copy to clipboard operation
ecs-sandbox copied to clipboard

G-buffer work

Open numpad opened this issue 5 years ago • 0 comments

Basic deferred shading is implemented, but the current implementation is far from optimal. I need to think about the data we need in the G-buffer, how we actually lay it out to stay efficient and especially how we organize this in code.

Todo:

  • [x] Structure G-buffer into a class (done in #56 )
  • [ ] Express shader passes and the information they share
  • [ ] Use the existing OpenGL depth buffer instead of my own
  • [ ] Remove the world position buffer, instead reconstruct it from depth buffer when needed

Challenges:

  • The G-buffer should be fairly flexible (lower graphics settings may not need a specific buffer)
  • The execution order of render passes should be more explicitly defined (?)
  • The first, basic world/entity render pass draws to the color, normal, position, depth buffers.The second decal render pass renders to color, normal buffer but requires the depth buffer. This should be handled better in code.

numpad avatar Jul 09 '20 09:07 numpad