2

iPhone GLKit 3dオブジェクトのタッチ位置を検出するにはどうすればよいですか?

オブジェクト上にある場合は?そして、どこ?

私は三角形から構築された立方体を持っています、それがオブジェクト上にあったとしても、タッチで知る必要があります。

私のキューブ:

const Vertex Vertices[] = {
// Front - red
{{1, -1, 1}, {0.89, 0, 0, 1}, {1, 0}},
{{1, 1, 1}, {0.89, 0, 0, 1}, {1, 1}},
{{-1, 1, 1}, {0.89, 0, 0, 1}, {0, 1}},
{{-1, -1, 1}, {0.89, 0, 0, 1}, {0, 0}},
// Back - green
{{1, 1, -1}, {0, 0.92, 0, 1}, {0, 1}},
{{-1, -1, -1}, {0, 0.92, 0, 1}, {1, 0}},
{{1, -1, -1}, {0, 0.92, 0, 1}, {0, 0}},
{{-1, 1, -1}, {0, 0.92, 0, 1}, {1, 1}},
// Left - yellow
{{-1, -1, 1}, {1, 0.92, 0, 1}, {1, 0}}, 
{{-1, 1, 1}, {1, 0.92, 0, 1}, {1, 1}},
{{-1, 1, -1}, {1, 0.92, 0, 1}, {0, 1}},
{{-1, -1, -1}, {1, 0.92, 0, 1}, {0, 0}},
// Right - blue
{{1, -1, -1}, {0, 0, 0.89, 1}, {1, 0}},
{{1, 1, -1}, {0, 0, 0.89, 1}, {1, 1}},
{{1, 1, 1}, {0, 0, 0.89, 1}, {0, 1}},
{{1, -1, 1}, {0, 0, 0.89, 1}, {0, 0}},
// Top
{{1, 1, 1}, {0.35, 0.35, 0.35, 1}, {1, 0}},
{{1, 1, -1}, {0.35, 0.35, 0.35, 1}, {1, 1}},
{{-1, 1, -1},{0.35, 0.35, 0.35, 1}, {0, 1}},
{{-1, 1, 1}, {0.35, 0.35, 0.35, 1}, {0, 0}},
// Bottom
{{1, -1, -1}, {0.35, 0.35, 0.35, 1}, {1, 0}},
{{1, -1, 1}, {0.35, 0.35, 0.35, 1}, {1, 1}},
{{-1, -1, 1}, {0.35, 0.35, 0.35, 1}, {0, 1}}, 
{{-1, -1, -1}, {0.35, 0.35, 0.35, 1}, {0, 0}}

};

const GLubyte Indices [] = {//フロント0、1、2、2、3、0、//バック4、6、5、4、5、7、//左8、9、10、10、11、 8、//右12、13、14、14、15、12、//上16、17、18、18、19、16、//下20、21、22、22、23、20};

4

1 に答える 1

0
  1. タッチの座標を目の空間で近平面から遠平面に向かう光線に変換します。

  2. 立方体の頂点を目の空間に変換します (レンダリング時に使用するのと同じ変換)。

  3. 変換された立方体に対してレイボックス交差テストを実行します。

于 2012-11-28T21:34:10.783 に答える