Cinematic motion blur and it's cost,

If you’ve had the opportunity to play Crysis on Very High/DX10 (not tweaked DX9 Very High) then perhaps you agree about the awesomeness of the quality of the motion blur. Project Offset, the tech demo turned property of Intel, and perhaps some other games have used or will be using similar motion blur techniques.

My main question is, what’s the limiting factor in why other games do not use it? Is it vram, or fillrate limitations, or?

IMO, quality motion blur is one of those things that further pushes real-time rendering to look like a Blur Studios offline cinematic or other offline 3d movies.

http://www.projectoffset.com/technology.php

Motion Blur - The Offset Engine is the first engine to utilize true cinematic quality motion blur on all objects. Rather than being a simple special effect, the motion blur works uniformly on everything that gets rendered, including moving and deforming objects and particles. This, combined with unified lighting, shading, and shadowing, bridges the gap in quality between real time and prerendered graphics.


Nice screenshots :slight_smile:

I don’t know enough about the deep details and performance issues, I guess it must not be an easy one to achieve if you do want to do it properly :

There’s full screen post processing effect involving backbuffer, “auxiliary” buffers or velocity buffer technique, render to texture, etc… I’ve read around that OpenGL seemed to have some special Hardware Accumulation Buffer support?

(Nvidia’s CineFX engine also says it does 64bit floating point frame buffer blending for “better motion blur”?)

And there’s object motion blur which apparently can use geometry shader : but this one is still too slow (an example is in one of the most advanced DX10 samples from DXSDK)

Yeah, from my understanding the main issue with motion blur is rendering the multiple frames at one time. There’s some trickery like not clearing the frame buffer and other tricks but it still pretty pricey.

Usually floating point stuff means that they store values above 1, usually used for bloom, but I suppose the motion blur would be better if you could maintain those hot spots as opposed to washing the whole frame out.

That being said motion blur is totally doable if your game is all about motion blur, it’s usually doable to do one or two full screen effects and still get decent performance, but once you start trying to do bloom, motion blur, anti-alias and depth of field is where you start choking the consoles.

[QUOTE=sebddd;1882]Nice screenshots :slight_smile:

I don’t know enough about the deep details and performance issues, I guess it must not be an easy one to achieve if you do want to do it properly :

There’s full screen post processing effect involving backbuffer, “auxiliary” buffers or velocity buffer technique, render to texture, etc… I’ve read around that OpenGL seemed to have some special Hardware Accumulation Buffer support?

(Nvidia’s CineFX engine also says it does 64bit floating point frame buffer blending for “better motion blur”?)

And there’s object motion blur which apparently can use geometry shader : but this one is still too slow (an example is in one of the most advanced DX10 samples from DXSDK)[/QUOTE]

I think DX10/Crysis uses object-motion blur if you turn motion blur, shaders, and post-processing on “Very High” in the options. You can go into the console and type r_constricted 0 to turn off some console command limitations, then type r_motionblur 5 and q_quality 3 and I think that enables a form of it, even in DX9, but it causes some severe artifacts in DX9.

The only method I have seen in a shipping products that is beyond simple camera blur is like others described above:

The “2.5D motion blur” technique is based on NVIDIA OpenGL Shader Tricks by Simon Green at GDC2003.
http://developer.nvidia.com/docs/IO/8230/GDC2003_OpenGLShaderTricks.ppt

as in lost planet
[http://www.watch.impress.co.jp/game/docs/20070131/3dlp50.htm[/URL

translated here
[URL=“http://forum.beyond3d.com/showpost.php?p=919807&postcount=116”]http://forum.beyond3d.com/showpost.php?p=919807&postcount=116](http://www.watch.impress.co.jp/game/docs/20070131/3dlp50.htm)

Capcom improve quality for stills - so dont belive all stills are realtime from their games - even with artifacts in games it works ok