Horde3D

Next-Generation Graphics Engine
It is currently 22.11.2024, 00:11

All times are UTC + 1 hour




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 27.11.2007, 02:26 
Offline

Joined: 08.11.2006, 03:10
Posts: 384
Location: Australia
This isn't directly related to Horde - just some random thoughts on Deferred Shading that I saw on the ATOM blog.

Quote:
For those who have normal stored in their G-Buffer, here is an idea on how you can get really high quality anti-aliasing with a image space post process, without using hardware anti-aliasing. First take the per pixel normal, project into screen space, and re-normalize. Then take this screen space normal, and rotate 90 degrees (compute the vector perpendicular to the screen space normal). This perpendicular vector will be in the direction of the strongest "edge" at the pixel. Now like screen space motion blur, sample from the screen in the direction of this perpendicular vector, and intellegently take a weighted average of a few screen samples along both the positive and negative directions on this vector. Would have to workout the details, but the concept should work really well.

This is a fairly simple idea, so I might have a go at implementing it in the deferred pipeline of the Chicago sample :wink:
This would blur a lot of pixels which don't actually lie on an edge though, so I might have to mask it with a low-resolution sobel-type edge filter, or something...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 27.11.2007, 21:22 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Hmm, that sounds interesting. Thanks for posting it! The blog you mention is also new to me and seems to have a plenty of nice information. 8)

Antialiasing is in general a problem since there is no support for antialiased render targets in OpenGL except on GeForce 8 with a special extension. This is really annoying since you have to find all sorts of hacks if you are trying to do high quality rendering in combination with advanced multi-buffer techniques :(

EDIT: I though it would be a good idea to create a new section where we can discuss such interesting rendering techniques.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 27.11.2007, 22:42 
Offline

Joined: 03.10.2007, 23:09
Posts: 10
I think STALKER uses deferred shading together with FSAA and that it is described in GPU Gems 2. I think they implement edge detection by looking at changes in position and normals relative to nearby pixels in the g-buffer, and implement FSAA by sampling nearby color pixels and blend depending on this edge-value.

The method in the link would be simpler and faster i guess, but not as good looking?

Off-topic: I was wondering, would it be possible to do motion blur by keeping the position and color buffer of the last frame and blending towards the last frame color if the difference in position is large?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 01.12.2007, 13:22 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
slvmnd wrote:
Off-topic: I was wondering, would it be possible to do motion blur by keeping the position and color buffer of the last frame and blending towards the last frame color if the difference in position is large?


Some time ago I tried something similar. I stored a copy of the depth buffer from the previous frame and checked against the current depth buffer. If there was a difference I did some blurring at that fragment. Of course this technique is complete fake and doesn't work for all situations but it is quite cheap didn't look that bad, at least for my small test scene.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group