在OpenGL中识别可见顶点

时间:2010-11-01 21:58:19

标签: opengl visibility vertex vertices occlusion

识别从特定视点可见的顶点的最有效方法是什么?

我有一个由几个3D模型组成的场景。我想将标识符附加到每个顶点(ModelID,VertexID),然后从各个视点生成2D图像,并为每个图像生成可见顶点标识符的列表(实际上这是用于图像处理应用程序)。

最初我想在顶点法线和相机视图矢量之间执行点积,以确定顶点是否面向相机,但是如果模型被另一个对象遮挡,则此测试将无效。

提前致谢

1 个答案:

答案 0 :(得分:3)

  1. 禁用所有照明/纹理
  2. 渲染几何体(GL_TRIANGLES)以填充Z缓冲区
  3. 再次渲染几何体(GL_POINTS),为每个顶点选择不同的RGB颜色,映射到模型/顶点ID
  4. 回读帧缓冲并扫描您之前使用的颜色,映射回模型/顶点ID。
  5. 不是很快,但应该有效。