2017-11-23 3 views
0

.STL ASCIIファイルを操作するためのコードを記述しようとしていますが、ファイル形式を完全に理解しようとしています。私が見たことから、各三角形の「ファセットノーマル」線の内容は、描かれた三角形には何の影響も与えません。また、三角形のどの辺が「外側」とみなされるかは、頂点の順序を逆にすることによって行われます。ステレオリソグラフィ(.STL)ファイルでは、各三角形に法線ベクトルが必要なのはなぜですか?

この三角形

facet normal 1 1 1 
    outer loop 
     vertex -1 1 1 
     vertex 1 -1 1 
     vertex 1 1 -1 
    endloop 
endfacet 

も、この三角形と同じである。この三角形

facet normal -1 -1 -1 
    outer loop 
     vertex -1 1 1 
     vertex 1 -1 1 
     vertex 1 1 -1 
    endloop 
endfacet 

と同一です。明示的な法線ベクトルを持つことが数学的に冗長な情報であり、それはファイル形式である理由それはでも、とにかく固体の描画に使用されていないということを考えること

facet normal 1 0 0 
    outer loop 
     vertex -1 1 1 
     vertex 1 -1 1 
     vertex 1 1 -1 
    endloop 
endfacet 

?それが何かに使われているのなら、それは何のためですか?

編集:Autodesk Meshmixerでこれらのファイルを開いていることを追加してください。

答えて

0

この方法をテストしましたか?テストで使用したプログラムで標準が使用されていない場合は、他のプログラムで法線がまったく使われていないということではありません。通常含めるには、いくつかの理由があります。

  1. スムーズなグラフィックシェーディング(レンダリング)

    法線のないあなたが非常に高い三角形の数が使用されていない限りスムーズシェーディングと滑らかな表面が途切れ途切れになりますことはできませんが.. 。

    choppy Earth

    しかし、本当にスムーズシェーディングを達成するために、我々は頂点法線ごとに必要とIIRCのSTLは、平滑ので、cのみ顔の法線ごとに持っていますアーティファクトサーフェスの三角形に対してのみ使用できます。

  2. 宣言ツールアクセス側と角度STL3D印刷のためのものとツールのアクセス角度を決定するように特別な意味を持つことができ、通常の使用技術に応じている

    (印刷)サーフェスにしたり、レイヤーの構造を微調整するのにも使用できます。このすべては、プリンタの制御ソフトウェアがそれをどのように解釈または使用するかによって異なります。

+0

なぜこれらの2つのいずれかに必要な三角形の法線を明示的に述べていますか?法線ベクトルの方向の情報は、三角形を定義する3つの点に既に存在しています。私はなぜ情報が明示的に提供されるのか不思議に思っています。 – Braden

+0

@Braden使用される法線は、三角形のサーフェスに垂直な幾何学的ベクトルと必ずしも同じではないためです。 – Spektre

+0

ああ、面白いです。この場合、STLファイル内の「通常の」ベクトルの定義はどのようになりますか?与えられたファイルに必要な理由があれば、その三角形に最も関連性の高い情報を運ぶベクトルだけですか? – Braden

関連する問題