注视点渲染Foveated rendering是什么

简介: Foveated rendering听起来好像是非常复杂的技术。但实际上注视点(foveation)的底层概念非常直接。使用人注视屏幕的信息,可以减少生成场景的运算资源,方式是使用高分辨率渲染人眼观看的小区哉,而场景外的其它区域(人的四周)采用更小的分辨率和更少的细节。注视点渲染主要用于显示技术,如VR头显和AR眼镜,对些场景资源优化至关重要。

Foveated rendering听起来好像是非常复杂的技术。但实际上注视点(foveation)的底层概念非常直接。使用人注视屏幕的信息,可以减少生成场景的运算资源,方式是使用高分辨率渲染人眼观看的小区哉,而场景外的其它区域(人的四周)采用更小的分辨率和更少的细节。注视点渲染主要用于显示技术,如VR头显和AR眼镜,对些场景资源优化至关重要。

本文中作者会回答一个问题:什么是注视点渲染?我们会讨论动态注视点渲染、静态(或固定)注视点渲染,以及这些技术如何降低GPU的计算负载。还会讲到其姐妹概念-动态注视点传输如何了减少所需的网络带宽。

注视点渲染是一种设备性能优化技术,将资源集中于渲染人眼所注视的显示区域。该区域中的内容即刻以高分辨率渲染人眼注视的周边。其余的图像-人视角的外围以低分辨率进行渲染,减少渲染场景所用的资源,同时又让用户体验没有可见的损失。

2023112902201952.jpg

苹果展示了人眼渲染图像和汽车图展示了大脑是如何渲染内容的

注视点渲染成立是因为它模拟了人的视觉,以及我们的感知在视场中是如何降级的。我们的大脑渲染所看到的内容是通过焦点高分辨率(图示中的苹果)配合其它看到内容的中低分辨率完成的。

2023112902273415.jpg

VR头显中的固定注视点渲染

什么是静态(或固定)注视点渲染?

注视点渲染中的静态方式,或我们所称的固定注视点渲染,假定用户的焦点是屏幕的中央(有时就是这样的)。图示中展示了固定注视点渲染在VR头显是如何通过硬编码区域对屏幕进行划分的。假定的用户注意力区域(屏幕中心的白色区域)以100%进行渲染。灰色区域以中分辨率渲染,蓝色区域以低分辨率渲染,进而减少渲染整个场景所需的资源。可以在几乎所有设备上实现静态注视点渲染,极有可能看到一定程序的资源优化,但不一定能达到最优用户体验。早期镜片的外围变形使得我们有机会在本就会模糊的区域降低分辨率,但镜片的品质在提升,因此需要对整个视场进行高分辨率的渲染。

什么是动态注视点渲染?

2023112902384997.jpg

VR头显中的动态注视点渲染

动态注视点渲染利用人的实际注意力区域完整渲染图片的小区域(图中的白色区域),向外扩展为中(灰色区域)和低分辨率(浅蓝色),不产生品质和用户体验的降级。要实现动态注视点渲染,我们需要精准的、低延时的眼动追踪,可反复发送用户实时的准确注视点。我们对动态注视点渲染所做的一些基准测试结果非常优异。用Unity引擎对Pico头显所做一项测试中,GPU着色负载最高下降72%,平均下降60%。我们的测试显示帧率稳定性大幅提升,大启用了动态注视点渲染看一下吧每秒没掉到90帧以下。这对于用户于体验极佳。

动态注视点渲染的好处

因其可以降低处理负载,动态注视点渲染可以让GPU以更低温度运行,相应地会降低能耗,进而减少对冷却的需求以及降低风扇的噪音,提升了舒适度也延长了电池的寿命。

限定全分辨率渲染的区域降低了复杂着色器的负载,减少了渲染场景所花费的时间。空闲的资源可用于带来更真实的着色和更高级别的场景复杂度。

最重要的是动态注视点渲染(DFR)是一项提升指定硬件架构性能的优化技术。在实践中,DFR延长了独立头显上固定资源GPU的寿命,支持新兴内容和显示技术,并以更低的代价提供了逼真、沉浸式的用户体验。

什么是动态注视点传输?

动态注视点传输是轻量可穿戴设备得以实现的基石。随着设备越来越轻、资源越来越有限,低延时网络和设备外运算对很多应用都变得至关重要。一种降低设备和云端或边缘计算之间数据传输量的方式就是动态注意点传输。

动态注视点传输利用眼动追踪捕捉人眼的注视点,向远端处理器发送指令,根据人眼注视的区域以高、中、低分辨率渲染场景(与设备上的动态注视点渲染运行原理相同),从而降低每个场景在网络中所传输的数据量。

为何要实现注视点渲染?

注视点渲染是XR的一项核心技术。在设备上实现动态注视点渲染,需要有眼动追踪配件,相机、反光镜以及可以处理眼部机理的算法。这一技术需要实时发送精准的注视点,并且需要适用于使用设备的来自各地的人。对于商业设备,设计的方案要求能够利用动态注视点渲染开发高级应用的同时又不会大量地重复编程。

参考链接:https://www.tobii.com/blog/what-is-foveated-rendering

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
10月前
three.js的3D模型渲染主要构成
three.js的3D模型渲染主要构成
157 0
|
Java C++ C语言
UE4/5动画蓝图中Additive Animations讲解
UE4/5动画蓝图中Additive Animations讲解
639 0
|
2天前
|
移动开发 前端开发 开发者
React 音频播放控制组件 Audio Controls
本文介绍了如何使用React构建音频播放控制组件,涵盖HTML5 `<audio>`标签和React组件化思想的基础知识。针对常见问题如播放状态管理、进度条更新不准确及跨浏览器兼容性,提供了详细的解决方案和代码示例。同时,还总结了易错点及避免方法,如确保音频加载完成再操作、处理音频错误等,帮助开发者实现稳定且功能强大的音频播放器。
31 11
|
18天前
|
移动开发 前端开发 JavaScript
React 视频播放控制组件 Video Controls
本文深入探讨了如何使用React创建功能丰富的视频播放控制组件(Video Controls)。首先介绍了React与HTML5 `<video>` 标签的基础知识,展示了如何通过状态管理和事件处理实现自定义控件。接着分析了常见问题如视频加载失败、控件样式不一致、状态管理混乱和性能问题,并提供了相应的解决方案。最后通过完整代码案例详细解释了播放、暂停、进度条和音量控制的实现方法,帮助开发者在React中构建高质量的视频播放组件。
57 17
|
7月前
|
存储 缓存 数据可视化
Cesium渲染一帧中用到的图形技术
Cesium渲染一帧中用到的图形技术
196 0
Cesium渲染一帧中用到的图形技术
|
JavaScript 前端开发
js 简单的动画过渡效果
js 简单的动画过渡效果
95 0
【Redshift渲染器渲染出图片有色差(红移渲染器)】
【Redshift渲染器渲染出图片有色差(红移渲染器)】
250 0
【Redshift渲染器渲染出图片有色差(红移渲染器)】
|
数据采集 JavaScript 前端开发
对React SSR的理解(Server-Side-Rendering)
对React SSR的理解(Server-Side-Rendering)
|
移动开发 前端开发 JavaScript
Web 动画与过渡效果:CSS3、Canvas 和 GreenSock 的比较
Web 动画和过渡效果是现代 Web 开发中常见的重要功能,用于提升用户体验和页面交互效果。在实现 Web 动画和过渡效果时,我们通常可以选择使用 CSS3、Canvas 或 GreenSock(GSAP)等技术。下面对它们进行比较
314 0
|
存储
Renderer.material与Renderer.sharedMaterial的区别
此函数自动实例化材质并使它们对于此渲染器是唯一的。在销毁游戏对象时销毁材料是您的责任。 Resources.UnloadUnusedAssets 也会破坏材质,但通常仅在加载新关卡时调用。
297 0
Renderer.material与Renderer.sharedMaterial的区别