1

3DSMaxから単純なOpenGLビューア/アプリにエクスポートされた.OBJファイルをインポートできるOBJローダーを作成しました。この中心にあったのは、いくつかのチュートリアルの助けを借りて書かれたVector3.hでした。

私が使用したいくつかのモデルではうまく機能しましたが、使用したいモデルには、説明されていない別の何かがあります。頂点には3つではなく4つのポイントがあります。これが私が使用しているラインのサンプルです。

g Box02
usemtl Wood_Bark
s 4
f 1/1/1 2/2/1 3/3/1 4/4/2
f 4/1/3 3/2/3 5/3/3 

最初の「f」行には、関心のある4つの頂点があります。私のVertex3.hはX、Y、Zを取ります。私が持っていた他のモデルでは、すべての行は2番目の「f」行のようで、要素は3つだけでした。頂点が範囲外になっているので、どこで発生しているかを確認したところ、この行にあることがわかりました。処理できるデータが多いので、推測しました。これがVertex3.h全体です

http://pastebin.com/dgGSBSFe

そして、これは失敗するコード行です。頂点はVector3です。

tempVertices.push_back ( vertices[--vertex] );

私の質問は、4番目のポイントは何ですか?私のVector3.hファイルのようなものでそれをどのように説明しますか?Vector4.hを作成し、行に3つしかない場合は、4番目の変数を無視する必要があるようです。しかし、私が扱っていることと、それを行うためのヒントについてもっと知りたいです。4番目の要素はアルファか何かですか?これはどのように使用する必要がありますか、それともVector3.hの計算で使用する必要がありますか?

4

2 に答える 2

3

4点の面はクワッドと呼ばれます。通常、レンダリングする場合は、2つの三角形に分割する必要があります。

たとえば、次のようになります。

 ___
|   |
|   |
|___|

あなたはそれをこれに変える必要があります:

 ___
|\  |
| \ |
|__\|

頂点が左上から反時計回り(OpenGLのデフォルト)に移動すると仮定すると、2つの三角形を作成できます。最初の三角形の頂点は、クワッドの1番目、2番目、および3番目の頂点になります。2番目の三角形の頂点は、クワッドの3番目、4番目、および1番目の頂点になります。

于 2010-12-29T04:04:57.050 に答える
0

三角形だけでエクスポートしてみませんか?最大3dsでEMeshに変換し、すべてのエッジを表示してエクスポートします。または、適切なOBJエクスポートオプションを使用するだけです。

于 2011-01-19T13:57:12.147 に答える