2

こんにちは、IBO を使用して .obj ウェーブフロント ファイルを正しくレンダリングするのに苦労しています。

現時点では非常に単純ですが、頂点と法線をロードします。解析された頂点と法線をバインドすると、素晴らしい結果が得られますが、インデックスを GL_element としてバインドすると...混乱します。

今、私はこれに約 1 週間取り組んできました。ここで少なくとも 20 ページをチェックし、最終的に質問することにしました。

何が悪いのかよくわからないので、自分のコード、コンソールに書き込んだデバッグ情報、プログラムから書き出したファイル、スクリーンショット、ビデオを持ってきました。ここの誰かが私がこのこぶを乗り越えるのを手伝ってくれることを本当に願っています.

ペーストビン : http://pastebin.com/uZs74DSn

ペーストビンから、すべてのインデックスから 1 を減算することによって、.obj ファイルがゼロベースではないことを既に説明していることがわかります。

ビデオ : 1. http://www.youtube.com/watch?v=tfqhDEMCjPA&feature=plcp glarrays で解析および描画されたサル。

  1. http://www.youtube.com/watch?v=SDeJk7sv2ZA&feature=plcpまったく同じモデルが解析されましたが、gldrawelements で描画されました。

  2. http://www.youtube.com/watch?v=3_HS8Q7FXsk&feature=plcp gldrawelements で解析および描画された球体

  3. http://www.youtube.com/watch?v=w6Oqy3JdTRg&feature=plcpモデルはラインループでレンダリングされた opengame アートで見つかりましたが、glarray を使用したので問題ありません。

  4. http://www.youtube.com/watch?v=xHiCcK5QuE0&feature=plcp多くの基本的な形状がレンダリングされ、glarray で十分に照らされています。

私は本当に途方に暮れており、誰かが私がこのこぶを乗り越えるのを手伝ってくれることを願っています. これからもシェーダーを勉強していきたいと思います。これはそこにいる誰かにとっては些細なことかもしれませんが、彼らが立ち寄って指針となるアイデアを提供できることを願っています!

ブルービー

4

1 に答える 1

0

もう一度見てみると、実際に起こっているのは、オフセットがあなたが思っているものではないということだと思います。データを読み込んでいて、頂点が複製されており、重複データを頂点バッファーに複数回書き込んでいます。したがって、後でインデックス 4 を参照する場合、実際には頂点配列のその位置に頂点 2 のデータがあります。

頂点データを事前に並べ替えて、頂点配列が [max_index_number * 3] を超えないようにすべて書き出してから、インデックスをそのままストリーミングしてみてください。それはうまくいくかもしれないと思います。

于 2012-08-21T01:41:21.597 に答える