RedBook の NURBS の章は、ユーティリティ ライブラリを含め、非推奨であると示されています。「この機能の一部は GLU ライブラリの一部ですが、コア OpenGL ライブラリから削除された機能に依存しています。」
OpenGL 4.2 には実際に NURBS カーブとサーフェスを操作するための C++ ツールキットがないということですか? 商用のサードパーティ ツールキットがいくつかありますが、それらはクロスプラットフォームではありません (主に Windows)。
...?
OpenGL-3 以降では、ジオメトリと頂点シェーダーを自由に使用できます。OpenGL-4 では、テッセレーション シェーダーも提供されます。GPU で高速化された NURBS およびベジエ スプラインとサーフェスを実装するためのすべてを提供します。OpenGL-1.1 のエバリュエーターは、ほとんどのハードウェアで GPU アクセラレーションされたことはありません。したがって、実際にはそれらがなくてもよいでしょう。
シェーダーに NURBS またはベジェ エバリュエーターを実装し、頂点をサーフェス サンプリング ポイントとして送信するだけです。
Red Book に関するあなたの質問に関して、GLU ライブラリは OpenGL ARB によって公式に廃止されたのではなく、単に無視されました。ただし、GLU は、OpenGL 3.0 で廃止され、OpenGL 3.1 で削除された機能を使用していました: 即時モード レンダリング、ディスプレイ リスト、マトリックス スタックなどです。NURBS に固有のものとして、彼らはこれらの機能のいくつかを使用していました (OpenGL 実装に関連付けられた GLU ライブラリが GLU の SGI バージョンに基づいていたと仮定すると)。そのため、機能はコア コンテキストでは機能しません。これは、C++ ベースの GLU ライブラリーの欠如ではなく、GLU が最新の OpenGL から削除された機能を使用していたからです。
@datenwolf - そうではありません。GLU NURBS ライブラリは、OpenGL 頂点シェーダー パイプライン (つまり、頂点、テッセレーション、およびジオメトリ シェーディングのみ) を使用してすべてのケースで実装するのが難しいトリミング カーブをサポートしていました。具体的には、トリム カーブ クロッシングを考慮しながらワインディング ルールと正しいトリミングをサポートすることは、非常に困難です (計算シェーダーとフラグメント シェーダーでの凝った作業の組み合わせで可能になる場合があります)。アルファ テクスチャを使用してトリミングをハックすることもできますが、結果としてエイリアシングが発生する可能性がありますが、これで簡単に修正できます。