我開始研究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. Android OpenGL ES在x,y,z點和立方體的中心旋轉立方體
- 2. OpenGL ES - 紋理映射8頂點立方體的所有面?
- 3. 的Android OpenGL ES的平鋪發動機,平滑滾動
- 4. 平鋪貼圖OpenGL C++
- 5. 的Android的OpenGL ES 2,繪圖方塊
- 6. 在OpenGL ES中繪製立方體需要多少頂點?
- 7. 使用glDrawArrays繪製OpenGL ES的立方體
- 8. 在OpenGL ES 1.1和ES 2.0中使用頂點緩衝區對象繪圖
- 9. 渲染10×10立方的OpenGL 1.0 ES
- 10. 如何檢測Android應用程序中的OpenGL ES中的對象的點擊?
- 11. OpenGL ES 1剪裁對象
- 12. 旋轉對象OpenGL ES 2.0
- 13. OpenGL ES平鋪紋理Mipmap問題 - iPad/iPhone
- 14. iPhone OpenGL-ES:將紋理添加到立方體的一個面
- 15. 在opengl es 2.0中着色的立方體
- 16. 如何繪製沒有索引的立方體?OpenGL ES 2.0
- 17. 如何在OpenGL ES中更改3D立方體的視角?
- 18. 繪製立方體,如果任何鍵點擊opengl 3d
- 19. Opengl基本立方體繪圖,但立方體繪製單色
- 20. 如何在OpenGL ES 2.0中使用png圖像紋理立方體?
- 21. 立方體的散點圖
- 22. 平鋪subtexture在OpenGL中
- 23. iPhone OpenGL:平鋪紋理
- 24. 安卓OpenGL ES 3D立方體在橫向模式下呈現
- 25. 的OpenGL ES繞點
- 26. 在其頂部顯示帶有3D對象的平鋪地圖
- 27. 在OpenGL中使用幀緩衝區對象渲染動態立方體貼圖
- 28. 如何在OpenGL ES 2.0中獨立處理對象?
- 29. 在OpenGL ES 2.0中獨立變換對象
- 30. 平鋪父子對象使用UnderscoreJS
NeHe教程是一個不好的例子,它不能在OpenGL ES中遠程工作。 – 2010-08-09 14:39:42
@Matias Valdenegro:最終,3D拾取算法本身就是3D API不可知論者。我同意我鏈接的教程太多了,並且我沒有仔細閱讀它,看看他是否使用API來執行某些拾取計算。提供鏈接的目的是表明至少有一個3D拾取教程。 NEHE經常爲新的OpenGL程序員提供簡單的教程,無論它們在所有方面是否正確。如果你有更好的,請提供一個鏈接。 – 2010-08-09 18:55:20