返回资讯中心
外部精选
软件工程
#开发者实时流

CORTAO:基于圆形遮挡体光线追踪的环境光遮蔽技术

来源标题:Cortao: Circular Occluder Ray-Traced Ambient Occlusion

CORTAO是一种基于物理的实时屏幕空间环境光遮蔽(SSAO)新技术,采用优化后的屏幕空间光线追踪计算遮蔽和弯曲法线,而非现有主流的基于地平线的方法。作者称地平线方法在计算非正对相机的倾斜表面遮蔽时存在精度上的根本局限。该技术已在Carbon Engine中实现并提供了集成说明与基准测试。

Hacker News 最新klaussilveira2026/11/12 · 今天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

Cortao:环形遮蔽体光线追踪环境光遮蔽

title.webm 目录 什么是 CORTAO? 滤波 Carbon Engine 实现 基准测试 简单场景测试 复杂场景测试 集成说明 概述 着色语言支持 图形 API 支持 坐标系 输入资源 输出资源 临时中间资源 配置参数 输入回调 输出回调 预通道 主通道 滤波通道 详细流程图 Shader Model 6.7 变通方案 性能建议 版本日志 作者 特别鸣谢 参考文献 什么是 CORTAO? 环形遮蔽体光线追踪环境光遮蔽(Circular Occluder Ray-Traced Ambient Occlusion,简称 CORTAO)是一种基于物理的实时屏幕空间环境光遮蔽(SSAO)技术。与现有最先进的基于地平线的 SSAO 技术不同,CORTAO 采用了一种全新的方法,从屏幕空间光线追踪中推导出基于物理的环境光遮蔽。基于地平线的方法存在根本性的局限,会损害其精度,尤其是在为不直接朝向相机的倾斜表面计算遮蔽时。

CORTAO 使用一种经过高度优化的屏幕空间光线追踪形式来计算遮蔽和弯曲法线。它通过对深度缓冲区采样,为每个像素周围的邻域构建一个由环形遮蔽体组成的简化近似表示。然后,针对这个代理几何体进行光线追踪。通过利用预先计算好的遮蔽体查找表,每个像素最多可以高效地追踪 32 条光线,其成本仅为屏幕空间光线追踪通常开销的一小部分,从而形成一种高性能、高度可扩展的 SSAO 技术。

GTAO(Jimenez 等,2016)作为第一种基于物理的实时 SSAO 技术,虽然出色且具有革命性,但存在一个重大局限:当表面不直接朝向相机时,它用于计算遮蔽的半球切片会发生偏斜。这是基于地平线技术在屏幕空间中运作的根本性局限,导致该技术除了一些简单情况外,无法收敛到暴力光线追踪的参考图像。结果是产生不正确、令人困惑的接地感和依赖视角的阴影。由于 CORTAO 基于屏幕空间光线追踪,它能够完全绕过这个问题,达到前所未有的物理正确性、稳定性和一致性水平——此前这只有昂贵的硬件光线追踪才能做到。

reference.webm CORTAO 对深度不连续的处理也比 GTAO 更为保守。GTAO 倾向于在深度不连续处高估遮蔽,尤其是对薄的遮蔽体,因此需要非物理正确的衰减启发式方法来缓解这个问题。CORTAO 能够在不具备这一局限的情况下,达到让 GTAO 流行起来的那种高对比度效果,同时由于减少了屏幕空间信息的依赖,允许使用更大的遮蔽半径而伪影更少。

GTAO.vs.CORTAO.webm 虽然 CORTAO 的主要目标是正确性和质量,但基于环形遮蔽体代理几何体运作的一个附带好处是出色的可扩展性。GTAO 跟踪最大地平线角度,因此减少采样数会降低捕获真实最大地平线角度的概率。这意味着随着采样数减少,GTAO 最终会产生更少的遮蔽,往往导致高质量和低质量设置之间在美术观感上出现巨大差异。而 CORTAO 调整的是环形遮蔽体代理几何体的粒度和粗糙度,产生的误差在过度遮蔽和遮蔽不足之间波动。经过空间和/或时间滤波后,这种误差会相互抵消,从而无论质量等级和 GPU 时间预算如何,都能得到一致的总体遮蔽水平。这也让 CORTAO 能够更快地收敛,只需显著更少的采样就能匹配并超越 GTAO 的质量水平。性能数据请参见基准测试部分。

此外,就像暴力光线追踪一样,CORTAO 会产生每个像素最多 32 条独立光线的遮蔽状态。除了遮蔽之外,这些数据还可以用于高效地计算每个像素的平均未遮蔽方向,也称为弯曲法线。CORTAO 能够以大约 GTAO 一半的性能开销计算出更精确的弯曲法线。目前还在研究和测试 CORTAO 的众多其他扩展。

BentNormals.webm 滤波 SSAO 技术试图从可能覆盖数百万像素的区域中选取少至 4 个屏幕空间采样来重建环境光遮蔽。因此,任何 SSAO 技术都不可避免地会遭受采样不足的问题。因此,滤除由此产生的噪声就成为必需。传统上,这是通过激进的双边模糊来完成的,通常需要多遍大型可分离模糊核才能达到可接受的结果,同时不可避免地在这个过程中压碎大量细节。在许多情况下,这种模糊的成本最终比遮蔽计算本身还要高。

如今游戏中或多或少普遍启用了某种形式的时间滤波,因此重度模糊不仅变得没有必要,而且可能有害,因为它会引入闪烁。相反,CORTAO 附带一个可选的高度优化的空间滤波通道,旨在补充后续的时间滤波通道。这个滤波器并不追求完全消除噪声,而是使用稀疏模糊来高效地将 CORTAO 的噪声输出转换为与时间滤波器更兼容的形式,从而提高它们在去噪 CORTAO 输出时的效果。

请注意,CORTAO 目前本身不提供时间滤波方案;它依赖于用户实现某种形式的外部时间滤波,在帧的后续阶段应用以对其结果进行去噪。

适用于 Fenris Creations 的 Carbon Engine、针对太空场景宽深度范围专门优化的 CORTAO 精简版本可在此处获取。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →