如何在OpenGL中为屏幕上的给定像素找到相应的图元或顶点

时间:2016-02-02 11:16:15

标签: c++ opengl

假设使用OpenGL计算并绘制了一个球体,例如它已完成here

我有兴趣学习,如何找到与屏幕上任意给定像素相对应的特定顶点(x,y)?

我已经阅读了关于光线投射和选择缓冲区的信息,但是,因为我需要迭代大量像素(比如说> 10k)并找到所有相应的顶点,这些解决方案似乎不是适合这种东西。

理想情况下,我想在现代OpenGL 的意义上找到一种既快又现代的方式

是否存在“开箱即用”的解决方案或我是否需要编写着色器?在任何一种情况下,您可以给予的任何细节都将受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

  1. 添加一个整数"面部ID"顶点属性,使给定三角形的每个顶点都相同
  2. 将面部ID通过VS传递给FS&将其写入整数FBO
  3. 在所需位置回读FBO像素(使用PBO进行异步FBO回读),在每个点提供面部识别