Introduction to Visual Effects: A Computational Approach

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Introduction to Visual Effects: A Computational Approach is the first single introduction to the computational and mathematical aspects of visual effects, incorporating both computer vision and graphics. The book also provides the readers with the source code to a library, enabling them to follow the chapters directly and build up a complete visual effects platform. The book covers the basic approaches to camera pose estimation, global illumination, and image-based lighting, and includes chapters on the virtual camera, optimization and computer vision, path tracing and many more.

Key features include:

    • Introduction to projective geometry, image-based lighting (IBL), global illumination solved by the Monte Carlo method (Pathtracing), an explanation of a set of optimization methods, and the techniques used for calibrating one, two, and many cameras, including how to use the RANSAC algorithm in order to make the process robust, and providing code to be implemented using the Gnu Scientific Library.

    • C/C++ code using the OpenCV library, to be used in the process of tracking points on a movie (an important step for the matchmove process), and in the construction of modeling tools for visual effects.

    • A simple model of the Bidirectional Reflectance Distribution Function (BRDF) of surfaces and the differential rendering method, allowing the reader to generate consistent shadows, supported by a code that can be used in combination with a software like Luminance HDR.

    Author(s): Luiz Velho, Bruno Madeira
    Publisher: CRC Press
    Year: 2022

    Language: English
    Pages: 241
    City: Boca Raton

    Cover
    Half Title
    Title Page
    Copyright Page
    Dedication
    Contents
    Preface
    Introduction
    CHAPTER 1: Introduction
    1.1. CAMERA CALIBRATION
    1.2. HISTORICAL OVERVIEW OF TRACKING
    1.3. GLOBAL ILLUMINATION
    1.4. IMAGE-BASED LIGHTING
    1.5. MATHEMATICAL NOTATIONS
    1.6. PROJECTIVE GEOMETRY CONCEPTS
    1.6.1. Projective Space
    1.6.2. Projective Transforms
    1.6.3. Projective Geometry on This Book
    1.6.4. Parallelism and Ideal Points
    1.7. ABOUT THE CODE
    CHAPTER 2: Virtual Camera
    2.1. BASIC MODEL
    2.1.1. Camera in the Origin
    2.1.2. Camera in Generic Position
    2.1.3. Digital Camera
    2.1.4. Intrinsic Parameters
    2.1.5. Dimension of the Space of Virtual Cameras
    2.2. CAMERA FOR IMAGE SYNTHESIS
    2.2.1. Terminologies
    2.2.2. Clipping and Visibility
    2.3. TRANSFORMATION OF VISUALIZATION
    2.3.1. Positioning the Camera
    2.3.2. Transformation of Normalization
    2.3.3. Perspective Projection
    2.3.4. Device Coordinates
    2.4. COMPARISON WITH THE BASIC MODEL
    2.4.1. Intrinsic Parameters
    2.4.2. Dimension
    2.4.3. Advantages over the Basic Model
    2.5. CAMERA FOR PATH TRACING
    2.6. VISIBILITY AND RAY CASTING
    2.7. CAMERAS FOR CALIBRATION
    2.7.1. Projective Model
    2.7.2. Projective Notation for Cameras
    2.7.3. Generic Projective Camera
    2.8. MAPPING A CALIBRATED CAMERA INTO THE S3D LIBRARY
    2.8.1. Specification of Extrinsic Parameters
    2.8.2. Specification of Intrinsic Parameters
    2.9. API
    2.9.1. MatchMove Software Functions
    2.9.2. Render Software Functions
    2.10. CODE
    2.10.1. Code in the MatchMove Software
    2.10.2. Code in the Render Software
    CHAPTER 3: Optimization Tools
    3.1. MINIMIZE A FUNCTION DEFINED ON AN INTERVAL
    3.2. LEAST SQUARES
    3.3. NON-LINEAR LEAST SQUARES
    3.3.1. Gauss-Newton Method
    3.3.2. Levenberg-Marquardt Algorithm
    3.4. MINIMIZE THE NORM OF A LINEAR FUNCTION OVER A SPHERE
    3.5. TWO STAGES OPTIMIZATION
    3.6. ROBUST MODEL ESTIMATION
    3.6.1. RANSAC Algorithm
    3.6.2. Example of Using the RANSAC Algorithm
    CHAPTER 4: Estimating One Camera
    4.1. CALIBRATION IN RELATION TO A SET OF 3D POINTS
    4.1.1. Calibration Using Six Matches
    4.1.2. Calibration Using More Than Six Matches
    4.2. NORMALIZATION OF THE POINTS
    4.3. ISOLATION OF CAMERA PARAMETERS
    4.4. CAMERA FOR IMAGE SYNTHESIS
    4.5. CALIBRATION BY RESTRICTED OPTIMIZATION
    4.5.1. Adjusting the Levenberg-Marquardt to the Problem
    4.5.2. Parameterization of Rotations
    4.5.3. Parameterization of the Camera Space
    4.6. PROBLEM POINTS OF PARAMETERIZATION
    4.7. FINDING THE INTRINSIC PARAMETERS
    4.8. CALIBRATION USING A PLANAR PATTERN
    4.9. API
    4.10. CODE
    4.11. SINGLE CAMERA CALIBRATION PROGRAM
    4.12. SIX POINTS SINGLE CAMERA CALIBRATION PROGRAM
    CHAPTER 5: Estimating Two Cameras
    5.1. REPRESENTATION OF RELATIVE POSITIONING
    5.2. RIGID MOVEMENT
    5.3. OTHER PROJECTIVE MODEL
    5.4. EPIPOLAR GEOMETRY
    5.4.1. Essential Matrix
    5.5. FUNDAMENTAL MATRIX
    5.6. THE 8-POINTS ALGORITHM
    5.6.1. Calculation of F
    5.6.2. Using More Than 8 Points
    5.6.3. Calculation of F
    5.7. NORMALIZED 8-POINTS ALGORITHM
    5.8. FINDING THE EXTRINSIC PARAMETERS
    5.8.1. Adding Clipping to the Model
    5.8.2. Three-Dimensional Reconstruction
    5.9. API
    5.10. CODE
    CHAPTER 6: Feature Tracking
    6.1. DEFINITIONS
    6.2. KANADE-LUCAS-TOMASI ALGORITHM
    6.3. FOLLOWING WINDOWS
    6.4. CHOOSING THE WINDOWS
    6.5. DISPOSAL OF WINDOWS
    6.6. PROBLEMS USING KLT
    6.7. CODE
    CHAPTER 7: Estimating Many Cameras
    7.1. DEFINITIONS
    7.2. CALIBRATING IN PAIRS
    7.3. CALIBRATION IN THREE STEPS
    7.4. THREE-STEP CALIBRATION PROBLEMS
    7.5. MAKING THE CALIBRATION OF SMALL SEQUENCES ROBUST
    7.5.1. Solution to the Problem of Step 1
    7.5.2. Solution to the Problem of Step 2
    7.5.3. Solution to the Problem in Step 3
    7.6. CHOICE OF BASE COLUMNS
    7.7. BUNDLE ADJUSTMENT
    7.8. REPRESENTATION OF A CONFIGURATION
    7.9. REFINEMENT CYCLES
    7.10. EXAMPLE
    7.11. DECOMPOSITION OF THE VIDEO INTO FRAGMENTS
    7.12. JUNCTION OF FRAGMENTS
    7.12.1. Alignment of Fragments
    7.12.2. Compatibility of Scales
    7.12.3. Robust Scale Compatibility
    7.13. OFF-LINE AUGMENTED REALITY
    7.14. GLOBAL OPTIMIZATION BY RELAXATION
    7.15. CODE MODULES
    7.15.1. Bundle Adjustment API
    7.15.2. Bundle Adjustment Code
    7.15.3. RANSAC API
    7.15.4. RANSAC Code
    7.15.5. Features List API
    7.15.6. Features List Code
    7.15.7. Sequence of Frames API
    7.15.8. Sequence of Frames Code
    7.15.9. Relaxation API
    7.15.10. Relaxation Code
    7.16. MATCHMOVE PROGRAM
    7.17. RELAXATION PROGRAM
    CHAPTER 8: Modeling Tools
    8.1. API
    8.2. CODE
    8.3. POINT CLOUD DEFINER PROGRAM
    8.4. POINT CLOUD CALIB PROGRAM
    CHAPTER 9: Light Transport and Monte Carlo
    9.1. RADIANCE
    9.2. THE INVARIANCE OF THE RADIANCE
    9.3. THE BRDF AND THE RENDERING EQUATION
    9.4. OTHER DEFINITION FOR THE RENDERING EQUATION
    9.5. EXAMPLES OF BRDF
    9.5.1. The perfect Lambertian Surface BRDF
    9.5.2. The Perfect Mirror BRDF
    9.5.3. The Modified Blinn-Phong’s BRDF
    9.6. NUMERICAL APPROXIMATION
    9.7. MONTE CARLO INTEGRATION METHOD
    9.8. PATH TRACING
    9.9. UNIFORM SAMPLING OVER A HEMISPHERE
    9.10. SPLITTING THE DIRECT AND INDIRECT ILLUMINATION
    9.11. POLYGONAL LUMINARIES
    9.12. CODE MODULES
    9.12.1. Path Tracing API
    9.12.2. Path Tracing Code
    9.12.3. Poly Light API
    9.12.4. Poly Light Code
    9.13. RENDERING PROGRAM
    9.14. RESULT
    CHAPTER 10: Image-Based Lighting
    10.1. HDR PICTURES
    10.2. RECONSTRUCTING THE HDR RADIANCE MAP
    10.3. COLORED PICTURES
    10.4. RECOVERING AN HDR RADIANCE MAP
    10.5. THE PFM FILE FORMAT
    10.6. CONVERSIONS BETWEEN LDR AND HDR IMAGES
    10.7. FROM HDR PICTURES TO EQUIRECTANGULAR PROJECTIONS
    10.8. ORIENTING THE RADIANCE DOME
    10.9. RENDERING USING A RADIANCE MAP
    10.10. INTERACTION BETWEEN THE REAL AND VIRTUAL SCENES
    10.10.1. Modeling the BRDF of the Local Scene
    10.10.2. Differential Rendering
    10.11. CODE MODULES
    10.11.1. HDR Image API
    10.11.2. HDR Image Code
    10.11.3. Image-Based Light API
    10.11.4. Image-Based Light Code
    10.11.5. HDR Scene API
    10.11.6. HDR Scene Code
    10.11.7. Dome Path Tracing API
    10.11.8. Dome Path Tracing Code
    10.12. POLYSHADOW COLOR ADJUST PROGRAM
    10.13. VISUAL EFFECTS PROGRAM
    10.14. RESULTS
    Bibliography
    Index