我想要一些关于深度测试的特殊过程。首先,我想通过自己而不是GPU深度测试知道着色器中正确的深度计算。
如果我禁用深度测试,并写入深度缓冲区以达到与深度测试相同的效果:
像素着色器:
void main(void) {
float depth = (position.z / position.w + 1.0) * 0.5
gl_FragColor = vec4(depth, depth, depth, 1.0);
}
是正确的实施吗?不同的深度长度如何?(深度 16 或深度 24)