Improved Deep Image Compositing Using Subpixel Masks

Similar documents
8/5/2012. Introduction. Transparency. Anti-Aliasing. Applications. Conclusions. Introduction

Scan line algorithm. Jacobs University Visualization and Computer Graphics Lab : Graphics and Visualization 272

Real-Time Reyes Programmable Pipelines and Research Challenges

Deep Image Nordic TDForum Presented by: Colin Doncaster

Visible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin

Lecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Page 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms

Advanced Shading I: Shadow Rasterization Techniques

COMPUTER GRAPHICS COURSE. Rendering Pipelines

FROM VERTICES TO FRAGMENTS. Lecture 5 Comp3080 Computer Graphics HKBU

Rendering Grass with Instancing in DirectX* 10

Fall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li.

Morphological: Sub-pixel Morhpological Anti-Aliasing [Jimenez 11] Fast AproXimatte Anti Aliasing [Lottes 09]

Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts

The Rasterization Pipeline

CSCI 420 Computer Graphics Lecture 14. Rasterization. Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California

Rasterization. Rasterization (scan conversion) Digital Differential Analyzer (DDA) Rasterizing a line. Digital Differential Analyzer (DDA)

Logistics. CS 586/480 Computer Graphics II. Questions from Last Week? Slide Credits

Parallel Triangle Rendering on a Modern GPU

Shadows. COMP 575/770 Spring 2013

CPSC 4040/6040 Computer Graphics Images. Joshua Levine

Questions from Last Week? Extra rays needed for these effects. Shadows Motivation

CS 431/636 Advanced Rendering Techniques

Previously... contour or image rendering in 2D

Real-Time Hair Simulation and Rendering on the GPU. Louis Bavoil

Programmable Shaders for Deformation Rendering

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Learning Autodesk Maya The Special Effects Handbook. Free Model From Turbo Squid Value US $ Official Autodesk Training Guide

User's Guide Low Poly OBJ Importer v1.0

521493S Computer Graphics. Exercise 3

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

Anti-aliasing and Monte Carlo Path Tracing. Brian Curless CSE 457 Autumn 2017

Opaque. Flowmap Generator 3

Drawing Fast The Graphics Pipeline

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Adobe After Effects CS6 Digital Classroom

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

3DVIA COMPOSER TECHNICAL TIPS

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

Theoretically Perfect Sensor

Adobe After Effects CS5 Digital Classroom

COMP371 COMPUTER GRAPHICS

COMP371 COMPUTER GRAPHICS

MSAA- Based Coarse Shading

Topic 11: Texture Mapping 10/21/2015. Photographs. Solid textures. Procedural

Rasterization Computer Graphics I Lecture 14. Scan Conversion Antialiasing Compositing [Angel, Ch , ]

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Theoretically Perfect Sensor

Announcements. Written Assignment 2 out (due March 8) Computer Graphics

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

INFOGR Computer Graphics. J. Bikker - April-July Lecture 10: Ground Truth. Welcome!

EECS 487: Interactive Computer Graphics

Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons. Abstract. 2. Related studies. 1.

CEng 477 Introduction to Computer Graphics Fall 2007

CS452/552; EE465/505. Clipping & Scan Conversion

Spring 2009 Prof. Hyesoon Kim

CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

REYES REYES REYES. Goals of REYES. REYES Design Principles

The Traditional Graphics Pipeline

Accelerating Shadow Rays Using Volumetric Occluders and Modified kd-tree Traversal

Computer Graphics Forum (special issue on Eurographics 92), II(3), pp , Sept

Real-Time Graphics Architecture

Distributed Ray Tracing

Last Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

Photoshop PSD Export. Basic Tab. Click here to expand Table of Contents... Basic Tab Additional Shading Tab Material Tab Motion Tab Geometry Tab

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Computer Graphics. Rendering. by Brian Wyvill University of Calgary. cpsc/enel P 1

Sung-Eui Yoon ( 윤성의 )

VOLUMETRIC VIDEO // PLENOPTIC LIGHTFIELD // MULTI CAMERA METHODOLOGIES JORDAN HALSEY // VR PLAYHOUSE

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Computer Graphics. Bing-Yu Chen National Taiwan University

Shadows. Real-Time Hard Shadows. Collected by Ronen Gvili. Most slides were taken from : Fredu Durand Stefan Brabec

Working with the BCC Z Space I Filter

Volume Rendering. Lecture 21

Visibility: Z Buffering

Real-Time Shadows. Computer Graphics. MIT EECS Durand 1

Clipping. CSC 7443: Scientific Information Visualization

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

First Steps in Hardware Two-Level Volume Rendering

CS 4620 Program 4: Ray II

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Course Recap + 3D Graphics on Mobile GPUs

Bringing Hollywood to Real Time. Abe Wiley 3D Artist 3-D Application Research Group

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

Georgios Tziritas Computer Science Department

adobe after effects training. For the staff of CHUM Television, a recap of the after effects interface, from March 6th and 7th, 2006.

Hidden Surface Removal

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Here s the general problem we want to solve efficiently: Given a light and a set of pixels in view space, resolve occlusion between each pixel and

Ray Tracer System Design & lrt Overview. cs348b Matt Pharr

Computer Graphics Shadow Algorithms

Image Processing. CSCI 420 Computer Graphics Lecture 22

A Real-time Micropolygon Rendering Pipeline. Kayvon Fatahalian Stanford University

The Traditional Graphics Pipeline

Sampling: Antialiasing - Intro

Transcription:

Improved Deep Image Compositing Using Subpixel Masks Jonathan Egstad DreamWorks Animation jonathan.egstad@dreamworks.com Mark Davis Dylan Lacewell DreamWorks Animation DreamWorks Animation / NVIDIA mark.davis@dreamworks.com dlacewell@nvidia.com

OpenEXR 2.0 Deep Images Deep images are 2-D images with the capacity to store multiple color & depth samples (deep sample) at each pixel location (deep pixel) Production facilities developed ad-hoc deep workflows over the years, often based on deep-shadow techniques Weta Digital's deep workflow was formalized and integrated into OpenEXR 2.0 For more information on OpenEXR 2.0 deep images see: Hillman, P. 2013. The Theory of OpenEXR Deep Samples http://www.openexr.com/theorydeeppixels.pdf Kainz, F. 2013. Interpreting OpenEXR Deep Pixels http://www.openexr.com/interpretingdeeppixels.pdf

OpenEXR 2.0 Workflow Challenges Works best when combining multiple volumetric renders Not as well when combining volumetrics with one or more hard-surface renders Challenges With Hard-Surface Samples Lack of subpixel spatial information to resolve overlaps Lack of spatial info prevents accurate pixel-filtering Transparency and pixel-coverage are combined and cannot be separated Intersections between opaque hard-surfaces will often exhibit aliasing

Subpixel Masks Generated by rendering algorithm One mask per deep sample Provides subpixel xy locations Must ensure samples are stratified to avoid cracks Pattern/Bit Orientation

Subpixel Masks Pros: Cons: Resolves overlaps at subpixel level Fixed mask size for all samples Separates pixel-coverage from transparency Separate pixel-coverage / transparency can complicate some compositing operations Accurate pixel-filtering is possible Mask patterns will often compress well Increased deep sample storage cost (can be offset by reduction in sample count) Bit-pattern storage not natively supported by OpenEXR 2.0

Subpixel Mask Special Cases All bits off - zero coverage Indicates lack of subpixel information All bits on - full coverage Allows per-subpixel evaluation to be skipped (common for volumetric content)

Subpixel Mask Overlap Resolution Step through each subpixel index and flatten the samples with that bit enabled Each subpixel index can yield a unique set of enabled samples Integrating the flattened results of a region of subpixels produces the final anti-aliased pixel

Overlap Resolution Example Red and blue surfaces cover 50% of pixel Both are opaque (alpha == 1.0) A: Red surface completely occludes blue surface B: Red and blue surfaces do not occlude each other A B

Overlap Resolution: Current OpenEXR Method Both A and B produce the same incorrect result A B

Overlap Resolution: Improved OpenEXR Method A and B produce the correct result using subpixel masks A B

Sample Collapsing Diverse sample set from the subpixel grid Varying primitive/surface ID, color, normal, depth Worst case scenario: a unique deep sample per subpixel Must retain the integrity of the uncollapsed data

Sample Collapsing: Static Micropolygon Example Naively inserting shaded micro-polygons

Sample Collapsing: With Motion Blur Motion blur and/or highly-tessellated geometry increases sample count A ray-tracer would exhibit similar problems.

Sample Collapsing: Clustering Determine which samples can be collapsed into clusters No single correct way to do this Geometry ID Depth Color Normal User controlled cluster limit For each cluster: Flatten the samples OR together the subpixel masks Determine the min/max Z Each cluster becomes a single sample in the OpenEXR 2.0 file

Sample Collapsing: Results

Sample Collapsing: Results

Surface Flags Per-sample flags provide additional information about a deep sample Backwards-compatible - value 0x00 (0.0) indicates a 'legacy' OpenEXR 2.0 deep sample Proposed flags: 0x01 (1.0) Hard-Surface - use linear interpolation 0x02 (2.0) Matte - act as a holdout to samples behind

Hard-Surface Flag: Why Bother With Linear Interpolation? By-product of collapsing samples (a Z range is created) Shared Z for all subpixels causes aliased intersections (binary Z comparison) Log interpolation intended for volumetric content Log interpolation fails when alpha == 1.0, a common case with hard-surfaces Hard-surface flag tells the flattener to use linear interpolation Linear interpolation allows Z-blending of hard-surface intersections to reduce aliasing

Linear/Log Interpolation During Flattening Find overlapping samples and determine mix of surface types: Log/Log: OpenEXR log-interpolation Log/Lin & Lin/Lin: Numerical vs. analytic

Matte Flag Holdout Management Matte holdouts are performed in the rendering algorithm An identifier indicates special-case handling of sample merge operation Alpha channel is held out along with color channels Current deep holdout workflow is destructive and can lead to loss of samples Non-destructive marking of samples allows holdout operation to be deferred

Matte Flag Holdout Example Nuke script producing mutual cutouts between two renders Order-independent

OpenEXR 2.0 Deep File I/O OpenEXR only supports 16 or 32 bit data channels 8x8 bitmask is 64 bits so must be split across two 32-bit float channels 32-bit float data channels avoid integer/float conversions destroying bitmask pattern Flag data stored in 16-bit half-float channel as integer-float values will survive conversions

Nuke Deep System Changes We are working with the Foundry to get these modifications and new nodes released in a future version of Nuke DeepToImage modified flattening operator DeepSurfaceType modifies surface flag DeepMatte modifies matte flag DeepPremult premults/unpremults by pixel-coverage DeepCamDefocus camera defocus (bokeh) blur exrwriterdeep outputs subpixel mask channels as 32-bit float

Future Work Extend OpenEXR 2.0 & Nuke to support per-sample metadata Encourage support from renderer providers Store more surface information to better define hard-surface intersections (e.g. surface normal)