Iはワイヤフレーム形式でOpenGLでオブジェクト(3.3)を描画しようとしているとそれをレンダリング、のみ、その鋭い縁部(すなわち、隣接する面の法線が持っている場合あるデルタ角)とその輪郭/シルエット/境界線との間の距離である。私のデータ構造は、三角形とその頂点のみが格納された三角形メッシュです。 私は"Hardware Determined Edge Features" by Morgan McGuire and John F. Hughesと "Hardware Generated Object Silhouettes" by Michal Valient の両方をオンラインで計算しました。これは両方とも、エッジ決定にGPUを使用できるようにするための「回避策」を実装する必要がある理由です。抽出鋭い三角形メッシュからエッジとその輪郭とOpenGL
私はそれがシャープなエッジをオフラインいったん決定し、後でレンダリングのために何とかこの情報を保存し、視点にオンライン依存オブジェクトの輪郭/シルエット/境界を決定するために最善だろうと思いました。
は私の検索の間に私はCGAL、ハーフエッジ、OpenMeshにつまずいたが、それのいずれかを使用しての経験がありません。私の質問は次のようになります:
鋭いエッジを特定する方法は?または、メッシュを通過して隣接リストを作成し、すべてのエッジをテストしますか? (顔の法線とドットプロダクトを取得してそれらの間の角度を取得するクロスプロダクト)
これを後で簡単にレンダリングするには、これをどのようにして保存するのですか?鈍いエッジの縮退三角形を作成しますか?あまりにも多くの情報がこの方法で失われますか?行を格納し、描画する形式を使用しますか? どのようにレンダリングするのですか?オンライン輪郭/シルエットを決定する方法
?
これは広範な質問ですが、誰かが私をある方向に導くことができますし、言及されたライブラリ(CGAL、OpenMesh)のいずれかで前にこれを行ったこともあります。
次のようになりますどのご回答いただきありがとうございます。私が理解しているように、「視点」が何であっても、シャープなエッジは鋭いエッジに留まります(バックフェースのカリングが後方に向いている部分を省略するために使用される場合)。いいえ? ハーフエッジ構造を作成して、隣接する面の法線を簡単に計算し、シャープなエッジである線を簡単に保存することができますか? obj-fileとGL_LINES経由でレンダリングしますか? シルエットについてのみ、例えば、説明したように「視点」が必要である。 [ここ](http://ogldev.atspace.co.uk/www/tutorial39/tutorial39.html)。正しい? – Michael
鋭いエッジを見つけるために、この論文http://e-collection.library.ethz.ch/eserv/eth:4390/eth-4390-01.pdf(メッシュエッジ検出)を見てください。あなたはまだ輪郭線を検出する作業をしています。 バックカリングについてのご意見は、三角形の巻線を使用して実行され、頂点/ゲーム/テスシェーダの出力(https://www.opengl.org/wiki/Face_Culling)によって異なります。それは間接的に視点に依存します。 – Zouch