2011-06-29 14 views
5

頂点を持つobjファイルを作成しようとしています。私は自分のコードで頂点の法線を計算し、このファイルにも書きます。このファイルをMeshlabでレンダリングしようとすると、頂点が正しく読み込まれますが、レンダリング - >頂点法線を表示すると、計算した法線が表示されません。むしろMeshLabはそれ自身の法線を計算し、それらを表示します。MeshLab:自分の計算された法線を持つobjファイルをレンダリングする

私が計算/書いた法線をどのように視覚化できるかわかりません。後で私の計算した法線に基づいてMeshlabシェーダを適用したいと思います。これをテストする

私はこれがちょうど正方形の1であるOBJファイル -

vn 0.517350 0.517350 0.517350 
v 0.500000 0.500000 0.500000 
vn -0.333333 0.666667 0.666667 
v -0.500000 0.500000 0.500000 
vn 0.666667 -0.333333 0.666667 
v 0.500000 -0.500000 0.500000 
vn -0.666667 -0.666667 0.333333 
v -0.500000 -0.500000 0.500000 
f 1//1 2//2 3//3 
f 4//4 3//3 2//2 

テストを作成しました。今度は、このファイルの通常の値を変更すると、「レンダリング - >頂点の法線を表示」を選択すると、独自の頂点法線が表示されます。 自分の法線を持ち、計算した法線で動作するシェーダを適用するにはどうすればいいですか?助けてください。

ありがとうございます!

+0

最初にすべての頂点を宣言してから、すべての法線を試しましたか?たぶん、.objファイルの解析で期待しているものかもしれません(パーサの中にはいくつかあります)。もう1つの提案:テクスチャ座標を使用しない場合でもテクスチャ座標を含めるようにしてください。 –

+0

すべてのOBJインポータが法線を尊重しているわけではなく、時にはメッシュを独自の計算された法線でオーバーライドすることもあります。私はまず、それがメッシュラブの場合ではないことを確認します。そうでなければ、すべてのことを正しく行い、依然として間違った結果を得るかもしれません。 –

答えて

0

すべてのOBJ輸入業者が法線を遵守しているわけではありません。 MeshLabがOBJの法線をどのように無視するかについて、まだわかっているこの古いバグが見つかりました:http://sourceforge.net/p/meshlab/bugs/70/

あなたはすべてを正しく行っているかもしれませんが、あなたの側に問題がないかもしれません。

さまざまなソフトウェアでさまざまなレベルのサポートがあるため、かなり毛むくじゃらするメッシュインターチェンジを扱う場合、エクスポートされたデータをテストするために複数の3Dアプリケーションを用意するのが大変です。問題があなたの側にあるかどうかをより迅速に把握することができます。

壊れたインポータに対して正しく表示するオブジェクトが絶対に必要で、他のフォーマットを使用できない場合は、手動でその頂点を折りたたみ(複製して)、それらのシャープな折り目/ハードエッジを与えます。これにより、法線を任意に指定するほどの自由度は得られませんが、領域をスムーズに補間して折り目をつけてはならない不連続な境界線を保存することができます。

関連する問題