main difference between F-buffer and multi-pass rendering?

DOOM III

Newcomer
is it that with F-buffer support,the GPU only have to store the intermediate result of pixels which exceed the limitation of instruction,while in multi-pass rendering the whole scene has to be stored in the local memory?
 
You don't need to redraw the whole scene in multi-pass. You can just redraw the objects (or its bounding box) with long pixel shader. However F-Buffer has some advantages: it can be done by the driver, it can save the overhead of render-to-texture-and-use, and it probably has better locality on memory access.
 
F-buffer is a smart (and possibly transparent) way to do multi-pass rendering.

1. It avoids the need of full-screen temporary buffers as only the pixels (fragments) affected will be stored in it.

2. The hardware can have control over the granularity of multipassing (per DrawPrimitive, per triangle, per 1024 pixels, etc.), while the smallest granularity available to traditional multipassing is per DrawPrimitive.
That can mean 1-2 order of magnitude less memory use.

3. All per-fragment data needed for subsequent passes is stored in the F-buffer, so there's no need to send and process the vertex data multiple times.
 
Back
Top