我有一個用OpenGL/OpenGL ES呈現的UI框架。某些UI元素具有透明區域。現在我使用邊界矩形進行碰撞,但在某些特定情況下,來自一個元素的透明部分與其他元素重疊時,它無法檢測到正確的元素。具有透明度的UI元素的碰撞檢測
我不想保留所用紋理的副本(作爲最後一個解決方案,我可能只保留alpha通道)。
您認爲在這種情況下我應該如何處理碰撞檢測?解決方案應該快速和內存友好。
OpenGL/OpenGL ES紋理內存讀取速度是否足夠快,以便使用它(很少,只在事件上)獲取一個像素的Alpha值?這個閱讀是否會打破OpenGL/OpenGL ES管道?
編輯:
爲了使它更清楚,我只需要對象的角度碰撞 - 這是一個UI庫,但一些按鈕,例如可能沒有矩形形態及其邊界框可能會重疊。在這種情況下,我需要正確檢測按下的按鈕。
@genpfault你爲什麼刪除我的opengl標籤?有些用戶可能認爲我只在OpenGL ES中使用它,這是不正確的。 – Felics
我通常會盡量保持'opengl'和'opengl-es'標籤的獨立性,因爲大多數情況下它們都非常不同。昨天一定是在自動駕駛儀上重新標記,對不起。 – genpfault