Unity Shader URP 什么是early-z 什么是hi-z 什么是层级深度缓冲

  • Early-Z = 硬件自动把深度测试挪到像素着色器之前,省着色开销;用 discard 会破坏它
  • Hi-Z = 用深度金字塔数据,在三角形光栅化之前就整体剔除,省得更彻底
  • 层级深度缓冲 = Hi-Z 依赖的数据结构本体,把深度缓冲做成 Mip-map 形态

实际写 URP Shader 时,保持 ZWrite On + 不用 discard + 不透明队列保持前后排序,这三条规则就能把三种优化都喂饱。

Hi-Z 剔除逻辑1. 取三角形在屏幕上的包围盒2. 选取能覆盖包围盒的最小 Mip 层3. 读取该层的最大深度值 Z_max4. 比较三角形最近深度 Z_tri:Z_tri > Z_max三角形肯定被遮挡,整体跳过光栅化5. 否则进入正常光栅化流程关键点:读 1~4 个纹素就能剔除整个三角形,极其高效* 深度方向:1.0=最远,0.0=最近(默认)取最大值 = 保守估计遮挡物位置

Early-Z、Hi-Z与层级深度缓冲性能对比表

特性普通 Late-ZEarly-ZHi-Z(层级深度缓冲)
剔除粒度逐像素(着色后)逐片元(着色前)整个三角形区域
节省的开销无(基准)像素着色计算光栅化 + 着色计算
额外内存+约 33%(金字塔层)
实现方式硬件自动硬件自动(无 discard 时)硬件自动 / GPU Culling
对 Shader 的要求不用 discard / clipZWrite On,不透明队列
URP 是否默认开启——是(取决于 GPU)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值