In GDC 2007, Guerilla Games gave a presentation on their use of deferred rendering on the PS3, and since then, they were kind enough to post a breakdown of exactly what the PS3 is doing during a given frame. I'll save you a 2 page PDF filled with random numbers and just cut to the point.
First of all, the lighting that many people find amazing is fake. I think it looks great and almost no one would be able to tell the difference between that and real HDR, but it is fake nonetheless. Killzone 2 uses bloom lighting without any actual tone mapping to achieve good looking lights that resemble HDR. Guerilla Games applies tricks like this throughout the entire game. As I've stated above, I like these tricks as they allow them to do more, but other engines (like in GoW2, R3, H3) actually spend the processing power to generate real HDR lights. GG had to take a lot of shortcuts.
Due to the Playstation 3's lack of a dedicate framebuffer, it has to keep the framebuffer in memory. Killzone 2 uses 2XAA which actually doubles the size of the framebuffer. Double buffering in KZ2 double that as well. If they wanted to add 4XAA to clean it of jaggies, they would have to use a framebuffer 16X the size of that in the Xbox 360. Add that on top of the PS3's OS, and you have just lost over 150MB vs the 360's 32MB OS. An easy solution to this is to tone down the AA and stick to simple straight edged geometry that don't need to be anti-aliased that much. Not only does it lower the total framebuffer footprint, it also greatly lowers CPU usage and memory usage since squarish geometry takes up less space than complicated figures.
Also, since GG uses deferred rendering to assist the weak GPU, the framebuffer and other graphical components that would normally stay in the GPU have to be passed throughout the internal bus like clockwork so all the SPEs can work on it, something else which further increase ram use.
Do you see where I am going with this? Killzone 2 is being forced to look this way. Their engine is restricting them to use geometry to achieve detail and use grungy and simple textures (stacked together) to hide it all. It looks great, but it is a lot of smoke and mirrors.
CPU TIME
--------
Unknown .......... 1.24%
SPU Sync ......... 0.06%
AI Manager ....... 0.47%
Game Logic ....... 9.52%
Script ........... 0.80%
Physics .......... 1.57%
Representation ... 10.46%
Draw ............. 20.18%
HUD .............. 2.19%
Sound ............ 0.65%
Profile HUD ...... 25.17%
GPU Sync ......... 37.99%
Note: I know this adds up to over 100% however, some of this is being distributed to SPEs to help.
Take a look at the PPE in Killzone 2. Around 40% of the PPE is being used just to sync SPEs with the GPU to help improve its rendering. If you look at the actual SPE usage, there's a lot of idle time in which the SPEs are waiting for things to do. The physics, animations, and other critical KZ2 elements aren't taking too long to process, meaning that although the result is good, they are again using tricks. I could go on with more examples on animation, physics, etc, but I think it's a bit clear.
SPU TIME
----------------------------
AI.Cover ................... ........ 0.00%
AI.LineOfFire .............. ........ 0.00%
Anim.EdgeAnim .............. 33 ..... 2.01%
Anim.Skinning .............. 152 .... 30.68%
Gfx.DecalUpdate ............ 9 ...... 0.78%
Gfx.LightProbes ............ 396 .... 9.00%
Gfx.PB.DeferredSchedule .... 1 ...... 0.60%
Gfx.PB.Forward ............. 2 ...... 1.69%
Gfx.PB.Geometry ............ 1 ...... 18.67%
Gfx.PB.Lights .............. 1 ...... 0.66%
Gfx.PB.ShadowMap ........... 1 ...... 4.20%
Gfx.Particles.ManagerJob ... 1 ...... 3.14%
Gfx.Particles.UpdateJob .... 130 .... 12.33%
Gfx.Particles.VertexJob .... 70 ..... 20.64%
Gfx.Post.BloomCapture ...... 12 ..... 2.80%
Gfx.Post.BloomIntegrate .... 8 ...... 1.52%
Gfx.Post.DepthOfField ...... 64 ..... 12.12%
Gfx.Post.DepthToFuzzy ...... 8 ...... 0.67%
Gfx.Post.Downsample ........ 29 ..... 0.61%
Gfx.Post.GrainWeight ....... 1 ...... 0.51%
Gfx.Post.HBlur ............. 45 ..... 3.02%
Gfx.Post.ILR ............... 1 ...... 0.63%
Gfx.Post.Modulate .......... 27 ..... 1.3?%
Gfx.Post.MotionBlur ........ 46 ..... 11.31%
Gfx.Post.Unlock? ........... 1 ...... 0.01%
Gfx.Post.Upsample .......... 108 .... 9.47%
Gfx.Post.VBlur ............. 46 ..... 3.73%
Gfx.Post.Vg??lle ........... 1 ...... 1.18%
Gfx.Post.Zero .............. 16 ..... 0.64%
Gfx.Scene.Portals .......... 3 ...... 30.72%
Mesh.Decompression ......... ........ 0.00%
Physics.Collide ............ 4 ...... 2.48%
Physics.Integrate .......... 4 ...... 2.11%
Physics.KdTree ............. 8 ...... 20.50%
Physics.Raycast ............ ........ 0.00%
Snd.MP3.Stereo ............. 2 ...... 2.60%
Snd.MP3.Surround ........... 2 ...... 7.51%
Snd.?Synth ................. 35 ..... 3.23%
Snd.Reverb ................. 14 ..... 4.02%
----------------------------
Total Time ................. 1232 ... 227.46%
Note: Just like before, the reason it doesn't add up is a little difficult to explain without going through the entire deferred rendering philosophy.
This isn't really an engine build for a game, it's a game built around an engine and playing to its strengths and weaknesses. This is why Killzone 2 took so long to develop. They used a lot of tricks(which again, I like) to achieve results that would otherwise require a lot of power on an art style that would otherwise require a lot of power.
Hopefully this helped explain the art style, my views on memory, and why I think that although KZ2 looks amazing, it may be possible to do it on the Xbox 360. It may seem like I am against KZ2, but trust me, I am not. I think it is a great game that will go on to sell tons of copies and hold the title of best looking game for a while.