Opengl Occlussion剔除不正确地考虑背面

时间:2015-07-31 04:12:01

标签: opengl

我试图在办公室房间渲染中的glBeginQuery(GL_SAMPLES_PASSED,查询)语句中找到GL_SAMPLES_PASSED。 (所以三角形的面法线指向内部。)

如果我从顶部向下渲染屋顶应遮挡地板...... (但是由于楼层的法线指向上方,而屋顶的法线指向下方,它显示没有任何内容被遮挡,所有内容都通过了glBeginQuery(GL_SAMPLES_PASSED,查询)测试。

glDepthMask(GL_TRUE);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glDisable(GL_CULL_FACE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0, 0, mWindow_Width, mWindow_Height);
    drawShapes(); // draw the room


glBeginQuery(GL_SAMPLES_PASSED, queries);
    drawFurniture();
glEndQuery(GL_SAMPLES_PASSED); ///
GLuint available = 0;
glGetQueryObjectuiv(queries, GL_QUERY_RESULT, &available);

glDisable(GL_DEPTH_TEST);

eveything通过,但情况并非如此 地板和家具不应该通过glBeginQuery(GL_SAMPLES_PASSED,查询即使是正常的指向

我确信我错过了一些愚蠢的事......

0 个答案:

没有答案