2

私は CAD 開発の初心者で、OpenGL について知りたいと思っています。私の主な目的は、円錐曲線、サイクロイド、エピサイクロイド、ハイポサイクロイド、インボリュートなどを表現することです。三角法を使用してそれらを直接表現できますか、またはこれらの曲線を B スプラインに変換する必要がありますか? 実際、私は現在カーネルを開発しており、上記の曲線を表示できないようにカーネルを開発したいと考えています(グラフィカルに表現できない場合、カーネルでこれらの曲線をサポートしても意味がありません)。私の質問が本当にばかげている場合は、ご容赦ください。ここで検索してみましたが、役に立つものは見つかりませんでした。

4

2 に答える 2

5

OpenGL は、エバリュエーターを使用してベジエ曲線とサーフェスを直接レンダリングでき、GLU API を使用して NURBS をレンダリングすることもできます。詳細については、OpenGL プログラミング ガイドを参照してください。したがって、これらの曲線と曲面をこの形に変換できます。

ただし、これらの機能は非推奨 (新しい OpenGL バージョンのコアから削除) であり、現在ではハードウェアではなくソフトウェアで実装される可能性が高いため、これらの機能を使用しないことを強くお勧めします。

代わりに、指定されたサンプリング レートで対応する方程式を評価し、単純な頂点配列 (場合によってはインデックス配列) を生成する、そのような曲線や曲面に対して独自の評価ルーチンを実装する必要があります。これにより、VBO (最新の OpenGL で何かをレンダリングする唯一の方法) を使用して標準のライン ストリップまたは三角形のメッシュとしてレンダリングできるため、将来に備えることができます。

また、一般的な頂点配列も Direct3D などを使用してレンダリングできるため、API に依存しません。このようにして、描画呼び出しで CAD カーネルを汚染することはありません。必要なのは、パラメトリック カーブとサーフェスを頂点の配列 (場合によってはインデックス) に変換する関数だけであり、カーネルのクライアント/ユーザーは、好みの API を使用してこれらを描画する必要があります。

于 2011-10-31T12:18:51.297 に答える
3

私が間違っていなければ、OpenGL は平らなポリゴンでしか動作しません。それでも、GLUTライブラリに前述の図を描画する方法があるかどうかを確認するか、それらの図の.objをグーグルで検索し、それらを目的の位置にスケーリング、回転、および変換することができます.

于 2011-10-31T11:57:18.013 に答える