像素密度提升33%,Quest Pro动态注视点渲染原理详解
在Connect 2022上,Meta发布了Quest Pro,并首次在VR中引入动态注视点渲染(ETFR)功能,这是一种新型图形优化技术,特点是以用户注视点为中心,动态调节VR屏幕的清晰度(注视点中心最清晰、像素密度高,周围边缘清晰度低,像素密度低),好处是在节省GPU运算量的同时,也保持了足够清晰的VR观感。

自ETFR功能推出后,陆续有多款VR游戏支持该功能,比如《Vertical Robot》、《Red Matter 2》等等。据悉,《Red Matter 2》由Vertical Robot开发,该作登陆Quest Pro后,像素密度比之前提升了33%(等同于视觉中心的像素数量增加了77%),文字清晰度、光影和色彩表现足够优秀,突破了Quest头显的图形极限。

Vertical Robot指出:在《Red Matter 2》中激活ETFR功能很简单,随后只需要考虑如何提升VR游戏的像素密度,以及测试效果。结果发现,该作在Quest Pro上画质非常清晰,真正提升了游戏体验。
什么是ETFR
我们知道,Quest头显支持固定注视点渲染(FFR),虽然也是在视觉中心渲染高分辨率,在周边渲染低分辨率画面,但视觉中心的位置基于你转头的方向,而不会跟随注视点移动而实时变化。
相比之下,ETFR基于实时眼球追踪技术,清晰区域跟随眼球运动,因此可以进一步缩小高分辨率区域,比FFR节省更多GPU算力。

开启Offset
ETFR是怎么实现对VR画面动态渲染的呢?原来,Meta为Unity和Unreal引擎开发了专门的Vulkan扩展插件:Tile Offset(分块补偿),该插件可指定像素补偿值,并设定注视点贴图(也就是视觉中心和余光区域的比例),这个注视点贴图支持重复使用、平滑运动,可以根据注视点变化,进一步调整图像清晰度。Tile Offset还有一个好处,就是避免了图像分辨率每次更新时可能产生的闪烁问题。
关闭Offset
OpenXR API
Meta指出,Quest正在全面支持OpenXR API,因此ETFR功能也仅支持OpenXR标准。因此UE4开发者需要在引擎中选择OpenXR OVRPlugin插件,才能接入ETFR API(由FFR所使用的框架XR_FB_foveation扩展而来,现在是一个基于OpenXR的API)。
ETFR API的特点是,可在Unity、Unreal的Quest集成工具(v49版开始)后台调用API,开发者无需处理细节。不管是原生VR游戏,还是移植VR游戏,都可以在游戏引擎中开启ETFR功能。
优化延迟
不管是眼球追踪还是注视点渲染,这些过程都具有一定延迟,分别在多个步骤中产生,比如摄像头读取、眼球追踪、渲染线程、GPU渲染、显示等过程。
Meta为了降低ETFR渲染管道的延迟(从注视点运动到显示屏响应的时间),将相机传感器和处理器的刷新率设置为和显示屏相同,并且和渲染管道完全同步,此外,还抵消了眼球追踪相机的数据捕捉时间,从而缩短从捕捉到眼球信息到输出注视点贴图的时间。
经过测试,在UE4应用中运行ETFR的端到端延迟大约在46到57毫秒之间,具体数据根据当前的渲染负载变化。值得注意的是,ETFR还支持预测眼球运动,Meta测试了多种眼球运动,均获得不错的视觉体验。
有哪些局限?
尽管ETFR可以有效提升VR图像质量,但不一定适合所有类型的内容。Meta指出,如果VR应用使用大量复杂的材质,或是渲染分辨率很高,那么使用ETFR的效果会很好,可以将给定渲染通道的片段着色次数减少(此类应用通常受到像素限制)。然而,如果VR应用受到顶点限制(vertex),那么ETFR的作用不大。
此外,ETFR目前仅应用于眼睛缓冲区(主层),如果使用额外的合成器层,那么ETFR也无法优化渲染、合成这些涂层的GPU成本。也就是说,它只能改善眼睛缓冲区的渲染成本。

Meta建议,开发者应该根据VR应用类型去使用ETFR,并确保测试效果稳定。ETFR也存在和FFR一样的缺点,比如低像素密度的外围区域可能产生闪烁,尤其是在渲染高对比度、复杂的结合形状时,因此开发者需要尽可能扩大中心清晰区域的范围,更好的平衡性能和视觉质量。
进一步优化GPU
注视点渲染功能节省了部分GPU算力,这些算力可进一步提升中心区域的清晰度。Meta宣称,这样可以将渲染分辨率提升至1872x2048(像素数量提升至111%),而中心视觉区域的PPD可达15.5,整体效果要比FFR更好。

不过,ETFR能节省多少GPU算力还取决于应用内容,因此需要开发者经过测试来验证最佳参数组合,确保余光区域没有明显视觉伪影。
总之,ETFR的主要用途是减少VR渲染所需的像素数量,并尽可能平衡性能和视觉质量,提升中心视觉的PPD,以及优化图形复杂性、分辨率、MSAA(多重采样抗锯齿)等级、注视点区域范围等方面。该功能可作为FFR等图形/性能优化工具的一个补充,根据VR应用的类型和需求来选择是否开启。此外,也可以在游戏主菜单、游戏场景分别独立开启/关闭ETFR。
参考:Meta
相关文章:
像素密度提升33%,Quest Pro动态注视点渲染原理详解
在Connect 2022上,Meta发布了Quest Pro,并首次在VR中引入动态注视点渲染(ETFR)功能,这是一种新型图形优化技术,特点是以用户注视点为中心,动态调节VR屏幕的清晰度(注视点中心最清晰、…...
【Linux实战篇】二、在Linux上部署各类软件
一、实战章节:在Linux上部署各类软件 二、MySQL数据库管理系统安装部署【简单】 简介 MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。 MySQL数据库可谓是…...
基于SpringBoot的学生会管理系统 源码
StudentUnionManagementSystem 基于SpringBoot的学生会管理系统 源码 链接 目录StudentUnionManagementSystem介绍软件架构使用说明1.页面登录2.首页3.成员信息管理4.角色信息管理5.权限管理6.活动管理7.文件管理8.活动展示介绍 学生会管理系统 SpringBoot Mybatis-plus shir…...
[league/glide]两行代码实现一套强大的图片处理HTTP服务
只要两行代码,就能实现类似对象存储云提供的基于参数的图片处理,比如裁剪、放大、水印、旋转等等。 我们经常使用第三方的对象存储服务,比如七牛云或阿里云,他们都提供了“智能媒体服务”,其实就是在链接上加上各种参…...
Kafka 消费者组
Kafka 消费者组Consumer数位移重平衡消费者组 (Consumer Group) : 可扩展且容错性的消费者机制 一个组内可能有多个消费者 (Consumer Instance) : 共享一个公共 ID (Group ID)组内的所有消费者协调消费订阅主题 (Subscribed Topics) 的所有分区 (Partition)每个分区只能由同个…...
高效学 C++|组合类的构造函数
设计好MyString类后,就可以像使用普通类型一样使用它了。例如,类的对象可以像普通的变量一样作为另一个类的数据成员。【例1】 MyString类的对象作为CStudent类的数据成员。1. //MyString类的定义省略 2. //注意:保留其构造函数、析构函数、…...
Java使用Springboot+Mybatis构建第一个项目
一、java安装:安装 Java1.8环境 maven3.6.1环境 Gradle-6.9.1环境 IntelliJ IDEA 2022.1.3 下载旗舰版(因为包含springboot)二、项目构建-数据库是sqlserver:1、打开idea,点击File->New->Project,选中…...
L2-007 家庭房产 L1-007 念数字
给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。 输入格式: 输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产: 编…...
1/4、1/2、整车悬架天棚主动控制仿真分析合集
目录 前言 1. 1/4悬架系统 1.1数学模型 1.2仿真分析 2. 1/2悬架系统 2.1数学模型 2.2仿真分析 3. 整车悬架系统 3.1数学模型 3.2仿真分析 4.总结 参考文献 前言 对于天棚控制相比大家不陌生,它是由美国的Karnopp提出,利用假设的与天棚固连…...
【微信小程序项目实战】TodoList-项目主体搭设(2)
目录JS 部分数据 dataonShow输入框双向绑定保存与读取添加新的待办事项完成待办事项删除待办事项WXML顶部输入框主体回到顶部按钮完整代码JSWXMLWXSSJS 部分 为便于分析各个组件的相互作用与原理,故先从 JS 入手,而后再完善 HTML 部分 以下所有代码&…...
23种设计模式-迭代器模式(安卓应用场景介绍)
迭代器模式是一种行为型设计模式,它允许你在不暴露集合对象内部结构的情况下遍历集合中所有元素。在本文中,我们将介绍迭代器模式的概念和原理,提供一个基于Java的示例,并探讨在Android应用程序开发中的实际应用。 迭代器模式的概…...
面试 - 软件工程体系
今天是我人生中的第二次面试,第一次面试到技术问题。 面试公司:无锡信捷电气股份有限公司 面试时间:2023 年 3 月 6 日 15:30 面试地点:西安工程大学(临潼校区)D-188 在技术面中,我表现的不是很…...
05-CSS
今日目标能够说出 为什么要用定位能够说出 定位的 4 种分类能够说出 4 种定位各自的特点能够说出 为什么常用子绝父相布局能够写出 淘宝轮播图布局能够说出 显示隐藏的 3 种方式以及区别1. 定位(position) 介绍1.1 为什么使用定位我们先来看一个效果,同时思考一下用…...
华为OD机试题,用 Java 解【分奖金】问题
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...
Multisim 14.3 安装教程
1、首先解压Multisim 安装包。 2、解压完成后,双击点进去,找到setup这个文件,点进去。 3、找到setup文件里面的install.exe文件,并鼠标右键 “找到以管理员身份运行”。 4、选择“我接受上述许可协议”,点击下一步。 …...
06-Oracle表空间与用户管理(表空间,用户,备份与恢复,导入导出数据)
本讲主要内容: 1.表空间管理:表空间的作用,创建,修改,删除及管理; 2.用户管理:创建用户,修改用户,删除用户,修改密码,解锁; 3.用户…...
XSS攻击防御
XSS攻击防御XSS Filter过滤方法输入验证数据净化输出编码过滤方法Web安全编码规范XSS Filter XSS Filter的作用是通过正则的方式对用户(客户端)请求的参数做脚本的过滤,从而达到防范XSS攻击的效果。 XSS Filter作为防御跨站攻击的主要手段之…...
敏捷开发还需要PRD吗
一、PRD有什么用 prd提升与RD或者未来接手人的沟通效率 二、为什么会有PRD 首先来说说为什么会有PRD文档。 1、稍微大一点的团队产品经理未必能向每个人传达产品需求,这就需要有一个文档的形式来向项目的所有成员来传达需求,这就是文档的来源。 2、由…...
完整教程:使用Spring Boot实现大文件断点续传及文件校验
一、简介 随着互联网的快速发展,大文件的传输成为了互联网应用的重要组成部分。然而,由于网络不稳定等因素的影响,大文件的传输经常会出现中断的情况,这时需要重新传输,导致传输效率低下。 为了解决这个问题ÿ…...
数位dp-- 数字游戏
题目 思路 也是一道比较典型的数位dp的问题,关键的思想跟我上一篇博客很像, 首先把区间值变成[1,Y]-[1,X-1]的值,然后单独计算得到结果。 总的来说就是把这个数的每一位都单独拿出来,然后根据选0-an-1和选**an**两种方案单独计算&…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
