Jump to content
  • Advertisement
Sign in to follow this  
DirectXFreak

Verify my motion blur idea

This topic is 4329 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

After seeing the motion blur done by project offset, I've been searching for effective ways to do "real" motion blur. It annoys me when articles and demos showcasing this effect cheat by using frame feedback, which just looks horrible. So I've been searching around, and I've found an interesting method that I think might work. I'd like your input on it. Basically, if the game runs at something like 120 fps, or something similar, the extra frames can be divided and rendered to an accumulation buffer. So in the case of 120 fps, the game would render 4 frames to 4 seperate render targets, and then average all of them into the final image, which is then rendered to the screen. This probably wouldn't be the best way to do it, so I'd like some insight on how accurate my idea is. Thanks a lot!

Share this post


Link to post
Share on other sites
Advertisement
Ive always been curious about motion blur. In my mind, simply fading one scene into the other SHOULD create true motion blur (isnt that whats going on inside a camera? IE multple 'pictures' of the same scene, shifted slightly?), but youre right, it looks like crap. All other techniques that ive seen involve some complex shader that must be applied to all objects you want to blur, it just seems like such a hassle... I wish there was a more elegant way.

I cant comment on your theory. What exactly do you mean by "rendered to an accumulation buffer". How is that different from "frame feedback"?

Share this post


Link to post
Share on other sites
My primary reference to this idea is this article. At the end, he posts a link to a demo that looks a lot like true motion blur.

It looks like the main difference is that instead of just blending the previous frame with the current, there are actually multiple frames rendered, averaged together, and then displayed (simulating a real camera).

Share this post


Link to post
Share on other sites
Quote:
It looks like the main difference is that instead of just blending the previous frame with the current, there are actually multiple frames rendered, averaged together, and then displayed (simulating a real camera).


Yeppers. thats basicly how it works. Basicly real motion blur comes from objects being in motion while the camera shutter is open...so, as you suggest, averageing together multiple renders and displaying the resulting frame is a pretty accurite way to do it.


Share this post


Link to post
Share on other sites
Fascinating! So this has nothing to do with shaders or individual objects? Its applied uniformly to everything? Now that sounds elegant, checking out the article now...

Share this post


Link to post
Share on other sites
I thought you might enjoy reading this. It's old now, but it has a good description of several techniques that can be implemented with multiple samples per pixel.

Share this post


Link to post
Share on other sites
Akk from what ive read, you need to render MANY frames in order to get decent results. Thus youre gonna take a huge hit to fps... kinda discouraging. Does that mean games like project offset are just running at really high fps (like 120+ ), and thats how they get away with motion blur?

Share this post


Link to post
Share on other sites
@alvaro

that was a interesting article too.. I thought 3dfx was ded though.. heh. Anyway, I didnt quite understand how their "t buffer" would eliminate the need to render multiple frames in order to get motion blur.. Did I miss something?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
We are looking to do something similar to this.

Someone asked whether the FPS would have to be insanely high to have this effect look good, and I'd like to point out that it depends on the FPS the game will be locked at. At 30 FPS you'd only need to run the game at about 90 FPS to get 3 render targets to alpha blend together for each frame, which from our tests looks very good. The better the system running the game the more targets get sampled for each frame, and the more accurate the blur.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
http://www.100fps.com/how_many_frames_can_humans_see.htm

Here's an interesting link. A game need not run any faster than a film (24 FPS) to communicate enough information about the enviornment if the motion blur is accurate. Our minds are able to use the blur information (assuming it's accurate and not a parlor trick) to fill in the gaps in frames. That's why even high action films aren't dizzying to us.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!