VR系列——Oculus Rift 开发者指南:八、性能平视显示器及Oculus调试工具

本文主要是介绍VR系列——Oculus Rift 开发者指南:八、性能平视显示器及Oculus调试工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

性能平视显示器

性能平视显示器(HUD)可以使你或你的用户能够查看任何使用SDK 0.6或之后版本构建的应用程序的性能信息。

性能HUD屏幕是由合成器渲染呈现的,使他们能够由单一SDK调用来显示。在OculusWorldDemo,您可以按F11来实现性能HUD界面切换。

延迟时间

HUD的延迟时间显示了APP到中期光子、时间异常到光子-启动和时间异常到光子-启动的曲线图。

下面的截图显示了HUD的延迟时间:


这里写图片描述
图8:延迟时间

下表描述了每个指标:

指标描述
应用程序追踪到中光子从应用程序调用ovr_GetTrackingState()到画面最终在头盔显示器中显示(被照亮)-平均亮度的延迟时间
时间异常到中光子从最后预测跟踪信息被提供给时间扭曲GPU的时间执行到画面的中间渲染器被显示在头盔显示器的时间之间的延迟时间
翻转到光子-启动从后台缓存在头盔显示器中呈现的时间到画面在HMD显示器显示出来的时间之间的的延迟时间

渲染时间

渲染时间HUD(平视显示器)展示了合成器的帧率和客户端应用程序以及合成器的GPU渲染所花费的时间。

下面的截图显示了时间渲染HUD(平视显示器):


这里写图片描述
图9:时间渲染

以下表格描述了每个指标:

指标描述
合成器丢失垂直同步次数在每次合成器垂直同步渲染失败时增加
合成器帧率合成器最高工作频率都会低于客户端应用程序的渲染帧率因为合成器在垂直同步过程中会被锁定,它永远不会超过本机HMD(头戴虚拟显示器)的刷新率。但是,如果该合成器未能按时完成渲染帧,合成器的频率就会低于HMD(头戴虚拟显示器)的刷新频率。
合成器GPU时间GPU用于合成器渲染的时间。这包含了处理时间效果偏差和处理客户端应用程序所提交的所有失真图层。
应用 GPU渲染时间客户端应用程序所消耗的gpu渲染总时间。这包含了在执行完成ovr_SubmitFrame()函数之后适当的使用镜像纹理所用的时间。也包括因为 CPU 线程没有及时处理数据引起gpu缓存区”bubbles”被注入,从而导致gpu命令缓存区”bubbles”被占满
App渲染CPU时间从ovr_SubmitFrame()函数返回后cpu开始运行app到cpu开始运行时间扭曲绘制的时间差。
期间延迟测试仪没有预期生效将显示”N/A”,期间包括客户端应用调用完ovr_SubmitFrame()后产生的合成器IPC调用的时间开销
App –GPU时间扭曲跟踪当app开始调用ovr_GetTrackingState到GPU开始执行时间扭曲绘制。如果延迟测试仪不能如预期正常工作,hub将显示“N / A”。

性能余量

性能余量HUD显示了合成器的帧率和未使用的硬件性能。这HUD可以由开发商或消费者在调整其应用程序时的模拟和图形保真度时使用。由于用户不能禁用垂直同步,它可以被认为是帧速率计数器来判断性能的一个替换。它还可以帮助调试安装,以确保它正在提供虚拟现实一致的体验,而不是由于与硬件无关的问题丢帧。

下面的屏幕截图显示了性能提升空间HUD :


这里写图片描述
图10:性能余量HUD

下表描述了每个指标:

指标描述
Motion-to-photon延迟从上次的预测跟踪信息馈送到GPU去执行Timewarp到该帧的中间扫描线投射在HMD显示屏上的延迟时间。这与“时间延迟”部分提到的信息是一样的,为了消费者友好在这里再提一下。
未使用的GPU性能客户应用程序未使用的GPU和合成器的性能的百分比。这在本质上是时间渲染HUD被追踪的总的GPU时间。该总GPU时间被HMD的本地帧时间分割开(逆的刷新率)。该设计是用来帮助用户证实他的电脑有足够的GPU缓冲去避免丢帧,并帮助用户避免不稳定。
总的丢帧数该值与时间渲染HUD所提供的值一致。帮助用户决定其是否正面临着性能问题。

版本信息

版本信息HUD展示了关于HMD的信息以及用来创建app的SDK的版本.


这里写图片描述
图11:版本信息HUD

下表描述了版本信息HUD中的项:

名称描述
OVR SDK Runtime Ver当前安装的运行时版本。每个vr应用使用的OVR SDK版本为0.5.0以上的版本
OVR SDK Client DLL Ver客户端应用程序编译时使用的SDK版本。
HMD TypeHMD的类型
HMD Serial (HMD系列)HMD的一系列编号。
HMD Firmware( HMD固件)安装的HMD固件版本。
跟踪器编号位置跟踪器的编号
Tracker Firmware(跟踪器固件)安装的位置跟踪器固件版本

Oculus调试工具

Oculus调试工具能够让你在你的游戏或经历中察看性能或调试信息。

使用该工具:

1.打开Oculus SDK的Tools目录。

2.双击OculusDebugTool.exe. Oculus调试工具就打开了。

3.选择Visible HUD(可视HUD)去察看。选项包括:None (no HUD is displayed)(无,没有HUD显示), Performance HUD(性能HUD), StereoDebug HUD(立体调试HUD), 或者Layer HUD(HUD层).

4.如果你选择了 Performance HUD(性能HUD), 再继续选择你想查看哪个HUD性能。选项包括:Latency Timing(时间延迟), Render Timing(时间渲染),Performance Headroom(性能余量), and Version Information(版本信息).欲知更多信息,请查看40页的Performance Head-Up Display(性能HUD)

以下是性能HUD的例子:


这里写图片描述

5.如果你选择了StereoDebug HUD(立体调试HUD),从立体调试HUD选项里设置模式,大小,位置,颜色。

以下是个StereoDebug HUD(立体调试HUD)的例子:


这里写图片描述

6.如果你选择了Layer HUD (HUD 层),选择展示信息的层或者选择“显示全部”(Show All)的选择按钮。以下是个Layer HUD (HUD 层)的例子:


这里写图片描述

7.带上耳机查看效果。


原文如下


Performance Head-Up Display

The Performance Head-Up Display (HUD) enables you or your users to view performance information for any application built with SDK 0.6 or later.

The Performance HUD screens are rendered by the compositor, which enables them to be displayed with a single SDK call. In OculusWorldDemo, you can toggle through the Performance HUD screens by pressing F11.

Latency Timing

The Latency Timing HUD displays the App to Mid - Photon, Timewarp to Photon - Start, and Timewarp to Photon - Start graphs.

The following screenshot shows the Latency Timing HUD:


这里写图片描述
Figure 8: Latency Timing

The following table describes each metric:

MetricDescription
App Tracking to Mid-PhotonLatency from when the app called ovr_GetTrackingState() to when that frame eventually was shown (i.e.illuminated) on the HMD display - averaged mid - point illumination
Timewarp to Mid-PhotonLatency from when the last predictied tracking info is fed to the GPU for timewarp execution to the point when the middle scanline of that frame is illuminated on the HMD display
Flip to Photon - StartLatency from the point the back buffer is presented to the HMD to the point that frame’s first scanline is illuminated on the HMD display

Render Timing

The Render Timing HUD displays the frame rate of the compositor and the total time spent by the GPU rendering for both the client app and the compositor.

The following screenshot shows the Render Timing HUD:


这里写图片描述
Figure 9: Render Timing

The following table describes each metric:

MetricDescription
Compositor Missed V-Sync CountIncrements each time the compositor fails to present a new rendered frame at V-Sync (Vertical Synchronization).
Compositor Frame-rateThe rate at which final composition is happening outside of client app rendering. Because the compositor is locked to vsync, it will never exceed the native HMD refresh rate. But, if the compositor fails to finish a frame on time, it can drop below the HMD refresh rate.
Compositor GPU TimeThe amount of time the GPU spends executing the compositor renderer. This includes Timewarp and distortion of all layers submitted by the client application.
App Render GPU TimeThe total GPU time spent on rendering by the client application. This includes the work done after ovr_SubmitFrame() using the mirror texture if applicable. It also includes GPU command-buffer “bubbles” that might be injected due to the client application’s CPU thread not pushing data fast enough to the GPU command buffer to keep it occupied.
App Render CPU TimeThe time difference from when the app starting executing on CPU after ovr_SubmitFrame() returned to when timewarp draw call was executed on the CPU. Will show “N/A” if latency tester is not functioning as expected. Includes IPC call overhead to compositor after ovr_SubmitFrame() is called by client application.
App - Tracking to TW GPUThe time from when the app called ovr_GetTrackingState to when the Timewarp draw call was executed on the GPU. The HUD displays “N/A” if the latency tester is not running as expected.

Performance Headroom

The Performance Headroom HUD displays the frame rate of the compositor and the unused hardware performance available. This HUD can be utilized by the developer or consumer when tuning their applications’ simulation and graphics fidelity. Since the user cannot disable V-Sync, it can be thought of as a replacement for a frame rate counter to judge available performance. It can also help debug the setup to make sure it is providing a consistent experience in VR and not dropping frames due to issues unrelated to hardware performance.

The following screenshot shows the Performance Headroom HUD:


这里写图片描述
图10:性能余量HUD

The following table describes each metric:

MetricDescription
Motion-to-Photon LatencyLatency from when the last predictied tracking info is fed to the GPU for timewarp execution to the point when the middle scanline of that frame is illuminated on the HMD display. This is the same info presented in “Latency Timing” section, presented here for consumer - friendliness.
Unused GPU performanceThe percentage of GPU performance not used by the client application and compositor. This is essentially the total GPU time tracked in the Render Timing HUD divided by the native frame time (inverse of refresh rate) of the HMD. It is designed to help the user verify that his or her PC has enough GPU buffer to avoid dropping frames and to help the user avoid judder.
Total Frames DroppedThis is the same value provided in the Render Timing HUD to help the user determine whether he or she is encountering performance issues.

Version Information

The Version Information HUD displays information about the HMD and the version of the SDK used to create the app.

The following screenshot shows the Version Information HUD:


这里写图片描述
Figure 11: Version Info HUD

The following table describes each piece of information:

NameDescription
OVR SDK Runtime VerVersion of the currently installed runtime. Every VR application that uses the OVR SDK since 0.5.0 uses this runtime.
OVR SDK Client DLL VerThe SDK version that the client app was compiled against.
HMD TypeThe type of HMD.
HMD SerialThe serial number of the HMD.
HMD FirmwareThe version of the installed HMD firmware.
Tracker SerialThe serial number of the positional tracker.
Tracker FirmwareThe version of the installed positional tracker firmware.

Oculus Debug Tool

The Oculus Debug Tool enables you to view performance or debugging information within your game or experience.
To use the tool:

1.Go to Tools directory of the Oculus SDK.

2.Double-click OculusDebugTool.exe. The Oculus Debug Tool opens.

3.Select the Visible HUD to view. Options include: None (no HUD is displayed), Performance HUD, Stereo Debug HUD, or Layer HUD.

4.If you selected Performance HUD, select which Performance HUD you want to view. Options include:

Latency Timing, Render Timing, Performance Headroom, and Version Information. For more information, see Performance Head-Up Display on page 40.

The following is an example of the Performance HUD:


这里写图片描述

5.If you selected Stereo Debug HUD, configure the mode, size, position, and color from the Stereo Debug HUD options.

The following is an example of the Stereo Debug HUD:


这里写图片描述

6.If you selected Layer HUD. select the layer for which to show information or select the Show All check box.

The following is an example of the Layer HUD:


这里写图片描述

7.Put on the headset and view the results.

这篇关于VR系列——Oculus Rift 开发者指南:八、性能平视显示器及Oculus调试工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/222325

相关文章

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效