3次元オブジェクトの回転にタッチ移動を変換する作業には、トラックボールを設定するか、縮尺変更されたピクセル変位を使用して回転にマッピングすることができます。
後者はthis OpenGL ES 2.0 sample applicationです。ここでは、XとYの指の移動に応じて立方体の回転を行います。この場合、タッチポイントの座標差を使用してコードを使用して回転に直接マッピングします次のように:
GLfloat totalRotation = sqrt(xRotation*xRotation + yRotation*yRotation);
CATransform3D temporaryMatrix = CATransform3DRotate(currentCalculatedMatrix, totalRotation * M_PI/180.0,
((xRotation/totalRotation) * currentCalculatedMatrix.m12 + (yRotation/totalRotation) * currentCalculatedMatrix.m11),
((xRotation/totalRotation) * currentCalculatedMatrix.m22 + (yRotation/totalRotation) * currentCalculatedMatrix.m21),
((xRotation/totalRotation) * currentCalculatedMatrix.m32 + (yRotation/totalRotation) * currentCalculatedMatrix.m31));
これは大体私のニーズのために働くように見えた1度、として画面上の1点の移動を扱います。これを上下にスケールして、回転の感度を調整することができます。
ここで使用しているCATransform3Dは、ヘルパー関数を使用してOpenGLモデルのビュー行列に変換され、シェーダに行列の一様として渡されます。
この回転を扱うもう1つの方法はトラックボールで、Core Durationのサンプルはhereです。あなたは彼のトラックボールの実装を持ち上げることができ、私はそのコードから適切なモデルビューマトリックスを生成するために私のアプリケーションで行うのと同じCATransform3D変換を行います。
下矢印のツールヒントを読むと、誰かがそれを投票した理由がわかります。それはあなたの評判を反映するのではなく、あなたの質問をする上での研究と努力の質に関するフィードバックです。 – Spacemancraig
ああ!情報をありがとう。私はその質問をより明確にすべきだった。とにかく、下記の答えが私を助けてくれました。私は今からもっと具体的な詳細を投稿するようにします。 – Bharath
おそらくあなたがこれを見るのが少し遅れていますが、下の答えが助けになった場合は、その答えを「受け入れる」をクリックしてください。 – Spacemancraig