Title: Quadric Transfer for Immersive Curved Screen Displays
1Quadric Transfer for Immersive Curved Screen
Displays
- Ramesh Raskar, Jeroen van Bar, Thomas
Willwacher, Srinivas Rao - Mitsubishi Electric Research Labs
- Cambridge, MA USA
2Curved Screen Displays
- Multiple overlapping projectors
- Goal
- Replace single-proj
- Higher resoltn
- Higher brightness
- Sub-pixel auto-alignment
- Parametric solution
Planetarium
Simulators
3Dome Projection
Spherical Warping
Sub-Frames
4(No Transcript)
5OutlineSeamless Curved Display
- Multi-projector methods
- Simplified Quadric Image Transfer
- Calibration with camera-pair
- Parametric Rendering solution
6OutlineSeamless Curved Display
- Multi-projector methods
- Simplified Quadric Image Transfer
- Calibration with camera-pair
- Parametric Rendering solution
7Multi-Projector Displays
Precise config Costly setup Manual alignment
High maintenance
8Multi-Projector Displays
9Multi-Projector Displays
10Multi-Projector Displays
11Planar Displaywith parametric approach
R Raskar
12Planar projective transfer homography
- Two images of 3D points on a plane
- Related by a 3x3 matrix
x A3 x 3 x
M
x
A3 x 3
x
x
x
Proj 1
Proj 2
Proj 1
Proj 2
13Parametric Image Transfer
X
x
x
Planar Homography
Quadric Transfer
14Parametric Approach
- Calibration
- Lower camera resolution
- Tolerance for pixel localization errors
- Faster calibration
- Rendering
- Efficient well-defined warping
- Avoids look up tables
15Multi-Projector Displays
16Curved ScreensView for a Sweet-spot
Projector
Sweet spot
17Calibration for a Sweet-spot
Projector
Camera at Sweet spot
18Discretized non-parametric approach
Projector Image
p1
p6
c1
c6
Camera Image
Desired Image
19Pre-Warped Projection
- Discretized Warping Software
- Spitz - PolyDome
20OutlineSeamless Curved Display
- Multi-projector methods
- Simplified Quadric Image Transfer
- Calibration with camera-pair
- Parametric Rendering solution
21Quadric classification
Projectively equivalent to sphere
sphere
ellipsoid
paraboloid
hyperboloid
Ruled quadrics
hyperboloids of one sheet
22Quadrics
4x4 symmetric matrix,
Nine d.o.f
X
Q
9 points in 3D define quadric
23Quadric Image Transfer
Shashua97
X
If
,
x
x
21 params, 4 more than necessary !
24Simplified Quadric Image Transfer
Based on..
X
Homography with polar plane
Projected conic
x
x
17 param warp
25Simplified Quadric Image Transfer
X
17 param warp
x
x
Planar homography 4 corresponding
pixels Quadric transfer 9 corresponding pixels
26OutlineSeamless Curved Display
- Multi-projector low cost method
- Simplified Quadric Image Transfer
- Calibration with camera-pair
- Parametric Rendering solution
27Calibration of Quadric Screens
1
Dome Screen
2
4
3
28Approach
- Calibration
- At each projector i ,
- Project structured pattern
- View with stereo camera
- Finding camera to projector quadric transfer,
- Run-time
- At each projector i,
- Pre-warp input image using
29CalibrationFinding relationship between camera
and projector
Low-res Camera 640x480 images But each Projector
1024x768
30Before Blending
31After Blending
32Intensity Correction in Overlap
Projector Framebuffers
33Projector Framebuffers
34Projector Framebuffer Intensity Weights
35OutlineSeamless Curved Display
- Multi-projector low cost method
- Simplified Quadric Image Transfer
- Calibration with camera-pair
- Parametric Rendering solution
36Rendering a 3D Scene
- Steps at each projector
- (Pre-distort vertex 3D location)
- For each triangle T with vertices Mj
- For each vertex M
- Find pixel m via VirtualViewProjection( M )
- Find warped pixel m via quadricTransfer of m
- Replace M with m
37Vertex Shader for Quadric Transfer in Cg
- vertout main( appin IN, uniform float4x4
modelViewProj, uniform float4 constColor,
uniform float3x3 A, uniform float3x3 E,
uniform float3 e) - vertout OUT
- float4 m1 float4(IN.position.x, IN.position.y,
IN.position.z, 1.0f ) - float4 m, mi float3 m2,mp float scale
-
- m mul( modelViewProj, m1)
- m2.x m.x/m.w m2.y m.y/m.w m2.z 1
- scale mul(m2, mul(E,m2))
- mp mul(A,m2) sqrt(scale)e
- mi.x m.w (mp.x)/(mp.z)
- mi.y m.w (mp.y)/(mp.z)
- mi.zw m.zw
- OUT.position mi
- OUT.color0 IN.color0 // Use the original
per-vertex color specified - return OUT
ParametricWarp
383D Terrain Rendering
39Parametric Rendering Benefits
- Head tracking support
- Update quadric transfer per frame
- Single pass rendering
- Avoid post-rasterized warp
- Efficient rendering
- Better image quality
- Programmable hardware
- Distributed rendering
- Runs unmodified 3D applications
40Head Tracked Single Pass Rendering
41Distributed Rendering with Unmodified Application
42Subpixel Accurate Registration
43Convex Dome
44Acknowledgements
- Mitsubishi Electric Research Labs
- Paul Beardsley, Jay Thornton
- Joe Marks
- Mitsubishi Electric, Japan
- Masato Ogata, Hiroyuki Wada
- Masatoshi Kameyama, Ashizaki
45Seamless Curved Display
- Multi-projector low cost method
- Simplified Quadric Image Transfer
- Complete Parametric calibrendering solution
- Head tracking support, single pass rendering
www.MERL.com/Projects/Projector/
46Details I Skipped ..
- Photometric Correction Majumder03
- Depth of field is limited
- Estimating camera and projector params
- Internal and External params
- Issue with near-planar 3D points
- Finding pixels weights for blending
- Non-linear optimization
- Rendering
- Warping and Depth buffer issues
47Advantages
- Parametric warp
- Lower camera resolution
- Tolerance for pixel localization errors
- Faster calibration
- Efficient well-defined warping
48What is homography ?
j A3 x 3 i
A3 x 3
a1 a2 a3 b1 b2 b3 c1 c2 c3
jx jy 1
ix iy 1
k
j
i
jx (a i) / (c i)
Proj 1
Proj 2
jy (b i) / (c i)
49Rendering 2D 3D scene
Concave Dome
Convex Dome
50Projector Mailing List
- majordomo_at_cs.unc.edusubscribe projector
- Projector bibliography
www.raskar.com/Projector/
51Vertex Shader for Quadric Transfer in Cg
- vertout main( appin IN, uniform float4x4
modelViewProj, uniform float4 constColor,
uniform float3x3 A, uniform float3x3 E,
uniform float3 e) - vertout OUT
- float4 m1 float4(IN.position.x, IN.position.y,
IN.position.z, 1.0f ) - float4 m, mi float3 m2,mp float scale
-
- m mul( modelViewProj, m1)
- m2.x m.x/m.w m2.y m.y/m.w m2.z 1
- scale mul(m2, mul(E,m2))
- mp mul(A,m2) sqrt(scale)e
- mi.x m.w (mp.x)/(mp.z)
- mi.y m.w (mp.y)/(mp.z)
- mi.zw m.zw
- OUT.position mi
- OUT.color0 IN.color0 // Use the original
per-vertex color specified - return OUT
ParametricWarp
52Planar Displays
Current Multi-Cube System
MERL Projector Planar Mosaic
53Offset Sweetspot
Ideal Sweetspot
54Quadric Transfer
- Convex or concave quadric surfaces
- Minutes rather than seconds due to necessary
non-linear optimization of quadric transfer
parameters - Sub-pixel accuracy
- Current consumer-class graphics hardware allows
fast rendering
Concave
Convex
55Non-linear Refinement
Linear Estimation Error 10 pixels
NonLinear Refinement Error 1.0 pixels
56Traditional Multi-Projector Setup
Well-defined Overlap
No Overlap
Precise configuration Costly setup Manual
alignment High maintenance
57Related Work
- Conventional Displays
- Manual alignment, expensive infrastructure
- Jupiter,Trimensions, CAVE, Planetaria, Flight
Simulators - Planar Screens
- Camera in loop, auto calibration, low cost
- Exploit homography parameters
- Raskar98,Surati99,Chen00,Brown02
- Curved Screens
- Non-parametric solutions
- Jarvis97,Raskar98,Yang01
- Parametric
- ?, Siggraph 2003