(57)【特許請求の範囲】
【請求項１】
第１の画像の所定の構成単位毎に仮想視点からの距離を表す値を設定し、
第２の画像を生成し、
上記所定の構成単位毎の距離を表す値に対応する係数を決定し、
上記所定の構成単位毎に決定された係数に応じて、上記第１の画像と第２の画像を合成する描画方法であって、
上記所定の構成単位の距離を表す値が３バイトからなるとき、上記３バイトのうち第２バイト目の値を用いて、上記係数を決定する
ことを特徴とする描画方法。
【請求項２】
請求項１記載の描画方法であって、
複数の係数を階調構成したテーブルから、上記所定の構成単位毎の距離を表す値をインデックスとして上記係数を取り出す
ことを特徴とする描画方法。
【請求項３】
請求項１又は請求項２記載の描画方法であって、
上記仮想視点からの距離が大きくなるほど、上記第２の画像の割合が大きくなる半透明係数を、上記係数として決定する
ことを特徴とする描画方法。
【請求項４】
請求項１から請求項３のうち、いずれか一項記載の描画方法であって、
上記第１の画像に対して所定の画像処理を施して上記第２の画像を生成する
ことを特徴とする描画方法。
【請求項５】
請求項４記載の描画方法であって、
上記所定の画像処理は、上記第１の画像を暈かす処理である
ことを特徴とする描画方法。
【請求項６】
請求項１から請求項３のうち、いずれか一項記載の描画方法であって、
任意の色からなる画像を上記第２の画像として生成する
ことを特徴とする描画方法。
【請求項７】
請求項１から請求項６のうち、いずれか一項記載の描画方法であって、
上記所定の構成単位は画像のピクセルである
ことを特徴とする描画方法。
【請求項８】
第１の画像の所定の構成単位毎に仮想視点からの距離を表す値を設定する距離設定手段と、
第２の画像を生成する画像生成手段と、
上記所定の構成単位毎の距離を表す値に対応する係数を決定する係数決定手段と、
上記所定の構成単位毎に決定された係数に応じて、上記第１の画像と第２の画像を合成する合成手段とを有する描画装置であって、
上記係数決定手段は、上記所定の構成単位の距離を表す値が３バイトからなるとき、上記３バイトのうち第２バイト目の値を用いて、上記係数を決定する
ことを特徴とする描画装置。
【請求項９】
請求項８記載の描画装置であって、
上記係数決定手段は、複数の係数を階調構成したテーブルから、上記所定の構成単位毎の距離を表す値をインデックスとして上記係数を取り出す
ことを特徴とする描画装置。
【請求項１０】
請求項８又は請求項９記載の描画装置であって、
上記係数決定手段は、上記仮想視点からの距離が大きくなるほど、上記第２の画像の割合が大きくなる半透明係数を、上記係数として決定する
ことを特徴とする描画装置。
【請求項１１】
請求項８から請求項１０のうち、いずれか一項記載の描画装置であって、
上記画像生成手段は、上記第１の画像に対して所定の画像処理を施して上記第２の画像を生成する
ことを特徴とする描画装置。
【請求項１２】
請求項１１記載の描画装置であって、
上記画像生成手段は、上記所定の画像処理として上記第１の画像を暈かす処理を行う
ことを特徴とする描画装置。
【請求項１３】
請求項８から請求項１０のうち、いずれか一項記載の描画装置であって、
上記画像生成手段は、任意の色からなる画像を上記第２の画像として生成する
ことを特徴とする描画装置。
【請求項１４】
請求項８から請求項１３のうち、いずれか一項記載の描画装置であって、
上記距離設定手段は、上記所定の構成単位として画像のピクセル毎に距離を表す値を設定する
ことを特徴とする描画装置。
【請求項１５】
第１の画像の所定の構成単位毎に仮想視点からの距離を表す値を設定するステップと、
第２の画像を生成するステップと、
上記所定の構成単位毎の距離を表す値に対応する係数を決定するステップと、
上記所定の構成単位毎に決定された係数に応じて、上記第１の画像と第２の画像を合成するステップとを含む処理をコンピュータに実行させるための描画処理プログラムであって、
上記処理は、上記所定の構成単位の距離を表す値が３バイトからなるとき、上記３バイトのうち第２バイト目の値を用いて、上記係数を決定するステップを含む
ことを特徴とする描画処理プログラム。
【請求項１６】
請求項１５記載の描画処理プログラムであって、
上記処理は、複数の係数を階調構成したテーブルから、上記所定の構成単位毎の距離関係を表す値をインデックスとして上記係数を取り出すステップを含む
ことを特徴とする描画処理プログラム。
【請求項１７】
請求項１５又は請求項１６記載の描画処理プログラムであって、
上記処理は、上記仮想視点からの距離が大きくなるほど、上記第２の画像の割合が大きくなる半透明係数を、上記係数として決定するステップを含む
ことを特徴とする描画処理プログラム。
【請求項１８】
請求項１５から請求項１７のうち、いずれか一項記載の描画処理プログラムであって、
上記処理は、上記第１の画像に対して所定の画像処理を施して上記第２の画像を生成するステップを含む
ことを特徴とする描画処理プログラム。
【請求項１９】
請求項１８記載の描画処理プログラムであって、
上記処理は、上記所定の画像処理として上記第１の画像を暈かす処理を行うステップを含む
ことを特徴とする描画処理プログラム。
【請求項２０】
請求項１５から請求項１７のうち、いずれか一項記載の描画処理プログラムであって、
上記処理は、任意の色からなる画像を上記第２の画像として生成するステップを含む
ことを特徴とする描画処理プログラム。
【請求項２１】
請求項１５から請求項２０のうち、いずれか一項記載の描画処理プログラムであって、
上記所定の構成単位は画像のピクセルである
ことを特徴とする描画処理プログラム。
【請求項２２】
請求項１５から請求項２１のうち、いずれか一項記載の描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２３】
第１の画像の所定の構成単位毎に仮想視点からの距離を表す値を設定するステップと、
第２の画像を生成するステップと、
上記所定の構成単位毎の距離を表す値に対応する係数を決定するステップと、
上記所定の構成単位毎に決定された係数に応じて、上記第１の画像と第２の画像を合成するステップとを含む処理を実行するプログラム実行装置であって、
上記処理は、上記所定の構成単位の距離を表す値が３バイトからなるとき、上記３バイトのうち第２バイト目の値を用いて、上記係数を決定するステップを含む
ことを特徴とするプログラム実行装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばテレビジョンモニタ装置などの２次元画面上へ画像を描画する描画方法及び描画装置、コンピュータに実行させるための描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体、描画処理プログラムを実行するプログラム実行装置、コンピュータに実行させるための描画処理プログラムに関する。
【０００２】
【従来の技術】
近年のテレビゲーム機やパーソナルコンピュータは、プロセッサやメモリ等の高集積化、高速化等が進んでおり、その結果、例えば臨場感が有り且つ遠近感（奥行き感）のある３次元画像をリアルタイムに生成し、２次元モニタ画面上に描画するようなことが可能となっている。
【０００３】
上記２次元モニタ画面上に表示する３次元画像を描画する場合は、例えば、３次元ポリゴンのデータに対して座標変換処理，クリッピング（Ｃｌｉｐｐｉｎｇ）処理，ライティング（Ｌｉｇｈｔｉｎｇ）処理等のジオメトリ（Ｇｅｏｍｅｔｒｙ）処理を施し、その処理の結果得られるデータを透視投影変換処理するようなことが行われる。
【０００４】
【発明が解決しようとする課題】
ところで、上記２次元モニタ画面上に３次元画像を描画する際には、例えば遠近感を表現したり、遠方のポリゴンの縮小描画によるフリッカの影響を少なくすることなどを目的として、仮想視点からの距離が近い部分にはピントが合った状態となる画像を描画し、一方で、仮想視点からの距離が遠くなるほど暈けた画像を描画するような手法がとられている。
【０００５】
上記仮想視点からの距離に応じて暈けた画像を描画するために、従来は、例えば元画像を上記仮想視点からの距離に応じて多段階的に縮小した後に拡大し、その拡大した画像を、各ピクセル毎に設定されている仮想視点からの奥行き方向の距離（Ｚ値）に応じて元画像と合成するようなことが行われている。
【０００６】
しかしながら、上記仮想視点からの距離に応じた多段階の縮小処理とそれに対応する拡大処理を行うことは、ＣＰＵによる画像処理量の増大を招き、その結果として、例えばゲーム進行上の他の処理へ悪影響が及んでしまうことなどの問題が発生する。
【０００７】
一方で、例えばＣＰＵへの負荷を軽減するために、暈け画像生成時の縮小、拡大の段階数を減らすようなことを行うと、所望の暈け具合を得ることができず、良好な遠近感が得られなくなる。
【０００８】
そこで、本発明は、このような課題に鑑みてなされたものであり、仮想視点からの距離に応じて暈かした画像を描画する場合に、ＣＰＵの負荷を減らすことができ、また、仮想視点からの距離に応じた所望の暈け具合を得ることができ、良好な遠近感を実現することを可能とする、描画方法及び描画装置、コンピュータに実行させるための描画処理プログラムを記録したコンピュータ読み取り可能な記録媒体、描画処理プログラムを実行するプログラム実行装置、コンピュータに実行させるための描画処理プログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、第１の画像の所定の構成単位毎に仮想視点からの距離を表す値を設定し、所定の構成単位毎の距離を表す値に対応する係数を決定し、所定の構成単位毎に決定された係数に応じて、第１の画像と第２の画像を合成する。
【００１０】
特に、本発明では、第１の画像を暈かした第２の画像を生成し、所定の構成単位の距離が遠くなるほど、大きい値となる半透明係数を用いて、第１の画像に第２の画像を合成することにより、仮想視点近傍ではピントが合い、仮想視点から遠くなるほど暈けた画像を得るようにしている。
【００１１】
【発明の実施の形態】
［本実施の形態の描画装置の構成］
図１には、本発明実施の形態の描画装置１における主要部の概略構成を示す。なお、本実施の形態の描画装置１は、３次元ポリゴンへのテクスチャマッピングにより２次元画像を描画する装置であり、例えば、テレビゲーム機やパーソナルコンピュータ、３次元グラフィック装置などに適用可能（特に、いわゆるグラフィックシンセサイザなどに適用可能）なものである。
【００１２】
図１において、本実施の形態の描画装置１は、主要な構成要素として、輝度計算及び座標変換ユニット２と、ＬＯＤ（Ｌｅｖｅｌ  Ｏｆ  Ｄｅｔａｉｌ）計算ユニット３と、テクスチャ座標計算ユニット４と、ＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）ユニット５と、ピクセルエンジン（Ｐｉｘｅｌ  Ｅｎｇｉｎｅ）６と、画像メモリ７とを備えている。
【００１３】
また、上記画像メモリ７は、仮想視点からの奥行き方向の値（例えば３バイトの２４ビットで表されるＺ値）が記憶されるＺバッファ８と、マッピングによりポリゴン上の全体的な色および模様を生成するためのテクスチャおよびＣＬＵＴ（カラールックアップテーブル）などのデータが記憶されるテクスチャバッファ９と、２次元モニタ画面上に表示されるフレームデータ（２次元画像データ）を記憶及び合成するためのフレームバッファ１０の各記憶領域を備えている。
【００１４】
これらの各構成要素を備えた描画装置１の入力端子１３には、３次元画像を描画するための各種情報として、例えば３次元ポリゴン情報、テクスチャ情報、光源情報及び視点情報等が入力される。なお、これら各種情報は、例えば通信回線或いは記憶装置等を介して供給される。
【００１５】
上記３次元ポリゴン情報は、例えば三角形のポリゴンの各頂点の（ｘ，ｙ，ｚ）座標とこれら各頂点の法線の情報などからなり、また、上記視点情報及び光源情報は、ポリゴンに対する輝度計算及び座標変換を行うための情報である。なお、上記光源情報は、１つの光源だけに限らず複数の光源を表す情報であっても良い。
【００１６】
上記テクスチャ情報は、三角形ポリゴンの各頂点に対応するテクスチャ座標情報と、上記色や模様を描画する際に用いられるＣＬＵＴの情報などからなる。
【００１７】
ここで、上記ＣＬＵＴは、Ｒ（赤），Ｇ（緑），Ｂ（青）の３原色テーブルと、α値のテーブルとからなる。上記Ｒ，Ｇ，Ｂの３原色テーブルは、テクスチャの各ピクセルの色を決定するために使用され、また、上記α値は、テクスチャをマッピングする際の画像のブレンド（αブレンディング）の割合をピクセル毎に決定するための係数値、つまり半透明度を表す係数値である。詳細については後述するが、本実施の形態の場合、上記ＣＬＵＴのα値は、複数段階に階調化（グラデーション）されている。すなわち、ＣＬＵＴのテーブル番号とα値の関係は、例えばテーブル番号が大きくなるに従ってα値が小さくなる（或いは大きくなる）ような関係となされている。
【００１８】
また、上記ＣＬＵＴから上記Ｒ，Ｇ，Ｂの３原色の値を取り出すためのインデックス（ＣＬＵＴのテーブル番号を指定するための値）は、テクスチャのＸＹ座標で表されるピクセル毎に設定される。一方、詳細については後述するが、本発明実施の形態の場合、上記ＣＬＵＴからα値を取り出すためのインデックスとしては、各ピクセルのＺ値（２４ビットの３バイトで表される値）の例えば２バイト目が使用される。なお、本実施の形態の場合、上記Ｚ値は、仮想視点からの距離が遠くなるほどその値が小さくなるものとしている。
【００１９】
これらの各種情報は、先ず、描画装置１の輝度計算及び座標変換ユニット２に入力される。
【００２０】
当該輝度計算及び座標変換ユニット２は、入力されたポリゴンの各座標情報を、視点情報に基づいて２次元描画用の座標系の座標値に変換すると共に、各ポリゴンの各頂点の輝度を視点情報及び光源情報に基づいて計算する。また、輝度計算及び座標変換ユニット２は、上述した計算を行うと共に、透視変換等の処理をも行う。上記輝度計算及び座標変換ユニット２において算出された各値は、ＬＯＤ計算ユニット３に入力される。
【００２１】
ＬＯＤ計算ユニット３は、ピクセルエンジン６がテクスチャバッファ９からテクスチャを読み出す際に使用されるＬＯＤ（Ｌｅｖｅｌ  Ｏｆ  Ｄｅｔａｉｌ）値を、上記変換されたポリゴンのＺ座標から計算する。なお、ＬＯＤ値は、ポリゴンを縮小する際の縮小率から計算される値であり、当該縮小率は例えば視点からポリゴンまでの距離の対数として求められるものである。上記ＬＯＤ値は、テクスチャ座標計算ユニット４，ＤＤＡユニット５を経てピクセルエンジン６に送られる。
【００２２】
テクスチャ座標計算ユニット４は、ピクセルエンジン６がテクスチャバッファ９からテクスチャを読み出す際に使用されるテクスチャ座標値を計算する。当該テクスチャ座標値は、ＤＤＡユニット５を経てピクセルエンジン６に送られる。
【００２３】
ＤＤＡユニット５は、上記２次元のポリゴン頂点情報、Ｚ座標の値及び輝度情報等をピクセル情報に変換する。具体的には、各画素について、その座標値、Ｚ値、輝度及びテクスチャ座標値を線形補間により順次求める。このＤＤＡユニット５からの出力は、ピクセルエンジン６に送られる。
【００２４】
ピクセルエンジン６は、Ｚバッファ８、テクスチャバッファ９、フレームバッファ１０の読み出し及び書き込みの制御を行うとともに、テクスチャマッピングや、Ｚ座標の比較、画素値計算などを行う。
【００２５】
また、詳細な処理の流れについては後述するが、上記ピクセルエンジン６は、上記テクスチャのインデックスに応じて上記ＣＬＵＴからＲ，Ｇ，Ｂの３原色データを取り出して各ピクセルの色を設定するだけでなく、各ピクセルのＺ値の２バイト目をインデックスとして上記ＣＬＵＴのα値を取り出し、αブレンディングに使用する。
【００２６】
その他、ピクセルエンジン６は、シザリング、ディザリング、カラークランプ等の処理も行う。なお、上記シザリングとは画面からはみ出したデータを取り除く処理であり、ディザリングとは少ない色数で多くの色を表現するための色の配置を入り組ませる処理、カラークランプとは色の計算の時に値が２５５を越えたり０より小さくなったりしないように制限する処理である。
【００２７】
上記ピクセルエンジン６にて上述した各処理を行うことにより得られた画像データは、フレームバッファ１０に記憶されて２次元モニタ画面に描画するフレームデータ（２次元画像データ）が形成され、その後、当該形成された２次元画像データがフレームバッファ１０から読み出され、出力端子１４から出力されて２次元モニタ装置へ送られることになる。
【００２８】
［本実施の形態の描画処理］
以下、一般的なＣＬＵＴを用いたテクスチャの色或いは模様の設定とαブレンディング処理と比較しつつ、本発明実施の形態におけるＣＬＵＴの詳細な内容と、そのＣＬＵＴを用いたテクスチャの色或いは模様の設定、及びαブレンディング処理について説明する。
【００２９】
［一般的なＣＬＵＴによる描画処理例の説明］
先ず、本実施の形態のＣＬＵＴによる描画例の説明を行う前に、図２および図３を用いて、テクスチャのインデックスと、一般的なＣＬＵＴのＲ，Ｇ，Ｂの３原色データ及びα値の関係を説明する。図２は一般的なＣＬＵＴの一例を示し、図３はテクスチャを構成する各ピクセルのＸ，Ｙ座標とそれら各ピクセルの色または模様を決定するインデックスの一例を示す。
【００３０】
図２に示すＣＬＵＴは、テーブルＮｏ（テーブル番号）とＲ，Ｇ，Ｂデータとα値（図中のＡ欄の各値）とからなる。上記テーブルＮｏ、Ｒ，Ｇ，Ｂデータ、α値はそれぞれ１６進数にて表現されており、上記テーブルＮｏは図３に示す各ピクセルのインデックスにより指定される番号であり、Ｒ，Ｇ，Ｂデータの値はそれら３原色のレベルを示し、上記α値は半透明度の割合を示している。
【００３１】
すなわちこの図２および図３によれば、図３のインデックス「００」と図２のテーブルＮｏ「００」が対応しており、インデックス「０１」とテーブルＮｏ「０１」が対応し、以下同様に、インデックス「０２」とテーブルＮｏ「０２」、インデックス「０３」とテーブルＮｏ「０３」・・・のようにそれぞれ対応している。したがって、図３のインデックスが「００」となっている各ピクセルには、図２のテーブルＮｏ「００」で示されるＲが「ｆｆ」となり、Ｇが「００」、Ｂが「００」となっていることからわかるように、Ｒすなわち赤のみの色が割り当てられることになる。同様に、図３のインデックスが「０１」となっている各ピクセルには、図２のテーブルＮｏ「０１」で示されるＲが「００」、Ｇが「ｆｆ」、Ｂが「００」となっていることからわかるように、Ｇすなわち緑のみの色が割り当てられることになる。これらのことから、図２および図３の例では、赤地に緑の十字模様のテクスチャが描画されることになる。
【００３２】
また、図２のＣＬＵＴの例の場合、図３のインデックスが「００」となっているピクセルには、図２のテーブルＮｏ「００」で示されるα値の「８０」が割り当てられており、同じく、図３のインデックスが「０１」となっているピクセルにも、図２のテーブルＮｏ「０１」で示されるα値の「８０」が割り当てられている。ここで、上記α値の「８０」は半透明度が略々０．５（すなわち５０％）であることを表しているため、この図２及び図３の例によれば、既に描画されている画像に対して上記赤地に緑の十字模様が５０％だけ透けたような状態で描画されることになる。
【００３３】
以上の説明からわかるように、図２及び図３に示した一般的なＣＬＵＴとインデックスによれば、テクスチャの色若しくは模様と、αブレンディングの際の画像のブレンドの割合のみを決定できることになる。
【００３４】
［本実施の形態のＣＬＵＴによる描画処理例の説明］
上記図２及び図３は一般的なＣＬＵＴとその使用例を示しているが、本発明実施の形態では、図４に示すように、α値が階調化（グラデーション）されたＣＬＵＴを用いるとともに、当該ＣＬＵＴのα値を決定するためのインデックスとして、各ピクセルのＺ値のうちの所定の値（本実施の形態では図５に示すように３バイトで表されるＺ値の２バイト目）を使用することにより、描画される各オブジェクトの仮想視点からの奥行き距離に応じたαブレンディング処理を可能としている。なお、テクスチャの色若しくは模様の決定については、前述の図２及び図３の例の場合と同様に行われる。
【００３５】
すなわち、本実施の形態においては、ＣＬＵＴのα値をその値が大きいほど半透明度が高くなる（透明度が低下する）ようなグラデーションに設定しておき、また、仮想視点からの距離が遠くなるほどその値が小さくなるＺ値の２バイト目をα値のインデックスとし、当該インデックスにより決定されたαプレーンを使用して、例えば現在の画面とそれを暈かした画面とをαブレンディングすることにより、仮想視点に近いオブジェクト等についてはピントが正確に合っているような状態に描画でき、一方で、仮想視点から遠くになるほど徐々に暈けたような画像を描画することを可能としている。
【００３６】
言い換えると、本実施の形態によれば、例えば、写真光学系における撮影レンズの被写界深度を深くして撮影されたパンフォーカス状態の画像のように、視点からの奥行き距離によらずにピントが合っている画像ではなく、被写界深度をある程度浅くし且つ近距離の物体にピントを合わせて撮影された画像のように、上記近距離の物体等についてはピントが合い、そのピント位置から遠くになるほど徐々に暈けるようになり、さらに上記ピント位置から遠い物体等であってもその色がなくなってしまうようなことがない、自然な遠近感を得ることのできる画像を描画可能にしている。
【００３７】
ここで、本実施の形態において、上記図４に示すＣＬＵＴのα値を決定するためのインデックスとして、図５に示すように３バイト（２４ビット）で表されるＺ値の２バイト目を使用することにしたのは、Ｚ値のバイトと各バイト内のビット値の変化量との関係が図６に示すように反比例の関係を有しているからである。つまり、この図６からわかるように、Ｚ値の最下位バイトを用いたのでは値の変化が大き過ぎ、最悪の場合、ビット値のループによって同じビット値が繰り返し発生するようなことが起き、一方で、Ｚ値の最上位バイトを用いたのでは逆に値の変化が少な過ぎることになるため、上記ＣＬＵＴのα値を決定するためのインデックスとしてＺ値の２バイト目を使用することにしている。
【００３８】
すなわち、Ｚ値の所定のバイトをα値のインデックスとして用いた場合において、当該所定のバイトにより指定されるインデックスの変化が例えば大き過ぎると、当該インデックスにより決定されるα値の変化も大きくなり、その結果、αブレンディングされた画像の変化が急激になって上記遠近感が不自然になる。また、上記所定のバイト値のビットが例えばループしてしまった場合には、仮想視点からの距離と上記α値の関係が維持できなくなり、非常に不自然な画像になってしまう。一方、当該所定のバイトにより指定されるインデックスの変化が例えば少な過ぎると、そのインデックスにより決定されるα値の変化も少なくなり、その結果、αブレンディングされた画像にほとんど変化が見られず、上記遠近感を出すことができなくなる。このようなことから、本実施の形態では、適度な遠近感を得ることが可能な、上記Ｚ値の２バイト目をα値のインデックスとして使用することにしている。
【００３９】
［本実施の形態のＣＬＵＴとＺ値を用いた描画処理の流れ］
以下、本実施の形態のＣＬＵＴ（α値をグラデーションとしたＣＬＵＴ）と、α値のインデックスとしてＺ値の２バイト目を使用し、上述したような自然な遠近感を得る描画処理の流れを、具体的な描画例を用いつつ説明する。
【００４０】
図７には、本実施の形態における描画処理の概略的な流れを示す。なお、以下に説明する処理は、主にピクセルエンジン６が画像メモリ７に記憶されているデータを用いて行う処理である。
【００４１】
この図７において、ピクセルエンジン６は、先ず、ステップＳ１の処理として、フレームバッファ１０へ現在の画像（本発明における第１の画像）を描画し、また、Ｚバッファ８に対してＺ値を書き込む。
【００４２】
なお、上記現在の画像は、例えば図８に示すように「山」のオブジェクト２０と「家」のオブジェクト２１と「人」のオブジェクト２２とからなり、上記「山」のオブジェクト２０は仮想視点から最も遠方に位置し、一方、上記「人」のオブジェクト２２は仮想視点近傍に位置し、上記「家」のオブジェクト２１はそれら「山」のオブジェクト２０と「人」のオブジェクト２２の中間に位置するものであるとする。但し、ここでは説明を簡略化するため、それら各オブジェクト以外の背景画像については省略している。
【００４３】
次に、ピクセルエンジン６は、ステップＳ２の処理として、上記現在の画像を暈かした画像（本発明における第２の画像）を生成し、当該暈かし画像を上記フレームバッファ１０の別の記憶領域に保存する。なお、上記フレームバッファ１０とは別にフレームバッファを設け、当該別のフレームバッファに上記暈かし画像を保存するようにしてもよい。また、上記暈かし画像を生成する手法は種々存在し、その一例として上記現在の画像を例えばずらして合成するなどの手法がある。
【００４４】
このとき、上記ステップＳ２により生成された暈かし画像は、例えば図９に示すように、上記図８に示した「山」のオブジェクト２０が暈かされた画像２３と、上記「家」のオブジェクト２１が暈かされた画像２４と、上記「人」のオブジェクト２２が暈かされた画像２５とにより構成される画像となる。なお、これら各画像２３，２４，２５の暈かし量はそれぞれ同じになっている。
【００４５】
次に、ピクセルエンジン６は、ステップＳ３の処理として、Ｚバッファ８に書き込まれた上記図８の現在の画像の各ピクセルのＺ値の２バイト目を、インデックスとして、前記図４に示したＣＬＵＴからα値を読みとる。
【００４６】
ここで、図８に示した現在の画像は、上述したように、「山」のオブジェクト２０が仮想視点から最も遠く、一方、上記「人」のオブジェクト２２が仮想視点から最も近く、上記「家」のオブジェクト２１がそれらの中間の距離となっている。このため、当該図８に示した現在の画像の各ピクセルのＺ値は、「山」のオブジェクト２０を構成する各ピクセルのＺ値が最も小さく、一方、上記「人」のオブジェクト２２を構成する各ピクセルのＺ値は最も大きく、上記「家」のオブジェクト２１を構成する各ピクセルのＺ値はそれらの中間の値となる。したがって、それらＺ値の２バイト目をインデックスとして前記図４のＣＬＵＴからα値を取り出すと、上記「山」のオブジェクト２０を構成する各ピクセルに対応するα値は最も大きく（半透明度が最も大きく）、上記「人」のオブジェクト２２を構成する各ピクセルに対応するα値が最も小さく（半透明度が最も小さく）、上記「家」のオブジェクト２１を構成する各ピクセルに対応するα値がそれらの中間の値（中間の半透明度）となる。
【００４７】
その後、ピクセルエンジン６は、ステップＳ４の処理として、上記ステップＳ３の処理で読みとったα値からなるαプレーンを使用して、上記フレームバッファ１０に保存されている図８に示した現在の画像と上記図９に示した暈かし画像とをαブレンドする。
【００４８】
このとき、上記αプレーンは、上記「山」のオブジェクト２０を構成する各ピクセルの半透明度が最も大きく、上記「人」のオブジェクト２２を構成する各ピクセルの半透明度が最も小さく、上記「家」のオブジェクト２１を構成する各ピクセルの半透明度がそれらの中間の値となっているため、上記図８に示した現在の画像と上記図９に示した暈かし画像とをαブレンディングした画像は、図１０に示すような画像となる。
【００４９】
すなわち、図１０において、上記「山」のオブジェクト部分は、上記半透明度が最も大きいため、上記現在の画像よりも上記暈かし画像の割合が大きくなって暈けた画像２６として描画される。一方、上記「人」のオブジェクト部分は、上記半透明度が最も小さいため、上記暈かし画像よりも上記現在の画像の割合が大きくなってピントが合った状態の画像２８として描画される。また、上記「家」のオブジェクト部分は、中間の半透明度であるため、上記画像２８よりも暈けているが上記画像２６よりははっきりした画像２７となる。
【００５０】
なお、上記ピクセルエンジン６では、上記図７に示したフローチャートの処理を例えばＤＳＰのようなハードウェア的な構成により実現することも、或いは、ＣＰＵのように例えば通信回線を介して伝送された描画処理プログラムやＤＶＤ，ＣＤ−ＲＯＭ等の記憶媒体から記憶装置により読み出した描画処理プログラムによりソフトウェア的に実現することもできる。特に、上記ピクセルエンジン６での描画処理をソフトウェア的に実現する場合の描画処理プログラムは、上記図７のフローチャートで説明した各ステップの処理を順次行うようなプログラムとなる。当該描画処理プログラムは、予めピクセルエンジン６用の処理プログラムとして用意しておく場合のみならず、例えば前記図１の入力端子１３から前記ポリゴン情報等と共に、或いはそれに先だって入力することも可能である。
【００５１】
ソフトウェア的に本実施の形態の描画処理を実現するための具体的構成例として、図１１には、図７に示した流れの描画処理プログラムを実行するパーソナルコンピュータの概略構成を示す。なお、本実施の形態の描画処理プログラムは、主に図１１のＣＰＵ１２３が実行する。
【００５２】
この図１１において、記憶部１２８は、例えばハードディスク及びそのドライブからなる。当該ハードディスク内には、オペレーティングシステムプログラムや、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の各種の記録媒体から取り込まれたり、通信回線を介して取り込まれた、本実施の形態の描画処理プログラム１２９や、ポリゴン描画のための図形情報、テクスチャ、Ｚ値、通常テクスチャ、カラー値、α値等の各種のデータ１３０等が記憶されている。
【００５３】
通信部１２１は、例えば、アナログ公衆電話回線に接続するためのモデム、ケーブルテレビジョン網に接続するためのケーブルモデム、ＩＳＤＮ（総合ディジタル通信網）に接続するためのターミナルアダプタ、ＡＤＳＬ（Asymmetric  Digital  Subscriber  Line）に接続するためのモデムなどのように、外部とデータ通信を行うための通信デバイスである。通信Ｉ／Ｆ部１２２は、上記通信部１２１と内部バス（ＢＵＳ）との間でデータのやりとりを可能とするためのプロトコル変換等を行うインターフェイスデバイスである。
【００５４】
入力部１３３は、例えばキーボードやマウス、タッチパッドなどの入力装置であり、ユーザＩ／Ｆ部１３２は、上記入力部１３３からの信号を内部に供給するためのインターフェイスデバイスである。
【００５５】
ドライブ部１３５は、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のディスク媒体１５１や、カード状等の半導体メモリなどの記録媒体から、本実施の形態にかかる描画処理プログラムを含む各種のプログラムやデータを読み出し可能なドライブ装置である。ドライブＩ／Ｆ部１３４は、上記ドライブ部１３５からの信号を内部に供給するためのインターフェイスデバイスである。
【００５６】
表示部１３７は、例えばＣＲＴ（陰極線管）や液晶等の表示デバイスであり、表示ドライブ部１３６は上記表示部１３７を表示駆動させるドライブデバイスである。
【００５７】
ＲＯＭ１２４は、例えばフラッシュメモリ等の書き換え可能な不揮発性メモリからなり、当該パーソナルコンピュータのＢＩＯＳ（Basic  Input/Output  System）や各種の初期設定値を記憶している。ＲＡＭ１２５は、記憶部１２８のハードディスクから読み出されたアプリケーションプログラムや各種データなどがロードされ、また、ＣＰＵ１２３のワークＲＡＭとして用いられる。
【００５８】
ＣＰＵ１２３は、上記記憶部１２８に記憶されているオペレーティングシステムプログラムや本実施の形態の描画処理プログラム１２９に基づいて、当該パーソナルコンピュータの全動作を制御すると共に前述した描画処理を実行する。すなわち、この図１１に示す構成において、ＣＰＵ１２３は、上記記憶部１２８のハードディスクから読み出されてＲＡＭ１２５にロードされたアプリケーションプログラムの一つである、本実施の形態の描画処理プログラムを実行することにより、前述の本実施の形態で説明した描画処理を実現する。
【００５９】
［本発明実施の形態のまとめ］
以上のように、本実施の形態によれば、視点に近い物体等についてはピントが合い、仮想視点から遠くになるほど徐々に暈け、さらに仮想視点から遠い物体等であってもその色がなくなってしまうようなことがない、自然な遠近感が得られる画像を描画可能となっている。
【００６０】
また、前述した従来の描画手法の場合は、仮想視点からの距離に応じた多段階の縮小処理とそれに対応する拡大処理を行うことで暈けた画像を生成し、それら多段階の処理により得られた暈かし画像を元画像と合成することで遠近感を得るようにしていたため、画像処理量の増加が避けられなかったのに対し、本実施の形態では、上記仮想視点からの距離に応じたα値からなるαプレーンを使用して現在の画像と１種類の暈かし画像とをαブレンディングして遠近感を得るようにしているため、例えば仮想視点からの距離を２５６段階（１バイト分）で表すようにした場合であっても、画像生成処理量が増加することはなく、ＣＰＵの負荷の軽減と処理の高速化も可能となっている。
【００６１】
なお、上述した実施の形態の説明は、本発明の一例である。このため、本発明は上述した実施の形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。
【００６２】
本実施の形態では、現在の画像と暈かし画像を上記αプレーンによりαブレンドする例を挙げたが、例えば、上記αプレーンを使用して、任意の色と現在の画面をαブレンドすれば、距離が遠くなるにつれて、各オブジェクト等が当該任意の色に溶け込んでいくように見せることができる。この手法は、距離が遠くなるほど、霧がかかったように描画する、いわゆるフォグを実現する場合にも使用することができる。さらに、上記αプレーンを使用し、例えば任意の模様の画像と現在の画像をαブレンドするようなことを行えば、特殊な画像効果を実現することも可能になる。
【００６３】
また、上述の実施の形態では、各ピクセル毎のＺ値からα値を決定するようにしているが、例えばポリゴンやオブジェクト毎の仮想視点からの距離に基づいてα値を決定するようなことも可能である。
【００６４】
【発明の効果】
本発明は、第１の画像の所定の構成単位毎に仮想視点からの距離を表す値を設定し、所定の構成単位毎の距離を表す値に対応する係数を決定し、所定の構成単位毎に決定された係数に応じて、第１の画像と第２の画像を合成すること、すなわち例えば、第１の画像を暈かした第２の画像を生成し、所定の構成単位の距離が遠くなるほど大きい値となる半透明係数を用いて、第１の画像に第２の画像を半透明合成することにより、仮想視点からの距離に応じて暈けた自然な遠近感をもった画像を、少ないＣＰＵ負荷で実現可能となっている。
【図面の簡単な説明】
【図１】本発明実施の形態の描画装置の主要部の概略構成例を示す図である。
【図２】一般的なＣＬＵＴの説明に用いる図である。
【図３】ＣＬＵＴからＲ，Ｇ，Ｂを決定するためのインデックスの説明に用いる図である。
【図４】α値が階調化（グラデーション）された本実施の形態にかかるＣＬＵＴの説明に用いる図である。
【図５】３バイトで表されるＺ値の説明に用いる図である。
【図６】本実施の形態のＣＬＵＴからα値を決定するためのインデックスとして、Ｚ値の２バイト目を使用することにした理由の説明に用いる図である。
【図７】本実施の形態における描画処理の概略的な流れを示すフローチャートである。
【図８】遠近感を付加する前の現在の画像の一例を示す図である。
【図９】現在の画像の全面に暈かしをかけた暈かし画像の一例を示す図である。
【図１０】本実施の形態の描画処理により生成された、自然な遠近感を持った画像例を示す図である。
【図１１】図７のフローチャートで示した流れの描画処理プログラムを実行するパーソナルコンピュータの概略構成を示すブロック図である。
【符号の説明】
１…描画装置、２…輝度計算および座標変換ユニット、３…ＬＯＤ計算ユニット、４…テクスチャ座標計算ユニット、５…ＤＤＡユニット、６…ピクセルエンジン、７…画像メモリ、８…Ｚバッファ、９…テクスチャバッファ、１０…フレームバッファ
【図１】
0003715222.tif 000002
【図２】
0003715222.tif 000003
【図３】
0003715222.tif 000004
【図４】
0003715222.tif 000005
【図５】
0003715222.tif 000006
【図６】
0003715222.tif 000007
【図７】
0003715222.tif 000008
【図８】
0003715222.tif 000009
【図９】
0003715222.tif 000010
【図１０】
0003715222.tif 000011
【図１１】
0003715222.tif 000012