Right

Transcription

Right
Virtual Reality Features of
NVIDIA GPUs
Mark Kilgard, July 27, 2016
Mark Kilgard
My Background
Principal System Software Engineer
OpenGL driver implementation & API evolution
Other interests
Programmable shading languages, original Cg GPU shading language
Web, vector graphics & path rendering, GPU rendering for 2D graphics
Also known for creating OpenGL Utility Toolkit (GLUT)
2
GPU Challenges for Virtual Reality Rendering
1. Must render unique view for each eye
Two scene renders per frame
2. Wide field-of-view rendered
More pixels, distributed towards periphery
3. HMD lens magnifies rendered scene
Non-linear inverse lens warp
Allows the HMD lens magnification to
provide convincing sense of presence
3
Magnification Effect of HMD Lens
Graph paper viewed & magnified through HMD lens
4
Head Mounted Display Lens Effect
Barrel Distorted Images
on HMD Screen
Magnified Overlapping Wide Field-of-view
Binocular View
5
Focus on Virtual Reality Features of Pascal GPUs
Virtual Reality rendering features in Pascal GPUs
GeForce 1080/1070/1060
NEW Quadro P6000 & P5000
As exposed in standard 3D APIs
6
Background: NVIDA GPU Architecture Road Map
What is Pascal mentioned on last slide?
Our interest NVIDIA GPU architectures of interest: Pascal
7
Conventional 3D Single-eye Scene
8
Conventional 3D Single-eye Scene
9
Wide Stereo Views of Same Scene
Left
Right
10
Left
Right
11
Right
Left
12
Left & Right Views Are
Similar but Different
Left and Right eye views have different occlusion
While left & right eye views look similar, must be draw independently
Really only different in a small translation in X
NVIDIA Single Pass Stereo supports generating left & right eye positions
GPU automatically makes left & right eye versions of each primitive
Then renders each view to a different framebuffer slice
Exposed in OpenGL by NV_stereo_view_rendering extension
Exposed for Direct3D 11 by NVAPI SinglePassStereoMode feature
13
Image Difference of Two Views
−
Left eye view
+ 0.5 =
Right eye view
Clamped difference image
14
Left & Right Views Rendered Efficiently in One Pass
15
Lens Matched Shading
Left
Right
16
Visualizing Lens Matched Shading
17
Lens Matched Shading
Left
Right
18
Visualization of Lens Matched Shading Rendering
19
Still Needs Non-linear Warp
Non-linear
image
Lens Matched Shading
rendering
Warped image suitable
for HMD display
20
Still Needs Non-linear Warp
Non-linear
image
Lens Matched Shading
rendering
BUT substantially
less pixel motion
and distortion
than conventional
VR re-warping
Warped image suitable
for HMD display
21
Example HMD Post-rendering Warp
22
Lens Matched Shading
with Window Rectangle Testing
23
Lens Matched Shading
with Window Rectangle Testing
Nothing in black corners is shaded or even rasterized
Yellow lines show overlaid 8 inclusive window rectangles
Same 8 window rectangles “shared” by each view’s texture array layer
24
Lens Matched Shading
with Window Rectangle Testing
25
What Didn’t Have to be Rendered
17% of left view pixels
17% of right view pixels
26
Window Rectangle Testing
During Rasterization
New multi-vendor OpenGL extension
EXT_window_rectangles
Window
Rectangles
Test
Provides a set of window-space
rectangles, 8 for NVIDIA GPUs
Rasterizer either includes or excludes
rasterization from rectangles
NEW
stage
Discards at speed-of-light
As if free to rasterize to irregular
rectangular regions
OpenGL’s fragment processing pipeline
27
Warped Lens Matched Scene
Warped version of Lens Matched Shading to match HMD lens
28
Warped Lens Matched Shading
29
Visualizing Warp Window Rectangles
30
What Didn’t Have to be Warped
17% of left view pixels
17% of right view pixels
31
VR Rendering Pipeline in Images
LMS Left Eye View
Warped Left Eye View
LMS Right Eye View
Warped Right Eye View
Scene
LMS = Lens Matched Shading
32
VR Rendering Pipeline in Images
LMS Left Eye View
Warped Left Eye View
Pascal does all this
efficiently in a single
rendering pass!
8 viewports, 1 pass
Displayed within HMD
Scene
LMS Right Eye View
Warped Right Eye View
Single Rendering Pass
Drawn with Single Triangle
Single Pass Stereo +
Lens Matched Shading +
Window Rectangle Testing
Fragment Shader Warping
Window Rectangle Testing
Perception to user is linear rendering
HMD lens “undoes” warping to provide
a perceived wide field-of-view
33
Traditional 3D Rendering Pipeline
uses pinhole camera projection,
rasterizing to uniform rectilinear pixel grid
App
Processing
Transform
3D View
Rasterize
3D View
Display
Frame
Downsample
monitor directly
displays uniform
rectilinear pixel
grid
if multisampled
34
Virtual Reality Rendering Pipeline
Rendering Left & Right Eye Views
warps uniform
rectilinear grid
based on HMD’s
device profile
Transform
Left View
Rasterize
Left View
Downsample
HMD
Warp
Display
Frame to HMD
App
Processing
Transform
Right View
Rasterize
Right View
Downsample
HMD
Warp
second view rendering
35
Virtual Reality Rendering Pipeline
With Lens Matched Shading
less pixel resampling
effort & error operating on
LMS rasterized images
Transform
Left View
Lens
Matched
Shading
Rasterize
Left View
Lens
Matched
Shading
Rasterize
Right View
Downsample
HMD
Warp
Display
Frame to HMD
App
Processing
Transform
Right View
Downsample
HMD
Warp
replicates primitive
to 4 projected quadrants
36
Virtual Reality Rendering Pipeline
With Single Pass Stereo
App
Processing
Transform
Left & Right
View
Rasterize
Left View
Downsample
HMD
Warp
Display
Frame to HMD
Rasterize
Right View
Downsample
HMD
Warp
one transform instance,
outputs left & right position
37
Virtual Reality Rendering Pipeline
Single Pass Stereo + Lens Matched Shading
use window rectangle testing
to bound lens region, during
both rasterization & warp
App
Processing
Transform
Left & Right
View
+
Lens
Matched
Shading
Rasterize
Left View
Lens
Matched
Shading
Rasterize
Right View
Downsample
HMD
Warp
Display
Frame to HMD
Downsample
HMD
Warp
Advantages
1. Single transform for both views
2. Closer match between rendering & lens images
3. Fewer overall pixels for similar quality
38
Pascal GPU Features for VR
Unique to NVIDIA
Pascal renders left & right eye
Better matches rendering to HMD lens
In single rendering pass
Single pass
Halves CPU load for rendering
Four separately projected quadrants
Better concurrent texture locality
Less rendering, less resampling error
OpenGL: NV_stereo_view_rendering
OpenGL: NV_clip_space_w_scaling
Direct3D: NVAPI SinglePassStereoMode
Direct3D: NVAPI ModifiedWSupport
39
Other NVIDIA Virtual Reality Initiatives
40
More Information
VRWORKS 2.0 Software Development Kit
Available NOW
Pascal OpenGL extensions for Virtual Reality
Specification now public
In official OpenGL.org extension registry
OpenGL Extension Wrangler 2.0 (GLEW) support
Example code in VRWORKS 2.0 SDK
VRWORKS also documents NVAPI usage
For Direct3D 11
Includes Examples code
41