●CGシステムと規格
リアルタイムで3次元CG(3DCG)を描画するには多大な計算量が必要となり、CPU(中央処理装置)だけで処理すると速度が遅くなるため、グラフィックス専用の描画装置が用いられます。この装置はビデオカード(ビデオボード、グラフィックカード)とよばれ、GPU(Graphics
processing Unit)という3DCG描画専用の演算装置(ビデオチップ)と専用のビデオメモリ
(VRAM)から構成されます。ビデオカードの性能は、画像処理速度や解像度、表現機能に直結するため、3DCGやVR用のパソコンを用意する際に、CPUの処理能力の高さやメインメモリと同等に重要な条件となります。
また、高速な描画を実現するには、GPUとCPU、メインメモリ間で高速にデータをやりとりする必要があります。この間でデータを転送するための伝送路(バス)には複数の規格があり、GPUの選択にはマザーボードが実装しているバスとの適合も条件となります。ビデオカード用の拡張バス規格の現在の主流はPCI
Express(PCIe)となっており、それまでのAGP 8x(8倍モード)の規格上転送速度2.13GB/secに対し、PCIe
16xで約4倍速になっています。AGPの前の主流であるPCI規格は32bitのもので133MB/secでした。3DCGやVR、ゲームの場合、CPUでユーザ入力処理や物理シミュレーションなどの処理を行い、グラフィックス描画は全てGPUで行うといった分担がなされます。
●3DCG用API
API (Application Program Interface)とは、OS(オペレーティングシステム)のインタフェースとしてアプリケーションから利用できるプログラムの集合体です。例えば、ファイル保存や文字表示のような各アプリケーション共通の機能が提供されることにより、ソフトウェア側でそれらの機能をプログラミングする手間がなくなります。APIは、ファイル制御、ウィンドウ制御、文字制御、画像処理など、OSや目的別に関数として提供されています。
このうち、3DCG用APIは、画面上でリアルタイムに3D形状を描画するために提供され、代表的なものとしてOpenGLとDirectXがあり、ゲームなどでも利用されています。
■OpenGL
SGI社(Silicon Graphics, Inc.)が開発したIRIS GLというグラフィックスライブラリをベースに改良され、UNIX、Windows、MacOSなど、プラットフォームに依存せず利用可能です。3DCG用APIで最も歴史があり、オープンソース化され、多くの3DCGソフトはOpenGLを採用しています。OpenGLのバージョンにより拡張された機能を使うには、ビデオカード、ソフトともに対応している必要があります。
■DirectX Graphics
Windows標準DirectXコンポーネントのうち、グラフィックス用のAPIがDirectX
Graphicsです。DirectXは、Microsoft社がサウンド処理や入出力処理なども含む総合的なマルチメディア処理用APIとして開発しています。3DCGを担うAPIはDirect3Dとなります。OpenGLと異なり、インタフェースとしての役割より、高速、連続描画性能に重点がおかれているため、ゲーム用途として多く利用されています。また、Direct3D
の品質を生かした3Dレンダリングソフトも登場しています。
OpenGLは映画の映像作成用に開発されてきた経緯から、高機能・高品質であることに重点が置かれています。そのため、OpenGLはDirectXより多彩な表現が可能であり、3DCG/CADやデータ可視化などの分野で多用されています。一方、DirectXはゲーム向けの特殊効果の機能を多く含み、スムーズに動作することから、現在ではWindowsの一般的なアプリケーションにも用いられるようになっています。両者は対立するものではなく、共存しており、用途による明確な区別は困難になってきています。
●並列コンピューティング
リアルタイム3DCGでの描画にかかる膨大な計算を高速に処理する方法の1つとして、並列処理(parallel
processing)があります。コンピュータ内部で複数の計算ユニットに処理を分散して割り当て、同時に計算、処理を行うことで、システム全体の処理性能を向上させます。
並列処理の代表的な手法として、1台のコンピュータに複数のマイクロプロセッサを搭載するマルチプロセッサ(multi-processor)や、1つのプロセッサに複数の処理装置を実装するマルチコア(multi-core)があります。
現在では、コンピュータ自体を複数接続して処理を分散する技術なども含め、並列コンピューティング(parallel
computing)ともよばれます。パソコンを複数接続して、1台のコンピュータのように機能させる技術はクラスタリング(clustering)といい、システムの信頼性や処理能力を向上させる手法として広く用いられています。
インターネットなどを利用して多数のコンピュータを接続し、大規模に処理を分散して進める方式はグリッドコンピューティング(grid
computing)あるいは分散コンピューティング(distributed computing)とよばれ、世界規模で運営されるプロジェクトも存在します。
並列化に伴う複雑な処理などの影響により、プロセッサ数の増加に比例して単純に性能が向上するわけではありませんが、今後も処理能力向上を進めるためには並列コンピューティングの活用が不可欠と予想されています。このため、並列コンピューティングに適したプログラミングやソフトウェアに関する研究、開発の重要性が増しています。
|
参考文献: 『コンピュータグラフィックス』、CG-ARTS協会(財団法人画像情報教育振興協会) |
|
(Up&Coming '10 新春号掲載) |
|
|
>> 製品総合カタログ
>> プレミアム会員サービス
>> ファイナンシャルサポート
|