Pixmotor: A Pixel Motion Integrator Ivan Neulander Rhythm & Hues.

Slides:



Advertisements
Similar presentations
Accelerating Real-Time Shading with Reverse Reprojection Caching Diego Nehab 1 Pedro V. Sander 2 Jason Lawrence 3 Natalya Tatarchuk 4 John R. Isidoro 4.
Advertisements

Real-Time Rendering 靜宜大學資工研究所 蔡奇偉副教授 2010©.
Exploration of advanced lighting and shading techniques
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
Parallax-Interpolated Shadow Map Occlusion
Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Exploration of bump, parallax, relief and displacement mapping
Filtering Approaches for Real-Time Anti-Aliasing
Week 11 - Wednesday.  Image based effects  Skyboxes  Lightfields  Sprites  Billboards  Particle systems.
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
Part I: Basics of Computer Graphics
Real-Time Rendering SPEACIAL EFFECTS Lecture 03 Marina Gavrilova.
Real-time Dynamic HDR Based Lighting in a Static Environment Marcus Hennix Daniel Johansson Gunnar Johansson Martin Wassborn.
Real-Time Rendering Paper Presentation Imperfect Shadow Maps for Efficient Computation of Indirect Illumination T. Ritschel T. Grosch M. H. Kim H.-P. Seidel.
HCI 530 : Seminar (HCI) Damian Schofield.
Rendering with Concentric Mosaics Heung – Yeung Shum and Li – Wei He Presentation By: Jonathan A. Bockelman.
Copyright  Philipp Slusallek Cs fall IBR: Model-based Methods Philipp Slusallek.
Splatting Josh Anon Advanced Graphics 1/29/02. Types of Rendering Algorithms Backward mapping Image plane mapped into data Ray casting Forward mapping.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Skin Rendering GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from David Gosselin’s Power Point and article, Real-time skin rendering,
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Fast Global-Illumination on Dynamic Height Fields
Frequency Analysis and Sheared Reconstruction for Rendering Motion Blur Kevin Egan Yu-Ting Tseng Nicolas Holzschuch Frédo Durand Ravi Ramamoorthi Columbia.
Vertices and Fragments III Mohan Sridharan Based on slides created by Edward Angel 1 CS4395: Computer Graphics.
CSCE 641: Computer Graphics Image-based Rendering Jinxiang Chai.
Painterly Rendering for Animation Barbara J. Meier Walt Disney Feature Animation SIGGRAPH 96.
02/14/02(c) University of Wisconsin 2002, CS 559 Last Time Filtering Image size reduction –Take the pixel you need in the output –Map it to the input –Place.
Outline Reprojection and data reuse Reprojection and data reuse – Taxonomy Bidirectional reprojection Bidirectional reprojection.
Computer Graphics Shadows
9/20/2001CS 638, Fall 2001 Today Finishing Up Reflections More Multi-Pass Algorithms Shadows.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Elad Hadar Omer Norkin Supervisor: Mike Sumszyk Winter 2010/11, Single semester project. Date:22/4/12 Technion – Israel Institute of Technology Faculty.
CDS 301 Fall, 2009 Vector Visualization Chap. 6 October 7, 2009 Jie Zhang Copyright ©
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
COMP 261 Lecture 16 3D Rendering. input: set of polygons viewing direction direction of light source(s) size of window. output: an image Actions rotate.
Surface displacement, tessellation, and subdivision Ikrima Elhassan.
09/11/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Graphics Pipeline Texturing Overview Cubic Environment Mapping.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
Processing Images and Video for an Impressionist Effect Author: Peter Litwinowicz Presented by Jing Yi Jin.
CS 450: COMPUTER GRAPHICS ANTIALIASING SPRING 2015 DR. MICHAEL J. REALE.
Shadow Mapping Chun-Fa Chang National Taiwan Normal University.
Plenoptic Modeling: An Image-Based Rendering System Leonard McMillan & Gary Bishop SIGGRAPH 1995 presented by Dave Edwards 10/12/2000.
Rick Parent - CIS681 Background Perception Display Considerations Film and Video, Analog and Digital Technology.
Real-Time rendering Chapter 4.Visual Appearance 4.4. Aliasing and antialiasing 4.5. Transparency,alpha,and compositing 4.6. Fog 4.7. Gamma correction
Rendering Fake Soft Shadows with Smoothies Eric Chan Massachusetts Institute of Technology.
Chapter 5: Neighborhood Processing
1 Research Question  Can a vision-based mobile robot  with limited computation and memory,  and rapidly varying camera positions,  operate autonomously.
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
Course14 Dynamic Vision. Biological vision can cope with changing world Moving and changing objects Change illumination Change View-point.
Single Pass Point Rendering and Transparent Shading Paper by Yanci Zhang and Renato Pajarola Presentation by Harmen de Weerd and Hedde Bosman.
CS559: Computer Graphics Final Review Li Zhang Spring 2010.
Image-Based Rendering Geometry and light interaction may be difficult and expensive to model –Think of how hard radiosity is –Imagine the complexity of.
Distributed Ray Tracing. Can you get this with ray tracing?
Distributed Ray Tracing. Can you get this with ray tracing?
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
Particle Animation and Rendering Using Data Parallel Computation Karl Sims Optomystic Thinking Machines Corporation Presentation ©2001 Brenden Schubert.
- Introduction - Graphics Pipeline
Real-Time Soft Shadows with Adaptive Light Source Sampling
Photorealistic Rendering vs. Interactive 3D Graphics
Chapter X Advanced Texturing
Week 11 - Wednesday CS361.
Real-Time Volume Graphics [06] Local Volume Illumination
Volume Rendering (2).
(c) 2002 University of Wisconsin
Visibility Computations
UMBC Graphics for Games
RADEON™ 9700 Architecture and 3D Performance
Smoother Subsurface Scattering
Presentation transcript:

Pixmotor: A Pixel Motion Integrator Ivan Neulander Rhythm & Hues

What is Pixmotor? A 2D motion blur solution at Rhythm & Hues Makes motion-blurred images based on static images generated by 3D renderer Night At The Museum Garfield: A Tail of Two Kitties

What is Pixmotor? A 2D motion blur solution at Rhythm & Hues Makes motion-blurred images based on static images generated by 3D renderer Not a physically correct but plausible – Incorporates heuristics to minimize artifacts Night At The Museum Garfield: A Tail of Two Kitties

What is Pixmotor? A 2D motion blur solution at Rhythm & Hues Makes motion-blurred images based on static images generated by 3D renderer Not a physically correct but plausible – Incorporates heuristics to minimize artifacts Fits well into our production pipeline – Render objects separately, combine in comp – Zero-centered shutter minimizes interpolation distance from static frame Night At The Museum Garfield: A Tail of Two Kitties

What is Pixmotor? A 2D motion blur solution at Rhythm & Hues Makes motion-blurred images based on static images generated by 3D renderer Not a physically correct but plausible – Incorporates heuristics to minimize artifacts Fits well into our production pipeline – Render objects separately, combine in comp – Zero-centered shutter minimizes interpolation distance from static frame Night At The Museum Garfield: A Tail of Two Kitties

Motivation Processing Speed – Invariant of geometric complexity: Typical 2k element completes in under 1 minute – Many speed/quality controls for interactive testing

Motivation Processing Speed – Invariant of geometric complexity: Typical 2k element completes in under 1 minute – Many speed/quality controls for interactive testing Art Direction – Tweak shutter per-frame without rerendering – Vary motion blur within a frame shuttershutter/2shutter x 2shutter x 3

Motivation In-Compositor Shading – For static frames: Renderer outputs images of normals, positions, etc.; compositor does shading Diffuse Reflection Shader NormalsOutput

Motivation In-Compositor Shading – For static frames: Renderer outputs images of normals, positions, etc.; compositor does shading – For motion-blurred frames: Motion blurring data images in renderer is incorrect Ground truth Diffuse Reflection Shader NormalsOutput

Motivation In-Compositor Shading – For static frames: Renderer outputs images of normals, positions, etc.; compositor does shading – For motion-blurred frames: Motion blurring data images in renderer is incorrect Using pixmotor allows doing shading on static images Ground truth Diffuse Reflection Shader NormalsOutput Pixmotor

Pixmotor Data Flow Pixmotor Color Input Motion Input Depth Input Settings

Computing Motion Vectors When shading a triangle at barycentric point ( , ,  ): Compute NDC motion vector as P NDC ( , ,  ){ShutterClose} - P NDC ( , ,  ){ShutterOpen} Shutter OpenShading MomentShutter Close

Implementation: Overview Discretize motion into a set of slices – Each slice = particular moment within shutter span – Total number of slices depends on maximum motion vector User sets maximum pixel separation between slices – Compute each slice and add it to accumulation buffer

Implementation: Overview Discretize motion into a set of slices – Each slice = particular moment within shutter span – Total number of slices depends on maximum motion vector User sets maximum pixel separation between slices – Compute each slice and add it to accumulation buffer 1 slice3 slices7 slices52 slices

Implementation: Main Loop For each slice: – Copy each pixel from source image to a work buffer, shifting its coordinates based on motion vector

Implementation: Main Loop For each slice: – Copy each pixel from source image to a work buffer, shifting its coordinates based on motion vector Resolve occlusion for overlapping pixels using depth info

Implementation: Main Loop For each slice: – Copy each pixel from source image to a work buffer, shifting its coordinates based on motion vector Resolve occlusion for overlapping pixels using depth info Holes form due to divergent motion  Use hole-filling heuristics

Implementation: Main Loop For each slice: – Copy each pixel from source image to a work buffer, shifting its coordinates based on motion vector Resolve occlusion for overlapping pixels using depth info Holes form due to divergent motion  Use hole-filling heuristics Static Image Single-res WB no hole fill Double-res WB, no hole fill Double-res WB, with hole fill Pixmotor Single-slice interpolation

Implementation: Hole-Filling Heuristics Before Main Loop: – Blur motion image (optionally) Filter kernel must ignore empty pixels

Implementation: Hole-Filling Heuristics Before Main Loop: – Blur motion image (optionally) Filter kernel must ignore empty pixels – Compute motion image gradient Force high gradient at image edges

Implementation: Hole-Filling Heuristics Before Main Loop: – Blur motion image (optionally) Filter kernel must ignore empty pixels – Compute motion image gradient Force high gradient at image edges Blur = 0Blur = 3 pixelsBlur = 10 pixelsBlur = 60 pixels Motion Gradient Result

Implementation: Hole-Filling Heuristics During Main Loop: – Identify holes as empty pixels near high-gradient regions – Fill holes with nearby solid neighbors along motion path

Implementation: Hole-Filling Heuristics During Main Loop: – Identify holes as empty pixels near high-gradient regions – Fill holes with nearby solid neighbors along motion path – Solid pixels at image edges are always presumed holes

Implementation: Hole-Filling Heuristics During Main Loop: – Identify holes as empty pixels near high-gradient regions – Fill holes with nearby solid neighbors along motion path – Solid pixels at image edges are always presumed holes Static Image Motion Gradient Hole Fill: off Hole Fill: on [demo]

Implementation: Hole-Filling Heuristics After Main Loop: – Option to fix matte for remaining holes:  Unpremultiply partial pixels with solid neighbors (distance along motion vector times user constant) Helps create a solid matte where needed for compositing But: can harden some soft edges

Implementation: Hole-Filling Heuristics After Main Loop: – Option to fix matte for remaining holes:  Unpremultiply partial pixels with solid neighbors (distance along motion vector times user constant) Helps create a solid matte where needed for compositing But: can harden some soft edges FixMatte: 0.0 FixMatte: 1.0

Results No overlap or transparency: excellent 3D Motion Blur Pixmotor

Results No overlap or transparency: excellent With overlap or transparency: not so good 3D Motion Blur Pixmotor

Results: Linear 3D MB (easy case)

Results: Pixmotor (easy case)

Results: Linear 3D MB (hard case)

Results: Pixmotor (hard case)

Motion-Blurred Shadows: Our Approach Need to store partial occlusion in depth map  use matte channel MatteDepth

Motion-Blurred Shadows: Our Approach Need to store partial occlusion in depth map  use matte channel Process depth, matte channels using Pixmotor Pixmotor MatteDepth Motion

Motion-Blurred Shadows: Our Approach Need to store partial occlusion in depth map  use matte channel Process depth, matte channels using Pixmotor Use unpremultiplied values for depth Depth map camera settings are unmodified Pixmotor MatteDepth Motion MatteDepth

Motion-Blurred Shadows: Results

Frustrations & Future Work Transparency, occlusion artifacts  use more fragments per pixel But: speed will suffer Nonlinear motion (e.g. propeller)  Use acceleration + velocity for motion Memory-hungry on deep inputs  Process channels in batches But: counteracts multithreading Apply to reflections, refractions – Compute motion vectors for these

Demo Video Real-time capture of interactive Icy session on a quad-CPU Opteron 2200 demo demo

Thank You Jonathan Robbins Martin Ryan