我正在研究OpenGL中的一个小程序,并意识到我需要从几何着色器中检索一些数据到主程序,这样我才能处理鼠标事件。 不多,只是在几何着色器中计算的一些特定方形坐标。
我该怎么做?我应该使用小型FBO还是应该在主程序中进行所有计算,然后将它们发送到几何着色器?
答案 0 :(得分:2)
一般来说,您应该在主机程序中尽可能多地进行计算。
如果您想从着色器读取数据,Google就是您的朋友。虽然您还需要一个非常重要的片段着色器,但可以输出到FBO。最好的选择通常是使用SSBO,但image load-store或transform feedback可能更合适,具体取决于您的目标。
答案 1 :(得分:0)
最简单的方法是对您的值进行颜色编码,您需要发送到主机并使用glGetPixels方法。 您需要渲染到单独的帧缓冲区,以隐藏屏幕上的计算。 如果你想在场景的对象上实现Hittesting并且不受GPU限制,那么这就是你要走的路。