为什么 延迟渲染>前向渲染

 

一、假设一个真实场景

假设你有:

  • 100 个物体(房间里很多模型)
  • 20 个光源(灯、屏幕、角色光等)
  • 屏幕分辨率:1920 × 1080

也就是:

屏幕像素 = 1920 × 1080 ≈ 200万像素

二、前向渲染计算量

前向渲染逻辑:

每个物体 × 每个光源

计算量:

100 个物体 × 20 个光源 = 2000 次光照计算

但问题来了:

每个物体其实包含很多 像素

假设:

每个物体平均占:

5000 像素

那么:

实际计算量:

100 物体 × 5000 像素 × 20 光源
= 10,000,000 次计算
= 1000 万次
 

三、延迟渲染计算量

延迟渲染逻辑:

屏幕像素 × 光源

计算量:

200万像素 × 20光源
= 4000 万次

等等…
你会发现:

延迟渲染反而更大?

四、真正的关键:光源影响范围

延迟渲染不会让每个光源影响全屏

比如:

一个小灯:

只影响:

100 × 100 像素
= 10000 像素

那么:

10000 像素 × 20 光源
= 200000 次计算

只有:

20 万次

前向渲染

仍然:

100 物体 × 5000 像素 × 20光源
= 1000 万次

五、再举一个更极端的例子(游戏场景)

例如:

开放世界游戏:

  • 1000 个物体
  • 100 个灯光

前向渲染:

1000 × 100 = 100,000 次光照

但每个物体可能 2000 像素:

1000 × 2000 × 100
= 200,000,000
= 2 亿次计算

延迟渲染:

假设每个灯只影响:

200 × 200 = 40000 像素

计算量:

40000 × 100
= 4,000,000
= 400 万次

六、最终对比

渲染方式 计算量
前向渲染 2 亿次
延迟渲染 400 万次

性能提升:

200,000,000 / 4,000,000 = 50倍

这就是:

延迟渲染可以快几十倍的原因

posted @ 2026-04-08 19:31  SimoonJia  阅读(3)  评论(0)    收藏  举报