什么是overdraw
overdraw是指同一帧中一个像素被重复渲染的次数
像素填充率
GPU在每一帧内向帧缓冲中写入像素的数量 通常计算方法按照光栅化单元乘以这个GPU的核心时钟频率来获得
关于一个正常渲染
如果我们不考虑z-early这种 正常绘制 从后往前绘制 我们会先绘制球 然后在深度缓冲区 和颜色缓冲区填入数据(因为这个时候一定能通过深度测试 深度测试里面没有数据) 然后再绘制立方体的时候 同样会通过深度测试 这样就会覆盖前面球体填入深度缓冲和颜色缓冲的数据 这样就造成前面的填入的没有意义的 所以现在大多数引擎在绘制非透明物体时都采用先提交近处的物体 再提交远处的物体 就是先提交立方体 再提交球体 这样球体被遮挡的那部分是没办法通过深度测试的 就不会造成无效的写入
什么时候出现overdraw
一般非透明的片元都只需要绘制一次
而透明混融的物体就需要绘制几次
半透明物体都是从后往前渲染。你渲染的半透明物体叠加的越多,则overdraw越高。