中EN
概念页

VR 渲染注意事项

VR Rendering Considerations

在单屏上效果良好的渲染技术,放到随头部移动的双目显示上可能失效甚至引起不适。本页汇总 RTR4 第 21.4 节列出的需要修改或避免的技术:HUD 深度、凹凸与视差贴图、公告板与天空盒、色调映射与屏幕空间效果、镜面高光视差、抗锯齿选择、色带、运动模糊与景深,以及混合现实中的光照匹配。核心原则:严格遵循厂商头部模型和投影矩阵,任何会让两眼图像难以融合或与前庭感觉冲突的效果都要谨慎。

基本规则(21.4 节)

  • 视图至关重要:遵循厂商提供的头部模型,投影矩阵必须完全正确。
  • 避免频闪灯等闪烁效果,会导致头痛和眼疲劳;视场边缘附近的闪烁会引发晕动症;闪烁和细条纹之类的高频纹理还可能诱发部分人的癫痫。

逐项检查表

技术问题建议
HUD双眼在屏幕同一位置绘制 HUD 时,辐辏线索表示它在很远处,但它又画在一切之前,感知冲突使图像难以融合并导致不适把 HUD 以靠近眼睛的深度渲染(仍占屏幕空间);准星仍可能与更近的墙发生深度冲突,可沿方向投射光线找最近表面深度,直接使用或平滑拉近;更好的是把信息放进虚拟世界中的设备、显示屏或玩家化身上
凹凸/法线贴图立体下会被看穿为画在平面上的着色对细小表面细节和远处物体可行;表示大几何形状、用户可以走近的法线贴图会穿帮
视差贴图基础视差贴图的游动问题在立体下更明显简单修正因子可改善;必要时用陡峭视差贴图、视差遮蔽贴图或置换贴图
公告板与替身缺少表面深度,立体下不可信改用体积技术或网格
天空盒两眼位置差不应影响其渲染尺寸设置为"在无穷远"处
色调映射两眼不一致导致眼疲劳对两幅图像同等应用
SSAO 与屏幕空间反射产生错误的立体视差;反射在两眼间难以对齐反射探针可能更有效
泛光、镜头光晕需要融合按每只眼的深度生成
水下、热浪扭曲可能不正确需要重做
镜面高光两眼高光位置可能差异很大,影响光泽感知计算光泽项时把两眼位置稍微拉近,使图像更易融合、更可信;远处物体的高光差异难以察觉,可共享着色计算(若在纹理空间完成并存储,即可在两眼间共享)

抗锯齿与色带

  • VR 对显示要求极高:普通显示器约 50 度水平视场时每度约 50 像素,而 Vive 每只眼 1080×1200、视场约 110 度,每度只有约 15 像素。渲染图像到显示图像的变换又让重采样和过滤更复杂;头部总在轻微移动,时间走样增加。因此高质量抗锯齿几乎是必需的。
  • 通常不推荐时间抗锯齿,因为可能模糊;但 Sony 有团队成功使用,他们认为消除闪烁像素比画面锐利更重要。多数 VR 应用更偏好 MSAA 的锐利:4× 好,8× 更好,负担得起的话抖动超采样更好。这一偏好不利于各种延迟渲染方案(逐像素多样本代价高)。
  • 着色表面颜色缓慢变化产生的色带在 VR 显示上尤其明显,可加少量抖动噪声掩盖。

应避免的效果

  • 运动模糊:除了眼动本身造成的瑕疵外还会让画面浑浊,与 90 FPS 低余辉显示的特性相悖。
  • 景深:眼睛会频繁快速扫视以纵览宽视场,景深让外围内容无故模糊,并可能引发晕动症。

混合现实的光照

需要让虚拟物体获得与真实环境相似的光照。真实光照可控时可预先转换为虚拟光照;否则需用各种光照估计技术实时捕获和近似环境光照条件。

  1. realtime_rendering_4ed.pdf 第 21 章 Virtual and Augmented Reality

相关页面

图形学VR 与 AR 显示基础VR & AR Display Fundamentals虚拟现实 (VR) 完全替换用户所见的世界,增强现实 (AR) 把合成物体融入真实世界,二者常合称 XR。本页介绍与渲染相关的硬件与物理要素:追踪与显示设备、"动作到光子"延迟及其导致的模拟器晕动症、姿态预测、镜头光学畸变与色差的软件补偿、滚动与全局显示,以及立体视觉中的辐辏-调节冲突与瞳距。这些约束决定了 VR 渲染为何必须高帧率、低延迟并严格依赖厂商 SDK。图形学VR 立体渲染优化VR Stereo Rendering OptimizationVR 每帧要为两只眼渲染,并经合成器做镜头畸变与色差校正。本页讲厂商 SDK/API 的帧流程与内建优化(分层合成、隐藏区域网格、裁剪过的畸变网格),立体渲染如何避免工作量翻倍(合并视锥剔除、实例化、多视图扩展、多 GPU 广播、远景单目渲染),以及利用光学和人眼特性减少外围像素着色的技术:多分辨率着色、镜头匹配着色、径向密度遮罩、固定注视点渲染与注视点渲染。图形学法线贴图与凹凸贴图Normal & Bump Mapping凹凸贴图是一类在像素着色中修改着色法线来表现中尺度细节的技术:几何法线不变,只改变光照计算使用的法线,从而在不增加几何的情况下显得更立体。最常用的形式是切线空间法线贴图,需要每顶点的切线框架;法线贴图的过滤是难点。图形学视差贴图Parallax Mapping法线贴图的凹凸不会随视角移位,也不会互相遮挡。视差贴图用高度场按视角偏移纹理坐标,以几条额外指令换来明显提升;视差遮蔽贴图 (POM,又称浮雕贴图) 沿视线在高度场中步进求交,能表现遮挡和自阴影,但轮廓仍是原始平面。图形学公告板Billboarding公告板是根据视线方向调整朝向的带纹理矩形。配合 alpha 纹理和动画,它能表现草、烟、火、雾、爆炸、能量护盾、尾迹、云等没有光滑实体表面的现象。各类公告板的区别只在于固定哪个向量(法线或上方向);软粒子、球形公告板解决与实体相交和穿过近平面的问题,轴向公告板用于树木、激光等柱对称物体(RTR4 13.6–13.6.3 节)。图形学天空盒与固定视点技术Skyboxes & Fixed-View Techniques用图像代替三角形时,渲染代价与像素数而不是顶点数成正比。Lengyel 的"渲染谱系"从纯图像方法一直排到三角形和光线追踪。本页汇总谱系中偏图像一端的技术:限制视点移动的固定视点加速、渐进细化与重光照、天空盒、光场渲染以及精灵与分层(RTR4 13.1–13.5 节)。图形学抗锯齿Antialiasing渲染本质上是采样,采样频率不足就会混叠(锯齿、闪烁的"萤火虫"、车轮倒转)。屏幕空间抗锯齿在每个像素取多个样本并加权求和:超采样最直接但最贵,MSAA 每像素只着色一次,时间抗锯齿 (TAA) 把样本分散到多帧,形态学方法 (FXAA/SMAA) 作为后处理重建边缘。没有一种方法在所有方面最好。图形学运动模糊Motion Blur运动模糊可看作时间域的抗锯齿:快门打开期间物体或相机的相对运动在画面上拖出模糊,没有它快速运动的物体会在帧间"跳跃"。实时做法以速度缓冲为核心,用"边收集边散布"思路:按瓦片求最大速度、扩展到邻域,再沿速度方向对每个像素采样并处理遮挡。游戏中还需考虑玩家控制下的视角,常只对物体或平移做模糊(RTR4 12.5 节)。图形学景深Depth of Field相机在给定设置下只有一段深度范围清晰,范围外的物体越远离越模糊。实时渲染默认是完美对焦的针孔相机,所以"景深"指对近景和远景做模糊。实用算法从单张图像出发,按深度算出每像素的弥散圆半径,分离近景与其余部分分别模糊再合成;"边收集边散布"和对高亮像素单独溅射散景是游戏中的常见做法(RTR4 12.4 节)。图形学屏幕空间反射Screen-Space Reflections屏幕空间反射 (SSR) 沿反射方向在深度缓冲中步进求交,命中后从颜色缓冲读取入射辐射亮度。由于镜面瓣窄、只需反射方向附近的光,屏幕数据比漫反射情况更可能包含所需信息。它最早由 Sousa 等提出,常作为镜面 GI 的第一层,失败时退回反射探针和全局探针(RTR4 11.6.5 节)。图形学色调映射Tone Mapping色调映射把场景参考的辐射亮度转换为显示参考的辐射亮度,目标不是恒等复现、也不是把所有信息"挤进"显示范围,而是在显示条件下尽量复现观看原场景时的感知印象。它通常是曝光缩放加一条 S 形曲线(全局映射),之后可做调色;最后由显示编码输出到 SDR 或 HDR 显示器。综合帧时间预算与渲染性能Frame Budget & Rendering Performance本页把 wiki 中分散在 RTR4 第 18~23 章的性能知识串成一条线:一帧的时间预算由最慢的管线阶段决定,先用毫秒帧时间度量并定位瓶颈,再按瓶颈所在位置——CPU/驱动、几何、像素、带宽/内存——选用对应手段;最后从 GPU 硬件机制(占用率、HiZ/early-z、压缩、分块架构)理解这些手段为何有效。各结论的细节与出处见所链接的概念页。游戏策划临场感Presence第 3 版新增的第 22 章。Schell 认为 VR 与 AR 与其说是"骗眼睛"的技术,不如说是"骗身体"——更准确地说,是骗大脑对身体的感知,即本体感觉 (proprioception)。VR/AR 的真正魔力不是三维图像,而是让我们把身体带进模拟世界,由此产生的临场感 (presence) 是这类媒介的核心。临场感是脆弱的幻觉,本章列出六种破坏临场感的因素和六种建立临场感的手段,并给出鼓励环顾、"棕盒 (brownboxing)"原型和围绕硬件设计的建议,引入 93½ 临场感之镜(第 3 版第 22 章 Some Interfaces Create a Feeling of Prese

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原