問題タブ [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.

0 投票する
1 に答える
1267 参照

indexing - directX 9 のオブジェクト ローダー

Directx 9 で obj ファイルをロードするプログラムを作成しました。ファイルから頂点データとインデックス データを読み取るだけです (テクスチャや頂点法線データは読み取っていません)。次に、このデータを頂点バッファーとインデックス バッファーに直接挿入します。

コードを実行すると、オブジェクトはレンダリングされますが、正しい形状ではありません。メッシュが変形します。ここに私のコードがあります -

立方体を表示すると、半分しか表示されず、一部の面が表示されません。インデックスバッファに問題があると思われますが、修正方法がわかりません。

本当に助けが必要です。皆さんありがとう。

0 投票する
0 に答える
412 参照

opengl - libg3d を使用して波面モデルを OpenGL にロードする方法

私は論文プロジェクトに取り組んでいます。Wavefront (.obj) モデルを OpenGL に読み込もうとして、助けが必要です。検索していたところ、さまざまな 3D モデル形式をロードできるLibg3Dを見つけました。

モデルをロードする方法を理解するのに問題があり、opengl アプリケーションにモデルをロードするために libg3d を使用できるかどうか。

0 投票する
1 に答える
2243 参照

opengl - 一連のサブグループとして OpenGL でメッシュをレンダリングしますか?

ウェーブフロント オブジェクト パーサーを完成させており、それを使用して汎用メッシュ オブジェクトを構築したいと考えています。私のエンジンは OpenGL 4 とシェーダーを使用してエンジン内のすべてを描画します。

私の質問は、メッシュをレンダリングするための最高のレンダリング効率を確保する方法についてです。

通常、 wavefront .obj ファイルには、多くのオブジェクト サブグループが指定されています。

サブグループには、特定のマテリアル (光沢のある赤色など) が割り当てられている場合があります。

したがって、メッシュはサブグループのかなり複雑なコレクションであり、それぞれに独自のマテリアルが割り当てられています。

私の質問は -

Q. サブグループごとに glDrawElements を呼び出すなどして、各サブグループを個別に描画する必要がありますか? (したがって、4 つの個別のサブグループがある場合、4 つの glDrawElements 呼び出しを行う必要があるため、4 つの均一な変更 (マテリアル/テクスチャ用) でシェーダーを 4 回呼び出す必要があります)。

これが正しければ、次のように計算する必要があります。

各サブグループのインデックス (サブグループごとに個別のインデックス配列と VAO を意味する) サブグループの開始点の頂点オフセット

これは非常に効率が悪いように思えます。間違ったツリーを鳴らしているのでしょうか?

また、Wavefront obj wiki ページから:

滑らかなシェーディング値が何を示しているかを誰かが提案できますか? 例: s1、s2、s4 など。

0 投票する
1 に答える
383 参照

c++ - レンダリングするオブジェクトを整理する方法

Wavefront obj ファイルからインポートしたオブジェクトをレンダリングしたい。オブジェクトには複数のグループとマテリアルがあります:

モデルのさまざまな部分は異なるマテリアルを持っているため、別々にレンダリングする必要があります。

モデルに関する情報を含むコンテナーを作成します。レンダリングするオブジェクトの「キュー」を整理するための最良/一般的な方法を知りたいです。

それが良いかどうかわからない私の考えは次のとおりです(疑似コードを使用):各グループgはすべての頂点情報をオブジェクトに保存しVertexInformation g1, g2、各グループusemtlは面(および使用されるマテリアル)に関する情報を に保存しFaceInformation f1, f2, f3, f4ます。

次に、レンダリングは次のようになります。

それとも、一度にすべての頂点をロードするほうがよいのでしょg1g2か?

その通りですか?それとも、いくつかの大きな欠点がありますか?

0 投票する
2 に答える
2471 参照

java - WaveFront .obj ファイル - 「f」コマンドは何をしますか?

David Brackeen によるJava でのゲームの開発を読んでいます。私は今まで本に書かれていたことをすべて理解しました。Wavefront オブジェクト ファイルで、コマンドの機能は理解できますが、vコマンドが理解できませんf。例えば:

fコマンドはここで何をしますか?

0 投票する
1 に答える
16061 参照

blender - Wavefront .obj ファイルの仕様は何ですか?

Blender の .obj ファイルのパーサーを書きたいと思っています。ファイル形式は自明のようですが、一部のデータが欠落しているようです。たとえば、単純な立方体 (デフォルトの Blender 立方体) には 8 行の頂点がありますが、私は 36 行 (立方体を形成する 12 個の三角形) を期待していました。

混乱は、少なくとも私にとっては、direct3d でのキューブの作成方法に起因すると思います。Direct3d では、立方体を形成するために 36 個の頂点が必要です。そこで、残りの 28 個の頂点を推測する必要があると考えています。このタイプの推測は、後でより複雑な形状の頂点を解析しようとするときに問題を引き起こす可能性があります。そのため、ファイル形式の公式仕様を見つけることができれば、データを解釈する方法についての洞察が得られるかもしれないと考えました.

他の誰かが以前に同じ質問をしたようです: OpenGL ES で使用するために、Blender などの DCC ツールから OBJ ファイルで適切な数の頂点を取得するにはどうすればよいですか? しかし、私にとって有益な情報はありませんでした。

0 投票する
1 に答える
1326 参照

android - Wavefront ファイルを Android opengl gles20 に描画する

これが私の問題です。アセットからウェーブフロント obj ファイルを読み込もうとしているのですが、どうやら正しく読み込まれているようですが、glsurfaceview にオブジェクトを描画しようとすると、8 つの三角形のうち 2 つが描画されず、理由がわかりません。

これは obj ファイル (八面体) です。

これは、ファイルを読み取るコードです。

これは、オブジェクトを opengl GLES20 に描画するコードです。

0 投票する
0 に答える
201 参照

php - PHPの多次元配列からの3D波面オブジェクト座標データ

こんにちは私はphpでwavefrontオブジェクトファイルを解析するための簡単なスクリプト(アルゴリズム)を作成しました。各頂点の3D座標を抽出し、それらを配列に割り当てることができます。各頂点の配列$ y、$ x、$zがあります。私の目標は、主座標の周りに頂点の立方体を作成することです。そのため、各軸の負の座標と正の座標を取得して、それらを絶対値に変換し、分離距離で除算しました。

例:

同じプロセスで、各軸の$ number_of_vertexが得られます。そこから、ループを使用して新しいポイントのx、y、z座標を作成し、3D形状の周りにポイントの立方体を形成できます。私の最終目標は、元の3d objの02.0000以内にあるポイントのみを三角測量の形式で保持することです。これを効率的に行う方法について、いくつかアドバイスがあります。

最初に立方体を形成してから終点を抽出することが重要です。これは、結果オブジェクトを、3D印刷用のgcodeと同様に、同じサイズの長方形の面で作成された元のオブジェクトの細分化されたバージョンにするためですが、私の場合、オブジェクトは次のようになります。複数の小さな正方形の面でできています。

ありがとう私は私の目標が十分に明確であることを願っています。

0 投票する
3 に答える
857 参照

opengl - Wavefront*.OBJファイルの3番目のテクスチャ座標

Wavefront * .OBJファイルのテクスチャ座標の3番目のコンポーネントの意味は何ですか?

ファイルは次のようになります


UPDATEモデルは3DSMaxで作成され、ソーステクスチャはPNGファイルでした。つまり、テクスチャは2Dです


更新2

2番目の座標を反転すると、OpenGLでレンダリングしたときにテクスチャが正しく表示されます。3番目の座標

u1 = u v1 = 1-v

w-まったく使用されていません。