2011-06-30 115 views
1

我正在尋找一種方法來在觸摸屏幕的屏幕上的位置有一個opengl對象(三角形等)。我現在在屏幕上有一個三維金字塔,根據觸摸開始和拖動到的位置之間的差異,在屏幕上移動。
在正常的surfaceViews中,我可以只是做一些像element.x = event.getX(),但這在openGL中不起作用。所以任何人有一個想法?
ps:我使用java/Android。OpenGL-ES:如何在觸摸的座標處設置對象?

回答

2

OpenGL也不像表面視圖,其中每個元素都是持久的。這與3D和筆相同。你需要自己跟蹤所有的數據。

因此,在觸摸事件處理程序中,您可以使用輸入座標來投影光線,使某個平面垂直於視圖。你必須自己實現這個投影,但很容易:搜索「射線平面相交」。這給出了飛機上的座標,與用戶觸摸屏幕上的點投影相對應。您使用此座標來轉換對象並重繪場景。

+2

@ user717572:你期望什麼?一些神奇的OpenGL函數,你給一些屏幕座標,它會應用到一個對象?這不是OpenGL的設計方式。首先,OpenGL不處理「對象」(它有對象,但是那些是紋理,着色器,即繪製東西所需的資源,而不是繪製自己的東西)。你特意詢問OpenGL,我的回答是:OpenGL不處理這些事情。你必須自己實現它們,或者使用一個庫。我完全告訴你該怎麼做:根據屏幕位置將一束光線投射到一架飛機上。 – datenwolf