glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
我一直在尝试实施延迟渲染2周。但是我的测试程序中的所有网格都被反向剔除了。上面的代码应该是呈现模型的正确方法。我看的每个例子都画出了那样的对象。但是当我使用GL_BACK作为剔除面时,这是结果:
这是GL_FRONT:
GL_FRONT应该是我期望从GL_BACK获得的结果。奇怪的是,当我将glFrontFace设置为GL_CW时,一切都消失了。所以这个问题不是关于缠绕。我花了一整天的时间来搜索有关此事的信息。我发现的东西只是关于深度缓冲的东西。但我在创作中看不到任何问题。正因为这个问题,我无法正确地进行模板传递以进行聚光灯渲染。我在几何传递中启用了GL_DEPTH_TEST。这就是我作为深度缓冲区附加到我的fbo的内容
glGenRenderbuffers(1, &depthTexture);
glBindRenderbuffer(GL_RENDERBUFFER, depthTexture);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH32F_STENCIL8, width, height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depthTexture);
主要问题是,导致反面背面剔除的可能性有哪些?