Kernel Foveated Rendering
Xiaoxu Meng, Ruofei Du, Matthias Zwicker and Amitabh Varshney
Augmentarium | UMIACS University of Maryland, College Park
1
Kernel Foveated Rendering Xiaoxu Meng, Ruofei Du, Matthias Zwicker - - PowerPoint PPT Presentation
Kernel Foveated Rendering Xiaoxu Meng, Ruofei Du, Matthias Zwicker and Amitabh Varshney Augmentarium | UMIACS 1 University of Maryland, College Park Introduction Our Approach User Study Experiments Conclusion Related Work Resolution
Xiaoxu Meng, Ruofei Du, Matthias Zwicker and Amitabh Varshney
Augmentarium | UMIACS University of Maryland, College Park
1
Introduction Related Work Our Approach User Study Experiments Conclusion
Application Resolution Frame rate MPixels / sec Desktop game 1920 x 1080 x 1 60 124
2
Application Resolution Frame rate MPixels / sec Desktop game 1920 x 1080 x 1 60 124 2018 VR (HTC Vive PRO) 1440 x 1600 x 2 90 414
3
Introduction Related Work Our Approach User Study Experiments Conclusion
* Data from Siggraph Asia 2016, Prediction by Michael Abrash, October 2016
Application Resolution Frame rate MPixels / sec Desktop game 1920 x 1080 x 1 60 124 2018 VR (HTC Vive PRO) 1440 x 1600 x 2 90 414 2020 VR * 4000 x 4000 x 2 90 2,880
4
Introduction Related Work Our Approach User Study Experiments Conclusion
200 400 600 800 1000 1200 1400 1600 1800 2000 Desktop Game 2017 VR 2020 VR Mpixels/sec
5
Introduction Related Work Our Approach User Study Experiments Conclusion
6
Introduction Related Work Our Approach User Study Experiments Conclusion fovea: the center of the retina corresponds to the center of the vision field
7
Introduction Related Work Our Approach User Study Experiments Conclusion foveal region: the human eye detects significant detail peripheral region: the human eye detects little high fidelity detail
foveal region foveal region
8
Introduction Related Work Our Approach User Study Experiments Conclusion foveal region: the human eye detects significant detail peripheral region: the human eye detects little high fidelity detail
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% iPhone7 Plus 27'' Desktop Monitor 2016 VR HMD
96 % 27 %
Percentage of the foveal pixels
4 %
9
Introduction Related Work Our Approach User Study Experiments Conclusion * Data from Siggraph 2017, by Anjul Patney, August 2017
10
11
Foveated Rendering
12
Introduction Related Work Our Approach User Study Experiments Conclusion
Related Work
13
Full Resolution
π π Resolution π π Resolution
Multi-Pass Foveated Rendering [Guenter et al. 2012]
14
Introduction Related Work Our Approach User Study Experiments Conclusion
Rasterizer Early Z π
π¦ Γ π π§
Tile Buffer Generate Coarse Quad Shade Evaluate Coarse Pixel Size
Input primitives
Coarse Pixel Shading (CPS) [Vaidyanathan et al. 2014]
15
Introduction Related Work Our Approach User Study Experiments Conclusion
CPS with TAA & Contrast Preservation [Patney et al. 2016]
16
Introduction Related Work Our Approach User Study Experiments Conclusion
17
Introduction Related Work Our Approach User Study Experiments Conclusion
Perceptual Foveated Rendering [Stengel et al. 2016]
18
Introduction Related Work Our Approach User Study Experiments Conclusion
19
Introduction Related Work Our Approach User Study Experiments Conclusion
π§ π¦ π€ π£
Log-polar mapping [Araujo and Dias 1996]
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€)
π£ π€
π 2π
(π¦0, π§0) (π¦0, π§0) π
20
Introduction Related Work Our Approach User Study Experiments Conclusion
Log-polar mapping [Araujo and Dias 1996]
Cartesian coordinates (π¦, π§) Log-polar coordinates (u, π€) 21
Introduction Related Work Our Approach User Study Experiments Conclusion
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping
Log-polar mapping [Araujo and Dias 1996]
Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€) 22
Introduction Related Work Our Approach User Study Experiments Conclusion
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping
Log-polar mapping [Araujo and Dias 1996]
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β π¦ = ππβπ£
π₯ cos π€ β 2π
β π§ = ππβπ£
π₯ sin π€ β 2π
β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€) Cartesian coordinates (π¦, π§) 23
Introduction Related Work Our Approach User Study Experiments Conclusion
Log-polar mapping [Araujo and Dias 1996]
Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€) Cartesian coordinates (π¦, π§) 24
Introduction Related Work Our Approach User Study Experiments Conclusion
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β π¦ = ππβπ£
π₯ cos π€ β 2π
β π§ = ππβπ£
π₯ sin π€ β 2π
β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping
Log-polar mapping [Araujo and Dias 1996]
Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€) Cartesian coordinates (π¦, π§) 25
Introduction Related Work Our Approach User Study Experiments Conclusion
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β π¦ = ππβπ£
π₯ cos π€ β 2π
β π§ = ππβπ£
π₯ sin π€ β 2π
β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping
Log-polar mapping [Araujo and Dias 1996]
Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€) Cartesian coordinates (π¦, π§) 26
Introduction Related Work Our Approach User Study Experiments Conclusion
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β π¦ = ππβπ£
π₯ cos π€ β 2π
β π§ = ππβπ£
π₯ sin π€ β 2π
β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping
Log-polar Mapping for 2D Image [Antonelli et al. 2015]
27
Introduction Related Work Our Approach User Study Experiments Conclusion
Log-polar Mapping for 2D Image
28
Introduction Related Work Our Approach User Study Experiments Conclusion
29
Introduction Related Work Our Approach User Study Experiments Conclusion
Kernel Log-polar Mapping
π£ = πΏβ1 πππ π¦2 + π§2 π β π₯
πΏ π¦ = π¦ πΏ π¦ = π¦2 πΏ π¦ = π¦3 πΏ π¦ = π¦4
range: [0,1]
πΏ π¦ = ππ¦ β 1 π β 1 πΏ π¦ = sin(π 2 π¦)
x k(x)=x k(x)=x2 k(x)=x3 k(x)=x4 k(x)=ex-1/e-1 k(x)=sin(pi x/2)
π§ π¦
30
Introduction Related Work Our Approach User Study Experiments Conclusion
Cartesian coordinates (π¦, π§) Cartesian coordinates (π¦, π§) Log-polar coordinates (π£, π€) 31
Introduction Related Work Our Approach User Study Experiments Conclusion
π£ = log π¦2 + π§2 π β π₯ π€ = (arctan π§ π¦ + π [π§ β 0] β 2π) 2π β β π¦ = ππβπ£
π₯ cos π€ β 2π
β π§ = ππβπ£
π₯ sin π€ β 2π
β
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
Log-polar Mapping
Cartesian coordinates (π¦, π§) Cartesian coordinates (π¦, π§) Kernel log-polar coordinates (π£, π€)
π£ = πΏβ1 πππ π¦2 + π§2 π β π₯ π€ = (ππ ππ’ππ π§ π¦ + π[π§ β 0] β 2π) 2π β β
32
Introduction Related Work Our Approach User Study Experiments Conclusion
πΌ: π‘ππ πππ βπππβπ’ π₯: ππ£ππππ π₯πππ’β β: ππ£ππππ βπππβπ’
0 π§ > 0
β πΎππ¦π , π₯βππ π Οπ=0 β πΎπ = 1
Kernel Log-polar Mapping
π¦ = ππβπΏ(π£
π₯) cos π€ β 2π
β π§ = ππβπΏ(π£
π₯) sin π€ β 2π
β
33
πΈππ‘π’π πππ£π’πππ ππ πππ¦πππ‘
πππππ πΈππ‘π’π πππ£π’πππ ππ πβππ’ππ πππππ’ππ π‘ ππ π’βπ βπ£πππ π ππ’πππ
Kernel log-polar Mapping
π = π π₯
34
Introduction Related Work Our Approach User Study Experiments Conclusion
π π₯ π
Kernel log-polar Mapping
π = π π₯
πΏ π¦ = π¦π½
Result of log-polar (πΏ π¦ = π¦) Result of kernel log-polar (πΏ π¦ = π¦4) 35
Introduction Related Work Our Approach User Study Experiments Conclusion
36
Introduction Related Work Our Approach User Study Experiments Conclusion
π = 1.2 Original Frame Buffer Screen Sample Map
37
Introduction Related Work Our Approach User Study Experiments Conclusion
π = 1.7 Original Frame Buffer Screen Sample Map
38
Introduction Related Work Our Approach User Study Experiments Conclusion
π = 2.4 Original Frame Buffer Screen Sample Map
39
Introduction Related Work Our Approach User Study Experiments Conclusion
π = 1.2 π = 1.7 π = 2.4
Fovea Fovea Fovea
40
41
Introduction Related Work Our Approach User Study Experiments Conclusion
π½ = 1 Original Frame Buffer Screen Sample Map
42
Introduction Related Work Our Approach User Study Experiments Conclusion
π½ = 4 Original Frame Buffer Screen Sample Map
43
Introduction Related Work Our Approach User Study Experiments Conclusion
π½ = 6 Original Frame Buffer Screen Sample Map
44
Introduction Related Work Our Approach User Study Experiments Conclusion
π½ = 1 π½ = 4 π½ = 6
Fovea Fovea Fovea
45
46
Introduction Related Work Our Approach User Study Experiments Conclusion
accept reject 47
Introduction Related Work Our Approach User Study Experiments Conclusion
π β 1.2, 2.4 step size: 0.2 π½ β 1, 4 step size: 1.0
Resolution: 2560 Γ 1440 Field of view: up to 100 degrees
0.00% 20.00% 40.00% 60.00% 80.00% 100.00% Ο = 1.2 Ο = 1.4 Ο = 1.6 Ο = 1.8 Ο = 2.0 Ο = 2.2 Ο = 2.4 Ξ± = 1 91.67% 88.33% 78.33% 66.67% 46.67% 31.67% 31.67% Ξ± = 2 91.67% 96.67% 86.67% 75.00% 58.33% 51.67% 46.67% Ξ± = 3 91.67% 90.00% 81.67% 85.00% 66.67% 61.67% 41.67% Ξ± = 4 96.67% 96.67% 95.00% 80.00% 66.67% 56.67% 48.33%
Percentage
Identical percentage under different Ξ± and Ο
Ξ± = 1 Ξ± = 2 Ξ± = 3 Ξ± = 4
48
Introduction Related Work Our Approach User Study Experiments Conclusion
0.00% 20.00% 40.00% 60.00% 80.00% 100.00% Ο = 1.2 Ο = 1.4 Ο = 1.6 Ο = 1.8 Ο = 2.0 Ο = 2.2 Ο = 2.4 Ξ± = 1 91.67% 88.33% 78.33% 66.67% 46.67% 31.67% 31.67% Ξ± = 2 91.67% 96.67% 86.67% 75.00% 58.33% 51.67% 46.67% Ξ± = 3 91.67% 90.00% 81.67% 85.00% 66.67% 61.67% 41.67% Ξ± = 4 96.67% 96.67% 95.00% 80.00% 66.67% 56.67% 48.33%
Percentage
Identical percentage under different Ξ± and Ο
Ξ± = 1 Ξ± = 2 Ξ± = 3 Ξ± = 4
49
Introduction Related Work Our Approach User Study Experiments Conclusion
Kernel log-polar transformation
G-buffer
Inverse kernel log-polar transformation & post anti-aliasing Shading & internal anti-aliasing World position Bit tangent Normal Texture coordinates Albedo map Roughness, ambient, and refraction maps
LP-buffer
(π = 3.0)
Screen
50
Introduction Related Work Our Approach User Study Experiments Conclusion
10 FPS foveated ray-marching scene (Ο = 1.8, Ξ± = 4) 30 FPS
fovea
51
* Scene created by ΓΓ±igo QuΓlez. Introduction Related Work Our Approach User Study Experiments Conclusion
31 FPS foveated 3D geometries (Ο = 1.8, Ξ± = 4) 67 FPS
fovea fovea
52
Introduction Related Work Our Approach User Study Experiments Conclusion
Scene 3D Textured Meshes Ray Casting Resolution Ground Truth Foveated Speed up Ground Truth Foveated Speed up ππππ Γ ππππ 55 FPS 110 FPS 2.0X 20 FPS 57 FPS 2.9X ππππ Γ ππππ 31 FPS 67 FPS 2.2X 10 FPS 30 FPS 3.0X ππππ Γ ππππ 8 FPS 23 FPS 2.8X 5 FPS 16 FPS 3.2X
53
Introduction Related Work Our Approach User Study Experiments Conclusion
54
Introduction Related Work Our Approach User Study Experiments Conclusion
55
Ground Truth Kernel Foveated Rendering
56
Introduction Related Work Our Approach User Study Experiments Conclusion
Xiaoxu Meng, Ruofei Du, Matthias Zwicker and Amitabh Varshney
Augmentarium | UMIACS University of Maryland, College Park
57
video paper
58
59
ππ βvalue 1.2 1.4 1.6 1.8 2.0 2.2 2.4 Cochranβs Q value 1.72 5.76 8.20 8.25 7.49 14.27 5.48 p-value 0.631 0.122 0.042 0.041 0.058 0.002 0.139
60
Kernel log-polar transformation
G-buffer
Inverse kernel log-polar transformation & post anti-aliasing Shading & internal anti-aliasing World position Bit tangent Normal Texture coordinates Albedo map Roughness, ambient, and refraction maps
LP-buffer
(π = 3.0)
Screen
Inverse kernel log-polar transformation & post anti-aliasing Shading & internal anti-aliasing
61
Non-uniform Gaussian Blur Kernel size increase from left (fovea) to right (periphery) Non-uniform Gaussian Blur Kernel size increase from fovea to periphery
62
video paper