コンピュータグラフィックス(Computer Graphics 略してCG)という言葉はCGを使って作成されたカラーの映像や絵などの素晴らしさを介して人々を引きつけて止まない何かを持っているように思える。私はリモートセンシング画像の処理と解析を研究の専門分野としており,コンピュータグラフィックスの専門家ではないが,4年ほど前からこの分野に興味を持ち,卒業研究で研究室へやってくる学生諸君と一緒にCGの画像の作成をしている。CGに興味を抱いた動機は人工衛星が撮影した山岳地帯の画像を解析する必要にせまられ,対象山岳地帯を標高データに基づいて三次元表示するとどうなるのか,ぜひ山岳景観のシミュレーション画像を作成したいと考えた事にある。対象とする物体を三次元表示する時,一番問題となるのは物体形状の三次元座標データをいかに取得するかという事にある。三次元座標の計測装置があれば問題は簡単であるが高価で手が出ない。従って,どうしても平面,球,楕円球といった形状が方程式で記述可能な物体に限られてくることになりがちである。CGに取り組みだした頃の球体のレイ・トレーシングによる画像を図1,2,3に示す。これらのCG画像はNECのPC9801VMにサピエンス社のフレーム・バッファー・ボードを載せて1670万色のフルーカラーが出せるようにして描いたものである。パソコンに15万円ほど余分に投資するだけでフル・カラー・ボードが手にはいり,リアルなCGが楽しめるという意味では価値があると思う。レイ・トレーシング(Ray Tracing 光線追跡)の原理は単純で,まず視点と物体と光源の位置を設定し,視点と物体の間にスクリーンを想定し,視点とスクリーン上の画素(ピクセル)を結ぶ光線(視線)を考える事をする。この視線の方向に物体が有るか無いかを検出し,もし物体が存在しない時は背景の色をスクリーーン上の画素に割り付ける。もし物体が有れば視線と物体の交点の座標を計算する。複数個の物体があれば,すべての物体と視線との交点を計算し,最も視点との距離が短い交点が視点から見える物体上の点なので,この点の輝度値を求めてスクリーン上の画素に輝度値に対応する色を割り当てる事を行う。画素の輝度値はランベルト法則などを仮定して求めるのが簡単である。スクリーン上の全画素について,上記に述べた事柄を繰り返し行えば光線追跡法による物体のCG映像が作成できる。パソコン・モニターの画素サイズにスクリーンを設定すれば640×400ピクセル個の1ピクセル毎の光線に関して繰り返し計算をする必要があり,時間は大変かかる。しかし,プログラム的には200ステップ程度の非常に簡単なもので,リアルな物体表示が可能となる利点がある。レイ・トレーシング手法はこのように原理的には極めて単純であるが,物体が複数個存在し,お互いの影や反射による映り込みや反射に加えて屈折までを考慮する必要のある半透明物体の光線追跡をする必要があるときは,最終結果が表示されるまでに非常に長い時間がかかる。PC9801のようなパソコンでは数値演算プロセッサーを使用しても,1枚の画像ができるまでに24時間とか,36時間かかるという事は決して珍しい事ではない。計算を短縮するには分解能を落としてピクセルサイズを少なくすれば良いが,その時は見た目が粗く不自然な画像となってしまうが,これは仕方のない事である。
次にパソコンでのCG画像からワークステーション環境で用いられている三次元グラフィックスの標準の一つであるPHIGSに話題を移す事にする。単にカラー・モニター上にCG画像を表示するだけならモニター・スクリーンの任意の位置(x,y)にあるピクセルに赤(R),緑(G),青(B)の各色256階調の24ビットのフルーカラーで色を出力出来る機能,即ちWrite Pixel(x,y,R,G,B)の命令さえあれば十分である(図1から図3は基本的にはこの機能しか使っていない)。しかし,少し本格的なグラフィックスのアプリケーションを開発しようとするとこれでは不十分である。現在三次元グラフィックスの標準として代表的なものはアメリカで作られたPHIGS(Programmers Hierarchical Interactive Graphics Standard)システムとドイツで作られたGKS-3D(Graphical Kernal System)システムの二つがある。いずれも出力装置に依存しないで(Device Independent)に,二次元及び三次元グラフィックスに必要な各種の機能をサポートする為に考案されたサブルーチン・パッケージである。PHIGSはGKSの多くの概念を利用し,その上に階層的なグラフィックス・データの定義,編集する機能や表示を制御する機能をサポートしており対話性に優れたシステムである。私の研究室で利用しているIBM5080グラフィック端末はホスト・マシンからgraPHIGS(IBMがサポートするPHIGS)パッケージを呼び出せるので,これを用いてリモート・センシング画像解析システムを開発している。PHIGSで使われる図形の単位はストラクチャー(Structure 構造)と呼ばれ,その要素には出力プリミティブ,属性,モデリング変換,ビュー選択,別の構造の展開などがある。出力プリミティブとしては7種あり,折れ線,多角形,ポリマーカー記号,ピクセル,幾何学的文字,アノテーション文字である。これらの出力プリミティブに対して色,線種,キテスチャー・パターンなどの属性が定義できる。PHIGSは複雑な物体を階層構造を利用して定義可能なので,例えばテーブルをというストラクチャーを定義するときは,まずあらかじめモデリング座標で直方体と脚を構造として定義しておき,これらのストラクチャーをX,Y,Zの任意の方向に拡大・縮小して望ましい形に加工し,世界座標系内でテーブル板と4本の脚に合成配置してテーブルという新しい1つのストラクチャーを定義する方法を採用する事ができる。こうして作成したストラクチヤーをコピーしたり,回転,拡大,縮小,位置,移動したりという三次元座標変換や,複数のスクリーンウインドーを開き,そこに色々なストラクチャーを表示させたりなど各種の機能がサブルーチンコールでの形で実現できる。図4,5,6はロケータ人力装置(パソコンのマウスに対応する装置)を用いて任意の曲線を描き,それをY軸について回転させる事により,三次元の物体の座標値を生成し,ワイヤー・フレーム表示させたり,物体表面の4角形毎に陰影(Shading)付けをするアプリケーション・プログラムを実行させた例である。この例ではバリュエータ装置(入力装置の一種で連続的な値をダイヤル回転により入力する)の複数個のダイヤルを回す事によりX,Y,Z軸についての回転,拡大・縮小がリアル・タイムに実行できる。図7,8は複数のウインドーを開き二次元のピクセル・プリミティブから構成される異なる図形ストラクチャーを表示したものである。これらはリモート・センシング画像解析システムを実行したときの対話画面の例で,図7は画像データの輝度レベル値にオペレーターが色を割り当てる為のカラー・テーブル作成メニュー画面であり,図8はリモートーセンシング画像の幾何学的歪補正を対話的に行うための表示画面である。1024×1024画素の範囲の領域内での画素表示域の移動,選択領域の拡大表示などのメニュー選択が可能である。このように大きい画面サイズの個々の画素について演算処理を施し,また瞬時ではないにしてもある程度の短い時間でまた表示に戻れるリアルタイム性が要求される対話型のアプリケーションーシステムには,このPHIGSのような各種のグラフィック機能を持つ計算機環境は不可欠であると思う。
ここで表題に関する山岳景観の表示システムについて述べる事にする。前に述べたが,山岳景観を表示する事自体はあまり問題はない,即ち隠面処理をして山岳表面を画素単位で陰影づけるか,細かい面単位で陰影づけるかだけの問題である。そのためには光線追跡法やZバッファー法などを使用すれば良い。一番の問題は山岳形状の三次元座標をどう作成するかである。昨年度の卒業研究ではパソコンにフルカラーで図面に入力可能なスキャナーを接続し,地形図をR,G,B各色256階調で読み取り,等高線データを作成,これを加工して自動的に三次元座標値を生成,これに基づき山岳景観をシミュレーション表示するシステム開発をした。このシステムで行う処理は以下のようである。スキャナーで地形図を読み取るといらない文字や数字,記号も同時に読み取られてしまうので,これら雑音となるものと等高線との微妙なR,G,Bの階調の違いを利用して等高線だけを検出する事を最初に行い,次に等高線の二値化,細線化処理を行う。この後,文字などを抜いた事などによる等高線の途切れ箇所をマウスで選び拡大表示して対話的につなぐ処理をする。次に表示画面の等高線の標高のうち最低と最高のものをマウスで選びその標高値を人力する事を行う。後の等高線の標高は自動的に標高が増加しているか低下しているかを判定して20mの精度で計算機がつけてくれる。そして標高に対応したカラー・パレットがあらかじめ設定してあるので,それによって等高線と等高線の間に色が塗られる。この後,画像に列方向と行方向に格子を発生させて格子の交点の色を検出して格子点での標高データが作成される事になる。こうして作成した対象とする山岳地帯の三次元データを使用して山岳景観画像を表示する事を行うのである。表示は画素単位とワイヤー・フレーム表示の後,各小領域単位の2通りの色付けが可能である。図9から図13はこのシステムを実行した時の例である。このシステムはC言語で書かれ,全体のプログラム・ステップ数は4000ステップ程あり,かなりの労作であり,これを作成した卒研生の健闘に敬意を表したい。最後にもう少し大きい領域での三次元景観の例を示す。図14は能登半島を輪島の方向から眺めた景観であり,図15はNOAA衛星が撮影した可視チャンネル・データ(陸域抽出に使用)と赤外チャンネルの温度データ(雲の温度からその高度を推定)を使って九州・四国地方上空にかかる雲の景観をワイヤー・フレーム表示したものである。以上あまりまとまりのない内容になってしまったが,パソコン環境と大型計算機環境とで私の研究室でやっている三次元グラフィックスに関係した事柄について紹介を行ってみたものである。