解密funhouse vr - nvidia developer€¦ · 解密funhouse背后的英伟达 尖端vr技术....

Post on 22-May-2020

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

解密Funhouse背后的英伟达尖端VR技术

VRWORKS GRAPHICS

针对游戏及应用开发者

通过减少对冗余像素的渲染来提高VR渲染的性能的

一种创新性的新方法

通过多个GPU来提升性能

通过一次几何体渲染便可将几何体同时投

射到左右视口

渲染更加接近于透镜矫正的图形,从而更有效的避免冗余像素的渲染

VR SLI

VR SLI

通过多个GPU来提升性能

GPU affinity masking & Broadcasting

帧渲染 (左眼)

帧渲染 (右眼)

VR SLI

GPU关联掩码(Affinity Masking)

阴影贴图,GPU物理等

左眼渲染

右眼渲染

VR SLI

广播(Broadcasting)

帧渲染 (左眼)

帧渲染 (右眼)

仅需渲染一次场景

VR SLI

通过PCIe进行跨GPU数据拷贝

左 右

多投影(Multi-Projection)

Multi-Projection

Viewport 1

Viewport 2

Viewport N

几何管线

NVIDIA GPU的特性

高效地将几何体以广播的方式同时投影到多个Viewport,

是MRS,LMS及SPS得以实现的基础

多分辨率着色(Multi-res Shading)

Multi-res Shading

VR设备显示的特点( 变形与反变形 )

Multi-res Shading

VR设备显示的特点( 变形与反变形 )

用户看到的图像

光学元件

显示的图像 应用渲染的图像

Multi-res Shading

一种创新性的VR渲染新方法

Pascal GPU新特性带来的新技术

Lens-Matched Shading

Single Pass Stereo

透镜匹配着色(Lens-Matched Shading)

Lens-Matched Shading

进一步逼近透镜显示所需的的图像

LMS 渲染的图像 传统方式渲染的图像

Lens-Matched Shading

Pascal GPU的新硬件特性:Modified W

w’ = w + Ax + By

SV_POSITION

X Y Z W

Lens-Matched Shading

w’ = w + Ax + By

Lens-Matched Shading

将屏幕分为4个Viewport

Lens-Matched Shading

控制八边形的形状

对变形程度的控制

WarpLeft

WarpRight

WarpUp

WarpDown

对投影区域大小的控制

SizeLeft

SizeRight

SizeUp

SizeDown

单遍立体(Single Pass Stereo)

Single Pass Stereo

Pascal GPU的又一新硬件特性

仅需渲染一次场景

在单块GPU上,通过一次几何体渲染便可将几何体同时投射到左右视口,高效地完成VR所需的立体渲染

Single Pass Stereo

不仅减少CPU的负担

Draw(…) Input

Assembler

Vertex

Shader

Cull, Clip,

Viewport

Geometry

Shader

Tessellation

Shaders

Rasterizer Pixel Shader Output

Merger

Single Pass Stereo

VR 对双眼渲染时View设置的特点

双眼的视线是平行的

空间中的同一点在双眼Clip空间中的坐标比较

仅有X方向的值不同

Single Pass Stereo

SPS的具体实现方式

在几何处理管线的最末端输出两个坐标

顶点在左眼Clip空间中的完整坐标 ( SV_POSITION )

顶点在右眼Clip空间中的X坐标 ( NV_X_RIGHT )

SV_POSITION

X Y Z W

NV_X_RIGHT

X

Left position

X Y Z W

Right position

X Y Z W

Single Pass Stereo

SPS的具体实现方式

设置Viewport Mask,用以确定各个Viewport属于哪只眼睛

NV_VIEWPORT_MASK

UINT型变量,高16位用于指定右眼的Viewport,低16位用于指定左眼的。

NV_VIEWPORT_MASK

[ 31 : 16 ] [ 15 : 0 ]

… 1 0 0 0 … 0 1 0 0 0x00020001

Slice 1

Single Pass Stereo

立体渲染布局方式(Stereo Layouts)

Side-By-Side Layout Render Target Array (RTA) Layout

右 左 右 左

Slice 0

VRWORKS GRAPHICS

针对游戏及应用开发者

通过减少对冗余像素的渲染来提高VR渲染的性能的

一种创新性的新方法

通过多个GPU来提升性能

通过一次几何体渲染便可将几何体同时投

射到左右视口

渲染更加接近于透镜矫正的图形,从而更有效的避免冗余像素的渲染

提问? youngy@nvidia.com http://developer.nvidia.com/vrworks

top related