"When I despair, I remember that all through history the way of truth and love has always won. There have been tyrants and murderers and for a time they seem invincible, but in the end, they always fall -- think of it, ALWAYS"
- Mohandas K. Gandhi
More pages: 1 2
Another demo
Tuesday, October 21, 2008 | Permalink

It's demo time again!

This time I've implemented deferred shading with multisampling support using a stencil mask to separate the edge pixels from the surface interior. Grab it while it's hot!

Update 2008-10-23: As per tradition, I've now updated the demo a couple of days after release because of some feedback I've received. It wasn't obvious that you needed to select a multisampled mode, so now the demo tells you about it if you happen to have a non-multisampled mode selected. Also, I've added the F5-F8 options to the F1 dialog to make it more obvious what options there are and what they do.

Name

Comment

Enter the code below



ByOrms
Wednesday, October 22, 2008

sounds and looks very interesting. since i ain't got directX 10.1, i cannot test it. but so far, you've done a good job, with you exhibitions about directX 10 and 10.1. keep it up

-ByOrms-

Enrico
Thursday, October 23, 2008

Nice, good work

Any chance we get some screenshots from different modes to compare and the stencil mask?
Dont have Vista

Thanks

sqrt[-1]
Thursday, October 23, 2008

Running on a AMD 4850 at 4xMSAA-

F5 - MSAA looks a bit broken - samples don't look lit correctly on edges?
F6 - MSAA looks a bit broken - samples don't look lit correctly on edges? (much lower frame rate)
F7 - Looks correct lit but less AA

I think it would be much easier to understand options if you put them in the menu (as you do for other demos)

When I initially ran the demo I could see no difference - I had to access the menu and enable MSAA.

If you want, I can send you an email about what I am seeing..

Stoppel
Thursday, October 23, 2008

Nice, I already did that a few months ago
http://youtube.com/watch?v=e-VsSXN0504&fmt=18
Interestingly, the edges created by the GPU's clipping also become visible.

Your Demo crashes because it can't find D3D10_39.dll, I'll look into it this evening.

Humus
Friday, October 24, 2008

Enrico,
if you go to the demo page you can click the image to see a screenshot. The other two modes are mostly for performance comparison. One which look identical to default mode (except slower), and one that's slightly faster but no antialiasing, but otherwise the same. The stencil mask looks like this:
http://www.humus.name/temp/StencilMask.png

Humus
Friday, October 24, 2008

sqrt[-1],
it worked fine on an 4850 I tried. If you could send me screenshots that would be nice. Also try the latest drivers if you haven't.
I've updated the demos with your suggestion.

Humus
Friday, October 24, 2008

Stoppel,
I take it that you didn't read the depth buffer per se, but outputted depth to a render target, right? Otherwise that approach wouldn't work since each subsample gets a distinct interpolated depth value.

As for the missing dll, you need the latest runtime installed.

Stoppel
Friday, October 24, 2008

Humus,

Actually I picked all samples from each pixel of the depth buffer, compared their values and if they differed, I marked the pixel in the stencil buffer.

Shown in the video is the stencil mask. I got your demo working here and interestingly, the clipping edges don't become visible as often as they did with my approach�� maybe your centroid-approach is more stable or D3D 10.1 has some modifications D3D10.0 didn't have when I wrote my program. Also, I did not gain any performance by rendering the singe-sampled pixels dedicated from the multi-sampled ones, which is clearly the case in your application (50% performance improvement, that is GREAT)

Btw, does using SV_SampleIndex in a shader do the same trick (the same performance boost) or does it multisample each pixel, may it be multisampled or not?

More pages: 1 2