在OpenGL中识别可见顶点

6
什么是识别从特定视点可见的顶点的最有效方法?
我有一个由几个3D模型组成的场景。我想给每个顶点附加一个标识符(ModelID,VertexID),然后从各种视点生成2D图像,并为每个图像生成可见顶点标识符列表(这主要是为了图像处理应用程序)。
最初,我考虑通过在顶点法线和相机视图向量之间执行点积来确定顶点是否面向相机,但是如果模型被另一个对象遮挡,此测试将无法起作用。
提前感谢。

你是否在寻找gluProject?将对象坐标映射到窗口坐标? - Jim
你的OpenGL版本是哪个?请始终包含这一信息。此外,你需要知道哪些顶点通过了测试,还是只需计算数量? - Mads Elvheim
我正在针对OpenGL 3.1核心配置文件进行开发。提供的答案正是我所需要的,谢谢。 - tat0
1个回答

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

虽然不是很快,但它应该可以工作。


太好了,那是个不错的技巧,而且运行良好。在这种情况下速度并不是非常重要的。感谢您的帮助。 - tat0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接