Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 面剔除适用于GL_前部,但不适用于GL_后部_Opengl_Culling - Fatal编程技术网

Opengl 面剔除适用于GL_前部,但不适用于GL_后部

Opengl 面剔除适用于GL_前部,但不适用于GL_后部,opengl,culling,Opengl,Culling,我已经使用glEnableGL_CULL_face启用了面剔除,并且我正在尝试剔除背面,但每当我执行glCullFaceGL_back时,都不会渲染任何内容 如果我使用glCullFaceGL_FRONT,它会像预期的那样工作,即渲染立方体的内部,而不是外部 我试着换绕组,但似乎不是这样,因为Glu FRONT工作 这可能是什么原因 如果有必要,它将渲染到启用深度渲染缓冲区的帧缓冲区。禁用消隐使所有内容都按预期进行渲染 编辑 所用绕组为逆时针方向,即最近侧: x, y, z 0, 0, 0 1

我已经使用glEnableGL_CULL_face启用了面剔除,并且我正在尝试剔除背面,但每当我执行glCullFaceGL_back时,都不会渲染任何内容

如果我使用glCullFaceGL_FRONT,它会像预期的那样工作,即渲染立方体的内部,而不是外部

我试着换绕组,但似乎不是这样,因为Glu FRONT工作

这可能是什么原因

如果有必要,它将渲染到启用深度渲染缓冲区的帧缓冲区。禁用消隐使所有内容都按预期进行渲染

编辑

所用绕组为逆时针方向,即最近侧:

x, y, z

0, 0, 0
1, 0, 0
1, 1, 0

0, 0, 0
1, 1, 0
0, 1, 0
下面是一张使用GL_FRONT的图像:

没有立方体的背面,所以你可以看到效果。同样,这也是我所期望的

如果不剔除,它看起来是什么样子:


我想分享我的经验,因为我有同样的问题: 我能够用glCullFaceGL_FRONT渲染一些东西,只有用glCullFaceGL_BACK才能得到清晰的颜色。结果证明OpenGL工作得非常好,当然问题出在我使用的着色技术上,延迟着色

我在标准化设备坐标中使用了一个四边形来显示照明计算的结果,这个四边形是顺时针顺序的!所以,改变了这个四元组的顺序,一切都起了作用


这将扩展到每个使用四边形在屏幕上投影东西的人!在绘制之前禁用消隐,然后再次启用。由于API调用,不建议再次启用,或者只需确保在CCW中定义了四边形。

面消隐基于三角形的缠绕顺序。因为我们看不到你的三角形,据我们所知,它们看起来都使用相同的顺序。提供一个。当GL_前端工作正常时,它不可能是真正的绕组,对吗?即使绕组坏了,它也会有结果吗?增加了缠绕的问题。只是一个猜测,但如果你使用的是平行光,没有环境光,那么渲染的背面将是黑色的。。。除非您使用双面照明计算。显然,移除灯光计算并仅执行fragColor=texturetex,着色器中的texCoordV除了移除灯光之外没有任何改变