For my rendering pipeline, I am using encoded RGBA8 buffers wherever possible. Currently, I am considering this order for all the passes:
- G-Buffer prepass
- Light accumulation
- SSAO
- Material (output motion vectors with MRT)
- Refractive (written to a separate buffer, then overwrites material buffer)
- EdgeAA
- Depth of Field
- Motion Blur
- Translucency (accumulated in a separate buffer, applies its own fog)
- Fog (also applies translucency buffer)
- Generate Bloom
- Apply Bloom, Tonemapping, & Color Correction
Problems:
Right now, I have concerns about ordering post-passes that involve blurring (Motion Blur, Depth of Field, EdgeAA, etc) or that overwrite other parts of the buffer (volume lighting, bloom, translucency, etc).
- Blur passes introducing artifacts into each other
- ex. Motion Blur then Depth of Field blurring the streaks
- ex. Translucency incorrectly blurred
- ex. Fog blurring artifacts with EdgeAA
- ex. Translucency being sharp on blurred background
Any insights from prior work would be most appreciated.
- Can you comment on my current proposed ordering of passes? Any potential problems, artifacts it will introduce?
- Can you offer you own proposed ordering? Any potential problems, artifacts it will introduce?
Any help you can offer would be most appreciated. Thanks.