Motion Blur in ET
•
23 Mar 2007, 22:05
•
Tutorials
I would like anyone who doesn't know what motion blur is to read these pages before reading anything else:
http://en.wikipedia.org/wiki/Motion_blur
http://freespace.virgin.net/hugo.elias/graphics/x_motion.htm
http://www.crossfire.nu/?x=tutorial&mode=item&id=5
Creating motion blur
There are basically two different approaches when creating motion blur to footage that isn't already motion blurred. The first method is to record the material at actual playback speed, then use a third-party software to analyze motion of the image and create the blur. The alternative way is to record at very high framerates, and, again, use a third party software to merge the recorded frames together, thus creating the motion blurred image.
The easy way of implementing the first method is to add a filter called 'motion blur' (or temporal smoother but that needs a lot of adjusting) in VirtualDUB after you've recorded your images sequence at the same framerate you want for video. Another possible approach could be to use some commerical plugin used for motion blurring, like RE:Vision Effects' ReelSmart Motion Blur: the plugin provides excellent quality of motion blur. Unfortunately the math used to analyse the motion of the image isn't foolproof, and the plugin needs a lot of guidance for creating the blur, rendering it almost useless in longer movies.
The second method is more commonly used in fragmovies these days. There are several different techniques of blending the frames together, some of which I will explain below.
No motion blur
This is a clip without motion blur:
http://rapidshare.com/files/21954044/25fps_noblur_xvid.avi (in case someone wants to know, it's Xionn's frags from EC XIII)
Recording
cl_avidemo 25
Clip famerate 25 fps
Good thing about this clip is that it's sharp. Very bad thing is that it isn't smooth.
On to the clips with motion blur.
Vegas and After Effects motion blur
http://rapidshare.com/files/21959368/25fps_vegasblur_xvid.avi // This is vegas gaussian blur.
http://rapidshare.com/files/22384790/25fps_aeblur_xvid.avi // This is After effects blur.
Recording
cl_avidemo 200
Clip famerate 25 fps
There isn't a lot of difference between those 2 blurs (you can't even see it while in motion).
Good thing about them is that they are smooth, of course.
Bad thing is that they are too blurred.
These clips are better then the first one but they arn't very good. It's very hard to see the players (or anything for that matter) during fast player movements.*
The only thing you can do about it is record at higher framerate, 200 is obviously not enough since we can see that blur (made by merging 8 images) when you pause the clip (check correct motion blur and false motion blur here http://freespace.virgin.net/hugo.elias/graphics/x_motion.htm ).
The next 'medium' framerate that you could use to get 25 fps as final framerate is 250 but merging 10 images isn't much better than merging 8.
However, merging 20 images is much better (cl_avidemo 500). Problem is vegas/Vdub don't support so high framerates so you need other programs to merge images such as Tga_merge ( http://www.bitmap.se/tga_merge.html ) or Tga_hook.
Tga_merge motion blur
Following clip has tga_merge blur:
http://rapidshare.com/files/22407669/25fps_mergeblur_xvid.avi
cl_avidemo 500
Clip famerate 25 fps
It's a lot better than vegas or AE blur but it has two major disadvantages :
First, at 500 fps you can record for maximum of 19 sec due to the ET/RTCW limit of 9999 TGAs, while at 200 fps you can record a maximum of 49 sec, that's half a minute difference.
Second, this takes a lot more time then vegas blurring method, not only because recording takes more time, but also because you need to merge the images afterwards and this is a lot slower than vegas.
Another example clip made by Craz:
http://violenceisbad.net/downloads/Craz/moviemaking/clips/tga_merged-03_long_800x576-xvid.avi
Tga_hook motion blur
The last and best way to make blur is using tga_hook ( http://www.violenceisbad.net/ender/TGA_Hook.rar ).
This is a clip made with it:
http://rapidshare.com/files/22410650/25fps_hookblur_xvid.avi
cl_avidemo 500
Clip famerate 25 fps
It "speeds up the capture process (quite noticeably) by short-circuiting the hooked program at the OpenGL level rather than file level so it saves most memory copying operations." (taken from tga_hook readme)
The blur made by this software is weighted to look similar to an exposure curve at higher fps (500 or 1000).
It also merges images during the capture and only writes the merged images which saves a lot of disk space.
It can also save images as .jpg files instead of .tga if you're very space limited.
The problem is that a lot of people report it isn't working with their ET/RTCW installations.
This is how i rank blur methods (you don't have to agree with me):
1. Tga_hook blur
2. Tga_merge blur
3. Vegas/After Effects blur
4. No blur
Explanations :
Since i assume people who read this have some experience with vegas/AE i won't explain how to make blur using those programs (i think indu made a good vegas blur tutorial so try to google for that one).
On http://www.bitmap.se/tga_merge.html you can find everything you need to know about tga_merge. Clip in this tutorial is made with linear blur (cmd was: tga_merge -s 9500 -w 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 shot0000.tga blur000.tga). Using different weighing (like a gauss curve) produces similar results as TGA_hook.
How to record: You have to capture image sequence at desired fps (500 is the best option in my opinion since with 1000 you can record for maximum of 9(10) sec). Then you run command prompt (Start>Run>cmd.exe) and follow the instructions on the page to create merged images. After that is done you can delete original shotXXXX.tga and free up disk space. This method is less space consuming then Vegas/AE methid.
Settings used for tga_hook clip can be found here http://www.violenceisbad.net/ender/Tga_hook%20settings.PNG (for 30 fps lower BaseFilterMultiplier) but there are better setting from q3 movie makers that you can find.
How to record: Follow the install intructions from TGA_Hook_FM.txt. Use Registry Editor (Start>Run>regedit) to change the settings. It's better to record .tgas instead of .jpgs (so change SaveTGAs to 1). You have to adjust SaveFrameEvery if you aren't recording at 500fps.
Values are (for final framerate of 25fps)
4 for cl_avidemo 100
8 for cl_avidemo 200
10 for cl_avidemo 250
20 for cl_avidemo 500
40 for cl_avidemo 1000
After recording is done all you have to do is open the image squence with vegas/AE/other program and you're ready to start editing.
VERY IMPORTANT
Here is another c/p from TGA_Hook readme which you should keep in mind.
"There are several limitations/precision problems in Quake3 demo capturing (note that this tool is aimed at working with other games too).
Firstly, in q3, cl_avidemo var tops at 100 so if you need more you have to tweak timescale (e.g use avi=100/ts=0.1 to obtain 1000 fps).
Secondly, frames that are captured occur at integer millisecond time intervals (one frame every 1, 2, 3 etc milliseconds).
This means you just can't capture a clip at say 900 fps but only 1000, 500, 333.33 etc**. (motion blur is only worth it at 1000 fps sampling).
Due to the fact that SaveFrameEvery # takes only one integer value, your target framerate should better be a divisor of 1000..
If no filtering combined with frame skipping is used everything works as you're used to (i.e badly :p since those limitations remain)."
*That doesn't mean Vegas or AE motion blurs are useless. If you intend to change playback speed in editing programs, it's a good idea to record at high fps (cl_avidemo 1000/500) and merge images to 250/200/125/100. This allows the editor to change the speed of the clip by using curves etc. Difficult to do "right", without over-blurring the material. ( http://www.shaolinproductions.org/index.php?option=com_content&task=view&id=36&Itemid=16 Check capturing part)
**1000, 500, 333.333, 250, 200, 166.666, 125, 111.111, 100, 90.909, ... , 66.666, 62.5, ... , 50, ... , 40, ... , 30.303 , ... , 25 (you get the numbers from following formula 1000/x, where x is 1,2,3...).
What this means is that you can write cl_avidemo 30, but ET/RTCW/Q3 will record at 30.30303 fps
Few examples
cl_avidemo 400 > 500 fps
cl_avidemo 300 > 333.333 fps
cl_avidemo 180 > 200 fps
What is truncated down in delay is truncated upwards in fps because of the division
(for cl_avidemo 180 > 1000/180=5.555, now "discard" decimals > 1000/5=200, so you're recording with cl_avidemo 200, not cl_avidemo 180; i hope this is clear)
Compression (by Gaso):
All modern codecs base their optimizations to the fact that most videos recorded with a real cameras are motion blurred, which reduces the amount of data required to compress consecutive frames. If the frames don't have any motion blur (basically still shots), a lot more compression data is required in fast motion sequences to achieve a similar quality as motion blurred frames. That's why no motion blur clips might require a bit higher overall bitrate.
To further illustrate this, here are some old tests I did with TGA_merge. It's the same clip, first one is without motion blur, second is recorded with 1000 fps and frames are blended together for "motion blurring":
http://www.violenceisbad.net/ender/no_blur_25fps-1.avi No motion blur
http://www.violenceisbad.net/ender/tga_merge_1000to25_v3.avi Motion blur
As one can see, the first clip feels pretty choppy, even though the files are identical in size. GSpot actually reported a higher bitrate for the first clip. An image captured from the clips from the same frame points out how Xvid really struggled with the clip without frame blending:
Special thanks to:
Violence is bad for hosting the clips (visit www.violenceisbad.net | #vib @ quakenet)
madscientist
Gaso
Craz
http://en.wikipedia.org/wiki/Motion_blur
http://freespace.virgin.net/hugo.elias/graphics/x_motion.htm
http://www.crossfire.nu/?x=tutorial&mode=item&id=5
Creating motion blur
There are basically two different approaches when creating motion blur to footage that isn't already motion blurred. The first method is to record the material at actual playback speed, then use a third-party software to analyze motion of the image and create the blur. The alternative way is to record at very high framerates, and, again, use a third party software to merge the recorded frames together, thus creating the motion blurred image.
The easy way of implementing the first method is to add a filter called 'motion blur' (or temporal smoother but that needs a lot of adjusting) in VirtualDUB after you've recorded your images sequence at the same framerate you want for video. Another possible approach could be to use some commerical plugin used for motion blurring, like RE:Vision Effects' ReelSmart Motion Blur: the plugin provides excellent quality of motion blur. Unfortunately the math used to analyse the motion of the image isn't foolproof, and the plugin needs a lot of guidance for creating the blur, rendering it almost useless in longer movies.
The second method is more commonly used in fragmovies these days. There are several different techniques of blending the frames together, some of which I will explain below.
No motion blur
This is a clip without motion blur:
http://rapidshare.com/files/21954044/25fps_noblur_xvid.avi (in case someone wants to know, it's Xionn's frags from EC XIII)
Recording
cl_avidemo 25
Clip famerate 25 fps
Good thing about this clip is that it's sharp. Very bad thing is that it isn't smooth.
On to the clips with motion blur.
Vegas and After Effects motion blur
http://rapidshare.com/files/21959368/25fps_vegasblur_xvid.avi // This is vegas gaussian blur.
http://rapidshare.com/files/22384790/25fps_aeblur_xvid.avi // This is After effects blur.
Recording
cl_avidemo 200
Clip famerate 25 fps
There isn't a lot of difference between those 2 blurs (you can't even see it while in motion).
Good thing about them is that they are smooth, of course.
Bad thing is that they are too blurred.
These clips are better then the first one but they arn't very good. It's very hard to see the players (or anything for that matter) during fast player movements.*
The only thing you can do about it is record at higher framerate, 200 is obviously not enough since we can see that blur (made by merging 8 images) when you pause the clip (check correct motion blur and false motion blur here http://freespace.virgin.net/hugo.elias/graphics/x_motion.htm ).
The next 'medium' framerate that you could use to get 25 fps as final framerate is 250 but merging 10 images isn't much better than merging 8.
However, merging 20 images is much better (cl_avidemo 500). Problem is vegas/Vdub don't support so high framerates so you need other programs to merge images such as Tga_merge ( http://www.bitmap.se/tga_merge.html ) or Tga_hook.
Tga_merge motion blur
Following clip has tga_merge blur:
http://rapidshare.com/files/22407669/25fps_mergeblur_xvid.avi
cl_avidemo 500
Clip famerate 25 fps
It's a lot better than vegas or AE blur but it has two major disadvantages :
First, at 500 fps you can record for maximum of 19 sec due to the ET/RTCW limit of 9999 TGAs, while at 200 fps you can record a maximum of 49 sec, that's half a minute difference.
Second, this takes a lot more time then vegas blurring method, not only because recording takes more time, but also because you need to merge the images afterwards and this is a lot slower than vegas.
Another example clip made by Craz:
http://violenceisbad.net/downloads/Craz/moviemaking/clips/tga_merged-03_long_800x576-xvid.avi
Tga_hook motion blur
The last and best way to make blur is using tga_hook ( http://www.violenceisbad.net/ender/TGA_Hook.rar ).
This is a clip made with it:
http://rapidshare.com/files/22410650/25fps_hookblur_xvid.avi
cl_avidemo 500
Clip famerate 25 fps
It "speeds up the capture process (quite noticeably) by short-circuiting the hooked program at the OpenGL level rather than file level so it saves most memory copying operations." (taken from tga_hook readme)
The blur made by this software is weighted to look similar to an exposure curve at higher fps (500 or 1000).
It also merges images during the capture and only writes the merged images which saves a lot of disk space.
It can also save images as .jpg files instead of .tga if you're very space limited.
The problem is that a lot of people report it isn't working with their ET/RTCW installations.
This is how i rank blur methods (you don't have to agree with me):
1. Tga_hook blur
2. Tga_merge blur
3. Vegas/After Effects blur
4. No blur
Explanations :
Since i assume people who read this have some experience with vegas/AE i won't explain how to make blur using those programs (i think indu made a good vegas blur tutorial so try to google for that one).
On http://www.bitmap.se/tga_merge.html you can find everything you need to know about tga_merge. Clip in this tutorial is made with linear blur (cmd was: tga_merge -s 9500 -w 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 shot0000.tga blur000.tga). Using different weighing (like a gauss curve) produces similar results as TGA_hook.
How to record: You have to capture image sequence at desired fps (500 is the best option in my opinion since with 1000 you can record for maximum of 9(10) sec). Then you run command prompt (Start>Run>cmd.exe) and follow the instructions on the page to create merged images. After that is done you can delete original shotXXXX.tga and free up disk space. This method is less space consuming then Vegas/AE methid.
Settings used for tga_hook clip can be found here http://www.violenceisbad.net/ender/Tga_hook%20settings.PNG (for 30 fps lower BaseFilterMultiplier) but there are better setting from q3 movie makers that you can find.
How to record: Follow the install intructions from TGA_Hook_FM.txt. Use Registry Editor (Start>Run>regedit) to change the settings. It's better to record .tgas instead of .jpgs (so change SaveTGAs to 1). You have to adjust SaveFrameEvery if you aren't recording at 500fps.
Values are (for final framerate of 25fps)
4 for cl_avidemo 100
8 for cl_avidemo 200
10 for cl_avidemo 250
20 for cl_avidemo 500
40 for cl_avidemo 1000
After recording is done all you have to do is open the image squence with vegas/AE/other program and you're ready to start editing.
VERY IMPORTANT
Here is another c/p from TGA_Hook readme which you should keep in mind.
"There are several limitations/precision problems in Quake3 demo capturing (note that this tool is aimed at working with other games too).
Firstly, in q3, cl_avidemo var tops at 100 so if you need more you have to tweak timescale (e.g use avi=100/ts=0.1 to obtain 1000 fps).
Secondly, frames that are captured occur at integer millisecond time intervals (one frame every 1, 2, 3 etc milliseconds).
This means you just can't capture a clip at say 900 fps but only 1000, 500, 333.33 etc**. (motion blur is only worth it at 1000 fps sampling).
Due to the fact that SaveFrameEvery # takes only one integer value, your target framerate should better be a divisor of 1000..
If no filtering combined with frame skipping is used everything works as you're used to (i.e badly :p since those limitations remain)."
*That doesn't mean Vegas or AE motion blurs are useless. If you intend to change playback speed in editing programs, it's a good idea to record at high fps (cl_avidemo 1000/500) and merge images to 250/200/125/100. This allows the editor to change the speed of the clip by using curves etc. Difficult to do "right", without over-blurring the material. ( http://www.shaolinproductions.org/index.php?option=com_content&task=view&id=36&Itemid=16 Check capturing part)
**1000, 500, 333.333, 250, 200, 166.666, 125, 111.111, 100, 90.909, ... , 66.666, 62.5, ... , 50, ... , 40, ... , 30.303 , ... , 25 (you get the numbers from following formula 1000/x, where x is 1,2,3...).
What this means is that you can write cl_avidemo 30, but ET/RTCW/Q3 will record at 30.30303 fps
Few examples
cl_avidemo 400 > 500 fps
cl_avidemo 300 > 333.333 fps
cl_avidemo 180 > 200 fps
What is truncated down in delay is truncated upwards in fps because of the division
(for cl_avidemo 180 > 1000/180=5.555, now "discard" decimals > 1000/5=200, so you're recording with cl_avidemo 200, not cl_avidemo 180; i hope this is clear)
Compression (by Gaso):
All modern codecs base their optimizations to the fact that most videos recorded with a real cameras are motion blurred, which reduces the amount of data required to compress consecutive frames. If the frames don't have any motion blur (basically still shots), a lot more compression data is required in fast motion sequences to achieve a similar quality as motion blurred frames. That's why no motion blur clips might require a bit higher overall bitrate.
To further illustrate this, here are some old tests I did with TGA_merge. It's the same clip, first one is without motion blur, second is recorded with 1000 fps and frames are blended together for "motion blurring":
http://www.violenceisbad.net/ender/no_blur_25fps-1.avi No motion blur
http://www.violenceisbad.net/ender/tga_merge_1000to25_v3.avi Motion blur
As one can see, the first clip feels pretty choppy, even though the files are identical in size. GSpot actually reported a higher bitrate for the first clip. An image captured from the clips from the same frame points out how Xvid really struggled with the clip without frame blending:
Special thanks to:
Violence is bad for hosting the clips (visit www.violenceisbad.net | #vib @ quakenet)
madscientist
Gaso
Craz
Where can I get it?
Hint: first link in Tga_hook motion blur section
Nice read, hopefully gets more people thinking about REAL motion blur.
Example clip done with TGA_Hook and TGA_Merge.
Recorded with hook 1000>500fps and then merged with tga_merge to 25 fps.
The image is uppside down and the colors are negative.
http://www.fuskbugg.se/pub/misc/tezt.rar
What is wrong?
This is how i rank blur methods (you don't have to agree with me):
1. Tga_hook & Tga_merge combined
2. Tga_merge blur (no weighting)
3. Tga_hook blur
4. Vegas/After Effects blur
5. No blur
Note that 40fps tga_hook/merge blur looks great if you use low basefiltermultiplier/merge 5 images without weighting.
Examples of tga_hook with high final framerate:
Event Horizon2 and q3fuel2
Link to the ingame font you used for those clips please! : D
If you want to adjust the shutter time in tga_merge (to reduce the amount but not the quality of the motion blur) then just set the weight to 0 for some of the images:
tga_merge -s 9500 -w 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 shot0000.tga blur000.tga
That would give you a shutter time that is half the time between frames, which is closer to what is used in cinematography.
http://en.wikipedia.org/wiki/Temporal_anti-aliasing