New selective supersampling demo

Another cool demo

my results
6800LE 354 824 16vp 79.11, 754 3000+ @ 250fsb
26-35fps @ 1600x1200 8xS AA, 11 samples
 
DeanoC said:
What should ISV do to better support AA?
Well, FSAA is relatively simple to support. In consoles it may be slightly more difficult, but it's not such a big deal.

What's really important for ISV's to work on, however, is anti-aliasing within the shader. Basically, lots of shaders alias really badly. Simple bump mapping is one obvious example (as shown in this demo).

Now, I do largely agree with Rev's post, but there is a simple solution: robust shader libraries. It looks like UE3 is going to ship with a good shader library, so hopefully they'll catch on soon.
 
Chalnoth said:
Now, I do largely agree with Rev's post, but there is a simple solution: robust shader libraries. It looks like UE3 is going to ship with a good shader library, so hopefully they'll catch on soon.

I wonder, how feasible would it be for the shader libraries in UE3 offer the option of SS in the shaders similar to Humus' demo? Probably not very, I'd guess.

The next-gen engines should allow a big leap in image quality over the current stuff so it would be nice if there were options to reduce aliasing to the highest degree possible as well.
 
Humus said:
Are you forcing AF in the driver control panel? If so, then it's because the demo already uses AF. Well, except if you resize the window ... I apparently had a bug in the framework so that it didn't set the AF again after a device reset. I've fixed that now though and uploaded a new version.
'

Yeah CCC AF. Thanks for the clarification.
 
Chalnoth said:
What's really important for ISV's to work on, however, is anti-aliasing within the shader. Basically, lots of shaders alias really badly. .

The limitation was probably mostly on dependant texture read and number of instructions (if you already reach the limit of instructions of ps2.0 without supersampling that gives you an idea).
With all ihv supporting PS3.0 now, that may be easier. Or they may decide to add more complicated shaders instead. Hey! ;)

LeGreg
 
Mariner said:
I wonder, how feasible would it be for the shader libraries in UE3 offer the option of SS in the shaders similar to Humus' demo? Probably not very, I'd guess.
Well, I would expect it'd be very feasible. Just don't know if Epic has spent any time developing anti-aliasing versions of the various pieces of code.

Anyway, bear in mind that not all algorithms require supersampling. There are, for example, methods of making use of texture filtering information to provide approximate MIP mapping for bump mapped surfaces with very little added cost.
 
As per tradition there's a couple-of-days-after-release-update available now. I played a bit more with dynamic branching today and found a good criteria to use. If the gradients of the specular of the first sample is large enough, supersampling kicks in. This improve performance further. Now it's at 77% the original for 4x, vs. previous 60%. You can toggle the use of dynamic branching with the 9 key.
 
Just so I know what Tim Sweeney as a developer thinks about doing something like this (SS directly in shaders, in/on specific surfaces within a scene) :

Tim Sweeney said:
That's tricky. Separating out the sampling frequency of some parts of a shader program from other parts would be difficult to specify. I'm skeptical that this will happen because it's a very complex solution, and will be obsoleted over the next 6 years or so due to plain old Moore's Law improvements. Video resolutions are going up much slower than GPU processing power, so supersampling will be practical in a few years.

For consoles, the 1080p video standard will probably last for at least 10 years as the "top consumer resolution" (not so on PC, but...) so I could envision using tons of supersampling towards the end of that period.
 
BTW, and I forget and is too lazy to check, XB360's Xenos does 2xMSAA "for free" right?

How feasible would it be for it to have 2xSSAA?

Sorry if this question is in the wrong forum.
 
I can't resist being a smart ass, so I apologize in advance for this post.

Dual Core 2.3 Power Mac G5
7800 GT
2 GB RAM
Mac OS 10.4.4

.exe file won't run.

;)

But thank you for all your incredible work Humus. You are the undisputed king when it comes to actually showing all of us what the hell it is we discuss and feebly attempt to visualize in this forum.
 
Run's fine om my 6600 GT. Makes a huge difference with only a few samples. 11 samples still shows some aliasing on certain angles though.
 
Humus said:
As per tradition there's a couple-of-days-after-release-update available now. I played a bit more with dynamic branching today and found a good criteria to use. If the gradients of the specular of the first sample is large enough, supersampling kicks in. This improve performance further. Now it's at 77% the original for 4x, vs. previous 60%. You can toggle the use of dynamic branching with the 9 key.

Dynamic branching has a big performance hit on a 6150 (about 30%). I might try it with a 6600GT later but I expect the result to be similar.
 
Last edited by a moderator:
Originally Posted by Tim Sweeney, to Rev
That's tricky. Separating out the sampling frequency of some parts of a shader program from other parts would be difficult to specify. I'm skeptical that this will happen because it's a very complex solution, and will be obsoleted over the next 6 years or so due to plain old Moore's Law improvements. Video resolutions are going up much slower than GPU processing power, so supersampling will be practical in a few years....

One thing I've been considering when speculating about the future, is that monitor size cannot grow infinitely and stay practical at the same time. So yes I can see the reasoning that resolutions won't scale as much as processing power.

What seems a bit more difficult to believe at this stage is where the fillrate and bandwidth will come from for SSAA, especially if you encount float HDR.

BTW, and I forget and is too lazy to check, XB360's Xenos does 2xMSAA "for free" right?

How feasible would it be for it to have 2xSSAA?

Sorry if this question is in the wrong forum.

Hmmmm someone correct me if I'm wrong but I wouldn't think that Xenos would have any problem with 2xSSAA in terms of memory footprint and/or bandwidth. Main consideration would obviously be fillrate. If such a design would for instance have twice the fillrate it has today but the same bandwidth, then I can see it make more sense. And maybe Sweeney does think that fillrates will scale in the future way more than bandwidth compared to today's architectures.
 
Just out of curiosity

Other than the DB part, Humus, why does this demo require SM3.0?

Is it mandatory due to the technology you use or is it simply because you coded your app with SM3.0 in mind?
 
Back
Top