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

How to find corresponding primitives or vertices for given pixels on the screen in OpenGL

本文关键字:像素 顶点 OpenGL 查找 屏幕      更新时间:2023-10-16

>假设一个球体是使用 OpenGL 计算和绘制的

,例如这里所做的。

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

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

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

是否有"开箱即用"的解决方案,或者我需要编写着色器?无论哪种情况,您能提供的任何详细信息都将不胜感激!

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