2008-09-16 18 views
4

GPU機能を使用して現在の問題を解決しようとしています:「ポイントクラウドPとポイントとノーマル(Pp、 Np)平面からEPSILON以下の距離にある雲の中の点を返します。GPUを使用してポイントクラウドのカットプレーンに近い点を照会

1)全ての点が異なる頂点 2)セットの投影状態を座標有するように座標取り付けテクスチャーとポイントの頂点バッファを準備する:私は、次のソリューションに向けて収束私の同僚と話す

3)平面の法線が-z軸と位置合わせされ、x、y、z = 0がPp に対応するようにメッシュを回転する4) [-EPSILON; + EPSILON] 5)テクスチャにレンダリングする 6)グラフィックカードからテクスチャを取得する 7)グラフィックカードからテクスチャを読み取り、どのようなp (所望の距離範囲内の点である)指紋で表示された。

問題は次のとおりです。 q1)このような操作を行うには、ウィンドウフレームを開く必要がありますか?私はMATLAB内で作業しており、MEX-C++を呼び出しています。経験では、新しいフレームを開くと、スーツ全体が悲惨にクラッシュすることがわかります! q2)GLPointにテクスチャ座標を与えるためのプリミティブは何ですか? q3)テクスチャへのレンダリングがどのように実装されるかはあまり明確ではありませんか?任意のリファレンス、チュートリアルはすばらしいでしょう... q4)カードからこのテクスチャをどのように取得しますか?もう一度、参照、チュートリアルはすばらしいでしょう...

私は厳しいスケジュールに基づいていますので、私が学ぶべき技術の名前をGLSL仕様ドキュメントと誰かが行ったようなOpenGL APIがあります。それらは私の質問に対するあまりにも曖昧な答えです。

ありがとうございます。

p.s. 可能であれば、私はCUDAのようなリソースを使用したくないので、できるだけ多くのOpenGL要素を として使用して、新しいシェーダを書く必要はありません。

注:少し免責事項として、クロス http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=245911#Post245911

答えて

0

に掲載[OK]を最初に:私は、3Dプログラミングについて何も知りません。

は今私の純粋に数学的な考え方:

は、通常N(単位の長さ)と中心に平面の距離Lによって平面を考える(点[0/0/0])。点Xの平面までの距離は、NとXのスカラ積からLを差し引いた中心からの距離で与えられます。したがって、あなたはウェザーを確認する必要があります

| n x - L | < =イプシロン

。スカラー製品である| |もちろん絶対値

あなたは距離L

たぶんこのことができますを得るために、通常の最初と平面と交差する必要があります。

+0

投票した場合は、理由を記入してください。私は知りたいです。 – Sarien

1

単純です: 平面の法線をn、点をxとします。

n_u = n/norm(n)   //this is a normal vector of unit length 
d = scalarprod(n,x) //this is the distance of the plane to the origin 

for each point p_i 
    d_i = abs(scalarprod(p_i,n) - d) //this is the distance of the point to the plane 

明らかに "scalarprodは、" "内積" を意味し、 "ABS" は "絶対値" を意味します。 なぜウィキペディアのスカラー製品に関する記事を読んでいるのだろうか。

0

私はAndrea Tagliasacchiに対して1つの質問があります。なぜですか?

1000点の飛行機と100台の飛行機を見ている場合にのみ、説明されている方法を使用することによるメリットがあります。ポイントと飛行機をプロデュースするためにAppointedとして、私の象徴的なTouchyを概説しました。

また、ピクセルの有限の性質のために、2つ以上の点がテクスチャ内の同じピクセルに投影されることがよくあります。

これをやりたければ、C++でサンプルglutプログラムを作成することができますが、これはMATLABにはどのように役立つのでしょうか、よく分かりません。

+0

私はまだそれがより速くなる方法を見ていない、計算はまだ行われる必要があります。 :)おそらくあなたはそれが内部的にどのように行われているのか知っていますか? – Sarien

0

私には、コーダル・タッチティの方法に似た何かを、forループではなく頂点プログラムで実装できるはずですね。たぶん、CUDAのような、C APIをGPUプログラミングに使うのでしょうか?

関連する問題