开发者更新 - 2022年8月26日

大家好,并欢迎来到2022年8月26日的开发者更新!
你可能会注意到“功能更新”部分内容比较少。p3版本修复了许多问题,我们把很多团队资源转向了UI的准备工作。因此,自从上次开发者更新以来

还没有太多值得发布的内容!
发布计划
2022.2.2p3发布
2022年8月25日,我们发布了一个p3版本的Live Beta更新,使我们的版本号变成了1228。这个版本将Quest更新至最新状态,之前的版本中有一些问题导致Quest无法更新。
在发布到正式版本之前,我们还需要处理一些其他尚未解决的错误。一旦这些问题解决,我们将发布下一个版本。这个更新版本可能会在下周初直接发布到正式版本。
主菜单Live Beta
在p3版本发布到正式版本后不久,我们将尝试将主菜单发布到Live Beta。我们进行了大量的内部测试。尽管还有一些问题需要解决,但我们希望能尽快让大家体验到主菜单。
我们希望在一周开始时发布Live Beta,这样我们可以轻松地处理最初的大量反馈,确保没有漏掉任何问题。因此,如果Live Beta在下周推迟太久,我们可能会推迟到下下周发布。
功能更新
相机改进
我们继续改进相机!社区和内部都提出了大量功能和需求,相机成为了重点关注的项目!以下是我们近期一直在积极开发的内容。
目前还没有视频预览,但你可能会在即将发布的开发者更新中看到一些视频预览。
相机飞行 / 相机无人机(用于VR)
在之前的更新中,我们提到了“相机飞行”或“相机无人机”(人们似乎更喜欢称其为“无人机模式”),这是一个功能,允许你在桌面模式下控制相机镜头的飞行。这对于拍摄大型群体照片或设置电影般的照片非常有用。
我们也在努力将这个功能适配到VR中!在我们的原型中,你现在可以用VR手柄的摇杆控制“无人机模式”。
虽然控制方式还没有最终确定,但我们正在对这个功能进行改进。
视觉快门效果
我们在相机中增加了一点(更多?)拟物化效果!现在拍照时会出现一个快门效果,除了声音提示外还有视觉提示。
❗这不是相机闪光灯效果!这是一个视觉快门效果。

相机菜单变更和常规修复
我们对相机的菜单进行了一些重新组织,使其更易用。
“拍照”按钮已经移到了列表的开头,而“退出”按钮则移到了相机本身。
如果你把相机设置为“世界”模式并移动到不同的世界或实例,镜头现在会重新附着到相机上。
AMD FSR 和 nVidia 可变速率着色
⚠警告:在这之后涉及到一些非常专业的技术内容!如果你只想了解简要版本,请跳至相应的“简要版本”提示。
用户经常要求我们实现 AMD FSR、DLSS 和其他系统,以提高 VRChat 的性能同时最小化对视觉保真度的影响。我们在之前的更新中谈到过这个问题,但现在我们准备给你带来另一个更新。
原生实现 AMD FSR
经过大量评估,我们发现 AMD 的 FSR 系统可能无法在 VRChat 中完美实现。在正确的位置实现此功能是在后期处理过程中,在色调映射器(tonemapper)之后但在其他效果如泛光之前。在此时应用 FSR 还有一个好处,即可以以全分辨率渲染 UI,使得文本保持清晰。
然而,使用 Unity 的内置渲染管线(Built-In Render Pipeline,BIRP)并没有一个干净的方法来以较低的分辨率进行渲染,同时直接输出到屏幕。我们试图将 FSR 集成到后期处理栈中的适当位置,但 BIRP 不支持以较低的分辨率渲染并直接输出到屏幕。
相反,我们需要将其输出到一个不同的较低分辨率的渲染
目标,应用部分后期处理栈,然后使用 FSR 进行放大,最后再将其应用到全屏分辨率的渲染目标上。不幸的是,Unity 在渲染过程中并没有妥善处理切换渲染纹理的方式,因此后期处理栈试图在运行时直接在空屏幕上进行操作。以这种方式更改场景渲染目标还会破坏依赖于相机叠加的世界。
简要版本:按照 AMD 建议的实现方法,目前无法在 VRChat 中完整实现 AMD FSR。
那么,OpenVR FSR DLL 呢?
还有其他方法,例如 OpenVR_FSR 补丁,但这些方法并不理想。特别是,OpenVR DLL 替换采用了“中间人”方法,并修改了 VRChat 和 SteamVR 之间的通信。这使它能够伪造 SteamVR 提供的渲染分辨率,从而使 VRChat 以较低分辨率进行渲染,然后使用 FSR 进行放大,并提交给 SteamVR。这种方法并不可靠,也不是一个好的做法。
此外,这种方法也存在问题,因为它在渲染流程中运行得太晚。根据 AMD 的 FSR 集成概述,FSR 应该在抗锯齿和色调映射之后立即运行,在引入噪点的任何效果之前,如泛光、色差、胶片颗粒、抖动(值得注意的是,后期处理 v2 总是抖动),以及在 HUD 和其他 UI 之前。

OpenVR FSR DLL 修改的方法在后期处理完成后才运行。在 PPSv2 中的噪点效果后应用 FSR 会导致 FSR 加重了噪点,从而导致图像保真度更差并出现伪影。
由于 VRChat 中的许多世界使用了后期处理,并且我们原生支持它,实施这种方法会降低 VRChat 的视觉质量,并引入无法解释的视觉问题。
除此之外,这种实现方法对 Rift PC 或 Oculus Link 无效,除非它们通过 SteamVR 运行,并且在桌面模式下根本无效。
简要版本:OpenVR FSR DLL 采用的方法存在重大注意事项,我们不希望将其实施到 VRChat 中。它们将导致我们渲染堆栈和后期处理堆栈出现问题,违反了 AMD 建议的实现方法。这种实现方法显著降低了图像质量,并可能导致严重的视觉问题,而对性能的改进仅有限。最后,它只在某些配置和平台上有效。
nVidia 可变速率着色
nVidia 的可变速率着色(Variable Rate Shading,VRS)技术通过对帧的不同区域使用不同的着色率,提高了渲染性能和质量。任何 nVidia RTX GPU 型号 20xx 或更高版本都可以使用 VRS。
我们在 VRChat 中有一个 VRS 的原型实现,对 GPU 时间有显著影响。
在一个空的 Club Orion(一个非常漂亮但对 GPU 要求很高的世界)进行测试,使用以下设置:
内部区域:[0.4, 0.33] X1_PER_PIXEL
中部区域:[0.5, 0.5] X1_PER_2X1_PIXEL
外围区域:[1.075, 1.2] X1_PER_2X2_PIXEL


蓝色:X1_PER_PIXEL
绿色:X1_PER_2X1_PIXEL
黄色:X1_PER_2X2_PIXEL
通常的桌面视图与戴上头戴式显示器(HMD)时看到的视图相当接近,但使用这些测试设置时会显著低估屏幕被外围区域覆盖的部分。以下是完整的 HMD 渲染视图:

由于镜片畸变校正,外围区域会被压缩,而中心区域会被拉伸。没有固定凹凸渲染(Fixed Foveated Rendering),外围区域相对于视图中心被过度采样。正常佩戴 Valve Index 头盔,并将眼睛舒适地调整到最大位置,蓝色和绿色区域大约覆盖了你视野的 80-90%,结果与桌面镜像更接近,而不是全屏幕视图。
测试结果:启用 VRS FFR 前后 GPU 帧时间的降低:

没有 FFR 时:约10毫秒
启用 FFR 后:约6.5毫秒
区域半径和分辨率可以轻松调整,以适应不同的 HMD 分辨率、屏幕宽高比等。
目前这些设置是通过 config.json 文件进行调整的,但如果我们将其作为功能实现,我们希望将这些设置添加到我们的新 UI 中。
简要版本:使用 nVidia 的可变速率着色技术来实现固定凹凸渲染对降低 VRChat 的 GPU 负载有显著的好处,并对图像质量影响可接受。我们正在进行原型设计和评估这个功能。
夏季 VKet 2022
夏季 VKet 2022 将在今天结束!祝贺 HIKKY 又一次成功举办夏季 VKet。
如果你对 VKet 不熟悉,这是由 HIKKY 主办的一系列虚拟展会。你可以浏览数百位创作者的展位,他们制作了角色、世界、着色器、音乐、视频、艺术等等!独立艺术家和大型组织都会在 VKet 上展示他们的作品。虚拟市场活动是 VRChat 事件的一个主要组成部分,我们已经举办了多年。
如果你错过了夏季 VKet 2022,请密切关注他们未来的活动。
Slyfest: Azuria
Slyfest: Azuria——一个完全在 VRChat 中举行的虚拟音乐节——今天开始!
Slyfest 包含了超过50位活跃在 VRChat 音乐社区的 DJ 和制作人。
Slyfest 不仅仅是关于音乐的,Slyfest 的背后团队总是打造一系列漂亮的舞台,真正展示了虚拟现实中音乐表演的魅力和沉浸感!即使你只是稍微参观一下,我们强烈建议你看看他们所创造的内容!
Slyfest 2022 将持续到26日至28日。这是他们完整的日程安排!

你可以在 VRChat 中找到 Slyfest: Azuria 世界。