支持NVIDIA VRWorks的Unity测试版发布
最新的Unity测试版现已支持NVIDIA VRWorks技术,能够帮助VR开发者们进一步优化使用Unity开发VR应用的性能。下载Unity 2017.1.0b2及以上版本,即可感受NVIDIA VRWorks技术释放GPU的最大潜力,实现更加真实且沉浸感更强的VR体验。
NVIDIA VRWorks是什么?
NVIDIA VRWorks是一系列API、代码库以及引擎套件,用于帮助VR平台的开发者们打造令人惊艳的虚拟现实体验。VRWorks包含多项功能,并针对不同用途提供了多个套件,例如:
VRWorks Graphics为游戏与应用开发者提供,用于提高VR应用的视觉效果与性能表现;
VRWorks for Headset Developers则用于为硬件厂商开发头显设备;
VRWorks Audio用于帮助开发者解决3D空间的音效;
VRWorks 360 Video则帮助VR开发者与内容作者实时或离线捕捉360度全景视频。
其中VRWorks Graphics部分的功能对于VR开发者来说更常用,VRWorks Graphics主要包含以下四大功能:
Multi-Res Shading
Multi-Res Shading:以更好地匹配曲面图像像素密度的分辨率来渲染图像的每个部分。多分辨率着色使用Maxwell的多重投影架构,在一遍中渲染多个缩放的视口,带来了显著的性能改进。
VR SLI
VR SLI: 为虚拟现实应用提供了更高的性能,其中可以为多个GPU分配特定的眼睛以急剧加速立体渲染。VR SLI可以通过GPU亲和性API,实现对拥有两个以上GPU的系统的扩展。
Lens Matched Shading
Lens Matched Shading:使用基于Pascal的GPU支持的同时多重投影架构,带来显著的像素着色性能改进。该功能通过渲染到更加接近于头显设备输出的镜头校正图像的表面,来改善多分辨率着色。这避免了渲染大量将在VR镜头扭曲后处理过程中被丢弃的像素所带来的性能开销。
Single Pass Stereo
Single Pass Stereo:使用基于Pascal的GPU支持的同时多重投影架构,绘制一次几何体,但同时投影左右眼两个视图。这实际上可以让开发者将三角形数量翻倍,增加了虚拟世界的丰富性和细节。
而目前Unity引擎已经支持的就是VRWorks Graphics中的Multi-Res Shading与VR SLI功能。其它功能即将在后续版本中推出。
硬件与软件需求
1. 硬件需求
一台搭载Windows 7(32位或64位)及以上版本的Windows电脑;Multi-Res Shading功能要求使用Quadro Maxwell、GeForce GTX 900系列或更新的显卡,并安装最新的NVIDIA驱动。
2. 软件需求
安装Visual Studio 2015,Unity 2017.1.0b2及以上版本,以及最新的NVIDIA VRWorks Unity插件。
Unity项目配置
在Unity项目中启用NVIDIA VRWorks步骤如下:
下载VRWorks资源包并导入Unity项目;
在Player Settings中将“Stereo Rendering Path”设为“Single Pass”;
在Graphics Settings中将渲染模式设为“Forward”。
启用VRWorkd功能
在完成项目配置后,还需将两个关键脚本添加到场景中的主相机上,即VRWorks与VRWorksPresent脚本,并确保将VRWorksPresent脚本放置于所有图像特效脚本之后,因为该脚本需要最后执行以便在屏幕上显示正确的图像。另外,VRWorks脚本引用了原生插件GfxPluginVRWorks32/64.DLL,启用VRWorks功能之前,需要确保Unity项目中包含该插件。
VRWorks所有功能需要通过脚本来启用,例如,启用Single Pass Stereo功能需要调用SetActiveFeature函数,代码如下:
请注意,不要混淆了VRWorks的Single Pass Stereo功能与Unity自身的单遍立体渲染模式。VRWorks的Single Pass Stereo功能是指Pascal或新型GPU的硬件功能,支持同时渲染左右眼图像,如果不启用该功能,Unity仍需在GPU上为每个几何体渲染两次。
设置多分辨率参数
在多分辨率着色模式下共有9个视口(3x3),并且支持改变视口区域及像素密度。这可以通过更改VRWorks组件中视口的X与Y轴的分割点以及像素密度来实现。
视口分割点的取值范围为[0,0.5] ,默认值为0.25,整个视口区域将按照分割点百分比对视图进行水平及垂直方向的切割。像素密度取值范围为[0.05,0.95],默认值为0.7,用于控制视口边缘部分的渲染质量。请注意,视口中间部分会始终保持100%的像素密度。
示例项目
NVIDIA还提供了两个完整的示例项目:NVIDIA Viking Village和NVIDIA VR Samples。NVIDIA Viking Village根据“Viking Village”Demo改制而成,实现了PC端的多分辨率着色,并更改了一些图像特效如SSAO(屏幕空间的环境光遮蔽)、Obscurance、GlobalFog(全局雾效)及DOF(景深)等;NVIDIA VR Samples则根据Unity的VR示例更改而成,展示了VR模式下的MRS(多分辨率着色)、SPS(单通道立体渲染)以及LMS(镜头匹配着色)。
您可以点击【阅读原文】在Asset Store资源商店中下载上述两个示例项目。
更多Unity相关技术文章
点击“阅读原文”访问Unity官方中文社区!