2012-04-28 6 views
6

を作成し、私は動的平滑化ポリゴンを作成したい、この1のように似:のOpenGL:複雑かつ平滑化ポリゴンに私のOpenGLのプロジェクトで

enter image description here

問題は、平滑化処理で主に依存しています。ここまでの手順は、まず、ランダムに配置された頂点を持つVBOを作成することです。

次に、(私はプログラマブル関数パイプラインを使用しています)私のフラグメントシェーダでは、スムージングプロセスが起こるはずです。言い換えれば、頂点間に先に定義された "線"から曲線を作成してください。

正確にここに問題があります:ポイントが「平滑化されたポリゴン」内にあるかどうかを調べる、複雑な数学的アルゴリズムにはあまり慣れていません。

答えて

3

最初に、フラグメントシェーダで実際にはできません。フラグメントシェーダは、スクリーンに書き込まれる前に、 "ピクセル"(基本的には正確には実際のピクセルではありません)の最終的な(ish)色を設定することに限定されています。曲線上に新しい点を作成することはできません。

This pageは、滑らかな曲線を作成するためのさまざまなアルゴリズムの概要を示しています。

一般的なアプローチは、ジオメトリシェーダを使用して複数のポイントを複数のポイントに分割し、それらを通常のポリゴンのようにレンダリングすることです。しかし、私は詳細を知らない。例えば、bezier geometry shaderのgoogle検索をお試しください。

待ち、私は嘘です。私はフラグメントシェイダーでそれを行うプログラムhereを見つけました。

+0

ありがとうございました!私が探していたものが見つかったと思います。http://code.google.com/p/victamin/downloads/detail?name=GPUBezier.zip – cafaxo

関連する問題