RenderSingleCamera 之视锥体剔除算法:一场几何学的“生死判决“

引子:0.001毫秒的判决

想象一位法官。

他每天要审理10万个案件——每一个案件,他必须在0.001毫秒内做出判决:“通过"或"驳回”

判决错了:

  • 通过了不该通过的——浪费司法资源
  • 驳回了不该驳回的——冤枉了当事人

每一次判决,都必须又快又准

这听起来像天方夜谭。

但在Unity的渲染管线里,这样的法官每一帧都在工作——它就是我们今天的主角:视锥体剔除算法(Frustum Culling Algorithm)。

它每一帧要判断10万个物体:“你在我的视野里吗?”

判决的时间预算:不到1毫秒

今天,我们就来看看,这位"几何法官",是如何用一套精妙的数学工具,完成这场毫秒级生死判决的

一、问题的本质:几何求交

视锥体剔除的核心问题,一句话就能说清:

“给定一个视锥体(Frustum)和一个物体的包围盒(Bounds),判断它们是否相交。”