問題タブ [tesselation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - APIはGLUTesselatorに似ていますか?
オープンソースで、三角形の入力および戻り頂点として頂点の輪郭をとることができるAPIを探しています。また、さまざまなワインディングルールをサポートしたいと思います。ありがとう
c++ - リアルタイムテッセレーション用の GLUTesselator?
ユーザーがリアルタイムで結果を確認できるようにする OpenGL を使用して、ベクター描画アプリケーションを作成しようとしています。私が設定した方法は、エッジ フラグ コールバックを使用するため、glu テッセレータは三角形のみを出力し、それを VBO に渡します。すべてのアルゴリズムを可能な限り高速にしようとしましたが、これは私の問題ではありません。いくつかのコード プロファイラーによると、多角形を作成する関数である GLUTessEndPolygon() の呼び出しで大きなスローダウンが発生します。形状が 100 個の入力頂点を超えると、非常に遅くなり、他のすべてを最適化するために行ったすべてのハードワークが基本的に破壊されることがわかりました。私に何ができる?(0,0,1) の法線を提供します。また、GL レッドブックのすべてのヒントを試しました。テッセレータのテッセレートをより速くする方法はありますが、精度は低くなりますか?
ありがとう
c++ - GLUテッセレータによると:「コールバックを組み合わせる必要があります」しかし、コールバックを定義しました
以下を使用してコールバックを登録しました:
scbCombine
同じ.cpp
ファイル内の関数はどこにありますか:
そして、テストを使用すると"scbCombine \n"
、コンソールに出力されます!!! そして、CALLBACK関数を呼び出した後、テッセレータは次のメッセージを含むエラーコールバックを呼び出します:「コールバックを組み合わせる必要があります」(!!)
私のアプリにはすでに2つのテッセレーターがあり、それらは正しく機能します。しかし、最後のものはそうではありません。私は、このコードを他のコードと可能な限り比較しました。しかし、なぜそれが機能しないのかわかりません。
メソッド(最初cbCombine
に「s」を付けない)は次のとおりです。
しかし、outData
ゼロに設定することは問題にはなりません。私はすでに他のテッセレーターの1つでこれを行いました...
私は夢中になっています...私はこの問題にすでに何時間も費やしました
ありがとう
algorithm - OpenGL Tessellated Sphere があり、それに円筒形の穴を開けたい
球体を表すポリゴン メッシュを生成するソフトウェアに取り組んでおり、球体に穴を開けたいと考えています。このポリゴン メッシュは、球体の表面を覆うだけのオーバーレイです。どのポリゴンが自分の穴と交差するかを判断する方法はよくわかっており、それらをコレクションから削除することもできますが、その時点から少し混乱しています。高レベルの概念について誰かが私を助けることができるかどうか疑問に思っていましたか?
基本的に、私は次の 3 つの状況を想定しています。
#1 については、これをテストして (ポリゴンが削除されていない)、それに応じて行動する (何もしない) ことができます。#2 と #3 については、穴を考慮して球体を再テッセレーションする方法がわかりません。#3については、基本的に次のような考えがあります。
この非常に単純化されたアルゴリズムには、埋めたい「穴」がいくつかあります。たとえば、実際には穴に 4 つの側面を持たせたくありません。穴は円柱にするか、少なくとも円柱のテッセレーション表現にする必要があります。また、これらの新しいポリゴンを作成して、テッセレーションされたサーフェスに穴のある球を維持する方法もわかりません。
シナリオ 2 にアプローチする方法がわかりません。
r - 不規則なグリッドでのデータのプロットと色付け
x と y が通常のグリッド上にない (x、y、z) 形式のデータがあります。これらのデータの 2D カラーマップを、強度 (グレースケールなど) を z 変数にマッピングして表示したいと考えています。明らかな解決策は、通常のグリッドで補間 (以下を参照) することです。
ただし、これにより初期メッシュの情報 (実際のデータを含むポイントの位置) が失われ、特定の場所で非常に細かくまたは非常に粗くなる可能性があります。私の好みは、元のデータ ポイントの実際の位置と密度を正確に表す、三角形を使用した delaunay タイリングです。
理想的には、ソリューションは
ggplot2
結果のポリゴンが、lattice
、またはベース グラフィックスのいずれかでプロットされるように、プロット関数の外でテッセレーションを計算します。早くして。私の実際の例 (~1e5 ポイント) では、テッセレーション ビアの計算
deldir
が非常に遅くなる可能性があります。
「テッセレーション」とは、ドロネー三角形またはボロノイ図のいずれかを意味しますが、私の好みは前者です。ただし、元のデータ ポイントに基づいて各三角形の色を補間する複雑さが増します。
opengl - gluTess が最初の呼び出しで機能しないのはなぜですか?
非凸多角形を描画するために gluTess* 関数を使用しています。すべてのステップでテッセレーションをやり直すのを避けるために、結果を配列に格納し、OpenGL の頂点配列機能を使用して描画します。
私の問題は、何らかの理由で、初めて gluTess* を使用したときに、三角形の一部しか描画されないことです。gluTess* を強制的に再作成すれば、すべて問題ありません。
gluTess* を再作成するために、頂点配列を含むオブジェクトを完全に破棄して再作成することに注意してください (これにより、頂点配列オブジェクトの再計算が強制されます)。
なぜそうなるのかについて何か考えはありますか?
いくつかのランダムなアイデア:
- 最初の OpenGL 呼び出しでは、ウィンドウがまだフルサイズになっていないためでしょうか?
- 後で行うOpenGLの状態を設定する必要がありますか?最初の呼び出しではありませんか?
ありがとう。
編集:テストとして、頂点配列を作成、破棄、および再作成しました。それは問題を解決します。つまり、OpenGL の状態を変更しないと、gluTess* への最初の呼び出しでポリゴンを正しくテッセレートできません。しかし、2つ目は成功します。誰かが前にそれに気づきましたか?
編集(2):コードは次のとおりです:
2 番目の呼び出しが成功すると、beginVA、endVA、および vertexVA が正常に機能すると思われます (前述のとおり、2 番目の呼び出しは、主に頂点配列を保持するデータ構造 VA を破棄することによって行われます)。
編集 (3) : 不足しているコードは次のとおりです。
編集 (4) : 結局、エラーは別の場所にありました。私は疲れていたに違いありません。std::vector を使用して結合関数の結果を格納しました。後でうまくいった理由はわかりませんが、最初はうまくいかなかったのは当然のことでした。申し訳ありませんが、これで本件はクローズさせていただきます。
opengl - GLUtessellator に GL_TRIANGLES のみを使用させる方法はありますか?
GLUtesselator を使用して、OpenGL で 3D 押し出しテキストを生成しようとしています。関連するコードは次のとおりです。
第11章のRedBookを信じるなら、
... エッジ フラグを有効にする GLU_TESS_EDGE_FLAG に関連付けられたコールバックがある場合、GLU_TESS_BEGIN コールバックは GL_TRIANGLES でのみ呼び出されます。
を使用してのみ描画する必要があると思いますGL_TRIANGLES
。
GL_TRIANGLE_FAN
ただし、カスタム テッセレータ コールバックで呼び出される型は、 、GL_TRIANGLE_STRIP
またはのいずれかであることがわかりますGL_TRIANGLES
。GL_QUADS
または以外のものを処理できる VBO を作成するには時間がかかりすぎているため、これを強制する方法があるかどうかだけを尋ねますGL_TRIANGLES
。
c - 異なる色の三角形を使用して球をテッセレーションする
三角形を使用してテッセレーションする球を生成する関数を書いていますが、三角形がすべて異なる色になるようにしたいのです。ただし、コードを実行すると球が作成されますが、色は水色から黒までの範囲で、緑や赤はまったくなく、色が繰り返されます。これは私が望むものではありません。
コードの一部を次に示します。コード全体で球体を生成できますが、私がこだわっているのはカラーリングです。
triangles
は、vector<vector<Vertex3>>
この球を構成するすべての三角形の頂点のコレクションを含む です。
directx - どちらが速いですか:実行またはテッセレーションの前に詳細なメッシュを作成しますか?
問題を簡単にするために、球について考えてみましょう。球を持っていて、実行する前に、半径、位置、三角形の数を知っているとしましょう。また、三角形の数が十分に多いとしましょう(たとえば、約5万個の三角形)。
一般に、この球メッシュを事前に作成してすべての50k三角形をグラフィックカードにストリーミングする方が速いでしょうか、それとも単一のポイント(球の中心を表す)を送信し、テッセレーションとジオメトリシェーダーを使用して球を構築する方が速いでしょうか。 GPUで?
これらの球を100個異なる位置に配置した場合、さらに高速になりますか?ハル/ジオメトリシェーダーを使用して、インスタンス化と組み合わせることができるものを作成できますか?
opengl - GLUtesselator : 面積ゼロの三角形と T 字路の問題
GLUtesselator を使用して Text エンティティを三角測量しようとしたときに、この問題に遭遇しました。ただし、GLUtesselator を使用したポリゴンの三角形分割中に発生する可能性があります。問題は、GLUtesselator が面積ゼロの三角形を生成する場合があることです。ほとんどの場合は無視できますが、無視できない場合もあります。特定のポリゴンの最終的な三角形分割に面積ゼロの三角形または T 字路が含まれないように、解決策を見つけようとしています。私の知る限り、GLUtesselator は利用可能な最も堅牢で安定したテッセレータの 1 つであるため、自分で新しいテッセレータを作成するのではなく、後処理を行って三角測量を修正することを気にしません。
文字「H」のテッセレーションの問題を実証しようとします。私はスタックフローの新しいユーザーであるため、まだ画像を投稿することはできず、画像なしでこの問題を説明することは不可能であるため、問題を説明したブログに URL を投稿しているだけであることに注意してください。GLUtesselator で確認することもできます: 面積ゼロの三角形と T 交差に関する問題http://www.dixittech.com/blog
これは非常に根本的な問題であり、その解決策は、同様の分野で働く多くの開発者に利益をもたらすと思います。私はそれにつまずいた最初の人ではないと確信しています。それを行う方法について何か提案はありますか?代替アプローチも大歓迎です。