質問

3DS MaxからSimple OpenGL Viewer / Appにエクスポートされた.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を取ります。私が持っていた他のモデルでは、すべての線は3つの要素しかない2番目の「F」行のようなものでした。私は範囲外に頂点を取得しているので、それがどこで起こっているのかを確認しに行ったとき、私はそれがこの行にあるのを見たので、私は扱うことができるラインにもっと多くのデータがあるので想定しました。以下はvertex3.h全体です

http://pastebin.com/dggsbsfe

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

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

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

役に立ちましたか?

解決

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

たとえば、あなたはこれを持っています:

 ___
|   |
|   |
|___|

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

 ___
|\  |
| \ |
|__\|

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

他のヒント

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

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