← ホームへ戻る

PHIGS3Dグラフィックスの先駆けとなった階層型API標準

🗓 2026年8月13日

現代の高度な3Dレンダリング技術の背景には、1980年代から90年代初頭にかけて業界標準として君臨したPHIGS(Programmer's Hierarchical Interactive Graphics System)というAPIが存在します。PHIGSは、複雑な3Dシーンを効率的に管理するための階層構造を導入し、当時のワークステーションにおけるグラフィックス開発の基盤となりました。

Key Facts

  • 定義: 1980年代から90年代初頭に主流だった3Dコンピュータグラフィックス用のAPI標準。
  • 最大の特徴: 「シーングラフ」という概念を標準に組み込み、オブジェクトを階層的に管理できる点。
  • 標準化団体: ANSI、FIPS、ISO、IECなどの主要機関によって策定された。
  • 後継の流れ: より低レイヤーで高性能な制御が可能なOpenGLの台頭により、次第に利用されなくなった。
  • 拡張版: 照明効果やNURBS曲面を追加した「PHIGS+」へと発展した。

PHIGSの基本概念と動作メカニズム

PHIGSの最大の特徴は、その名称にある「Hierarchical(階層的)」という点にあります。多くのグラフィックスシステムとは異なり、PHIGSはシーングラフ(Scene Graph)という仕組みを標準仕様として備えていました。

具体的には、CSS(Centralized Structure Store)と呼ばれるデータベースに、描画プリミティブ(基本図形)とその属性(色や線のスタイルなど)をまとめて保存し、一つの「世界」として構築します。このCSSは複数の仮想デバイス(ワークステーション)で共有でき、それぞれのワークステーション内でさらに複数のビュー(視点)を持つことが可能でした。

描画プロセスは以下の3ステップで進行します:

  1. CSS内に3Dモデルを構築する。
  2. ワークステーションを作成し、それをオープンにする。
  3. 構築したモデルをワークステーションに接続する。
この仕組みにより、モデルに変更を加えると、それを参照しているすべてのビューに即座に反映されるという効率的な運用が可能でした。

技術的な進化とPHIGS+の登場

初期のPHIGSは、1970年代後半の2D規格であるGKS(Graphical Kernel System)の思想を継承して設計されました。そのため、当初は基本的なジオメトリやメッシュ、およびシンプルなシェーディング(グーロー、ドット、フォン)などの基礎的な機能に限定されていました。

その後、ライティング機能や面の塗りつぶし手法を強化したPHIGS+が登場しました。この拡張版では、より高度な数学的表現であるNURBS(非一様有理Bスプライン)曲面などのプリミティブが導入されました。「PLUS」という名称は、「Plus Lumière Und Surfaces(光と面の追加)」という、当時の進歩を象徴する遊び心のある略称に由来しています。

OpenGLへの移行と衰退の理由

1990年代半ばになると、PHIGSに代わってOpenGLが急速に普及しました。この二つのシステムは、設計思想が根本的に異なります。PHIGSが状態を保持する階層型であったのに対し、OpenGLはイミディエイトモード(即時モード)を採用しており、一度描画命令を送るとそのデータはシステムから消えるという仕組みでした。

単純なプロジェクトではPHIGSの方が扱いやすかったものの、パフォーマンスの面でOpenGLが圧倒しました。OpenGLの低レイヤーAPIは、プログラマがCPU側でデータの選別(カリングなど)を行い、本当に必要なデータだけをグラフィックスエンジンに送るという最適化を可能にしたためです。一方、PHIGSではこうした最適化プロセスが内部に隠蔽されており、個別のチューニングが困難でした。

結果として、リアルタイムレンダリングへの要求が高まった時代にPHIGSは取り残されました。X Window SystemでPHIGSをサポートしていたPEX(PHIGS Extension to X)も、2004年のX11R6.7.0で完全に削除され、その歴史に幕を閉じました。

PHIGS規格の概要まとめ

PHIGS規格の主要データ
項目 詳細内容
策定開始年 1988年
主要規格番号 ISO/IEC 9592, ISO/IEC 9593
対応言語 FORTRAN, ADA, C
主要ベンダー実装 DEC PHIGS, graPHIGS (IBM), SunPHIGS (Sun)
主な機能 シーングラフ(CSS), 階層構造管理, 基本的な3Dシェーディング

Frequently Asked Questions

PHIGSとOpenGLの決定的な違いは何ですか?

PHIGSはモデルをデータベース(CSS)に保持して管理する「階層型」のシステムでしたが、OpenGLは描画命令を逐次的に送る「イミディエイトモード」のシステムです。これにより、OpenGLはハードウェアに近いレベルでの最適化が可能となり、高いパフォーマンスを実現しました。

PHIGS+で追加された主な機能は何ですか?

主にライティング(照明)機能と、面の塗りつぶし手法が追加されました。また、より複雑な曲面を表現できるNURBS(非一様有理Bスプライン)などの高度なグラフィックスプリミティブが導入されたことが大きな特徴です。

PEXとはどのような役割を持っていましたか?

PEXは「PHIGS Extension to X」の略で、X Window System上でPHIGSを利用するための拡張機能でした。XサーバーからPEXシステムへコマンドを転送することで、ウィンドウ内や全画面、あるいはプリンタ出力デバイスへのレンダリングを可能にしていました。

なぜPHIGSはテクスチャマッピングをサポートしなかったのですか?

PHIGSが設計された時代には、テクスチャマッピングをリアルタイムで処理できるハードウェア性能が一般的ではありませんでした。そのため、規格として盛り込まれる前に、より柔軟で強力なOpenGLなどの新しいAPIに主役が交代してしまったためです。

References

  1. PEX was originally known as the "PHIGS Extension to X"; subsequently referred to as "X3d", whose letters form a rotational variant on the letters "P-E-X"