Thanks guys. I've never played Sim City 2013, so that's an unfortunate miss
I didn't think that reply was enough but doing a good post takes time, so...
You have multiple ways to blur stuff; hell PSone could do motion blur; the specifics are probably uncalled for, but it was done either via blending frames or duplicating geometry; similarly effects like the final fantasy "going-into-battle" effects are also the principle of messing with a complete framebuffer image. Since it didn't support z-buffer and was so limited though it clearly couldn't pull this; but PS2 did; KH2 used it, as did Tri-Ace on 3 games. Here's the principle:
the result was like this:
Notice the low quality background, that actually happens a lot
this gen too, for the very same reasons.
Lack of precision, and the method; basically had this been about Ray Tracing, doing DoF would be cheap through that, as Ray Tracing calculates the light trajectories, and Light Field cameras are appearing and
they can focus afterwards; it's the same principle, because they're capturing the vector directions of the rays of light.
For regular rendering methods though, the question is how's the cheapest way to do this in a believable way?
And that's why current gen games haven't been using it much, it's taxing and fill rate based; it's a full frame passage like... say HDR (which also masks the places were light will come through heightned and the places it wants to protect from the light, then blurs the shit out of it and applies it; except DoF is not only looking for something else but it actually blurs colored images and detail it's not masked at all, even if it's not supposed to be where your eyes are focused) and it has to be done on a timely manner so latency is an issue. And this generation consoles are very limited in framebuffers, which the Wii U isn't, so that should help.
On top of it all, and returning to the precision, there are various DoF implementations. Wii U is a more modern spec, and it has shader model 4, which allows it to execute more operations per clock per stream processor (read: previous calculations became cheaper or so you can keep doing them or you can go for more complexity at the same price), it can also support Compute Shaders (these are actually intertwined) thus it can pull more complex effects too; I find this GIF appropriate:
We've not just been seeing DoF on the Wii U, we have been seeing the high quality DoF without hugely defined frontiers taking advantage of Wii U advantages (framebuffer, more modern implementation and increased efficiency).
Pikmin uses it on a two plane basis, ie: objects that are too close to the screen get blured and objected that are father away too; Wonderful 101 uses it as halo's (ie, frontiers of the effect are not clearly defined (on pikmin that also happens), it's clearly not the normal "current gen" DoF.
We don't know how intensive it is to be honest. I personally think there is some fixed function parts of the GPU that handles it well
I find that unlikely; if you have that dedicated silicon you might as well let developers do whatever they want with it.
And Wonderful 101 and Pikmin 3 feature very different DoF implementations (multilayered versus "blur halo's"); it would also make it so that any game not using DoF should be criticized for not doing so, "if it's free".
I don't think it's free; fixed function is usually very 1+1=2; the implementations we have in hands are not it.
To all the very tech minded guys.
Where did you all learn this stuff from, college etc ?
I find it incredibly interesting but don't really know where to start as I'm pretty much clueless beyond resolution lol...
Not sure I count, but reading a lot would be it, you can have knowledge and actual expertise on something derivative, for instance I don't program, but I do 3D modeling; that makes it so that I have to understand certain principles being discussed here; I have to understand what the hell is ray tracing, for instance; but even if I didn't I could have delved into it out of pure curiosity, it just makes it so that I can relate more easily to that in particular. Same can be said if you have a programming background or something along those lines.
There's no real shortcut, you have to read a lot of technical stuff until you start to understand it (if you want suggestions, I'd go with reading some
making of or
post mortem from a technical standpoint; try gamasutra as they're usually meant so normal people understand), and even then you'll be always learning; and stick around, if you have doubts ask; it takes work to put somethings into words but it is certainly not useless; you're certainly the only one that doesn't understand technical jargon so you might as well be asking what everyone else was thinking.