想问一下显卡光追的原理?以及有没有替代性的方案?

光追的原理其实很简单,我们先来了解物理世界的光:

上过中学物理的人都知道,太阳(即光源)发出光,照射到物体上

而物体则会发生反射,不管是漫反射还是平面反射也好,总有一束光射入你的眼睛

成千上万的光进入你的眼睛,于是你就看到了画面。

(1.6k长文,1h54min写成,观众老爷请耐心看完)

放松区


而计算机性能虽然强大,但无法强大到战胜物理世界

于是程序猿则反其道而行之:

它从你的游戏视角向场景发射数以亿计的光线,

每条光线都会精确计算与物体的交点、反射和折射等,最终绘制出极其逼真的光影效果。

虽说是减少计算了,但剩下还有海量光线不可小看,仍需进行大量的复杂计算,

光追对硬件性能的要求极高,这也是为什么开启光追后游戏帧率会大幅下降。


题主提到说把光追计算分配给CPU小核,这在目前是不可行的。

首先还是老生长谈:

看过点营销号的都知道:GPU拥有成千上万个计算核心,适合进行光追这种高强度并行的大规模计算,

而CPU擅长处理复杂的逻辑串行任务,

CPU算光追好比让数学家去干流水线工人的活,光是核心数量上就已经被拉爆了。

至于说让小核去算,过pcie通道传时间的时间已经够让gpu算上万遍了

有研究指出GPU的光追计算速度可能比CPU快一千到一万倍,CPU纯渲染光追的游戏实测帧率可能低至每秒一帧,完全没有实用性。

小核心的性能本身就更弱,面对庞大的计算任务,像让英特尔4004运行Windows11,算力竭了。


“游戏厂商可不可以把游戏设计成出场自带光追的效果?”

这其实正是游戏行业沿用了几十年的经典技术,通常被称为预计算或光照烘焙。

首先看两个经典实例,蝙蝠侠:阿卡姆骑士

这两款游戏是预烘焙静态光照的典范,

开发者并未让显卡在运行时实时计算光影,在游戏开发阶段,预先将光影效果画好并存储为贴图。

当玩家游戏时,显卡只需读取这些现成的贴图即可,性能开销极低。

正因如此,《蝙蝠侠:阿卡姆骑士》在2015年发售,即便在今天,其画面依然能打

但缺点则是是完全没有任何动态效果,光影角度永远固定。

从技术角度来讲,光照烘焙是预计算技术的核心。

它的工作原理是,开发者先在引擎如虚幻引擎的Lightmass的烘焙系统中,

将场景中所有静态物体如建筑和地形,其光影包括光线反弹等复杂效果预先计算好,并保存为光照贴图。

游戏运行时,显卡无需任何实时计算,直接从硬盘读取调用这些贴图即可。

这种方式产生的静态光影效果,在特定场景下甚至不输于早期的实时光线追踪。



然而,预计算无法完全取代实时光追,因为它最大的局限也是在于静态二字:

所有被烘焙的光影都是固定的,一旦场景中有物体移动或者光源变化如昼夜交替,预计算的光影就无法实时更新,

这也直接导致现代游戏放弃单纯依赖烘焙技术。

现代3A游戏越来越追求动态的开放世界,例如刺客信条系列在早期作品如大革命中使用烘焙技术取得了惊人画质,

但在规模巨大的新作刺客信条影中,若继续使用该技术,预计算光照数据将高达2TB,耗时长达两年,因此开发团队才最终转向实时光线追踪技术。

当然,业界也在不断探索折中方案。一种方式是预计算光照场景,在虚幻引擎中,开发者可以预先计算多种不同的光照情景如白天、黄昏和夜晚,在游戏中根据时间切换。

这模拟了动态效果,但本质仍是切换不同的静态贴图。


另一种是更先进的预计算辐射度全局光照,如育碧在汤姆克兰西:全境封锁中:

它不直接烘焙最终光照,而是烘焙光线在物体间的传输关系。

运行时,根据当前光源快速计算出间接光照效果,在性能与动态效果间取得平衡。

最新的方向是AI辅助预计算,例如腾讯的MagicDawn方案,利用AI和云端计算来极大加速烘焙过程,最快提升40倍,并优化数据体积,压缩率达到70%。

腾讯的MagicDawn演示画面

为了提升计算光追速度,显卡厂商们也研发的专门的模块提升计算光追速度:

现代显卡确实内置了专门的光追计算硬件单元,比如NVIDIA的RT Core和AMD的Ray Accelerator专职加速最耗时的光线与物体求交运算。

但之所以开启光追仍然会降帧,是因为光追计算远不止求交这一步,后续的着色计算等步骤仍需占用显卡的通用计算核心。

因此即便有了专用模块,开启光追依然会占用显卡资源,导致帧率下降。不过随着光追模块性能越来越强,其对整体帧率的影响正在减小。



感谢观众老爷能耐心看到这里~🌸

我是山行,喜欢请点个赞同和关注~

编辑于 2026-08-01 · 著作权归作者所有