http://www.opengl.org/wiki/Rendering_Pipeline_Overview说在几何着色器运行之后和片段被光栅化之前,“位于观察体内部和外部之间边界上的图元被分成几个图元”。我读过的关于 OpenGL 的所有其他内容也以同样的方式描述了裁剪过程。但是,通过将片段着色器中的 gl_FragDepth 设置为比生成它的三角形上的点的实际深度更接近相机的值(以便片段通过深度测试,而如果我复制固定 -管道功能),我发现即使它部分与远视平面重叠,也会为整个原始三角形生成片段。另一方面,如果所有顶点都在平面后面,
这里发生了什么?我的几何着色器是否替换了一些默认功能?是否有我需要设置的标志/提示或需要写入的其他内置变量,以便渲染管道的下一步知道如何进行部分剪辑?
我在 NVIDIA GeForce 9400M 上使用带有 GL_EXT_geometry_shader4 扩展的 GLSL 1.2 版。