Содержание
- 2. SIGGRAPH 2010 Dmitry Andreev (AND) dandreev@LucasArts.com Real-time Frame Rate Up-conversion for Video Games or how to
- 3. Agenda Stories, Ideas, Possibilities Excitement, Inspiration Better Games Happy Players … Technical Details are Simplified Only
- 4. Real-time DEMO
- 5. Frame Rate Up-conversion Natural Motion of Objects In Software AVISynth + MSU FRC WinDVD (Trimension) In
- 6. Motion Estimation Block-matching Diamond Search Optical Flow Phase Correlation MAP/MRF or take it from the MPEG
- 7. Video Frame Interpolation Build Inner frames from outer frames Using Motion Vectors High-res estimation is required
- 8. Motion Vectors vs Velocities Estimated vs Rendered Motion Vectors Velocity Buffer
- 9. No Need for Motion Estimation The Source of Motion is Known Objects Camera Handle Special Cases
- 10. Running at 30 fps Game Extra 16.6 ms More advanced rendering techniques Deferred / Screen-space, etc…
- 11. Running at 30 fps Game Extra 16.6 ms More advanced rendering techniques Deferred / Screen-space, etc…
- 12. Motion Eye-tracking (60 fps) Observed @ 60Hz Display A, B, C, ... Temporal Functions Display Eye
- 13. Motion Eye-tracking (30 fps) Observed @ 60Hz Display A, A, B, B, C, C, ... Temporal
- 14. Motion Blur Helps to Remedy “Flickering”, but… Happens in the Eye… Not the camera (virtual) Should
- 15. Motion Blur In Games
- 17. The Idea is … Render Velocity Buffer
- 18. The Idea is simple … Render Velocity Buffer Interpolate the Middle Frame
- 19. The Idea is very simple … Render Velocity Buffer Interpolate the Middle Frame Present at the
- 20. Ideally (to be “free”) Reuse as Much as Possible Velocity buffers Previous frames @ lower-res Any
- 21. Typical Rendering Pipeline Depth Buffer (~2-3 ms) Shadows, Lighting (deferred), SSAO Main Color Pass & Alpha
- 22. Modified Rendering Pipeline Depth Buffer (~2-3 ms) Render Velocity / Interpolate / Schedule to swap Do
- 23. One-frame Based Solution Pros No extra latency Little extra memory Cons Issues with shadows and reflections
- 24. INTERPOLATION
- 25. Very Basic Interpolation Pn-½ = f( Pn-1,-½·Vn ) Sample half way backwards Previous frame Pn-1
- 26. Original I
- 27. Interpolated Very basic interpolation II
- 28. Very Basic Interpolation III Based on Current Velocity Pn-½ = f( Pn-1, -½·Vn ) Sample half
- 29. Camera Motions (TFU2) I 3rd Person Camera Translation
- 30. Camera Motions (TFU2) II 3rd Person Camera Translation Rotation
- 31. Artifact Minimization Static Geometry Velocity buffer filtering Dynamic Geometry (Characters) Render separately, re-render completely or ...
- 32. Two-frame Based Solution Pros Smoother shadows, alpha, reflections More real data to handle overlaps Cons Extra
- 33. Modified Velocity Rendering Re-render Characters At interpolated positions Use other Channels To help with interpolation and
- 34. Velocity Merging Very Simple and Efficient Vmerged = Vn-1 if ( Zn-1 + ∂ ) Z
- 35. Original I
- 36. Interpolated Velocity Merging II
- 37. Character Removal I Visual System’s Blind Spot Inspired
- 38. Character Removal I Visual System’s Blind Spot Inspired Synthesize the Interior Assuming That Horizontal remains horizontal
- 39. Character Removal II Generate Mask
- 40. Character Removal II Generate Mask Leak Neighboring Image Patches
- 41. Character Removal II Generate Mask Leak Neighboring Image Patches Duplicate and offset Up
- 42. Character Removal II Generate Mask Leak Neighboring Image Patches Duplicate and offset Up Down
- 43. Character Removal II Generate Mask Leak Neighboring Image Patches Duplicate and offset Up Down Left
- 44. Character Removal II Generate Mask Leak Neighboring Image Patches Duplicate and offset Up Down Left Right
- 45. Character Removal III Repeat N Times Blur the Interior Slightly original mask pass 1 pass 2
- 46. Character Removal IV Original Synthesized 3 passes @ 640x360 XBox360 ~ 0.4ms PS3 ~ 0.3ms (5
- 47. Improved Interpolation Based on Vmerged Sample half way backwards Previous real frame Pn-1 Synthesized frame P'n-1
- 48. Original I
- 49. Interpolated Velocity Merging and Character Removal II
- 50. Next Original In case of One-frame based Interpolation it is Unknown III
- 51. Typical Flipping Flip Normal Buffer As soon as VBlank is received Immediately, if VBlank passed (frame
- 52. Modified Flipping Flip Interpolated Frame Based on Time Normal conditions Frame rate drops
- 53. Custom flipping on XBox360 Bypass Direct3D Present with... Asynchronous Swaps Multiple front buffers SwapCallback, VerticalBlankCallback Manual
- 54. Real-time Implementation One-frame Based Interpolation of Dynamic Objects Character removal Performance @ 1280x720 XBox360 ~ 1.5
- 55. Motion Blur In TFU2 Current Solution Alpha “friendly”, simple edge condition Better than plain 30 fps
- 56. Future Work Transparency Customizations Re-render lightsabers, HUD Multi-layer interpolation Up-scale from Lower Frame Rates E.g. render
- 57. Acknowledgments Szymon Swistun Ruslan Abdikeev Cory Bloyd Cedrick Collomb Axel Wefers
- 58. Words of Wisdom
- 59. Thank You
- 61. Скачать презентацию