問題タブ [wavefront]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - WavefrontOBJ形式からの「インデックス」のロード
OpenGLES2.0を使用してAndroidアプリケーションを開発しています。
Blender2.49bで作成されたエクスポートをWavefrontOBJ形式でロードしたいと思います。verxtexの位置、法線、テクスチャを特定しました。
glDrawElements(GLenumモード、GLsizeiカウント、GLenumタイプ、const GLvoid * indexs)を使用してメッシュを描画したいのですが、WavefrontOBJファイルから最後のパラメーターであるインデックスを取得する方法がわかりません。
私が探している「指標」に直面していますか?
私はこれをフォーラムで見つけました:faces = 1で始まるインデックス!
「1から始める!」の意味は何ですか?
ありがとう。
c++ - 解析のヒント
.obj モデルを opengl プログラムにロード/解析するために、いくつかのライブラリを試しています。
ここにそれらのいくつかがあります:
ネイト・ロビンス、GLM
obj2opengl(最も遠いもの) by heiko
また、機能しなかった他のいくつかのローダー。
これらに関する私の主な問題は、未定義のエラーでした。そして、私は多くの異なる人々 (元のコードの編集者) から GLM を試したので、おそらくそれは私が間違っていることです。
だから私の質問は:
opengl (PC タイプ) にはどの obj ローダーを使用すればよいですか?
自分でobjファイルを解析する場合、頂点を保存するにはどうすればよいですか?(最速/最も効率的)また、長所/短所の選択はさらに優れています
Windows 32 ビット (7 および Vista) で Code Blocks/MinGW を使用しています。
mesh - ミラー操作を頂点配列に割り当てます
.obj vertices 配列の頂点座標を反転して、平面/軸を横切ってミラーリングされた座標を取得する数学を理解しています。しかし、実際のミラーリング操作のために頂点配列をどのように設定しますか (単に反転するのではなく)
c++ - OBJをロードするとき、これを取得します
今回はモデルのロードに成功しました!わーい!!
しかし、別のobjローダーで発生したわずかな問題があります...
それがどのように見えるかは次のとおりです。
http://img132.imageshack.us/i/newglitch2.jpg/
すぐに見ることができない場合は、別の角度からご覧ください。
http://img42.imageshack.us/i/newglitch3.jpg/
これは立方体のように見えるはずですが、ご覧のとおり、立方体の面のエッジは非常に途切れ途切れになっています
他の誰かがこの問題を抱えていますか、または誰かがこれを解決する方法を知っているなら、私に知らせてください
また、表示する必要があるコードがある場合はコメントしてください。喜んで投稿します。
ちょっと私はコードをいじって(いくつかのものを変更しました)、これが私が思いついたものです
オリジナル:
結果: choopy 画像 (画像を見てください)
現在:
結果: モデルは途切れることはありませんが、カメラを動かすことができません (モデルは私の目の前にあります)
android - AndroidOpenGLESでWavefront.objのテクスチャ座標を使用する際の問題
openGLESを使用してAndroidアプリを作成しています。私はいくつかのオンラインチュートリアルに従い、ハードコードされた頂点/インデックス/テクスチャ座標を使用してテクスチャキューブをロードすることができました
次のステップとして、wavefront.objファイル用のパーサーを作成しました。チュートリアルの頂点などを使用してモックファイルを作成しました。これは正常に読み込まれます。
ただし、3Dモデリングパッケージを使用して作成されたファイルを使用すると、すべてのテクスチャが台無しになります
以下は、現在テクスチャ座標を取得している方法です。
まず、すべてのテクスチャ座標、vt
'sを大きなベクトルにロードします
次に、各f
三角形の最初の2つのテクスチャ座標を見つけます(つまり、f 1/2/3 2/5/2 3/4/1は、2番目と5番目のテクスチャ座標を取ることを意味します。.objは0ではなく1からカウントを開始するため、位置から-1にし、x座標位置の位置に2を掛けて、同じことを実行する必要がありますが、vt
配列のy座標位置には+1します)
見つけたテクスチャ座標を取得して、別のベクトルに追加します。
すべての頂点を通過したら。ベクトルをFloatBufferに変換し、それをglTexCoordPointer
drawメソッドに渡します
ファイルを解析するためのコードは次のとおりです。
そして、これが描画のためのコードです:
私はこれでどんな助けにも本当に感謝します。ファイルからモデルをロードできないのはイライラします。ここで何が間違っているのか、何が欠けているのかよくわかりません。
simd - SIMD に収まる波面の数
AMD GPU に関する記事を読んでいて、特定の例に混乱しています。多数のレジスターを持つ SIMD ユニットが与えられた場合、x 個のレジスターが必要な場合、SIMD を占有できる波面の数はいくつですか?
具体的には、SIMD ユニットに 1 ~ 32 のウェーブフロントを共有する 16k のレジスタがある場合。これは、各波面が平均 8 つのレジスタを持つことができることを意味します (波面が 32 ある場合)。これで問題ありません。
さらに、SIMD のウェーブフロント数には 20.6 までのグローバルな制限があり、各ウェーブフロントに 11 ~ 12 のレジスタを与えることになります。
この部分は私を混乱させます。さらに、83 以上のレジスタを使用する場合、SIMD を占有できるのは 2 つの波面のみであると言えます。(波面の幅は 64 であることを思い出してください)。
私の計算
2 * 83 * 64 = 10628 registers
では、これは SIMD ごとに与えられた 16,384 をはるかに下回っています。したがって、3 つの波面があっても問題ありません。
見逃したものがある場合は、ここの記事を読んでいます。(第7段落)
.net - Wavefront .objファイルをXAMLに変換するためのライブラリはありますか?
XAML要素に変換する必要のあるWavefront.objファイルが多数あります。MeshGeometry3D
これは、Microsoft Expression BlendにインポートしてXAMLをコピーすることで手動で行うことができますが、プロセスを自動化できれば非常に役立ちます。
これを行うためのライブラリ(できれば.NETですが、私は何でも取ります)はありますか?
opengl - OpenGL を使用した Wavefront OBJ および関連マテリアル MTL のレンダリング
これらのファイルがあります: sample.obj、sample.mtl、およびイメージ jpg を含むフォルダー sample。上記の入力を使用した opengl テクスチャ マッピングのサンプル コードを教えてください。
c++ - C++を使用したWavefront.objファイルの解析
wavefront .objファイルを解析しようとしているときに、次の2つのアプローチを考えました。
- 頂点の数のサイズの2D配列を作成します。面が頂点を使用する場合、配列からその座標を取得します。
- 頂点リストの開始位置を取得し、面が頂点を使用する場合は、頂点に到達するまで線をスキャンします。
IMO、オプション1は非常にメモリを消費しますが、はるかに高速です。オプション2には大量のファイル読み取りが含まれるため(そしてほとんどのオブジェクトの頂点の数が非常に多くなるため)、これははるかに遅くなりますが、メモリの集中度は低くなります。
問題は、メモリと速度のトレードオフを比較することです。平均的なコンピュータに適したオプションはどれですか。そして、別の方法はありますか?
オブジェクトをレンダリングするために、GLFWと一緒にOpenGLを使用する予定です。