PHIGS
PHIGS(Programmer's Hierarchical Interactive Graphics System、フィグス)とは、3次元コンピュータグラフィックスのレンダリングをおこなうための標準化されたAPIである。1990年代において3次元グラフィックスの標準とみなされた。機能と性能を兼ね備えたOpenGLの台頭によって事実上の標準は取って代わられ、現在においてPHIGSはあまり使われていない。
PHIGSは独立した実装(ディジタル・イクイップメント・コーポレーションのDEC PHIGS、IBMのgraPHIGS、サン・マイクロシステムズのSunPHIGSなど)においても存在し、X Window SystemにおいてもPEX(PHIGS Extension to X)を通じてサポートされている。PEXはXの拡張として構成されており、レンダリングのためにXサーバからPEXシステムへ転送されるコマンド群を追加する。PHIGSによって抽象化されるワークステーション資源は通常ウインドウを対象とするが、全画面やプリンタ出力デバイスへと転送することもできる。
PHIGSは1970年代後半におけるGraphical Kernel System(GKS)からの着想を取り込み1980年代に設計され、1989年にはANSI規格(ANSI X3.144-1988)、連邦情報処理標準(FIPS 153)、そしてISO規格(ISO/IEC 9592およびISO/IEC 9593)となった。早期の設計であるため、標準では基本的なジオメトリおよびメッシュ、基本的なグーローシェーディング、ドット、フォンシェーディングによるシーンのレンダリングといったごく基礎的な3次元グラフィックスのみがサポートされており、現代において標準的な機能と想定されるテクスチャマッピングはサポートされていない(ハードウェアがそのリアルタイム処理をサポートしていたとしても)。
技術的詳細
[編集]PHIGSの名に含まれる「hierarchical(階層的)」という言葉は、その特筆すべき1機能を表している。一般的なグラフィックスシステムとは異なり、PHIGSはシーングラフシステムを基礎標準の部分として含んでいる。モデルはCentralized Structure Store(CSS)と呼ばれる、描画プリミティブとそれらの属性(色、線スタイルほか)を含む「ワールド」を保持するデータベースにおいて構築される。PHIGSは抽象化されたワークステーションとして振る舞い、CSSは複数の表示領域において共有できる。
PHIGSを使って画面にグラフィックスを表示するには3つの手順を踏む。まずCSS内にモデルを構築し、次に抽象ワークステーションを作成して開き、最後にモデルを抽象ワークステーションに関連づける。ワークステーションはモデルを即時にレンダリングし、将来に渡ってモデルに加えられた変更はワークステーションの表示領域へ即座に反映される。
オリジナルのPHIGSは照明されたシーンをレンダリングする能力を欠いており、PHIGS+へと改められた。PHIGS+は基本的に同様の作法で動作するが、3次元シーンを照明する手段が加えられており、冗談半分にPHIGS PLUS("Plus Lumière Und Shading")とも呼ばれている。PHIGS+ではNURBS曲面のようなより高度なグラフィックスプリミティブも加えられている。
OpenGLの台頭とPHIGSの終焉
[編集]OpenGLはPHIGSとは異なり、レンダリングのために送信されたオブジェクトを保持しない、イミディエイト・モード(即時モード、直接モード)のレンダリングシステムである。モデルに変更が加えられた場合は、シーン全体をシステムへ再送信することで再レンダリングをおこなうため、プログラマの作業負担は大幅に増えている。簡素なプロジェクトにはPHIGSはより易しく負担が少ない。
しかしながら、OpenGLの低水準APIは、データをグラフィックスハードウェアへ送信する前にCPU側において前処理をしてレンダリング効率を大幅に向上させることを可能にした。例えば、各オブジェクトが実際のシーンにおいて可視であるか調べ、最終的に画面に映るオブジェクトのみを送信することで、カリング処理ができる。こうしたことはPHIGSにおいては非公開とされており、性能の最適化を難しくしている。
低性能なハードウェアシステムがかつてのものとなり、高性能なレンダリングの需要が増すにつれ、OpenGLがより強力な3次元プログラミングAPIとしてみなされ、PHIGSは使われなくなっていった。PEXプロトコルのバージョン6.0では他の3Dプログラミングモデルもサポートしているが、人気は回復していない。PEXはXFree86 4.2.x(2002年)では大部分が削除され、X11 R6.7.0(2004年4月)版のX Window Systemからは完全に削除されている[1]。
注釈・出典
[編集]参考文献
[編集]- comp.windows.x.pex FAQ(1994年3月28日)
- An Introduction to PHIGS(実質的にはPHIGS+)