OpenGL®Sphereとは何ですか?
最も基本的なレベルのOpen GraphicsLibrary®(OpenGL®)球体は、頂点がすべて中心点から等距離にある一連の三角形または四角形で構成される3次元(3D)オブジェクトです。 つまり、OpenGL®の球体を任意の角度から見ると、アウトラインは視聴者に完全な円として表示されますが、照明とシェーディングはボリュームをよりボールのような外観にする可能性があります。 OpenGL®球体を作成するために使用される頂点の数は、実際の球体の近似でオブジェクトの滑らかさを決定し、12ポイント未満は球体とは見なされないオブジェクトを作成します。 球体は多くのグラフィカルアプリケーションおよびライブラリでシェイププリミティブと見なされますが、OpenGL®には球体をレンダリングする固有の機能がないため、OpenGL®ユーティリティツールキット(GLUT)などの補助ツールキットを使用してコードの記述を回避する必要があります手動で形状を生成します。
OpenGL®で頂点を扱う場合、ある程度の滑らかさで球を生成するために使用できるポイントの最小量は12で、20面体として知られる20の三角形の面を持つオブジェクトを作成します。 さらに処理することなく、この方法で構築されたOpenGL®球体は、エッジの周りに目に見える鋭い角を持ちます。これは、一部のアプリケーションでは受け入れられる場合があります。 より丸い球体を実現するには、各面をさらに細分化する必要があります。
二十面体を細分化して、含まれる頂点の数を増やし、より滑らかなOpenGL®球を形成するには、既存の各三角形の各エッジの中心に新しい頂点を作成する必要があります。 これは、各三角形の面に4つの三角形が含まれることを意味します。 細分化は必要なだけ続行できますが、指数関数的にポイントを追加すると、レンダリング時間が長くなり、翻訳が扱いにくくなる可能性があるオブジェクトをすばやく作成できます。
OpenGL®の球体は、頂点座標から簡単に計算できる表面法線など、プログラマーにいくつかの数学的な便利さを提供しますが、球体のテクスチャリングにはいくつかの複雑さがあります。 球体に投影された標準の2次元(2D)テクスチャを使用すると、球体の極に近い三角形の形状自体が圧縮されるため、テクスチャイメージの上部領域と下部領域が圧縮されます。 これを克服するには、キューブマッピングを使用するか、プログラマがオブジェクトのテクスチャ座標を手動で生成します。
OpenGL®スフィアを生成するためのユーティリティライブラリの使用に関する1つの要因に注意する必要があります。 GLUTまたは同様のツールキットによって生成されたスフィアは、OpenGL®自体内で変更、最適化、管理することが困難な場合があります。 このため、カスタム記述コードを使用してOpenGL®球体を生成すると、プログラム内で可能な限り最も効率的な方法で作成および使用できるため、有益な場合があります。