深度测试
- 大部分系统的深度缓冲是24位的,深度缓冲会和深度值进行比较,如果通过则更新,否则丢弃。
- 屏幕坐标可以在GLSL中通过gl_FragCoord在片段着色器中访问,其中的z是片段的真正深度。
glEnable(GL_DEPTH_TEST)
用来开启深度测试,同时glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
用来在下次迭代渲染开始前,清除缓冲.- 控制通过深度缓冲的条件:
glDepthFunc(GL_LESS);
- 深度缓冲包含一个0.0到1.0间深度值,使用如下公式进行深度标准化。
不过事实上一般使用的是非线性的公式