0

ファイルから3Dモデルを表示するアプリを作りたいです。

.h ヘッダー ファイルのアプリの一部であるバナナのような 3D モデルを表示するアプリを作成することは既に知っています。

しかし、私がやりたいのは、アプリに表示する 3D オブジェクトの小さなリストを作成することです。ユーザーがモデルを選択すると、ローカル Web サーバーから電話にアップロードされ、電話がそれをレンダリングします。

私が何をすべきかわからないのは、3Dモデルをロードして表示する動的プログラミングを行うことです。


テストを行いました。ローカル Web サーバー上の Windows のワードパッドを使用して、1 つの配列を抽出し、ObjVerts.txt という名前のテキスト ファイルを作成するために、float 配列のリストを含むファイル banana.h を編集しました。

テキスト ファイルを読み取って float 配列に変換できる小さなコードを見つけるために、Web で多くの検索を行いましたが、何も見つかりませんでした。

ファイルを読み取って NSSMutuableData を作成する多くのコードを見つけましたが、コードの多くは機能していないようです。

最後のステートメントは何も返さないようです!

よろしければ、もう少しご指導いただけますと幸いです。

ここで私が試したコードの一部:

    NSURLRequest *request2 = [NSURLRequest requestWithURL:[NSURL
                                                          URLWithString:@"http://localhost/ObjVerts.txt"]

                                             cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]

    NSURLConnection *connection2=[[NSURLConnection alloc] initWithRequest:request2 delegate:self];

    if (connection2)
    {
        NSMutableData *response2 = [[NSMutableData data2] retain];

        glVertexAttribPointer(vertexHandle, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) response2);

    }
    else
    {
        NSLog(@"Could not create connection");
    }

ありがとうレジス


これは機能し、いくつかのデータを返しますが、結果をGLfloat配列に変換する方法がわかりません:

    NSURL *myurl = [NSURL URLWithString:@"http://localhost/ObjVerts.txt"];
    NSData *mystring = [NSData dataWithContentsOfURL:myurl];
    glVertexAttribPointer(vertexHandle, 2, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) mystring[0]); 

ありがとうレジス

4

1 に答える 1

1

これは一種の FAQ です。しかしよく:

ファイルまたは Web リソースからの 3D モデルの読み込みは、他のデータの読み込みと同じように機能します。

  1. 開いた
  2. 読んだ
  3. 解析する

ステップ 2 と 3 は、時間差のあるバッチで発生する場合があります。たとえば、一部のファイル タイプでは、次に何を読み取るかを知るために、最初に数行を読み取って解析する必要があります。

Web サーバーからロードする場合は、HTTP プロトコルを使用する必要があります。これを実装するのは面倒な作業であるため、 libcurlなどのすぐに使用できるライブラリが存在し、その作業を代行してくれます。

解析プロセスの詳細は、使用するファイル形式によって異なります。しかし、結果はプロセスのアドレス空間にあるデータであり、.h からリンクした静的配列定数であるかのように、そのように使用します。

于 2013-01-31T11:46:46.153 に答える