我有一个使用 OpenGL/OpenGL ES 渲染的 UI 框架。一些 UI 元素具有透明区域。现在我使用边界矩形进行碰撞,但在某些特定情况下,一个元素的透明部分与另一个元素重叠,它无法检测到正确的元素。
我不想保留所用纹理的副本(作为最后的解决方案,我可能只保留 alpha 通道)。
在这种情况下,您认为我应该如何处理碰撞检测?该解决方案应该是快速和内存友好的。
OpenGL/OpenGL ES 纹理内存读取速度是否足够快以使用它(很少,仅在事件上)来获取一个像素的 alpha 值?这个读数会破坏 OpenGL/OpenGL ES 管道吗?
编辑:
为了更清楚,我只需要 Object-Point 碰撞 - 它是一个 UI 库,但例如某些按钮可能没有矩形形式,并且它们的边界框可能重叠。在这种情况下,我需要正确检测按下的按钮。