PDA

View Full Version : Accumulative motion blur at 30fps



keelx
11-30-2011, 12:42 PM
I have an idea to make a realtime application at 30fps, but it will still remain at a decent quality because I will add motion blur using the accumulation buffer (hardware does not support shaders). I've tried some accumulation buffer demos, and they run just fine in realtime, so I don't think speed is much of an issue. That being said, I propose that I render the frames at 60fps, but only display at 30fps. This way, I can have the extra frames placed into the accumulation buffer, and then render a single frame with an accumulated motion-blurred scene. How plausible is this idea? Would it be good enough for, say, a game? Would it even contribute to quality/performance? Would other techniques (soft shadows, DOF, antialiasing) also be able to be used simultaneously? What I'm going for is the old cinema trick- keep low framerates, but high quality animation by storing multiple images into a single frame.

ZbuffeR
11-30-2011, 01:40 PM
render at 60 display at 30 means you only have 2 images as a blur : this is really ugly. Try to render 8 or 10 images to 1.
It is better to not blur and keep 60 fps.

However, doing motion blur as a post process, using motion vectors, is higly effective to improve an image, with a much smaller cost than doing several times a full rendering.

For example read this, for an overview of techniques :
http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

Many more available on the web.

mhagain
11-30-2011, 03:18 PM
You don't always get hardware acceleration on the accumulation buffer. I assume that because you're not dropping to 10 or less FPS that you are getting it, and are therefore on NVIDIA, but ATI/AMD may be ropey and Intel almost certainly doesn't have it.

keelx
11-30-2011, 04:31 PM
render at 60 display at 30 means you only have 2 images as a blur : this is really ugly. Try to render 8 or 10 images to 1.
It is better to not blur and keep 60 fps.

However, doing motion blur as a post process, using motion vectors, is higly effective to improve an image, with a much smaller cost than doing several times a full rendering.

For example read this, for an overview of techniques :
http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf

Many more available on the web.

Sounds like a good idea- i'll see what I can do with that.


You don't always get hardware acceleration on the accumulation buffer. I assume that because you're not dropping to 10 or less FPS that you are getting it, and are therefore on NVIDIA, but ATI/AMD may be ropey and Intel almost certainly doesn't have it.

Actually... It is an intel gma 950. On an Arch Linux system with the Mesa Gallium(7.1) drivers.
And most accumulator demos run flawlessly, while others (most notably the redbook ones) run at really low framerates.

mhagain
12-01-2011, 02:57 AM
The gma 950 actually supports ARB_vertex_program and ARB_fragment_program quite fine; if you're not getting them in your extensions list it may be a driver-related issue.

Eric Lengyel
12-03-2011, 06:11 PM
Also see "Motion Blur and the Velocity-Depth-Gradient Buffer" in Game Engine Gems 1 (http://www.gameenginegems.net/geg1.php).