Virtual Cinematography Theory and Practice for Automatic Real-Time - - PowerPoint PPT Presentation

virtual cinematography
SMART_READER_LITE
LIVE PREVIEW

Virtual Cinematography Theory and Practice for Automatic Real-Time - - PowerPoint PPT Presentation

Virtual Cinematography Theory and Practice for Automatic Real-Time Camera Control and Directing Liwei He Microsoft Research http://research.microsoft.com/users/lhe Motivation There are 3 elements in computer graphics lights, scene


slide-1
SLIDE 1

Virtual Cinematography


Theory and Practice for Automatic Real-Time Camera Control and Directing

Liwei He

Microsoft Research http://research.microsoft.com/users/lhe

slide-2
SLIDE 2

Motivation

There are 3 elements in computer graphics

– lights, scene objects, and – the camera (focus of this talk)

Camera control is hard (7 DOFs)

– position (3), direction (3), field of view (1)

We may learn from cinematography

slide-3
SLIDE 3

Roles in cinematography

Low-level responsibilities

– Cameraman

  • Position and move the camera

– Film editor

  • Keep the film to proper length
  • Decide shot transitions

High-level responsibilities

– Script writer and director

  • Story-telling
slide-4
SLIDE 4

Camera control level 1

Input: camera position and direction Output: camera transformation Application: low-level graphics library

routines (Direct3D)

slide-5
SLIDE 5

Camera control level 2

Input: show both A and B, follow C, etc. Output: camera position and direction Application: 3D game, computer

animation package

slide-6
SLIDE 6

Camera control level 3

Input: high-level user directions

– show a conversation – show a car chase scene

Output: a sequence of level 2 camera spec Applications: graphical chat, tele-

conferencing, Virtual Reality games

slide-7
SLIDE 7

Camera control level 3 (cont.)

Encodes cinematographic expertise

–an interesting problem in itself

Provides an interface that is

–real-time –visually entertaining –more informative

slide-8
SLIDE 8
slide-9
SLIDE 9

Eyepeep BARG07011 Feldegast

Microsoft V-Chat Lunar Island

Eyepeep says "really" Feldegast says "yup" BARG07011 has joined the conversation Eyepeep says "im still older" Feldegast says "lol" DGeste309 does something silly. BARG07011 DGerste309 Eyepeep Feldegast GrenDayGod

slide-10
SLIDE 10

Principles of Cinematography

slide-11
SLIDE 11

Film structure

Film ... ... Scenes Shots

slide-12
SLIDE 12

Camera distance

Close up Close shot Medium shot Full shot Long shot

slide-13
SLIDE 13

The line of interest

A B

slide-14
SLIDE 14

External camera

A B

slide-15
SLIDE 15

External camera

A B

slide-16
SLIDE 16

Internal camera

A B

slide-17
SLIDE 17

Apex camera

A B

slide-18
SLIDE 18

Moving cameras

A B

pan(A) track(B)

slide-19
SLIDE 19

Some rules in film editing

Don't cross the line of interest Avoid jump cuts Let the actor lead Break movement

slide-20
SLIDE 20

Don’t cross the line of interest

1 2

slide-21
SLIDE 21
slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25

Some rules in film editing

Don't cross the line of interest Avoid jump cuts Let the actor lead Break movement

slide-26
SLIDE 26

Avoid jump cut

slide-27
SLIDE 27

Some rules in film editing

Don't cross the line of interest Avoid jump cuts Let the actor lead Break movement

slide-28
SLIDE 28

Two-person conversation

A B 1 2 3 4

slide-29
SLIDE 29

2 3 1

A B A B A

4

B

slide-30
SLIDE 30

Three-person conversation

2 4 3 1 B A C

slide-31
SLIDE 31

4 3 2

A B C A B

1

A B C

slide-32
SLIDE 32
slide-33
SLIDE 33
slide-34
SLIDE 34

Bad

slide-35
SLIDE 35

Good

slide-36
SLIDE 36

x y z Universe

Three spaces

The universe space

slide-37
SLIDE 37

Three spaces

The eye space (z-axis is the look at direction) x y z Universe z Eye x y

slide-38
SLIDE 38

Three spaces

The screen space (screen is ctan(fov/2) away from eye point) x y z Eye Screen

  • 1

+1 +1

  • 1
slide-39
SLIDE 39

Standard look-at transformation

Given eye position Pfrom, a look at direction Want a rotation matrix R and a translation to transform a vector from universe space to eye space x y

T ˆ T ˆ

x y z Universe Pfrom Eye

slide-40
SLIDE 40

x y z Universe Pfrom Eye

Standard look-at transformation

But this is not unique

T ˆ

x y

slide-41
SLIDE 41

x y z Universe Pfrom Eye

Standard look-at transformation

But this is not unique

T ˆ

x y

slide-42
SLIDE 42

x y z Universe Pfrom Eye

Standard look-at transformation

But this is not unique

T ˆ

y x

slide-43
SLIDE 43

x y z Universe Pfrom Eye

Standard look-at transformation

We will need to specify an up vector , usually [0,1,0]

U ˆ U ˆ T ˆ

slide-44
SLIDE 44

x y z Universe Pfrom Eye

Standard look-at transformation

In eye space Z-axis is X-axis is Y-axis is Rotation matrix Translation is -Pfrom

T ˆ Z U V ˆ ˆ ˆ × =

V T U ˆ ˆ ˆ × = "

T U V R ˆ ˆ ˆ

3 3

=

×

U ˆ U ˆ! V ˆ T ˆ

slide-45
SLIDE 45

Internal close-up of actor A

slide-46
SLIDE 46

x y z Universe Pfrom Eye Pat

Look at [xat,yat] transformation

U ˆ! V ˆ T ˆ

Given eye position Pfrom, look at point Pat, and Pat in screen space [xat, yat] Want In universe space

T ˆ A ˆ

) ( ˆ

from at

P P unit A − =

slide-47
SLIDE 47

Look at [xat,yat] transformation

In screen space: H = [xat, yat, ctan(fov/2)] Solve from the following equations: x y z Eye Screen

  • 1

+1 +1

  • 1

Pfrom Pat H

1 ˆ ˆ ˆ ˆ ] , 1 , [ ˆ ˆ ˆ ] 1 , , [ ˆ = ! ⋅ ! ⋅ = ⋅ ⋅ = ⋅ U T U A H T A H

T ˆ

slide-48
SLIDE 48

External of actor A and actor B

slide-49
SLIDE 49

x y z Universe Pfrom Eye PB PA

Look at [xA,yA] and [xB,yB]

U ˆ! V ˆ T ˆ

Given PA,PB in universe space and eye space, and distance of eye position Pfrom and Pa. Want Pfrom and T

ˆ A ˆ

slide-50
SLIDE 50

Use numerical method:

  • 1. Set Pfrom to 0
  • 2. Solve R using the Look at

[xat,yat] method

  • 3. Transform E by inverse of

R, getting a new Pfrom approximation

  • 4. Goto 2

Look at [xA,yA] and [xB,yB]

x y z Eye Screen

  • 1

+1 +1

  • 1

Pfrom PB H PA

slide-51
SLIDE 51

Medium panning shot of actor A

slide-52
SLIDE 52

References

Jim Blinn’s CG&A ’88 article

–Where am I? What am I looking at?

Steve Drucker’s Interactive 3D ’92, ’94,

‘95 papers

–Cast camera positioning as an optimization problem

slide-53
SLIDE 53

System Design

slide-54
SLIDE 54

Overall system diagram

Real-time Application Virtual Cinematographer Renderer

slide-55
SLIDE 55

At each time step

  • 1. Application generates events to VC

– ( subject, verb, object )

  • 2. VC determines

– camera specifications – acting hints

  • 3. Renderer outputs the image

Real-time Application Virtual Cinematographer Renderer

slide-56
SLIDE 56

At each time step

  • 1. Application generates events to VC

– ( subject, verb, object )

  • 2. VC determines

– camera specifications – acting hints

  • 3. Renderer outputs the image

Real-time Application Virtual Cinematographer Renderer

slide-57
SLIDE 57

At each time step

  • 1. Application generates events to VC

– ( subject, verb, object )

  • 2. VC determines

– camera specifications – acting hints

  • 3. Renderer outputs the image

Real-time Application Virtual Cinematographer Renderer

slide-58
SLIDE 58

A networked virtual party game

slide-59
SLIDE 59

Actors are simulated

Actor’s mind Loneliness Thirst Boredom

Walk, converse, look around,

drink, etc.

Can be controlled by the users

slide-60
SLIDE 60

Networked virtual party game

Server Client Client Client User actions Events

slide-61
SLIDE 61

Inside the Virtual Cinematographer

slide-62
SLIDE 62

VC architecture

Idioms Camera modules

slide-63
SLIDE 63

VC architecture

Idioms Camera modules

slide-64
SLIDE 64

Camera modules

Geometric placement of specific

cameras for each shot

Choose the side of the line of interest Influence acting

slide-65
SLIDE 65

Camera module: ext(B,A)

A B

slide-66
SLIDE 66

Static camera modules

A B

ext(B,A) ext(A,B) apex(A,B) int(B)

slide-67
SLIDE 67

Moving camera modules

A B

pan(A) track(B)

slide-68
SLIDE 68

Camera modules

Geometric placement of specific

cameras for each shot

Choose the side of the line of interest Influence acting

slide-69
SLIDE 69

Don’t cross the line of interest

1 2

slide-70
SLIDE 70

Camera modules

Geometric placement of specific

cameras for each shot

Choose the side of the line of interest Influence acting

slide-71
SLIDE 71

Acting hints

A B A’ B’

slide-72
SLIDE 72

VC architecture

Idioms Camera modules

slide-73
SLIDE 73

Previous works

Dave Christianson’s AAAI ’96 paper

–Declarative camera control for automatic cinematography –An off-line algorithm –Need to know all events ahead –Use plan algorithms in AI

slide-74
SLIDE 74

Film idioms

Capture a particular type of scene Register relevant events Select shot types Determine the transitions between shots

slide-75
SLIDE 75

Hierarchical idiom structure

Lookaround Master Converse Drinking Moving 3Talk 2Talk

slide-76
SLIDE 76

Hierarchical idiom structure

Avoids exponential growth of states Allows expertise to be reused Provides robustness

slide-77
SLIDE 77

Moving idiom

track(C) pan(A) ext(A,B) ext(B,A) apex(A,B) apex(A,B)

slide-78
SLIDE 78

Moving idiom

track(C) pan(A) ext(A,B) ext(B,A) apex(A,B) apex(A,B) T > 8

slide-79
SLIDE 79

Moving idiom

track(C) pan(A) ext(A,B) ext(B,A) apex(A,B) apex(A,B) T > 8

slide-80
SLIDE 80

Moving idiom

track(C) pan(A) ext(A,B) ext(B,A) apex(A,B) apex(A,B) D < 10

slide-81
SLIDE 81

Moving idiom

track(C) pan(A) ext(A,B) ext(B,A) apex(A,B) apex(A,B) D < 5

slide-82
SLIDE 82

Moving idiom

apex(A,B) D < 5 apex(A,B) pan(A) ext(B,A) T > 8 ext(A,B) D < 10 T > 8

slide-83
SLIDE 83
slide-84
SLIDE 84

3Talk idiom

int(C) int(C) ext1to2

2Talk(A,B)

slide-85
SLIDE 85

Invoking a sub-idiom

int(C) int(C) ext1to2

2Talk(A,B)

ext(B,A) ext(B,A) ext(A,B) ext(A,B)

2Talk

slide-86
SLIDE 86

Contributions

Real-time camera control

– lightweight – automatic camera placement – automatic shot transitions

Do a reasonable job

– not to replace human in computer animation

slide-87
SLIDE 87

Work in Progress

slide-88
SLIDE 88

Camera control for chat

slide-89
SLIDE 89
slide-90
SLIDE 90

Camera control for live meeting

slide-91
SLIDE 91

Image after warping

slide-92
SLIDE 92

Camera control for classroom

Multiple cameras per classroom

–Lecturer cameras –Audience camera

Use audio and vision techniques to

–Track the lecturer –Activate the audience camera

slide-93
SLIDE 93

Dramatic lighting

slide-94
SLIDE 94

Virtual Cinematography


Theory and Practice for Automatic Real-Time Camera Control and Directing

Liwei He

Microsoft Research http://research.microsoft.com/users/lhe