智者的“未卜先知“:深入理解提前深度测试(Early-Z)

发布时间:2026/7/22 2:08:00
智者的“未卜先知“:深入理解提前深度测试(Early-Z) 引子:小明的"顺序颠倒"之惑上一篇,小明搞懂了不透明物体"从前往后"绘制的智慧——靠深度测试拦截被遮挡的像素,省下海量无用的着色。他心满意足。可当他翻开图形学的教科书,对照着标准的"渲染流水线图"看时,一个新的、更尖锐的矛盾,猛地跳了出来:"不对啊!书上画的标准渲染流水线,顺序明明是这样的——先跑’片元着色器’(算出每个像素的颜色),然后……最后才做’深度测试’(判断这个像素要不要显示)!也就是说,按照标准流程,深度测试是排在着色’之后’的!可是……这不就全乱套了吗?如果是’先着色、后测试’,那我上一篇学的优化不就没用了?——一个被挡住的像素,它得先老老实实地跑完那段昂贵的着色计算,然后才轮到深度测试来告诉它’你被挡住了,丢弃吧’!那着色的钱,不还是白花了吗?!那所谓的’省下被遮挡像素的着色开销’,到底是怎么实现的?这中间,一定发生了什么我不知道的’魔法’!"小明这一次,真的触碰到了 GPU 最精妙、也最反直觉的一项黑科技的门槛。他没有看错——标准渲染流水线的"逻辑顺序",确实是"先着色,后测试"。可如果 GPU 真的老老实实按这个顺序执行,那渲染优化就无从谈起了。于是,GPU 的工程师们,施展了一项堪称"未卜先知"的魔法——它,就是今天的主角:提前深度测试(Early Depth Tes