什么是眼球凹渲染?如何在Varjo Base中设置眼球追踪与凹渲染功能

news2024/11/17 23:24:39

当谈到Varjo耳机时,它们总是与超高分辨率显示器和有凹渲染联系在一起,从而能够高效地渲染到高像素的显示器上。


本篇博文的主题是分享一些可用于OpenXR应用程序的新设置,但在此之前,让我们先了解关于有凹渲染的一些背景。有凹渲染的主题本身确实需要一些讲解,因为这项技术并不是广为人知的,所以让我们现为大家科普一下什么是有凹渲染。


了解有凹渲染


d68938a6c96349f48e98e15aa7af547e.jpeg


有凹渲染的基本思想可以追溯到人类视觉系统和眼睛的解剖学。需要理解的一个关键点是,人眼没有能力以最高的灵敏度看到整个视野中的所有东西,甚至没有能力感知整个视野中的颜色。眼睛能够感知最高敏锐度的区域被称为视网膜中央凹,外部的区域我们非正式地统称其为周边。以理想的分辨率渲染图形的技术称为有凹渲染,这种分辨率与眼睛感知的细节水平相匹配。有凹渲染将高分辨率渲染集中在视网膜中央凹上,并减少外围区域的细节。当与眼球跟踪结合时,即成为眼球跟踪有凹渲染。


如今我们有许多技术来帮助游戏引擎实现有凹渲染,但最受欢迎的技术是基于一种将显示分为两个不同视图的方案,也称为四视图。然后我们将它们组合在一起。这有两种风格,一种是不跟随你的眼睛的静态版本,另一种是由眼睛控制的版本。它们非常相似,你会在本篇文章的后半部分看到它的重要性。


视网膜中央凹进的好处是显而易见的


有凹渲染的优势是多方面的:


增强沉浸感。随着高分辨率渲染聚焦在用户观看的地方,细节和真实感水平得到了提高,从而增强了XR体验的沉浸感。


性能提升。在不太需要的地方渲染较少的像素有助于保持较高的帧速率。


硬件效率。降低对硬件的需求允许更低的GPU规格。


这些优势是普遍的,但对于高端显卡尤为重要,因为在高端显卡中,增强的沉浸感和稳定的性能提升是最受欢迎的。


四视图、有凹渲染和OpenXR——完美匹配


回顾OpenXR的历史,Varjo早在2019年就在OpenXR 1.0规范XR_VARJO_quad_views中添加了第一个固定视野扩展,从那以后,通过与几个合作伙伴合作,在游戏引擎中实现了对这一功能的支持。这一技术我们称之为静态的有凹渲染,其中高分辨率插图不跟随眼睛运动。


后来,随着技术的进步Varjo引入了XR_VARJO_foveated_rendering扩展来为该扩展添加眼睛运动,并且该技术已经被合并到引擎插件中。


1e17380dd591c88c8ce401114d5c8a66.jpeg


几年后,有更多的内容支持这两种扩展。但我们已经看到,静态凹视在应用中得到了更广泛的采用。然而,事实证明,一些已经完成了基本XR_VARJO_quad_view集成工作的应用程序,实际上可以很好地处理XR_VARJO_foveated_rendering中指定的附加行为。


意识到这一点,并听取了一些用户社区的反馈,Varjo决定在OpenXRruntime公开一些设置,以帮助高级用户在应用程序使用任何foveated视图配置时有机会改变其使用方式。


Varjo Base 4.3中新的OpenXR runtime设置


有趣的是,只要游戏或游戏引擎选择了Varjo的runtime视图配置,那么该功能就可以在不同的视图配置之间移动。


这对于最近用虚幻引擎开发的应用程序尤其有趣,例如Vail VR。对于飞行模拟器DCS来说,这也是非常有趣的,它也支持四视图(但不支持有凹渲染)。


事实证明,如果我们通过Varjo Base中的系统设置对这些应用程序强制进行有凹渲染,屏幕的有凹部分将开始跟随眼睛的运动,应用程序实际上处理得很好。这绝不是一个新的发现,例如,有开源项目在runtime注入代码来实现这一点,但现在没有插件也可以做到。


另一方面,有一些已经开发出来的应用程序不会正确处理foveation或quad view,且尚未使用runtime和HMDs进行测试。


对于这些程序,Varjo还增加了一个兼容性设置,它将与那些应该使用常规非凹立体渲染的应用程序进行通信。这是最近在电子艺界WRC虚拟现实测试版中发现的。


因此,Varjo在Varjo Base 4.3中添加了Windows注册表设置,通过在key下创建以下Windows注册表设置,实验性地启用更多的最终用户控制。


HKEY _ LOCAL _ MACHINE \ SOFTWARE \ Varjo \ open xr


c278b0a333969ba1b279bb4fac27d3b7.jpeg


这些注册表设置实际上允许最终用户在表中的所有配置之间移动,只要应用程序支持带凹入的立体渲染(以前称为Varjo四视图)。


568ae8bfc16ee55b2f0005fb1405bc7a.jpeg


注册表项可以用regedit.exe内置于Windows中的工具。请注意,这是一个Windows power工具,如果使用不当,可能会产生灾难性的影响,因此请小心创建这些密钥,并注意只更改上面指定路径下的项目。


一些注意事项


一个常见的误解是,XR_VARJO_quad_views和XR _ VARJO _ foveated _ rednering只会让像我们的XR-3和VR-3这样有四个物理显示器的设备受益,但这并不准确。它在Varjo Aero和XR-4上确实有好处,因为每只眼睛有一个物理显示器,因为四视图和中心凹渲染是在Varjo的OpenXRruntime中实现的一种通用软件技术,它对物理显示器进行逻辑分区,无论它们是两个还是四个。


除了Varjo混合现实头戴式显示器之外还有一些开源项目支持四视图渲染,这也有助于展示这种为一般VR头戴设备实现有凹渲染的特定方式的价值。


我们之前在博客中列出的设置是实验性的,这意味着它们将在每次Varjo Base更新时被重置为默认值。我们测试了一些应用程序,并且已知可以与这些设置一起工作,这些程序包含DCS,Pavlov VR,Vail VR和7th Guest VR。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1891140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机毕业设计】基于Springboot的B2B平台医疗病历交互系统【源码+lw+部署文档】

包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取 免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

Python爬取国家医保平台公开数据

国家医保服务平台数据爬取python爬虫数据爬取医疗公开数据 定点医疗机构查询定点零售药店查询医保机构查询药品分类与代码查询 等等,数据都能爬 接口地址:/ebus/fuwu/api/nthl/api/CommQuery/queryFixedHospital 签名参数:signData {dat…

H5打包失败:JS堆内存不足

傻子没看懂报错,像个无头苍蝇 解决方式:清空缓存,重启电脑,打包成功。

二叉树中序遍历-递归法详解-数据结构与算法

首先看下中序遍历的代码:(左 跟 右) 其首先要接受一个根结点root作为参数 判断根节点是否为NULL 不为NULL则递归遍历左子树 ①我们把树根结点A传递给它 其左结点为B,右结点为C ②首先我们要检查root是否为NULL 其不为NULL …

使用pyinstaller 如何打包python项目

参考:【python项目正确打包方法-哔哩哔哩】 https://b23.tv/EDB6zbG Pyinstaller 详解多种打包过程(去坑,填坑)。_pyinstaller -f -w-CSDN博客 1.打开命令提示符: 找到python项目所在位置,输入cmd即可 2. 安装pipenv: 在命令提示符&#…

1000T的文件怎么能快速从南京传到北京?最佳方案你肯定想不到

今天刷面试题看到一个有意思的面试题, 1000T的文件怎么能以最快速度从南京传到北京? 网络传输 首先我们考虑通过网络传输,需要多长时间。 我特地咨询了在运营商工作的同学,目前带宽: 家庭宽带下行最大1Gbps&#…

x264 编码器汇编模块介绍

aarch64汇编架构 解释:AArch64 是 ARM 架构的 64 位版本,也称为 ARMv8-A特点: 64位寻址能力,支持更大的地址空间,理论上可达16EB(Exabyte)使用64位宽的寄存器,有31个通用寄存器(X0-X30),外加一个链接寄存器(X31)支持扩展的 NEON SIMD 指令集,提供更多的执行单元和…

电脑显示由于找不到MSVCP140.dll,无法继续执行代码

电脑已经成为我们生活和工作中不可或缺的工具,然而,在使用电脑的过程中,我们常常会遇到一些错误提示,其中之一就是“电脑显示由于找不到MSVCP140.dll是怎么回事?”这个问题。小编将详细介绍该问题的原因、解决方法以及…

新版本发布丨昂辉科技EasySAR-Configurator V1.2.0再启航

昂辉科技新一代跨平台高性能AUTOSAR配置工具EasySAR-Configurator V1.2.0全新版本重磅发布!产品基于Web架构前后端分离的方式开发,可提供SaaS部署,能够实现精准配置和最大限度的代码裁剪,且配备标准的约束限制、配置验证、代码生成…

技术成神之路:设计模式(二)建造者模式

1.定义 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你分步骤创建复杂对象,而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…

基于字符和词特征融合的恶意域名检测

传统的恶意域名检测方法在检测由域名生成算法(DGA)随机生成的恶意域名方面性能不佳,尤其是对于那些由随机单词组成的域名。文章提出了一种新的检测算法,通过融合字符和词特征来提高对恶意域名的检测能力,特别是对于更具…

【RT摩拳擦掌】如何构建RT AVB switchendpoint平台

【RT摩拳擦掌】如何构建RT AVB switch&endpoint平台 一,文档简介二,平台构建2.1 软硬件情况2.2 配置RT1170 AVB端点2.2.1 1块MIMXRT1170开发板做talker配置2.2.2 2块MIMXRT1170开发板做listener配置 2.3 AVB Switch 配置2.3.1 MOTU AVB Switch2.3.2 …

【鸿蒙学习笔记】@Prop装饰器:父子单向同步

官方文档:Prop装饰器:父子单向同步 [Q&A] Prop装饰器作用 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。 [Q&A] Prop装饰器特点 1・Prop装饰器不能在Entry装饰的…

关于ant design vue 使用Modal无法关闭弹窗的解决思路

文章目录 1: 出现问题的版本2.出现问题(1)ant design 的问题(2)poina的提示报错 3.正确版本总结 1: 出现问题的版本 "ant-design-vue": "^3.2.20", "pinia": "^2.1.7", "vue"…

Mybatis Plus 自动填充注解 @TableField(fill = FieldFill.INSERT_UPDATE)

第一步:在需要自动填充的位置加上注解 通过在创建时间和修改时间上添加 fill 填充字段 进行自动填充 第二步:要想实现自动填充还需要实现MetaObjectHandler接口,在这里实现自动填充的逻辑 Component public class MyMetaObjectHandler …

python sklearn机械学习-数据预处理

🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…

filex文件系统功能预研

filex资源 filex的源码路径有两个: 一个是azure-rtos下的filex:azure-rtos/filex (github.com)一个是eclipse-threadx下的filex:eclipse-threadx/filex filex的文档地址:rtos-docs/rtos-docs/filex 第三方文档:Thre…

搭建知识付费系统的技术框架与实现路径

知识付费系统已经成为内容创作者和企业变现的重要工具。要成功搭建一个高效、稳定、用户体验良好的知识付费系统,明确技术框架和实现路径至关重要。本文将详细解析搭建知识付费系统的技术框架,并提供具体的实现路径和相关技术代码示例。 一、知识付费系…

大陆ARS548使用记录

一、Windows连接上位机 雷达是在深圳路达买的,商家给的资料中首先让配置网口,但我在使用过程中一直出现无法连接上位机的情况。接下来说说我的见解和理解。 1.1遇到的问题 按要求配置好端口后上位机无连接不到雷达,但wireshark可以正常抓到数…

基于改进YOLOv5s的跌倒行为检测 | 引入SKAttention注意机制 + 引入空间金字塔池化结构SPPFCSPC + 结合ASFF自适应空间融合

前言:Hello大家好,我是小哥谈。为了实现电厂人员跌倒行为的实时检测,防止跌倒昏迷而无法及时发现并救援的事件发生,针对跌倒行为检测实时性以及特征提取能力不足的问题,提出了一种改进YOLOv5s的跌倒行为检测算法网络&a…