virtual cinematography
play

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


  1. Virtual Cinematography 
 Theory and Practice for Automatic Real-Time Camera Control and Directing Liwei He Microsoft Research http://research.microsoft.com/users/lhe

  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

  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

  4. Camera control level 1 � Input: camera position and direction � Output: camera transformation � Application: low-level graphics library routines (Direct3D)

  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

  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

  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

  8. Microsoft V-Chat Lunar Island BARG07011 Eyepeep says "really" DGerste309 Feldegast says "yup" Eyepeep BARG07011 has joined the conversation Feldegast Eyepeep says "im still older" GrenDayGod Feldegast says "lol" DGeste309 does something silly. Eyepeep BARG07011 Feldegast

  9. Principles of Cinematography

  10. Film structure Film Scenes ... ... Shots

  11. Camera distance Close up Close shot Medium shot Full shot Long shot

  12. The line of interest A B

  13. External camera A B

  14. External camera A B

  15. Internal camera A B

  16. Apex camera A B

  17. Moving cameras A B pan(A) track(B)

  18. Some rules in film editing � Don't cross the line of interest � Avoid jump cuts � Let the actor lead � Break movement

  19. Don’t cross the line of interest 1 2

  20. Some rules in film editing � Don't cross the line of interest � Avoid jump cuts � Let the actor lead � Break movement

  21. Avoid jump cut

  22. Some rules in film editing � Don't cross the line of interest � Avoid jump cuts � Let the actor lead � Break movement

  23. Two-person conversation A B 3 4 1 2

  24. 1 2 A B A B 4 3 B A

  25. Three-person conversation 4 B C 1 A 2 3

  26. 2 1 C C A B 3 4 A B A B

  27. Bad

  28. Good

  29. Three spaces The universe space y x Universe z

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

  31. Three spaces y The screen space (screen is ctan(fov/2) away from eye point) +1 Screen Eye x -1 +1 z -1

  32. Standard look-at transformation Given eye position P from , a y P from ˆ ˆ T look at direction T Eye Want a rotation matrix R and a x y translation to transform a vector from universe space to eye space x Universe z

  33. Standard look-at transformation But this is not unique y P from ˆ T Eye x y x Universe z

  34. Standard look-at transformation But this is not unique y P from ˆ T Eye x y x Universe z

  35. Standard look-at transformation But this is not unique y P from ˆ T Eye y x x Universe z

  36. Standard look-at transformation ˆ U We will need to specify an up y ˆ vector , usually [0,1,0] ˆ T U P from Eye x Universe z

  37. Standard look-at transformation ˆ U ˆ ! ˆ U V In eye space y ˆ T P from ˆ Z-axis is T Eye X-axis is ˆ ˆ ˆ V U Z = × Y-axis is ˆ ˆ ˆ U T V " = × Rotation matrix x ˆ ˆ ˆ R V U T = Universe 3 3 × Translation is -P from z

  38. Internal close-up of actor A

  39. Look at [x at ,y at ] transformation ˆ ! ˆ Given eye position P from , look U V y ˆ at point P at , and P at in screen T P from ˆ space [x at , y at ] P at A Eye ˆ T Want In universe space x ˆ A unit ( P P ) Universe = − at from z

  40. Look at [x at ,y at ] transformation y In screen space: H = [x at , y at , ctan(fov/2)] +1 ˆ Solve from the following T Screen Eye P from equations: x H ˆ ˆ ˆ -1 +1 H [ 0 , 0 , 1 ] A T ⋅ = ⋅ ˆ ˆ ˆ H [ 0 , 1 , 0 ] A U ! ⋅ = ⋅ z ˆ ˆ P at T U 1 ! ⋅ = -1

  41. External of actor A and actor B

  42. Look at [x A ,y A ] and [x B ,y B ] ˆ ! ˆ Given P A ,P B in universe space U V P A y and eye space, and distance of ˆ T P from eye position P from and P a . ˆ P B A Eye ˆ Want P from and T x Universe z

  43. Look at [x A ,y A ] and [x B ,y B ] y Use numerical method: 1. Set P from to 0 +1 2. Solve R using the Look at Screen Eye P from [x at ,y at ] method x H -1 +1 3. Transform E by inverse of R, getting a new P from z approximation P B -1 4. Goto 2 P A

  44. Medium panning shot of actor A

  45. 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

  46. System Design

  47. Overall system diagram Virtual Cinematographer Real-time Application Renderer

  48. Virtual Cinematographer Real-time At each time step Application Renderer 1. Application generates events to VC – ( subject, verb, object ) 2. VC determines – camera specifications – acting hints 3. Renderer outputs the image

  49. Virtual Cinematographer Real-time At each time step Application Renderer 1. Application generates events to VC – ( subject, verb, object ) 2. VC determines – camera specifications – acting hints 3. Renderer outputs the image

  50. Virtual Cinematographer Real-time At each time step Application Renderer 1. Application generates events to VC – ( subject, verb, object ) 2. VC determines – camera specifications – acting hints 3. Renderer outputs the image

  51. A networked virtual party game

  52. Actors are simulated Actor’s mind Loneliness Thirst Boredom � Walk, converse, look around, drink, etc. � Can be controlled by the users

  53. Networked virtual party game Client Client Events Server User actions Client

  54. Inside the Virtual Cinematographer

  55. VC architecture Idioms Camera modules

  56. VC architecture Idioms Camera modules

  57. Camera modules � Geometric placement of specific cameras for each shot � Choose the side of the line of interest � Influence acting

  58. Camera module: ext(B,A) A B

  59. Static camera modules A B int(B) ext(B,A) ext(A,B) apex(A,B)

  60. Moving camera modules A B pan(A) track(B)

  61. Camera modules � Geometric placement of specific cameras for each shot � Choose the side of the line of interest � Influence acting

  62. Don’t cross the line of interest 1 2

  63. Camera modules � Geometric placement of specific cameras for each shot � Choose the side of the line of interest � Influence acting

  64. Acting hints A A’ B’ B

  65. VC architecture Idioms Camera modules

  66. 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

  67. Film idioms � Capture a particular type of scene � Register relevant events � Select shot types � Determine the transitions between shots

  68. Hierarchical idiom structure Master Converse Drinking Moving 3Talk Lookaround 2Talk

  69. Hierarchical idiom structure � Avoids exponential growth of states � Allows expertise to be reused � Provides robustness

  70. Moving idiom ext(A,B) ext(B,A) pan(A) track(C) apex(A,B) apex(A,B)

  71. Moving idiom T > 8 ext(A,B) ext(B,A) pan(A) track(C) apex(A,B) apex(A,B)

  72. Moving idiom T > 8 ext(A,B) ext(B,A) pan(A) track(C) apex(A,B) apex(A,B)

  73. Moving idiom ext(A,B) ext(B,A) pan(A) track(C) apex(A,B) apex(A,B) D < 10

  74. Moving idiom ext(A,B) ext(B,A) pan(A) track(C) D < 5 apex(A,B) apex(A,B)

  75. Moving idiom T > 8 ext(A,B) ext(B,A) pan(A) T > 8 D < 10 apex(A,B) apex(A,B) D < 5

  76. 3Talk idiom int(C) 2Talk(A,B) int(C) ext1to2

  77. Invoking a sub-idiom ext(A,B) int(C) ext(B,A) ext(B,A) 2Talk(A,B) int(C) ext(A,B) 2Talk ext1to2

  78. Contributions � Real-time camera control – lightweight – automatic camera placement – automatic shot transitions � Do a reasonable job – not to replace human in computer animation

  79. Work in Progress

  80. Camera control for chat

Recommend


More recommend