我開始研究opengl,並且正在做一個3d象棋,但我無法想象,我怎麼知道我在哪裏點擊了「表格」做出適當的動畫,有什麼建議?OpenGL ES平鋪對象(立方體?),用可點擊的圖塊
1
A
回答
0
這被稱爲「3D拾取」。您必須將屏幕座標轉換爲世界座標。從那裏,做一個射線/碰撞物體(包圍盒?)相交測試。如果它們相交,那就是用戶點擊的地方。
爲了解決深度排序問題,您必須做更多的工作,比如找到每個對象的第一次交叉點,然後選擇具有最低(正)時間的交點。
如果你谷歌的「3D採摘」,你可能會發現你在找什麼。
這裏是一個教程: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=32
注意,這不是針對邊界對象的任何形狀,無論是邊框,多邊形,曲線等,你一定要弄清楚數學用於您想要支持的每種類型對象的相交測試。
編輯:
之前,我掛它,我沒看過該教程,我只是想出訥河是所有時尚的年輕人(當然十年前......)學習的OpenGL。
下面是OpenGL的常見問題解答一些關於採摘:
0
waldecir,尋找一個raypick功能。它是通過點擊的像素(實際上,通過相機平面上代表3D世界中「屏幕的玻璃表面」的像素的平移位置)從場景的相機中心發送光線的名稱,並返回最前面的多邊形ray與一些信息一起點擊。通常在多邊形的表面軸線內的座標,例如, UV或紋理座標。通過檢查座標,您可以確定用戶點擊了哪個平方。
光線可以從任何位置和任何方向發送,因此您可能需要獲取相機位置和其平面中心,但文檔應該能夠幫助您。
相關問題
- 1. OpenGL ES可點擊對象
- 2. 的OpenGL ES:在立方體上
- 3. 立方在OpenGL ES
- 4. Android OpenGL ES在x,y,z點和立方體的中心旋轉立方體
- 5. OPENGL ES 2立方體紋理
- 6. OpenGL ES - 紋理映射8頂點立方體的所有面?
- 7. Java - 平鋪地圖對象
- 8. 的Android OpenGL ES的平鋪發動機,平滑滾動
- 9. 平鋪貼圖OpenGL C++
- 10. 的Android的OpenGL ES 2,繪圖方塊
- 11. 在OpenGL ES中繪製立方體需要多少頂點?
- 12. Opengl-es 2.0與立方體貼圖的陰影映射
- 13. 平鋪一百個1px方塊VS平鋪四個25px方塊
- 14. 平鋪地圖上的多平鋪對象
- 15. OpenGL ES 2.0立方體貼圖不顯示紋理
- 16. 平鋪JAXB對象
- 17. 使用glDrawArrays繪製OpenGL ES的立方體
- 18. 使用Android OpenGL ES 2.0創建3D立方體
- 19. 在OpenGL ES 1.1和ES 2.0中使用頂點緩衝區對象繪圖
- 20. 渲染10×10立方的OpenGL 1.0 ES
- 21. 旋轉OpenGL-ES對象
- 22. 移動對象Opengl Es 2.0
- 23. OpenGL ES 1剪裁對象
- 24. 旋轉對象OpenGL ES 2.0
- 25. 如何檢測Android應用程序中的OpenGL ES中的對象的點擊?
- 26. OpenGL ES平鋪紋理Mipmap問題 - iPad/iPhone
- 27. 在opengl es 2.0中着色的立方體
- 28. 如何在OpenGL ES中更改3D立方體的視角?
- 29. iPhone OpenGL-ES:將紋理添加到立方體的一個面
- 30. 如何識別OpenGL ES立方體的哪個面被觸摸?
NeHe教程是一個不好的例子,它不能在OpenGL ES中遠程工作。 – 2010-08-09 14:39:42
@Matias Valdenegro:最終,3D拾取算法本身就是3D API不可知論者。我同意我鏈接的教程太多了,並且我沒有仔細閱讀它,看看他是否使用API來執行某些拾取計算。提供鏈接的目的是表明至少有一個3D拾取教程。 NEHE經常爲新的OpenGL程序員提供簡單的教程,無論它們在所有方面是否正確。如果你有更好的,請提供一個鏈接。 – 2010-08-09 18:55:20