我在用OpenGLES
的包裝紙寫2D遊戲。有一個相機瞄準一堆紋理,這是遊戲的精靈。用戶應該能夠通過在屏幕上移動手指來移動視圖。問題是,相機距離紋理約100個單位,所以當手指滑過屏幕以平移相機時,由於視差效應,精靈比手指移動得更快。所以基本上,我需要將2D屏幕座標轉換爲距離特定z距離的三維座標(在我的情況下爲100,因爲這是紋理的距離)。將2D屏幕座標轉換爲C++中的3D空間座標?
C#
中有一些"Unproject"函數,但我使用C++
,所以我需要這個函數背後的數學。我對3D的東西非常陌生,在數學方面我非常不好,所以如果你能解釋你喜歡解釋給一個10歲的孩子,我會非常感激。
如果我能做到這一點,我可以以這樣的速度平移相機,所以它看起來像遙遠的精靈用用戶的手指平移。
一些10歲的孩子數學能力很強:P – 2012-02-03 06:47:45