IMAGE-BASED RENDERING AND ANIMATION

Similar documents
Introduction to Computer Graphics

DD1354. Christopher Peters. Sweden.

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008.

Essential Mathematics for Computer Graphics fast

Introduction to Computer Graphics Marie-Paule Cani & Estelle Duveau

Fundamentals of Computer Animation

CIS 536/636 Introduction to Computer Graphics. Kansas State University. CIS 536/636 Introduction to Computer Graphics

Kinematical Animation

3D Tranformations. CS 4620 Lecture 6. Cornell CS4620 Fall 2013 Lecture Steve Marschner (with previous instructors James/Bala)

Metrics on SO(3) and Inverse Kinematics

CS 4620 Practicum Programming Assignment 6 Animation

INTRODUCTION TO RENDERING TECHNIQUES

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

Rotation and Inter interpolation Using Quaternion Representation

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Animation (-4, -2, 0 ) + (( 2, 6, -4 ) - (-4, -2, 0 ))*.75 = (-4, -2, 0 ) + ( 6, 8, -4)*.75 = (.5, 4, -3 ).

Interactive Computer Graphics

animation animation shape specification as a function of time

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Goldsmiths, University of London. Computer Animation. Goldsmiths, University of London

Computer Animation. Lecture 2. Basics of Character Animation

SAN DIEGO COMMUNITY COLLEGE DISTRICT MESA COLLEGE ASSOCIATE DEGREE COURSE OUTLINE

Lecture Notes, CEng 477

How To Draw A 3D Virtual World In 3D Space (Computer Graphics)

Computer Graphics. Anders Hast

CMSC 425: Lecture 13 Animation for Games: Basics Tuesday, Mar 26, 2013

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

Digital 3D Animation

Cork Education and Training Board. Programme Module for. 3 Dimensional Computer Graphics. Leading to. Level 5 FETAC

How To Teach Computer Graphics

A Short Introduction to Computer Graphics

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

Understanding Rotations

Geometric algebra rotors for skinned character animation blending

Masters of Science in Software & Information Systems

The 3D rendering pipeline (our version for this class)

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Graphic Design. Location: Patterson Campus - Bldg. K. Program Information. Occupational Choices. Average Full-Time Wage.

Abstract. Introduction

animation shape specification as a function of time

Dhiren Bhatia Carnegie Mellon University

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

1. INTRODUCTION Graphics 2

Mondays and Thursdays, 10:05-11:25, F24-406

Introduction to Computer Graphics. Reading: Angel ch.1 or Hill Ch1.

B4 Computational Geometry

w = COI EYE view direction vector u = w ( 010,, ) cross product with y-axis v = w u up vector

CPIT-285 Computer Graphics

Quaternions. Jason Lawrence CS445: Graphics. Acknowledgment: slides by Misha Kazhdan, Allison Klein, Tom Funkhouser, Adam Finkelstein and David Dobkin

Our One-Year 3D Animation Program is a comprehensive training in 3D using Alias

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

CS 4204 Computer Graphics

CS 4810 Introduction to Computer Graphics

Computers in Film Making

CSE 167: Lecture 13: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Computer Animation and Visualisation. Lecture 1. Introduction

CHAPTER 6 TEXTURE ANIMATION

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar

CS 378: Computer Game Technology

Cabri Geometry Application User Guide

Instructor. Goals. Image Synthesis Examples. Applications. Computer Graphics. Why Study 3D Computer Graphics?

3D Modeling and Simulation using Image Stitching

Visualizing Data: Scalable Interactivity

ANIMATING CHARACTER NAVIGATION USING MOTION GRAPHS

Course Syllabus. Tuesday 4 pm to 5 pm & Thursday 4 to 5 pm

B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

Last lecture... Computer Graphics:

Computer Graphics. Introduction. Aleksandra Pizurica. Ghent University

Tutorial 9: Skeletal Animation

GAME DESIGN AND DEVELOPMENT TECHNOLOGY. Game Design and Development Technology I

FACIAL RIGGING FOR 3D CHARACTER

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

CAD and Creativity. Contents

Fundamentals of Computer Graphics

CS 4204 Computer Graphics

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Faculty of Computer Science Computer Graphics Group. Final Diploma Examination

How To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac)

Video Game Programming ITP 380 (4 Units)

Blender 3D Animation

Geometric Camera Parameters

Programming 3D Applications with HTML5 and WebGL

521493S Computer Graphics. Exercise 2 & course schedule change

CSCI 599: Digital Geometry Processing

MEng, BSc Computer Science with Artificial Intelligence

Magnetometer Realignment: Theory and Implementation

Wii Remote Calibration Using the Sensor Bar

Realtime 3D Computer Graphics Virtual Reality

COURSE OUTLINE REVISED SPRING 2008

Lecture Notes. Fundamentals of Computer Graphics. Prof. Michael Langer School of Computer Science McGill University

CS 4300 Computer Graphics. Prof. Harriet Fell Fall 2012 Lecture 33 November 26, 2012

Introduction to GPGPU. Tiziano Diamanti

Introduction to Computer Graphics

Production Design / Art Direction. TV Animation / Shorts

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

Transcription:

DH2323 DGI15 INTRODUCTION TO COMPUTER GRAPHICS AND INTERACTION IMAGE-BASED RENDERING AND ANIMATION Christopher Peters HPCViz, KTH Royal Institute of Technology, Sweden chpeters@kth.se http://kth.academia.edu/christopheredwardpeters Based on DGI12 notes by Carl Henrik Ek

Graphics Pipeline Architecture Can divide pipeline into three conceptual stages: Application (input, animations, think SDL) Geometry (transforms, projections, lighting) Rasteriser (draw image as pixels) Application Geometry Rasteriser These define the core structure of the pipeline

Geometry Stage Responsible for polygon and vertex operations Consists of five sub-stages: Model and View Transform Lighting and Shading Projection Clipping Screen Mapping Model and View Transform Lighting Projection Clipping Screen Mapping

What is OpenGL? Software interface to graphics hardware Commands for interactive three-dimensional graphics Hardware independent interface Drawing operations performed by underlying system and hardware 2013 Christopher Peters, Simulating virtual crowds: A perceptual approach chpeters@kth.se

I. Image-based Rendering

Image-based Rendering X constitutes: Geometry Texture Lighting Material Parameterisation of the 'world'

Image-based Rendering How does f(.) manipulate X? Light Surface interaction Light transport Formulate model f(.) through assumptions

Image-based Rendering Computer Vision Image easy to acquire Solve inverse problem What parameters have generated the image?

Image-based Rendering Challenge: Given an image recover the parameters Texture Light Geometry Models still valid x i = f -1 (y i )

Image-based Rendering Rendering: generate images from viewpoints Image-based rendering: replace geometry and material attributes with real images Most realistic image? A photograph Lacks flexibility Cannot change lighting or viewpoint Combine images to produce a new one

Epipolar Geometry The geometry of stereo vision Two cameras viewing 3D scene from different positions Study geometric relations between 3D points and their 2D projections More images = more constraints

II. Animation

Animation Basis Showing consecutive related static images one after another produces the perception of a moving image Traditional Animation Master artists draw certain important keyframes in the animation Apprentices draw the multitude of frames inbetween these key-frames Called tweens

In Practice For computers animation: Object has an initial configuration and a final configuration (often specified by the artist) Computer must figure out the intermediate configurations: interpolation Orientation Interpolation: Given two key-frame orientations, figure out an intermediate orientation at a certain point between them Possible solutions: Euler angles and rotation matrix interpolation

#1: Euler Angles An Euler angle is a rotation around a single axis Any orientation can be specified by composing three rotations Each rotation is around one of the principle axes i.e. (x, y, z) first rotate around x, then y, then z Think of roll, pitch and yaw of a flight simulator When rotating about a single axis, is possible to interpolate a single value However, for more than one axis, interpolating individual angles will not work well Unpredictable intermediate rotations Gimbal lock

#2: Rotation Matrices Interpolating between two rotation matrices does not result in a rotation matrix Does not preserve rigidity of angles and lengths This result of an interpolation of 0.5 between the identity matrix and 90 degrees around the x-axis does not produce a valid rotation matrix:

Solution Use quaternion interpolation Quaternions don t suffer from Gimbal lock Can be represented as 4 numbers instead of 9 of a 3x3 matrix Trivial conversion between angle/axis representation Interpolation between two quaternions is easy (once you know how) Quaternion looks like this: q[w,(x,y,z)] q = w + xi + yj + zk also written q[w,v] where v = (x,y,z)

Representation For a right-hand rotation of θ radians about unit vector v, quaternion is: q = (cos(θ/2); v sin(θ/2)) Note how the 3 imaginary coordinates are noted as a vector Only unit quaternions represent rotations Such a quaternion describes a point on the 4D unit hypersphere Important note: q and q represent the exact same orientation Different methods for doing quaternion interpolation: LERP, SLERP (Spherical linear interpolation)

In Practice Not always the best choice Quaternions are (as you will have noticed) hard to visualise and think about If another method will do and is simpler, it will be a more appropriate choice But Extremely useful in many situations where other representations are awkward Easy to use in your own programs once you have a quaternion class See GLM library

III. Where to next?

Shaders and GPU Programming Advice: learn Fixed Function Pipeline first Shading languages include: HLSL, GLSL, CG Simple GLSL shader example USC/Nvidia Face Works tech demo

Middleware Relieve the tedium of recoding everything Already used in labs: SDL and GLM Many other libraries and engines available Some examples: GLEW: http://glew.sourceforge.net/ Assimp: http://assimp.sourceforge.net/ ODE: http://www.ode.org/ FMOD: http://www.fmod.org RakNet: http://www.jenkinssoftware.com/ OGRE: http://www.ogre3d.org/ Torque 3D: http://www.garagegames.com/

Crowds Aggregate Dynamics for Dense Crowd Simulation, Narain et al., UNC, 2010 Metropolis Project, GV2, Trinity College Dublin

Toolchains <- Environment mark-up tool (Metroped) Metropolis Project, GV2, Trinity College Dublin Results transferred into final rendering client ->

Procedural Cities ESRI City Engine Introversion Procedural City Generator

HCI and Interfaces Virtual Sculpting project supervised by Mario Romero

Real-time Procedural Universe Infinity: The Quest for Earth, I-Novae Studios

Links http://www.pandromeda.com/ MojoWorld: planet synthesis Anderson and Peters, No More Reinventing the Virtual Wheel: Middleware for Computer. Games and Interactive Computer Graphics, Eurographics 2010 Paper on middleware for games and graphics

Reminders You should be working on Lab 3 Labs due on 8 th May Bilda DGI15 DH2323 lab submission is now open Next lab help session: More information to follow

Next lecture Bezier Curves, Splines and Surfaces Guest speaker: Prof. Tino Weinkauf This Wednesday (6 th May), B2 15:00 17:00