在OpenGL ES中,没有“选择缓冲区”,因此没有专门设计的功能可以允许您识别特定点上屏幕上的对象。您有两个选择:1.将屏幕空间位置(x,y)反投影到世界空间位置并测试所有物体是否与通过此点的射线相交(通常是最佳性能方法)。2.使用唯一标识它的特殊颜色渲染场景中的所有内容,然后读取屏幕空间位置(x,y)处像素的颜色。选项2较慢,因为它需要等待GPU完成渲染,但它具有更准确处理非常细的对象(如线条)的优点。 它也更简单易行。有关选项2的更多详细信息,请参见以下两个链接: 使用OpenGL Hack实现拾取|opengl-tutorial.org Lighthouse 3D的OpenGL-拾取教程
glReadPixels (...)
函数。这个过程被称为“颜色拾取”,如果你想选择非常细的对象(如线条),这可能是你唯一的选择。 - undefined