We used to use tile-based GPUs at one of my old jobs (embedded devices), similar model to the one used in the Sega Dreamcast IIRC
MistaED wrote:
Now I've been trying to work out how this would match Horde3D's rendering pipelines of forward and deferred lighting, but it sort of confuses me on what approach would benefit more.
The best pipeline still probably depends on the number (and size) of dynamic lights you want to have in your scene, regardless of the target hardware.
Quote:
From my understanding, the deferred part in the hardware is at the rasterisation level where it "bins" visible triangles to the screen into allocated tiles and can work out the overlapping parts and not need to render them.
Yep, it's supposed to cut down on the number of pixels that actually get shaded - in theory you can have lots of overdraw in your scene and still not be bound by fill-rate. On PC/360/PS3 GPUs, we achieve the same thing by using the "Z-pre-pass" technique (popularised by Doom 3).
Quote:
And with this approach, the absolute worst thing you could do is put alpha tested or "discard" in the shader which breaks all of this optimisation.
Do you have a reference for this? I wasn't aware of alpha-test/discard slowing down tile-algorithms (though on a regular PC/360/PS3 GPU it does slow down the Z buffer...).
Quote:
I'm just wondering now, how would real-time shadows work for alpha-tested things like leaves? Do you render alpha tested/discard shaders as a separate pass after opaque or not do it at all in favour of alpha blends in a separate pass? So you'd have opaque rendering and alpha blend only, but that doesn't really work well for creating the shadows then. Maybe it is best to just go with static baked shadows with a very small number of forward rendered lights?
By "real-time shadows", I assume you're talking about shadow maps?
As you say, alpha-blending is of no use when generating shadow maps, so you'd have to use alpha-testing...
Or you could simply not use alpha-testing for shadows, so instead of a quad of alpha-tested leaves casting a correct shadow, it would just cast a "quad" shadow...