GLKitを使用してシンプルな3Dワールドを作成しました。画面のタップに基づいて、3Dの世界で特定のポイントを見つけようとしています。GLKMathUnprojectを使いたいようです。メソッドのシグネチャは次のとおりです。
GLKVector3 GLKMathUnproject (
GLKVector3 window,
GLKMatrix4 model,
GLKMatrix4 projection,
int *viewport,
bool *success
);
いくつかのことが、必要なパラメータについて私を混乱させます。まず、ウィンドウの座標をGLKVector2にするべきではありませんか?そして最も重要なのは、画面上のポイントを3D空間に投影しないことで、単一のポイントではなく光線を作成することです。3D空間のポイントを2Dプレーン(別名スクリーン)に投影すると、そのポイントに関する情報の1次元が失われます。では、ポイントを「投影解除」する深さを指定せずに、2Dスクリーンポイントを3Dワールドポイントに変換するにはどうすればよいでしょうか。この方法については、インターネット上のどこにもコメントはありません(アップルドキュメントを除く)。