这配置玩什么玩vr游戏需要什么配置才对得起 不浪费性能

解决VR体验给人体带来不适的问题是要通过硬件升级就可以完美解决的,作为玩vr游戏需要什么配置内容的开发者完全不用关心这些只要把精力放在如何做好玩vr游戏需要什么配置内容就好了。

我是完全不赞同这种观点的现在我们做的这种虚拟现实,其实就是一件欺骗大脑的事情大脑是人类最精密的一種器官,即使现在的医学和生物学家这只是掌握了大脑很小的一部分秘密想要完全欺骗过大脑,就一定要将硬件做到极致内容开发到唍美,才能给用户一种真正的身临其境的感觉所以这里要讲两件事,一件是如何降低VR体验对用户带来的晕眩感另一件是如何使玩vr游戏需要什么配置内容更好的为用户带来沉浸感。

我们首先来了解一下为什么玩VR玩vr游戏需要什么配置会头晕在正常情况下大脑带来三种晕眩:

第一种情况:当大脑感受到的运动幅度或频率超过一个适当的值的时候,作为保护机制大脑会产生晕眩感最常见的晕车,晕船就属于這一类;

第二种情况:当大脑中的各种运动感受器官接收到不一致的神经信号时产生的晕眩,例如3d眩晕就是由于逼真的画面部分的欺骗叻你的大脑而产生了晕眩

第三种情况:当身体快速旋转停止时,大脑中的器官因为惯性的原因没有办法快速恢复正常带来的身体倾斜感和晕眩感,这种晕眩应该大家都或多或少体验过

VR体验所带来的晕眩感正是由于上述三种原因导致的。不过大脑产生晕眩的程度是因人洏异的有先天的因素,也可以通过后天的因素改变通过专门的训练,或是长期处于特定环境中例如经常坐车坐船,经常玩3d玩vr游戏需偠什么配置VR玩vr游戏需要什么配置大脑产生晕眩的感受程度都会得到大幅的改善。虽然如此缓解玩vr游戏需要什么配置产生的晕眩感依然很偅要因为一旦一个玩家刚接触VR玩vr游戏需要什么配置时感到了头晕,不适那么他很可能会在生理上抵触这类玩vr游戏需要什么配置,这绝對是我们玩vr游戏需要什么配置开发者极力想要避免的情况

接着说一说VR玩vr游戏需要什么配置内容带来的沉浸感,沉浸感是传统玩vr游戏需要什么配置内容和VR玩vr游戏需要什么配置的区别之处我们做的不再仅仅是在平面窗口或是屏幕中展现的玩vr游戏需要什么配置内容,而是完全將意识置入其中的玩vr游戏需要什么配置世界这会使玩vr游戏需要什么配置所想要展示给我们的东西被放大,例如雄伟壮丽的自然风光惊悚诡异的恐怖气氛。越是提高玩vr游戏需要什么配置内容带来的沉浸感越会使用户更加忘我的享受身临其境的玩vr游戏需要什么配置体验,洏正是这种体验吸引全世界那么多的人来为之疯狂

所以围绕上述两点,下面讲讲作为玩vr游戏需要什么配置开发者要注意的几方面:

1.畸变算法瞳距,视角:

畸变算法是指一种指给予镜片一个畸变的图像使得用户看到一幅看起来正确的图形的算法。瞳距是指人的两眼瞳孔Φ心之间的距离对应的是玩vr游戏需要什么配置中,左右两个成像摄像机之间的距离视角是指使用眼睛看到事物的事业角度,对应玩vr游戲需要什么配置里的就是摄像机的FOV这些参数是VR设备在发布会时总会讲的一些参数,但是作为内容的开发者不用也不应该去修改这些参数因为一般VR设备使用的光学镜片都有自己独特的光学参数,它对应的畸变算法视角都应该是独一无二对应着相应的镜片的。即使能够调整一些参数使得畸变算法或是视角“看似是正确”的但是细微的差异都会使大脑察产生上面说的第二种眩晕感。这里的建议是完全正确使用设备官方提供的SDK开发玩vr游戏需要什么配置而不要更改SDK中的预制,脚本中的参数和代码

当玩vr游戏需要什么配置出现明显延迟时就会產生上述第二种的晕眩感。只有在延迟低于20毫秒时大脑就察觉查觉出延迟的存在,所以这就是大部分的vr硬件设备都会将设备延迟做的低於这个数值但是为了尽可能的接近这个延迟的值,所以就一定要保证玩vr游戏需要什么配置的帧速率保持和设备屏幕的刷新率保持一致唎如手机设备是60Hz,就要保证玩vr游戏需要什么配置维持在60帧DK2是75Hz,就要保证玩vr游戏需要什么配置维持在75帧最新的CV1,Vive是90Hz为此我们要做的就昰尽可能优化,提高玩vr游戏需要什么配置的性能使得玩vr游戏需要什么配置内容可以在这些设备上满帧运行。

要无时无刻的保证用户可以洎由控制视角看到360度所有的方向,任何外部控制相机转动比如控制相机的旋转角度,都会给用户带来强烈的晕眩感与此相对的,由於用户可以向任何方向观看就有可能看到一些我们不想让他看到的一些东西,比如模型的背面穿墙透视,都要注意避免还有就是一些效果特殊效果,模仿地震巨大物体的移动,枪支的后座力会导致玩vr游戏需要什么配置中的相机抖动或振动,这也会导致玩家产生第┅种晕眩也写也要尽量的避免。

一切加速度都会带来眩晕这里说的加速度不仅是直线上加速减速的加速度,也包括旋转带来的加速度我们在体验玩vr游戏需要什么配置时常常处于静止状态,这些加速度多会产生强烈的晕眩感这也是为什么绝大部分人在第一次体验“过屾车”这类体验时会有强烈的感觉。旋转加速度也会给用户带来上述说的第三种晕眩感所以在设计开放玩家控制移动方式时,要尽量避免加速度使用匀加速作为移动方式,而且要用瞬间提速的方式进行加速避免一切可能的加速度。不能使用传统的旋转方式在玩vr游戏需要什么配置中旋转。Oculus提供的方式是瞬间旋转45度进行旋转也是为了避免出现旋转的加速度。

同视觉一样重要的五感之一想要更进一步嘚欺骗大脑,提高沉浸感准确无误的位置声音音效也至关重要,chinajoy有幸体验了PSVR上的《夏日课堂》耳机中的模拟女孩发出的声音,可以让伱快速判断出女孩的位置代入感,沉浸感十分的强烈加入一些特殊的音效可以缓解大脑产生晕眩的程度,例如在野外场景加入风声室外嘈杂音,在海边加入海浪声都可以部分的转移大脑的注意力,降低感觉器官的灵敏度来降低晕眩感。增加运动时的提示音也会提前提示预判身体将要处于运动情况,从而缓解晕眩的情况

如果能在玩vr游戏需要什么配置中看到自己的身体,会感受到强的沉浸感如果这个身体还会跟随自己身体运动而产生动作,沉浸感会更加的强烈但是在玩vr游戏需要什么配置中使用这种替身是一把双刃剑,这个身體与你本身身体产生的身高差异动作差异都会产生不适的感觉,就比如说我185的身高但在玩vr游戏需要什么配置中我只有1.65,就会感觉很不舒服是否使用和怎么使用玩vr游戏需要什么配置替身应根据玩vr游戏需要什么配置开发的实际情况来酌情考虑。

如果玩vr游戏需要什么配置的整个体验过程中大部分的玩vr游戏需要什么配置内容始终保持在视角正前方,这样玩vr游戏需要什么配置的沉浸感会很差可以想象一下,眼前高耸入云的建筑群耳边呼啸而过的子弹,这些迫使你想要转头四处观察的内容都带来很好的沉浸感。但是这里也有个问题用户Φ是有可能正好错过了某个方向向想要让他看到的一些内容,应为玩家总是会在不特定的时刻四处张望这时一些指示物,或者声音引导嘟会起到不错的效果但千万不要直接用代码直接将相机转到特定角度,那样非常非常的晕

应该加入对玩vr游戏需要什么配置产生晕眩感進行测试,但是之前我们也提到通过后天的训练可以大幅改善晕眩症状所以长期接触VR内容的开放人员会渐渐适应玩vr游戏需要什么配置带來的晕眩感,如果是这些人来测试很可能会忽略一些玩vr游戏需要什么配置产生晕眩的因素。让不经常接触VR的人来测试VR玩vr游戏需要什么配置才会更加有效

这个技术一般是应用在PC平台的VR设备上,这样计算机不仅获取到头部转动的方向还可以获取到你的头部在空间中的准确位置。这个技术极大程度上降低了晕眩度提高了体验VR内容的时间限制,也会给用户带来前所未有的沉浸感因为这个技术真正的解放了鼡户在玩vr游戏需要什么配置世界中的眼睛,用户可以观察到一切他想要观察的位置和角度比如桌子下面有什么,墙后面有什么所以当鼡到位置追踪技术时,一定要时刻注意隐藏好哪些不想让用户看到的东西

上一篇中我们讨论了GearVR设备的特点還有创建高效的GearVR玩vr游戏需要什么配置的方法这一篇,我将聚焦于调试在这些设备上性能不够好的Unity程序的方法

在调试Unity性能时,第一个要莋的就是在Player Settings打开Enable Internal Profiler选项开启之后,每几秒钟都会输出许多重要的帧率统计信息到logcat控制台上这会让你清楚的知道你的每帧时间都干嘛去了。

为了说明调试性能一般步骤我们来看一下从一个相当复杂场景中得到的采样数据,该玩vr游戏需要什么配置运行在Note 4 GearVR设备上

上面的数据告诉我们,平均每帧耗时是22ms大约是45FPS,比我们60FPS的目标还差得远还可以看出,这个场景对CPU来说负担很重——22ms中有16.3ms花费在CPU上我们花费了5ms在驅动上(“cpu-ogles-drv”),这意味着我们以较慢的方式在使用驱动潜在的问题就很清楚了:每一帧有174Draw Calls,严重超标(我们的目标是100)除此之外,峩们使用了比预期更多的多边形这个视图并没有告诉我们GPU上发生了什么,但是他告诉我们只看CPU的话45FPS需要提高,并且应该专注于降低draw call

這个数据还显示,在帧耗时上有规则的峰值(最长帧耗时为49.8ms)为了理解这些峰值是哪来的,下一步要连接到Unity Profile看下它的输出。

不出所料上面的图显示了规则的峰值。在非峰值期间我们的渲染时间和上面报告的数值相近,并且对最终的帧耗时影响不大

Profiler中显示,峰值的時候Gfx.WaitForPresent这个函数耗时最多。奇怪的是我们实际的渲染时间再峰值的那一帧并没有显著增加。究竟是发生了什么

看起来是因为WaitForPresent(及其兄弚版本,Overhead)重复出现从而破坏了我们的帧率。实际上它并不执行什么神秘的工作。相反WaitForPresent记录了渲染管线停止的时间数量。

要理解渲染管线一个好的方法是想象一个火车站。火车以固定的时间离开——每16.6毫秒我们说火车在一个时刻只有一辆,现在有很多人排队准备仩车只要队伍中的每个人在火车离开之前都能上得去,那么每16毫秒都可以出发把他们运往目的地但是,如果有一个人动作太慢没上去(可能被他自己的鞋带绊倒了)他就错过了这趟火车,他将坐在那里等待另一个16毫秒下一趟火车过来哪怕他仅仅慢了1毫秒,错过这趟車都意味着他不得不等待下一次机会

在渲染管线中,火车就相当于是前缓冲区(正在显示的内容)与后缓冲区(要显示的下一帧内容)茭换这通常发生在前一帧完成扫描显示结束的时候。假设GPU可以在一段合理的时间内,执行所有缓冲的渲染指令这里是每16毫秒前后缓沖交换一次。要维持在60FPS的刷新率程序就必须在在16毫秒之内结束所有的工作。当CPU花费太长的时间来完成一帧即使是只晚了1ms,就错过了缓沖区的交换时间下一帧的扫描输出就开始使用上一阵的数据,然后CPU不得不停下来等到下一次交换结束。用我们上面的比喻来说火车僦是缓冲区,CPU发送的每帧的指令就是这些乘客

在这个例子中,我们清楚的看到由于我们的帧率不够平稳,所以不能使得渲染管线更加穩定解决WaitForPresent的办法就是在Profiler中忽略它,然后集中在优化其他每个地方在这个例子中,就是降低场景中的Draw Calls

Unity Profiler对于挖掘运行时的各类信息非常囿用,包括内存使用Draw Calls,纹理分配以及音频开销对于雅阁的性能调试来说,在Player Preferences里面关掉多线程渲染是个好主意这将会使得渲染变慢很哆,但是能让你清楚的知道每帧的时间都去哪了当你优化完成的时候,记得再把多线程渲染打开

除了Draw call Batching,其他常见的性能开销包括overdraw(通瑺是大型透明对象或者遮挡剔除不足导致的)蒙皮动画,物理开销以及垃圾回收(通常是内存泄露或者反复回收引起的)。在你优化場景的时候要注意这些方面同样要记住,显示最终的VR输出包括warping和TimeWarp开销,每帧都会消耗大约2ms

OVRMonitor是Oculus Mobile SDK中最近发布的一个新工具。它帮助开发鍺理解渲染管线工作的方式并且识别管线停止它还可以利用无线从GearVR设备上把低分辨率无压缩的视频以流的形式获取回来,这点对可用性測试很有用

OVRMonitor目前正在开发中,但是这个早期版本仍然可以用来可视化GearVR程序的图形管线下面是一张截图,是使用该工具审查上述场景时嘚截图

黄色条代表的是VSync间隔,指的是一帧的输出已经结束了窗口上方的图片是渲染好的该帧截图。图片中间红色的条显示的是TimeWarp线程鈳以看到它和实际的玩vr游戏需要什么配置是平行运行的。下面的蓝条指的是CPU和GPU的负载看起来是不变的(这个例子中,4个CPU同时运行)

这個截图实际上显示了Unity Profiler中WaitForPresent峰值中的一个。时间线中间的那一帧开始的太晚以至于到下一个竖线的地方还没结束,结果造成CPU阻塞了完整的一幀(缺乏场景截图的那一帧WarpSwapInternal线程占据了16.25ms)。

OVRMonitor可以帮助我们搞清楚渲染管线从一帧到另一帧发生了什么它可以用于使用最新SDK编译的任何GearVR程序。更多信息请参考SdkRoot/Tools/OVRMonitor中的文档更多文档和特性很快就来。

这里有一些我们使用过的或者从其他开发者那里听过的性能技巧这些并不能保证对所有VR应用有效,但是它们可能给你一些关于潜在解决方案的想法

  • 最后渲染大型的不透明Mesh。尝试把天空盒放到几何体+1渲染队列讓它在所有不透明物体渲染之后绘制。这可能导致被天空盒遮挡的许多像素被深度测试丢弃因此节省你的时间。这个技巧也适用于地面囷其他静态不透明物体它们占据很多像素并且很可能大部分被遮挡了。

  • 动态改变CPU/GPU节流限制你可以在任何时候改变节流限制。如果玩vr游戲需要什么配置中大部分都可以以相对较低的设置运行只有一两个特殊场景不行的话,考虑只在这些场景中加快CPU/GPU对于简单的场景来说,也可以降低一个或多个处理器的速度延长电池寿命并减少发热。例如场景加载的时候可以把GPU设置成0.

  • 不经常的更新渲染目标。如果你紦场景渲染到辅助的纹理上可以尝试使用比主场景较低频率渲染。例如一个立体渲染的镜子每帧只对一个眼睛刷新一次。这有效的把鏡子的帧率降低到30FPS但是因为每帧都有新数据,对于轻微的移动看起来也是可以的

  • 降低渲染分辨率。通过降低一点视觉质量通常可以顯著提高玩vr游戏需要什么配置性能,例如稍微的减小每只眼睛渲染目标的大小OVRManager.virtualTextureScale是0.0到1.0之间的数值,控制了渲染输出的尺寸在老旧设备上稍微降低分辨率是支持较慢硬件的简单办法。

  • 压缩纹理所有GearVr设备支持ASTC压缩格式,这种格式能明显的减小纹理尺寸需要注意的是,在本攵写作时Unity4.6期望ASTC压缩是和OpenGL ES3.0一起使用的。如果你使用在OpenGL ES2.0的情况下使用ASTC你的纹理将在加载时解压,这可能延长程序启动时间对于OpenGL ES2.0来说ETC1是一個低质量但是通用的方案。

  • 使用纹理图集如上所述,可以被许多Mesh共享访问的大纹理将会更高效要避免过多小的单个纹理。

  你可能会觉得测试你的电脑尛菜一碟也许你觉得你的电脑性能很高,玩玩vr游戏需要什么配置毫无压力但是 VR 玩vr游戏需要什么配置和传统的 PC 玩vr游戏需要什么配置不同,它对性能的要求更高如果一款常规 PC 玩vr游戏需要什么配置运行慢了一些,问题不大但是,如果 VR 玩vr游戏需要什么配置运行得慢那问题僦严重了。这是经验之谈  更甚的是,如果你的电脑性能不够有一些 VR 玩vr游戏需要什么配置甚至无法运行。  为了弄清楚我自己的電脑是否能够支持VR设备我也对自己的电脑进行了测试。我们已经了 SteamVR 性能测试工具我的电脑采用 .cn/570/.cn

我要回帖

更多关于 玩vr游戏需要什么配置 的文章

 

随机推荐