Here is the post I created on psforums:
posted by doc evil on games thread:
Quote:
The Develop Conference will be taking place between July 24th to the 26th in Brighton, UK. Even though this event will be taking place after E3, we’ll get a chance to hear about some of the development techniques behind Killzone for the PS3.
Deferred rendering in Killzone 2
Michal Valient, Guerrilla-Games
Next generation gaming brought high resolutions, very complex environments and large textures to our living rooms. With virtually every asset being inflated, it’s hard to use traditional forward rendering and hope for rich, dynamic environments with extensive dynamic lighting. Deferred rendering, on the other hand, has been traditionally described as a nice technique for rendering of scenes with many dynamic lights, that unfortunately suffers from fill-rate problems and lack of anti-aliasing and very few games that use it were published.
In this talk, we will discuss our approach to face this challenge and how we designed a deferred rendering engine that uses multi-sampled anti-aliasing (MSAA). We will give in-depth description of each individual stage of our real-time rendering pipeline and the main ingredients of our lighting, post-processing and data management. We’ll show how we utilize PS3’s SPUs for fast rendering of a large set of primitives, parallel processing of geometry and computation of indirect lighting. We will also describe our optimizations of the lighting and our parallel split (cascaded) shadow map algorithm for faster and stable MSAA output.
Take Away
The session will provide detailed overview and optimizations of modern rendering engine and parallel processing. Many of the topics are applicable for various gaming platforms.
Ok why am I re-posting this you may ask.
Answer = I done some digging about deferred rendering as I have never heared of this technuiqe.
Basicly it looks like there hasn't been enough power or the GPU's have been to restricte to do deferred rendering with MSAA up until present.
Here is a quote on this:
Quote:
Don't have any screenshots, I abandonned my deferred redenderer a couple of years ago.
But I recall that the artifacts that bothered me most was that sometimes it looked like there was no AA and most of the time the "edges" were enhanced, like a sobel edge detection filter albeit more subtle.
I.e the jaggy edges where enhanced, which defies the purpose of AA!
Looking further down I stumbled on this:
Quote:
So if I use only a GeForce 8800, I can program the resolve function, that's it ? Then I can have an antialiased resolve function for the color buffer and no anti-aliasing for the position and normals ... Is it correct ?
Can I do it just now ? what function to call (on XP/OpenGL) ?
Or you mean that I have to render to a 4X buffer (for 4X AA) then code AA myself ?
answer was:
Quote:
Custom resolves are supported on G80 and R600 (they are required for D3D10). In D3D10 you can load the different elements in an MSAAed buffer using the "Load" shader function with an extra integer parameter for which color index. Note that *all* of your attribute buffers should technically be multisampled (this is also supported on G80/R600).
Also note that MRT's are a totally separate issue here... even if you render one RT at a time, you will still have a problem with MSAA + deferred shading. MRT's are *just a performance optimization* - always remember that.
I assume the G80 OpenGL extensions expose something similar, but I'd have to check them out.
What you need to do for deferred shading is to load all of the different indices, resolve the lighting function, then average the results for all samples. So for 4x MSAA something like (in HLSL):
So if we go back to the original Killzone 2 devs posts we can speculate that either.
The RSX has some of the Nvidia G80 componants.
or
The Cell is able to emulate DX10 functions (or something completly new) for this type of thing to work?
http://www.gamedev.net/community/for...opic_id=447959
Thought this though deserved a new thread. Anyone agree/disagree or do you think I'm on to something?