4

iPhoneで3Dを調べていますが、デバイスで3Dキューブを取得できましたが、一方の顔に触れると特定のイベントが発生し、もう一方の顔に別のイベントが発生するなどのインタラクティブ機能を追加したいと思います。レイピッキングは避けたいと思います。これにより、アプリに必要のない複雑さが増すからです。

かなりの数のカラーピッキングチュートリアルを読みましたが、iPhone固有のチュートリアルやサンプルコードはWebのどこにもありません。

私の主な問題は、固有の色のオブジェクトをバックバッファーに描画し、テクスチャオブジェクトをフロントバッファーに描画することです。ユーザーに固有の色のオブジェクトを表示することはありませんが、バックバッファーからタッチされたピクセルの色を検出します。

だから私の質問は、Objective-Cチュートリアルの方向に私を向けたり、サンプルコードを投稿したりできる人はいますか?

どんな助けやアドバイスも大歓迎です。

4

1 に答える 1

3

OK、18時間後、ようやく問題が修正されました。レンダリングメソッドで私がしなければならなかったpresentRenderbufferのは、レンダリングがSELECTモードのときに呼び出しを防ぐことだけでした。私は今自分を蹴ることができました!

if (mode == SELECT) {
    glDisable(GL_DITHER);
    glDisable(GL_LIGHTING);
    glDisable(GL_LIGHT0);
}

// Draws the cube object, face by face and adds unique color to each face
[Face1 draw];
[Face2 draw];
[Face3 draw];
[Face4 draw];
[Face5 draw];
[Face6 draw];

if (mode == SELECT) {
    glEnable(GL_DITHER);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
}

// Wrapping presentRenderbuffer with this if statement fixed
// the problem where the unique colors would appear onscreen
if (mode == RENDER) {
    [context presentRenderbuffer:GL_RENDERBUFFER_OES];
}

これが将来誰か他の人に役立つことを願っています:o)

于 2010-09-07T10:10:01.483 に答える