2

私はゲームプログラミングのコンテキストでOpenGLの使用法を学ぶことを楽しんでおり、小さな図形を作成することを試みました。シンプルなペイントのようなインターフェースで次のようなコードを生成するリソースやアプリはないかと思います。

glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINE_STRIP);
glVertex2f(1, 0);
glVertex2f(2, 3);
glVertex2f(4, 5);
glEnd();

形状を生成するための正しい寸法を考えて、正しい座標を考え出すのに苦労しています。

明確にするために、私は自由に何かを描画して、使用するのに適したコードを作成することを期待できるプログラムを探していません。必要な座標のセットを視覚的に表現および変更する方法です。

絵の具で形を描き、一点を基準にしたピクセル間の距離を測定することで、これをある程度解決しましたが、それほどエレガントではありません。

4

4 に答える 4

1

2D ジオメトリをアプリケーションにインポートする方法を探しているようです。私の意見では、最善のアプローチはコンテンツ パイプラインを開発することです。次のようになります。

  1. Google の Sketchup などの 3D モデリング プログラムでコンテンツを作成します。あなたの場合、ポリゴンを使用して 2D 形状を描画します。

  2. データを元の形式からターゲット アプリケーションが理解できる形式に変換するには、変換ツールが必要です。Sketchup からポリゴンと頂点のデータを取得する 1 つの方法は、Collada にエクスポートし、ツールで読み取って処理することです。(最も単純な形式は、三角形または線のリストです。)

  3. 変換ツールによって作成されたデータを読み取るジオメトリ ローダーをコードに記述します。頂点配列を使用してジオメトリを表示する OpenGL コードを記述する必要があります。

于 2010-07-26T17:20:19.190 に答える
0

どのようなライブラリを期待していますか?

drawSquare(dx,dy);? のようなもの drawCircle(半径);?

drawPoly(x1,y1,x2,y2....);?

それはglVertexとまったく同じではありませんが、名前が異なりますか? 抽象化はどこにありますか?

于 2010-01-29T02:34:07.557 に答える
0

使用する座標は、ビューポートの定義方法と操作している解像度によって異なります。実際、任意の座標系でマウス クリックの座標を収集し、それらの座標をOpenGL 座標。

于 2010-01-28T15:14:29.347 に答える
0

私はこれらの 1 つを作成しました... それはビットマップ イメージを取得し、そこからジオメトリを生成します。三角測量を調べてみてください。

最初のステップは、形状のエッジを生成し、それをピクセルから頂点とエッジに変換し、すべてのエッジ ピクセルを見つけてそれぞれに頂点を配置し、次に頂点間の距離、または (より良い) 勾配の差に基づいています。エッジ間で頂点をカリングし、メッシュのポリゴン数を減らします。

図形描画プログラムがピクセルではなく「ベクター グラフィックス」で動作する場合、つまり、点をプロットしてそれらの間に線を引く場合は、その最初のステップをスキップして、三角測量を行うだけで済みます。

2 番目のステップは、エッジと頂点が三角形分割になったら、三角形を生成するための簡単な方法です。たとえば、耳のクリッピングです。

使用する座標は?他の人が言ったように、それは完全にあなた次第です。単純にするために、Idはピクセル座標で動作します。

その後、必要に応じて拡大縮小および移動して、使用する形状を変換できます。

于 2010-01-29T08:03:38.010 に答える