假设使用 OpenGL 计算并绘制了一个球体,例如完成 here例如。
我有兴趣学习,如何找到对应于屏幕上任意给定像素 (x,y) 的特定顶点?
我已经阅读了有关光线转换和选择缓冲区的内容,但是,由于我需要遍历大量像素(假设 >10k)并找到所有相应的顶点,这些解决方案似乎并不合适对于这种东西。
理想情况下,我想找到一种现代 OpenGL 意义上的既快速又现代的方式。
是否有“开箱即用”的解决方案,或者我是否需要编写一个着色器?无论哪种情况,如果您能提供任何详细信息,我们将不胜感激!
最佳答案
- 添加一个整数“face ID”顶点属性,使给定三角形的每个顶点都相同
- 将人脸ID通过VS传递给FS并写入一个整数FBO
- 读回所需位置的 FBO 像素(使用 PBO 进行异步 FBO 读回),给出每个点的面部 ID
关于c++ - 如何在 OpenGL 中为屏幕上的给定像素找到对应的图元或顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151949/