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

相关文章

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2