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

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言