(57)【特許請求の範囲】
【請求項１】
複数の点から構成される物体の各点の３次元座標及び上記物体を照射する光源に基づく複数の画像情報を３つ１組として記憶する記憶手段と、
上記記憶手段に記憶される３つ１組の複数の画像情報を用いて、上記物体の各点の３次元座標を透視変換した２次元座標値及び表示情報を算出する演算手段と、
上記３つ１組の複数の画像情報を上記記憶手段に記憶させ、上記記憶手段から上記３つ１組の複数の画像情報を読み出して上記演算手段で演算を行うように制御する制御手段とを備えて成ることを特徴とする画像情報処理装置。
【請求項２】
上記３つ１組の画像情報は、３行３列のマトリクスとして構成されるか、又は３つの３次元ベクトルから成る３行３列のベクトルセットとして構成されることを特徴とする請求項１記載の画像情報処理装置。
【請求項３】
上記光源は３つであり、上記表示情報はＲ、Ｇ、Ｂの各成分から成ることを特徴とする請求項１記載の画像情報処理装置。
【請求項４】
上記演算手段では、上記３つ１組の複数の画像情報を用いて、３つの処理を同時に行うことを特徴とする請求項１記載の画像情報処理装置。
【請求項５】
複数の点から構成される物体の各点の３次元座標及び上記物体を照射する光源に基づく複数の画像情報を３つ１組として記憶し、
上記記憶される３つ１組の複数の画像情報を用いて、上記物体の各点の３次元座標を透視変換した２次元座標値及び表示情報を算出することを特徴とする画像情報処理方法。
【請求項６】
上記３つ１組の画像情報は、３行３列のマトリクスとして構成されるか、又は３つの３次元ベクトルから成る３行３列のベクトルセットとして構成されることを特徴とする請求項５記載の画像情報処理方法。
【請求項７】
上記光源は３つであり、上記表示情報はＲ、Ｇ、Ｂの各成分から成ることを特徴とする請求項５記載の画像情報処理方法。
【請求項８】
上記３つ１組の画像情報を用いて、３つの処理を同時に行うことを特徴とする請求項５記載の画像情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元画像の画像情報の処理を行う画像情報処理装置及び画像情報処理方法に関する。
【０００２】
【従来の技術】
従来、ゲーム機やパーソナルコンピュータあるいはグラフィックコンピュータ等で生成される画像としては、３次元画像が増加している。
【０００３】
この３次元画像は、表示する画像と同じ３次元画像又は疑似的な３次元画像を生成して表示する。この疑似的な３次元画像を生成する場合には、例えば、表示する物体をいくつかの方向から見た画像を用意しておき、視点の変化等に応じてこれらの複数画像の内から１つを選択して表示したり、２次元の画像を奥行き方向に重ねたりする。
【０００４】
このようにして３次元画像を表示するには、大量の画像情報を用いて、大量の計算処理を高速に行う必要がある。
【０００５】
従って、上述の画像処理を行うために、専用の演算器を用いている。この演算器としては、例えば、ディジタル・シグナル・プロセッサいわゆるＤＳＰやコプロセッサ等が用いられる。これらの演算器は、高速な計算処理を行うことができるように、複数の演算素子を備えたり、複数の命令をオーバラップさせながら信号処理を行うパイプライン構造を備えたりして、画像情報の並列処理を行うように構成されている。
【０００６】
【発明が解決しようとする課題】
ところで、上述の演算器を汎用的に設計する場合には、パイプライン構造をフレキシブルにする必要がある。これによって、演算器のコストは高くなり、大きな並列処理を行うように演算器を設計することは困難である。
【０００７】
そこで、本発明は上述の実情に鑑み、低いコストで、効率良く、高速に画像情報の処理を行うことができる画像情報処理装置及び画像情報処理方法を提供するものである。
【０００８】
【課題を解決するための手段】
本発明に係る画像情報処理装置は、記憶手段に記憶される、複数の点から構成される物体の各点の３次元座標及び上記物体を照射する光源に基づく３つ１組の複数の画像情報を用いて、演算手段で上記物体の各点の３次元座標を透視変換した２次元座標値及び表示情報を算出するように、制御手段で制御することにより、３次元の物体を２次元の画面に表示する際の２次元の画像情報を生成する。
【０００９】
また、本発明に係る画像情報処理方法は、複数の点から構成される物体の各点の３次元座標及び上記物体を照射する光源に基づく３つ１組の複数の画像情報を用いて、上記物体の各点の３次元座標を透視変換した２次元座標値及び表示情報を算出するように制御することにより、３次元の物体を２次元の画面に表示する際の２次元の画像情報を生成する。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。図１には、本発明に係る画像情報処理装置の概略的な構成図を示す。
【００１１】
この画像情報処理装置は、複数の点から構成される物体の各点の３次元座標及び上記物体を照射する光源に基づく複数の画像情報を３つ１組として記憶する記憶手段であるレジスタ部２１、２２と、上記レジスタ部２１、２２に記憶される３つ１組の複数の画像情報を用いて、上記物体の各点の２次元座標値及び表示情報を算出する演算手段であるマトリクス演算部２０と、上記３つ１組の画像情報を上記レジスタ部２１、２２に記憶させ、上記レジスタ部２１、２２から上記記憶した３つ１組の複数の画像情報を読み出して上記マトリクス演算部２０で演算を行うように制御する制御手段である制御部１３とを備えて成る。
【００１２】
また、上記画像情報処理装置は、外部バスであるメインバス６に接続されている。さらに、このメインバス６には、図２に示すように、中央処理装置であるＣＰＵ１、メインメモリ３、ラスタプロセッサ４が接続された構成をもつことにより、画像生成装置が構成される。この画像生成装置において、画像情報処理装置は、ＣＰＵ１のコプロセッサとして構成される。
【００１３】
この画像生成装置では、動作プログラムや外部から入力される操作等に基づいて、ＣＰＵ１及び画像情報処理装置２に命令が送られる。ＣＰＵ１及び画像情報処理装置２では、送られた命令を解釈して、この解釈による処理動作を行う。このとき、上記命令が画像情報処理装置２において画像情報の処理を行う命令であるならば、ＣＰＵ１によって、メインメモリ３に記憶されている、物体を構成する複数の点の３次元座標や表示情報等の画像情報が、メインバス６を介して画像情報処理装置２に送られる。尚、物体を構成する複数の点の３次元座標や表示情報等の画像情報については、後で詳細に説明する。
【００１４】
この画像情報処理装置２では、送られた命令は、図１のバスインターフェイスユニット１１を介して命令解釈部１２に送られる。この命令解釈部１２では、バスインターフェイスユニット１２からの命令が、どのような演算処理を行う命令であるのかが判別されて、制御部１３に送られる。また、この画像情報処理装置２には、ＣＰＵ１の制御により、メインバス６を介してメインメモリ３から読み出された３次元座標や表示情報等の画像情報が送られている。この３次元座標や表示情報等の画像情報は、バスインターフェイスユニット１１からマトリクス演算部２０に送られる。
【００１５】
ここで、このマトリクス演算部２０は、制御部１３によって制御されるものである。この制御部１３からの制御によって、上記マトリクス演算部２０に送られる３次元座標や表示情報等の画像情報は、レジスタ部２１、２２に記憶される。そして、制御部１３からの制御によって、レジスタ部２１、２２に記憶された３次元座標や表示情報等の画像情報が読み出され、この読み出された３次元座標や表示情報等の画像情報は、上記内部バス２５1とパラレルな内部バス２５2、２５3を介して演算器３０1、３０2、３０3に送られ、それぞれ演算処理が行われる。これにより、３次元の物体を２次元の画面に表示するときの、物体を構成する複数の点の２次元座標値及び表示情報が算出される。
【００１６】
さらに、この算出された２次元座標値及び表示情報は、制御部１３からの制御により、内部バス２５1を介してバスインターフェイスユニット１１に送られた後に、メインバス６を介して画像生成装置に送られる。この画像生成装置では、ＣＰＵ１の制御により、送られた２次元座標値及び表示情報がラスタプロセッサ８に送られる。このラスタプロセッサ８では、送られた物体の２次元座標値及び表示情報を用いて、２次元の画面に表示される３次元画像をビデオＲＡＭ９に描画して生成する。この生成された３次元画像は、外部の２次元の画面を備える表示装置において表示される。
【００１７】
図２の画像情報処理装置では、物体を構成する複数の点の３次元座標及び表示情報を３つ１組とし、レジスタ部２１、２２に記憶する。このレジスタ部２１、２２は、表１及び表２に示すものである。
【００１８】
【表１】
0003649478.tif 000002
【００１９】
【表２】
0003649478.tif 000003
【００２０】
このように、表１及び表２に示す２つのレジスタ群は、横の１行に３つのレジスタを持ち、これら３つのレジスタの値が１組と成ったものが３列、即ち３組から成る、３行３列（３×３）のマトリクスの構成をとる。具体的には、表１に示すレジスタ部２１は３つのレジスタ群ＭＴ1、ＭＴ2、ＭＴ3から成り、各レジスタ群ＭＴ1、ＭＴ2、ＭＴ3をそれぞれ構成する９つのレジスタには、ベクトルの成分ではなく、スカラ値が記憶される。また、表２に示すレジスタ部２２は３つのレジスタ群ＶＴ1、ＶＴ2、ＶＴ3から成り、各レジスタ群ＶＴ1、ＶＴ2、ＶＴ3をそれぞれ構成する９つのレジスタには３つの３次元ベクトルの成分が記憶される。
【００２１】
ここで、画像情報処理装置２における、２次元の画面に表示される物体の画像の情報の処理について具体的に説明する前に、本発明において物体を２次元の画面に表示するための画像情報の基本的な演算処理について説明する。
【００２２】
３次元を表す座標系には、３次元の物体そのものに関する形状や寸法を表現する物体座標系いわゆるローカル座標系、３次元の物体を空間に配置したときの物体の位置を示す世界座標系いわゆるワールド座標系、及びスクリーン上に表示した３次元の物体を表現するための、視点を原点（０，０，０）とする視点座標系いわゆるスクリーン座標系がある。ローカル座標系で表された物体を画像として表示するには、３次元から２次元への投影変換を行う。この投影変換は、３行３列（３×３）の回転マトリクスによる乗算と３次元の平行移動ベクトルの加算とにより実現する。
【００２３】
また、スクリーン座標系において描画される３次元の物体は、基本図形である小さな多角形、いわゆるポリゴンを用いて表示される。このポリゴンの形、位置、向き、色、模様等が、画像を生成するための画像データいわゆるポリゴンデータとして与えられる。ポリゴンの形、位置、向きは、そのポリゴンの頂点の座標によって決まる。ここでは、説明を簡略化するために、ポリゴンを三角形として、以下に説明する。
【００２４】
通常、図３のＡに示すように、物体１０１を構成するポリゴンの各頂点の座標は、ローカル座標系で表される。このローカル座標系で表される物体１０１をスクリーン上に表示するためには、先ず、物体１０１を表すローカル座標系における座標を、図３のＢのワールド座標系における座標に変換する。ローカル座標系における物体１０１の回転方向をＬＷとすると、物体１０１の座標をローカル座標系からワールド座標系に変換するローカル／ワールド座標変換マトリクスは、以下の（１）式により求められる。
【００２５】
【数１】
0003649478.tif 000004
【００２６】
この（１）式で求められるローカル／ワールド座標変換マトリクスと、（ＴＬx,ＴＬy，ＴＬz）の成分から成る位置のベクトルＴＬとを乗算する、以下の（２）式により、物体１０１を表す座標は、図３のＡのローカル座標系から図３のＢのワールド座標系ＬＺに変換される。
【００２７】
【数２】
0003649478.tif 000005
【００２８】
このように、３次元内での物体の運動及び位置は、行列とベクトルとのセットで表現する。
【００２９】
次に、図３のＢのワールド座標系ＬＺをスクリーン座標系ＷＺに変換する。このとき、ワールド座標系における物体１０１の回転方向をＷＳとすると、物体１０１の座標をワールド座標系からスクリーン座標系に変換するワールド／スクリーン座標変換マトリクスは、以下の（３）式により求められる。
【００３０】
【数３】
0003649478.tif 000006
【００３１】
この（３）式で求められるワールド／スクリーン座標変換マトリクスと、（ＴＷx,ＴＷy，ＴＷz）の成分から成る位置のベクトルＴＷとを乗算する、以下の（４）式により、物体１０１を表す座標は、図３のＢのワールド座標系ＷＺからスクリーン座標系ＷＺに変換される。このスクリーン座標系ＷＺを拡大したものを図３のＣに示す。
【００３２】
【数４】
0003649478.tif 000007
【００３３】
ここで、図３のＣ（ａ）は、スクリーン座標系の斜視図であり、図３のＣ（ｂ）は、スクリーン座標系の上面図である。この図３のＣ（ｂ）では、原点である視点を例えばＱとするとき、この視点Ｑからの物体１０１の距離をｈとしている。この距離ｈの位置に、図３のＤに示すスクリーンが配置される。
【００３４】
ここで、ローカル座標系からスクリーン座標系への変換における物体１０１を構成するポリゴンの回転マトリクスは、Ｘ、Ｙ、Ｚの各方向への回転に基づき、（１）、（３）式により求められる２つの座標変換マトリクスを乗算する、以下の（５）式により得られる。
【００３５】
【数５】
0003649478.tif 000008
【００３６】
また、ローカル座標系からワールド座標系に変換されるときの視点の座標を（ＴＬx，ＴＬy，ＴＬz）の成分から成るベクトルＴＬ、ワールド座標系からスクリーン座標系に変換されるときの視点の座標を（ＴＷx，ＴＷy，ＴＷz）の成分から成るベクトルＴＷとするときに、ローカル座標系からスクリーン座標系への変換における物体１０１を構成するポリゴンの各点の視点の座標のベクトルをＴｒをすると、この視点の座標のベクトルＴｒの成分は、（３）式で求められるワールド／スクリーン座標変換マトリクスにベクトルＴＬを乗算して、ベクトルＴＷを加算する、以下の（６）式により得られる。
【００３７】
【数６】
0003649478.tif 000009
【００３８】
これにより、例えば物体１０１を構成するポリゴンの３頂点をＶ0、Ｖ1、Ｖ2として、これら３頂点の３次元の頂点座標を（ＶＸn，ＶＹn，ＶＺn）とすると、（５）式により求められる回転マトリクスに点Ｖの頂点座標を乗算し、（６）式により求められる視点の座標ベクトルＴｒを加算する、以下の（７）式により、物体１０１を構成する点をローカル座標系からスクリーン座標系に変換した３次元座標値が得られる。
【００３９】
【数７】
0003649478.tif 000010
【００４０】
この（７）式で得られる３次元座標値は、物体がスクリーン座標系でどういう３次元の位置にあるかを示すものである。また、ｎは変数であり、後述するように、０〜２までの値を取る。
【００４１】
さらに、（７）式で得られた３次元座標値を用いて、（８）、（９）式に示す演算により、３次元から２次元への透視変換を行う。即ち、図３のＤの２次元のスクリーンに投影される物体の２次元における座標値を求める。
【００４２】
【数８】
0003649478.tif 000011
【００４３】
尚、（８）、（９）式に用いられる値ＯＦＸ、ＯＦＹは、２次元の座標で、位置が移動したときのＸ方向及びＹ方向のオフセット値をそれぞれ表す。
【００４４】
このように、物体を構成する複数の点について、３行３列（３×３）のマトリクスの３次元座標値を用いて、２次元のスクリーンに投影する２次元座標値を求める座標計算を行い、これにより求めた複数の２次元座標値を図３のＤのスクリーン上に配置することにより、図３のＥの２次元座標系に、物体１０１の３次元画像を生成して表示することができる。
【００４５】
また、実際の物体は面で構成されており、この面の明るさは、光源からの光線の当たり具合によって変化する。この面への光線の当たり具合、即ち３次元の物体に光を当てたときにできる陰影は、光源や物体の位置移動に応じて逐次計算して求め、この計算結果を用いて面の明るさを変化させる必要がある。この面の陰影を計算する計算方法は光源計算と呼ばれ、この光源計算を行うことで、物体を立体的に見せることができる。
【００４６】
この光源計算には種々の方法があるが、この実施の形態の画像情報処理装置では、フラットシェーディング、グーローシェーディング、及びデプスキューイングの３つの方法を用いている。フラットシェーディングは、ポリゴン毎に１個の法線ベクトルを割り当て、光源ベクトルとの内積によってそのポリゴンの色や明るさを決める方法であり、グーローシェーディングは、ポリゴンの頂点毎に法線ベクトルを割り当て、光源ベクトルとの内積によってその頂点の色や明るさを決定し、さらに、その色や明るさを内挿することにより、滑らかな階調をポリゴンの中に作る方法であり、デプスキューイングは、視点からの距離によって色や明るさを変化させる方法である。このデプスキューイングは、遠方の色を決めておき、この遠方の色に溶け込んでいく効果を出す。また、このデプスキューイングによって、物体が視点から遠ざかるにつれて、物体の色や明るさを背景色に近付けるようにすることにより、大気による光の減衰、いわゆるフォグ効果を得ることも可能である。
【００４７】
この実施の形態の画像情報処理装置では、３つの光源を用い、これら３つの光源による値を一緒に計算することにより、色の値を求める。
【００４８】
例えば、図４に示すように、赤、緑、青の各成分から成る３原色によって、（Ｒ，Ｇ，Ｂ）の固有の色をもつ物体１０２に対して、光源Ｌ1、Ｌ2、Ｌ3からの光線が照射されているとする。これらの光源Ｌ1、Ｌ2、Ｌ3は、それぞれ方向及び色の成分から成る。光源Ｌ1の方向のベクトルは（Ｌ1x，Ｌ1y，Ｌ1z）、色は（ＬＲ1，ＬＧ1，ＬＢ1）で表され、光源Ｌ2の方向のベクトルは（Ｌ2x，Ｌ2y，Ｌ2z）、色は（ＬＲ2，ＬＧ2，ＬＢ2）で表され、光源Ｌ3の方向のベクトルは（Ｌ3x，Ｌ3y，Ｌ3z）、色は（ＬＲ3，ＬＧ3，ＬＢ3）で表される。
【００４９】
ここで、３つの光源Ｌ1、Ｌ2、Ｌ3の色を表す座標マトリクスは、この３つの光源の方向のベクトルのマトリクスと、（１）式で得られるローカル／ワールド座標変換マトリクスとを乗算する、以下の（１０）式で求められる。
【００５０】
【数９】
0003649478.tif 000012
【００５１】
この３つの光源Ｌ1、Ｌ2、Ｌ3の色を表す座標マトリクスは、各光源の平行光線の方向を示すものである。
【００５２】
さらに、物体１０２に予め決められた法線のベクトルをＮとし、この法線ベクトルＮの成分を（Ｎx，Ｎy，Ｎz）とすると、（１０）式で得られる３つの光源Ｌ1、Ｌ2、Ｌ3の色を表す座標マトリクスに法線ベクトルＮの成分を乗算する、以下の（１１）式により、３つの光源の内積値を求める。
【００５３】
【数１０】
0003649478.tif 000013
【００５４】
ここで、以下の（１２）式に示すように、３つの光源Ｌ1、Ｌ2、Ｌ3の色の成分の座標マトリクスに（１１）式で得られる３つの光源の内積値を乗算して、物体１０２の（ＲＢＫ，ＧＢＫ，ＢＢＫ）の成分から成る周辺光ＢＫを加算することにより、３つの光源Ｌ1、Ｌ2、Ｌ3の光線の色ＬＴを求める。
【００５５】
【数１１】
0003649478.tif 000014
【００５６】
尚、（１２）式において、（１１）式で得られる３つの光源の内積値の代わりに、上記内積値の各成分をｍ乗した値を用いる、以下の（１３）式により、物体の材質に応じた近似計算を行う。具体的には、例えば金属光沢のような、最も光の強い領域が狭いときの光線の色ＬＴを求めることができる。
【００５７】
【数１２】
0003649478.tif 000015
【００５８】
そして、（１２）式で得られる３つの光源Ｌ1、Ｌ2、Ｌ3に基づく光線の色ＬＴに物体を構成する三角形のポリゴンの各点の色の成分（Ｒ，Ｇ，Ｂ）を乗算した値と、一番遠方の色ＦＣの成分（ＲＦＣ，ＧＦＣ，ＢＦＣ）とを用いて内挿計算を行う、以下の（１４）式により、点Ｐにおける深さの変化による色の変化の値の成分（Ｒn，Ｇn，Ｂn）を求めることができる。
【００５９】
【数１３】
0003649478.tif 000016
【００６０】
深さの変化による色の変化の値の成分（Ｒn，Ｇn，Ｂn）は線形で求めてもよいが、（１４）式では、非線形近似するように、視点からの距離の関数であるパラメータＰnを用いている。このパラメータＰnは、以下の（１５）式により求める。
【００６１】
【数１４】
0003649478.tif 000017
【００６２】
尚、上記（１４）式において、値ＤＱＡ、ＤＱＢは、深さの変化により変化する定数であり、深さが一定のときの３次元画像を表示するときには一定値をもつ。
【００６３】
上述のように、物体を構成する複数の点の３次元座標及び表示情報を用いて演算処理を行うことにより、２次元の画面に３次元の物体を表示するための物体を構成する複数のポリゴンの各点の２次元座標値及び表示情報、即ち明るさの情報である色情報を得ることができる。
【００６４】
尚、（３）式の演算は、表示する場面毎に行い、（１）、（５）、（６）及び（１０）式の演算は、表示する物体毎に行い、（７）、（８）、（９）、（１１）、（１２）、（１３）、（１４）及び（１５）式の演算は、物体を構成するポリゴン毎に行う。
【００６５】
また、上述の演算は、ポリゴンの各頂点についてそれぞれ行われるものであり、用いている変数ｎは、ポリゴンの各頂点を示す値が代入される。この実施の形態ではポリゴンは三角形であるので、３つの頂点を示す０〜２の内のいずれかの値が代入される。
【００６６】
次に、マトリクス演算器４で用いられる複数の命令について説明する。
【００６７】
表３には、スカラ値及びベクトル値の処理を行う命令を示し、表４には、座標計算処理の命令を示し、表５には、色及び光源計算処理の命令を示す。
【００６８】
【表３】
0003649478.tif 000018
【００６９】
【表４】
0003649478.tif 000019
【００７０】
【表５】
0003649478.tif 000020
【００７１】
具体的には、表３の命令ＣＭ1は、（１０）式に示す演算、即ち行列とベクトルとを乗算する演算命令であり、命令ＣＭ2は、（１）、（３）、（５）式に示す演算、即ち行列と行列とを乗算する演算命令である。また、表４の命令ＣＴ1は、（６）、（７）式に示す演算、即ち座標変換を行う演算命令であり、命令ＣＴ2は、（８）、（９）、（１５）式に示す演算、即ち透視変換を行う演算命令であり、命令ＣＴ3は、命令ＣＴ1及び命令ＣＴ2をまとめて行う命令である。また、表５の命令ＣＬ1は、（１１）式に示す演算、即ち光源と法線との内積計算を行う演算命令であり、命令ＣＬ2は、（１２）、（１３）式に示す演算を行う演算命令であり、命令ＣＬ3は、（１４）式に示す演算、即ち遠方色と近接色との内挿計算を行う演算命令であり、命令ＣＬ4は、命令ＣＬ1、ＣＬ2、ＣＬ3、ＣＬ4をまとめて行う命令である。
【００７２】
尚、上記命令ＣＭ1において、変数ｉにはスカラ値のマトリクスＭＴ1〜ＭＴ3に対応するように、１〜３の内のいずれかの値が代入され、変数ｊにはベクトル値のマトリクスＶＴ1〜ＶＴ3に対応するように、１〜３の内のいずれかの値が代入される。また、求められる３つの値ＶoＸn、ＶoＹn、ＶoＺnの変数ｏ、ｎは、三角形のポリゴンの３つの頂点を示す０〜２の内のいずれかの値が代入される。
【００７３】
また、上記命令ＣＭ2においても、上記命令ＣＭ1と同様に、変数ｉ及び変数ｊには１〜３の内のいずれかの値が代入され、求められる３つの値ＭoＸn、ＭoＹn、ＭoＺnの変数ｏ、ｎには０〜２の内のいずれかの値が代入される。
【００７４】
また、上述の全ての命令は、単一に実行する場合と、三角形のポリゴンの３頂点について一度にまとめて３回実行する場合とがあり、命令を一度に３回実行するときには、変数ｎには三角形のポリゴンの３つの頂点を示す０〜２の値がそれぞれ代入されて命令が実行される。
【００７５】
図１のマトリクス演算部２０には、上述の演算を行うためのデータが、内部バス２５1を介してレジスタ群の各レジスタにそれぞれに送られて記憶される。ここで、上記レジスタ部２１、２２内の各レジスタ群ＭＴ1、ＭＴ2、ＭＴ3、ＶＴ1、ＶＴ2、ＶＴ3を構成する各レジスタには、決められたデータを記憶するように割り付けられている。この決められたデータとは、メインメモリ３に記憶されているデータがＣＰＵ１の制御によって読み出されるデータや、この読み出されたデータを用いて演算処理を行った後のデータである。
【００７６】
具体的に、ポリゴンを構成する各点についての座標計算を行うときの各レジスタへのデータの割り付けを表６に示す。
【００７７】
【表６】
0003649478.tif 000021
【００７８】
レジスタ群ＭＴ1の各レジスタには、（５）式で求める回転マトリクスのスカラ値が割り付けられ、レジスタ群ＭＴ2の各レジスタには、（６）式で求める平行移動ベクトルＴｒの各成分と、２次元のオフセット値ＯＦＸ、ＯＦＹと、値ＤＱＡ、ＤＱＢと、距離ｈの値とが割り付けられ、レジスタ群ＶＴ1の各レジスタには、三角形から成るポリゴンの３頂点Ｖ0、Ｖ1、Ｖ2のベクトル値が割り付けられ、レジスタ群ＶＴ2の各レジスタには、上記ポリゴンの３頂点Ｖ0、Ｖ1、Ｖ2について（７）式で求めるスクリーン座標系の３次元座標値が割り付けられ、レジスタ群ＶＴ3の各レジスタには、上記ポリゴンの３頂点Ｖ0、Ｖ1、Ｖ2について（８）、（９）、（１５）式で求める２次元座標値及びパラメータＰnが割り付けられる。
【００７９】
尚、レジスタ群ＭＴ1の各レジスタに記憶される上記回転マトリクスのスカラ値は、命令ＣＭ2により、（１）式で求めるローカル／ワールド座標変換マトリクスと、（３）式で求めるワールド／スクリーン座標変換マトリクスとの乗算で求められる値である。また、（１）式で求めるローカル／ワールド座標変換マトリクス及び（３）式で求めるワールド／スクリーン座標変換マトリクスも、命令ＣＭ2によって求められるものである。よって、このマトリクス演算器２０によって、先ず、ローカル／ワールド座標変換マトリクス及びワールド／スクリーン座標変換マトリクスを命令ＣＭ2によってそれぞれ算出し、次に、上記算出されたローカル／ワールド座標変換マトリクス及びワールド／スクリーン座標変換マトリクスを乗算して算出される回転マトリクスのスカラ値が、レジスタ群ＭＴ1の各レジスタに記憶される。
【００８０】
次に、座標計算を行う際の具体的な演算処理について説明する。
【００８１】
ポリゴンを構成する点の座標計算を行うには、（７）式の演算を行って、レジスタ群ＶＴ2の各レジスタに３次元座標値を記憶した後に、（８）式の演算を行うことにより、点の２次元座標値が算出される。これらの値が、レジスタ群ＶＴ3の各ベクトルに記憶される。
【００８２】
先ず、レジスタ群ＭＴ1の回転マトリクスとレジスタ群ＶＴ1のベクトル値とを乗算する際には、レジスタ群ＭＴ1に記憶された回転マトリクスのスカラ値は、１行毎に、３つのデータを記憶することができるレジスタ３２1、３２2、３２3にそれぞれ送られて記憶される。即ち、レジスタＭ111、Ｍ112、Ｍ113に記憶されるデータはレジスタ３２1に順次記憶され、レジスタＭ121、Ｍ122、Ｍ123に記憶されるデータはレジスタ３２2に順次記憶され、レジスタＭ131、Ｍ132、Ｍ133に記憶されるデータはレジスタ３２3に順次記憶される。そして、上記レジスタ３２1、３２2、３２3にそれぞれ記憶されたデータは、１番目のデータから乗算器３４1、３４2、３４3にそれぞれ送られる。
【００８３】
ここで、レジスタ群ＶＴ1に記憶された、１列のデータは、演算器３０1、３０2、３０3の乗算器３４1、３４2、３４3に順次送られる。即ち、レジスタ群ＶＴ1の１番目の列のレジスタＶ1Ｘ0のデータが乗算器３４1、３４2、３４3にそれぞれ送られて、乗算器３４1、３４2、３４3において、それぞれ送られた２つのデータの乗算が行われる。これらの乗算結果は、加減算器３５1、３５2、３５3にそれぞれ送られるが、この時点では、乗算器３４1、３４2、３４3で以前に乗算が行われていないので、上記乗算器３４1、３４2、３４3からの乗算結果はそのままセレクタ３３1、３３2、３３3に送られる。
【００８４】
次に、レジスタ群ＶＴ1の１番目の列のレジスタＶ1Ｘ1のデータが乗算器３４1、３４2、３４3にそれぞれ送られて、レジスタ群ＭＴ1の１行目の２番目のデータＭ112、Ｍ122、Ｍ132とそれぞれ乗算される。これらの乗算結果は、加減算器３５1、３５2、３５3にそれぞれ送られて、上記セレクタ３３1、３３2、３３3を介して送られる上記演算結果に加算される。これらの加算結果は、セレクタ３３1、３３2、３３3にそれぞれ送られる。
【００８５】
さらに、レジスタ群ＶＴ1の１番目の列のレジスタＶ1Ｘ2のデータが乗算器３４1、３４2、３４3にそれぞれ送られて、レジスタ群ＭＴ1の１行目の３番目のデータＭ113、Ｍ123、Ｍ133とそれぞれ乗算される。これらの乗算結果は、加減算器３５1、３５2、３５3にそれぞれ送られて、上記セレクタ３３1、３３2、３３3を介して送られる上記演算結果に加算される。
【００８６】
この後、（７）式に示すように、レジスタ群ＶＴ2に記憶されているデータに、ベクトル値ＴｒＸ、ＴｒＹ、ＴｒＺが、それぞれ加算される。このとき、ベクトル値ＴｒＸ、ＴｒＹ、ＴｒＺは、それぞれレジスタ３１1、３１2、３１3に記憶されており、これらの３つのベクトル値は、レジスタ３１1、３１2、３１3からセレクタ３３1、３３2、３３3によって加減算器３５1、３５2、３５3にそれぞれ送られて、上記加減算器３５1、３５2、３５3での演算結果にさらに加算される。これらの加減算器３５1、３５2、３５3での演算結果、即ちベクトル値ＳＳＸ0、ＳＳＸ1、ＳＳＸ2は、内部バス２５1を介してレジスタ群ＶＴ2のレジスタＶ1Ｘ0、Ｖ1Ｘ1、Ｖ1Ｘ2にそれぞれ記憶される。
【００８７】
また、同様にして、レジスタ群ＭＴ1の他の２行のデータとレジスタ群ＶＴ2の他の２列のデータとの演算結果、即ちベクトル値ＳＳＹ0、ＳＳＹ1、ＳＳＹ2、ＳＺ0、ＳＺ1、ＳＺ2も求められて、レジスタ群ＶＴ2のレジスタＶ2Ｙ0、Ｖ2Ｙ1、Ｖ2Ｙ2、Ｖ2Ｚ0、Ｖ2Ｚ1、Ｖ2Ｚ2にそれぞれ記憶される。
【００８８】
このようにして、三角形のポリゴンを構成する３点について、（７）式のスクリーン座標系の３次元座標値が求められる。
【００８９】
ここで、演算結果の内のベクトル値ＳＺ0、ＳＺ1、ＳＺ2は、割算器２３にも順次送られる。また、レジスタ２４にはレジスタ群ＭＴ2のレジスタＭ231に記憶されている距離ｈの値が送られて記憶されており、上記割算器２３では、上記レジスタ２４からの距離ｈの値を、ベクトル値ＳＺ0で割算する。この演算結果は、内部バス２５3及びレジスタ３２1、３２2、３２3を介して乗算器３４1、３４2、３４3にそれぞれ送られる。
【００９０】
また、これらの乗算器３４1、３４2、３４3には、レジスタ群ＶＴ2に記憶されているベクトル値ＳＳＸ0、ＳＳＸ1、ＳＳＸ2が内部バス２５2を介して送られることにより、割算器２３からの割算結果とベクトル値ＳＳＸ0、ＳＳＸ1、ＳＳＸ2との乗算がそれぞれ行われる。これらの乗算結果は、加減算器３５1、３５2、３５3にそれぞれ送られる。
【００９１】
さらに、レジスタ群ＭＴ2のレジスタＭ221に記憶されている値ＯＦＸが内部バス２５3を介してレジスタ３１1、３１2、３１3にそれぞれ記憶されており、この値ＯＦＸがセレクタ３３1、３３2、３３3を介して加減算器３５1、３５2、３５3にそれぞれ送られ、乗算器３４1、３４2、３４3からの乗算結果に加算される。これにより、これらの加減算器３５1、３５2、３５3からは、三角形のポリゴンを構成する３点のＸ方向の２次元座標値ＳＸ0、ＳＸ1、ＳＸ2がそれぞれ出力されて、レジスタ群ＶＴ3のレジスタＶ3Ｘ0、Ｖ3Ｘ1、Ｖ3Ｘ2に記憶される。同様にして、三角形のポリゴンを構成する３点のＹ方向の２次元座標値ＳＹ0、ＳＹ1、ＳＹ2、及びパラメータＰ0、Ｐ1、Ｐ2が求められて、レジスタ群ＶＴ3のレジスタＶ3Ｙ0、Ｖ3Ｙ1、Ｖ3Ｙ2、Ｖ3Ｚ0、Ｖ3Ｚ1、Ｖ3Ｚ2にそれぞれ記憶される。
【００９２】
また、光源計算を行うときの各レジスタへのデータの割り付けを表７に示す。
【００９３】
【表７】
0003649478.tif 000022
【００９４】
レジスタ群ＭＴ1の各レジスタには、（１０）式で求める３つの光源Ｌ1、Ｌ2、Ｌ3の色を表す座標マトリクスが割り付けられ、レジスタ群ＭＴ2の各レジスタには、（１２）式で用いる３つの光源Ｌ1、Ｌ2、Ｌ3の色の成分の座標マトリクスが割り付けられ、レジスタ群ＭＴ3の各レジスタには、（１２）、（１３）、又は（１４）式で用いる色の成分（Ｒ，Ｇ，Ｂ）、周辺光ＢＫの成分（ＲＢＫ，ＧＢＫ，ＢＢＫ）、及び一番遠方の色ＦＣの成分（ＲＦＣ，ＧＦＣ，ＢＦＣ）が割り付けられ、レジスタ群ＶＴ1の各レジスタには、（１１）式で用いる予め決められた法線の各ベクトル値が割り付けられる。
【００９５】
これらの値の内で、レジスタ群ＭＴ1及びレジスタ群ＶＴ1の各レジスタの値を用いて、演算器３０1、３０2、３０3で（１１）式の演算処理を行い、レジスタ群ＶＴ2の各レジスタに、３つの光源の内積値を記憶する。
【００９６】
この後、上記レジスタ群ＶＴ2に記憶した内積値、レジスタ群ＭＴ2の各レジスタに記憶されている３つの光源Ｌ1、Ｌ2、Ｌ3の色の成分の座標マトリクス、及びレジスタ群ＭＴ3に記憶されている周辺光ＢＫの成分（ＲＢＫ，ＧＢＫ，ＢＢＫ）を用いて、演算器３０1、３０2、３０3で（１２）又は（１３）式の演算処理を行い、３つの光源Ｌ1、Ｌ2、Ｌ3の光線の色ＬＴの各成分を求め、これらの値をレジスタ群ＶＴ2の各レジスタに記憶する。
【００９７】
さらに、上記レジスタ群ＶＴ2に記憶した３つの光源Ｌ1、Ｌ2、Ｌ3の光線の色ＬＴの各成分、レジスタ群ＭＴ3に記憶されている色の成分（Ｒ，Ｇ，Ｂ）、一番遠方の色ＦＣの成分（ＲＦＣ，ＧＦＣ，ＢＦＣ）、及びパラメータＰnを用いて、演算器３０1、３０2、３０3で（１４）式の演算処理を行い、深さの変化による色の変化の値の成分（Ｒn，Ｇn，Ｂn）を求め、これらの値をレジスタ群ＶＴ2の各レジスタに記憶する。
【００９８】
即ち、光源計算においては、３つの光源を用いて物体の色の変化の値の成分を求める。
【００９９】
このように、上述の画像情報処理装置における画像情報の処理手順は、図５のフローチャートに示すものとなる。
【０１００】
先ず、ステップＳ１で、物体に対する視点を決め、フィールドレベルとして、物体を構成する複数のポリゴンについて、（３）式によりワールド／スクリーン座標変換マトリクスをそれぞれ算出する。
【０１０１】
次に、ステップＳ２で、オブジェクトレベルとして、上記各ポリゴンについて、（１）式によりローカル／ワールド座標変換マトリクスを算出する。そして、各ポリゴンについて、上記ワールド／スクリーン座標変換マトリクス及びローカル／ワールド座標変換マトリクスを用いて、（５）式の上記物体の座標系をローカル座標系からスクリーン座標系に変換するための回転マトリクス、（６）式の視点の座標マトリクス、及び（１０）式の３つの光源の色の座標マトリクスをそれぞれ算出する。
【０１０２】
この後、ステップＳ３で、ポリゴンレベルとして、（７）式により上記各ポリゴンについて、ローカル座標系からスクリーン座標系に変換した３次元座標値を算出する。そして、（８）、（９）式により２次元への透視変換を行う。これにより得られた、３次元の物体を構成する複数のポリゴンの各点についての２次元座標値を２次元の画面に描画することにより、３次元の物体を２次元の面に表示することができる。
【０１０３】
また、このときに、（１５）式のパラメータＰnを上記複数のポリゴンの各点について求める。そして、（１１）式の３つの光源を用いたときの内積値を算出して、さらに、（１２）又は（１３）式の光線の色を算出した後に、（１４）式により上記各ポリゴン又はそれらの各頂点毎の深さの変化による色の変化の値を算出する。この深さの変化による色の変化の値により、物体の色を決定する。
【０１０４】
尚、この画像情報処理装置は、コプロセッサに限られるものではなく、独立して処理を行うディジタルシグナルプロセッサ（ＤＳＰ）として構成してもよい。
【０１０５】
【発明の効果】
以上の説明からも明かなように、本発明に係る画像情報処理装置及び画像情報処理方法は、記憶される、複数の点から構成される物体の各点の３次元座標及び上記物体に照射される３つの光源に基づく３つ１組の複数の画像情報を用いて、上記物体の各点の２次元座標値及び色情報を算出するように制御することにより、命令を３回実行するために、３並列の演算器を用いたパイプライン構成とし、マイクロプログラムいわゆるシーケンサを使用して、３つ１組の画像情報を用いる演算処理を行うので、効率的で高速なパイプライン処理や並列演算処理を行うことができる。また、ハードウェアの構成を小さくすることができるので、ハードウェアのコストを削減することができる。
【図面の簡単な説明】
【図１】本発明に係る画像情報処理装置の概略的な構成図である。
【図２】画像生成装置の概略的な構成図である。
【図３】座標変換を説明するための図である。
【図４】光源を説明するための図である。
【図５】本発明に係る画像情報処理方法による画像情報の処理手順のフローチャートである。
【符号の説明】
１  ＣＰＵ
２  画像情報処理装置
６  メインバス
１１  バスインターフェイスユニット
１２  命令解釈部
１３  制御部
２０  マトリクス演算部
２１、２２  レジスタ部
２３  割算器
２４  レジスタ
２５1、２５2、２５3  内部バス
３０1、３０2、３０3  演算器
３１1、３１2、３１3、３２1、３２2、３２3  レジスタ
３３1、３３2、３３3  セレクタ
３４1、３４2、３４3  乗算器
３５1、３５2、３５3  加減算器
【図１】
0003649478.tif 000023
【図２】
0003649478.tif 000024
【図３】
0003649478.tif 000025
【図４】
0003649478.tif 000026
【図５】
0003649478.tif 000027