質問

私はOpenGLに初めてです。 Joglを使用して遊んでいます。私はこれを使用しています モデル.

私はそれを窓に正常にレンダリングしています。ただし、テクスチャ/素材を適用したいと思います。これを行う方法は完全にはわかりません。

.objファイルから:

f 6307/4525/3 6303/4524/3 6327/4523/3 6315/4526/3
usemtl kahki_light_pave_W.png
f 6445/3470/305 6437/4623/305 6593/4624/305 6597/4625/305
f 6594/4626/306 6438/4627/306 6446/4628/306 6598/4629/306
f 6595/4630/307 6439/4631/307 6447/4632/307 6599/4633/307
f 6448/3482/308 6440/4634/308 6596/4635/308 6600/4636/308

ウィキペディアは、その後すべてが言っています usemtl 声明と次の声明 usemtl ステートメントは使用することになっています khaki_light_pave_W.png. 。ただし、OpenGLでこれをどのように行うかわかりません。

ファイルの上部に定義されている頂点がたくさんあります。

v 19.886690 3.093822 -21.149584
v 23.886690 3.093822 -21.149584
vt 0.918121 0.920883
vt 0.918121 0.959193
vt -0.537323 1.541370
vt -0.537323 1.503060
vt 0.462677 0.503060

使用する必要がありますか vt テクスチャの頂点? f ステートメントにはインデックスが含まれます。これらの指標は次のとおりです v 頂点、 vt, 、 または両方?

役に立ちましたか?

解決

tl; dr:the vt エントリはテクスチャ座標とを指定します f エントリインデックス(1ベース!)3つの別々の配列(v, vt, 、 と vn).

から 仕様, 、セクション「頂点データの参照」:

すべての要素に対して、参照番号は、幾何学的な頂点、テクスチャ頂点、頂点法線、およびパラメーター空間頂点を識別するために使用されます。

これらのタイプのそれぞれの頂点には、1から始めて別々に番号が付けられています。これは、ファイルの最初の幾何学的頂点が1、2番目は2などです。ファイルの最初のテクスチャ頂点は1、2番目は2です。番号付けは、ファイル全体で順番に続きます。多くの場合、ファイルには頂点データの複数のリストがあります。この番号付けシーケンスは、頂点データが他のデータによって分離されている場合でも続きます。

ファイルの最初のリストの上部から頂点をカウントすることに加えて、ファイル内の要素の位置からリストをバックアップする頂点をカウントすることもできます。要素からリストをカウントすると、参照番号はマイナスです。 -1の参照番号は、要素のすぐ上の頂点を示します。 -2の参照番号は、上記の2つの参照などを示しています

他のヒント

OBJファイルローダーとサンプルモデルビューアーを書き、LWJGLを使用してモデルを表示します。これはJoglに似ていますが、まったく同じではありません。 (私はJoglとLwjglの両方を使用しました - 実際、私は最近JoglからLWJGLに切り替えました。)

コードをできるだけきれいでシンプルにするために努力しました。残念ながら、それはカスタムシェーダーではなく固定機能パイプラインを使用するという点で「昔ながら」ですが、基本にとってやや有用で有益であることを願っています。で見つけることができます。

http://darksleep.com/oobjloader/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top