opengl遮挡查询,对于GL_SAMPLES_PASSED结果始终为零

时间:2017-01-27 08:49:47

标签: occlusion

我正在尝试编写一个用于遮挡查询的示例opengl应用程序来识别可见三角形。但是遮挡查询总是为像素采样返回零计数。

我按照以下步骤操作:

  1. 设置opengl \ glut

  2. 从一个点(从完整模型可见的地方)调用lookat

  3. 启用深度测试,深度遮罩,启用面部剔除(以及其他一些选项)。
  4. 渲染完整模型。
  5. 禁用深度掩码
  6. 开始新的遮挡查询
  7. 渲染三角形\ face
  8. 结束查询并等待结果可用。
  9. 一旦结果可用,则获得计数。
  10. 对所有三角形\面重复步骤6到9。
  11. 对于给定的模型,我计算bbox并将其放大一些因子(比如1.5),以便可以看到完整的模型。从bbox的每个角落,我调用步骤2-10并将眼点作为角点。

    此问题针对步骤#9(遮挡输出)查询的每个查询结果为0,即表明可见像素数为零。

    我在这里附加了示例应用程序(ObjRender Sample),它加载OBJ文件并执行上面的步骤1-10。要重现它,只需打开VS项目,构建并运行它。它有样本数据。

0 个答案:

没有答案