[画像生成装置の基本構成と基本動作]
図1は,本発明の第1の側面に係る画像生成装置の基本構成を示す概略図である。図1に示されるように,本発明の第1の側面に係る画像生成装置(1)は,あるピクセルにおけるポリゴンのエッジ情報を格納するためのエッジ情報格納メモリ(2)と,ベクトル形式のラスタライズ結果を格納するためのベクタデータ格納メモリ(3)と,前記ベクタデータ格納メモリに格納されたベクトル形式のラスタライズ結果に基づいて,前記ラスタライズ結果である画像のエッジ情報を前記エッジ情報格納メモリに書き出す処理を行うためのエッジ情報生成部(4)と,少なくとも背景に関する画像情報及び複数のレイヤごとの画像情報を格納するレイヤ画像格納メモリ(5)と,前記エッジ情報格納メモリに格納されたエッジ情報を用いて,ベクタ形式で定義された画像の内部を塗りつぶす際に,前記レイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報を読み出して,ベクタ形式の画像及びレイヤごとの画像情報を重ね合わせ,ピクセル単位の画像処理演算を行うことによりピクセル単位の画像合成を行う画像合成部(6)と,前記画像合成部が合成した画像を記憶するための結果画像格納メモリ(7)とを具備する。
図面に従って,上記画像生成装置の基本動作を説明する。図2は,本発明の第1の側面に係る画像生成装置により得られる画像の流れを説明するための図である。図2(a)は,ベクタデータ格納メモリに格納されるベクトル形式で定義されたポリゴンの形状データの例を示す図である。図2(b)は,エッジ情報格納メモリに書き込まれた,ラスタライズ結果である画像のエッジ情報を含むデータの例を示す図である。図2(c)は,画像合成部で合成され,結果画像格納メモリ(7)に格納された合成画像の例を示す図である。
エッジ情報格納メモリ(2)が,あるピクセルにおけるポリゴンのエッジ情報を格納する。たとえば,ユーザからの入力により定義されたポリゴンのエッジ情報や,所定の演算に基づいて算出されたポリゴンのエッジ情報が書き込み可能に記憶される。ベクタデータ格納メモリ(3)が,たとえばベクトル形式で定義されたポリゴンの形状データなどを格納する。すなわち,図2(a)に示されるように,ベクタデータ格納メモリ(3)にベクトル形式で定義されたポリゴンの形状データが格納される。なお,図2(a)中,11は,ベクタデータ格納メモリの2次元メモリ空間の例である。ベクタデータ格納メモリ(3)には,ピクセル単位ではなく,ポリゴンの形状に関する座標位置情報及びベジエ自由曲線のような関数で定義されたベクタ形状データ(12)が格納される。
エッジ情報生成部(4)は,ベクタデータ格納メモリに格納されたベクトル形式の形状データに基づいてラスタライズ処理を行い,前記エッジ情報格納メモリに前記ラスタライズ結果である画像のエッジ情報を書き出す。具体的には,ラスタライズ処理により,ベクトル形状を有するエッジ部分の位置情報や,傾き情報,方向情報などのピクセル情報を求めて,前記エッジ情報格納メモリに記憶される情報を更新する。図2(b)は,エッジ情報格納メモリに書き込まれた,ラスタライズ結果である画像のエッジ情報を含むデータの例を示す図である。なお,図2(b)中,14は,エッジ情報格納メモリの2次元メモリ空間(ピクセルごと)の例である。この例では,ポリゴンのベクタ形状データ(12)をピクセル単位のエッジピクセル(13)に変換し,この情報をエッジ情報格納メモリ(2)に伝える。すると,エッジ情報格納メモリ(2)に格納されるエッジ情報が更新される。
レイヤ画像格納メモリ(5)は,少なくとも背景に関する画像情報及び複数のレイヤごとの画像情報を格納する。画像合成部(6)が,エッジ情報格納メモリ(2)に格納されたエッジ情報を用いて,ベクタ形式で定義された画像の内部を塗りつぶす際に,前記レイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報のうちいずれか又は2つ以上の情報を読み出して,ベクタ形式の画像(又は,エッジピクセル(13)などのエッジ情報)及びレイヤごとの画像情報を重ね合わせ,ピクセル単位の画像処理演算を行うことによりピクセル単位の画像合成を行う。結果画像格納メモリ(7)が,画像合成部(6)により合成された画像情報を記憶する。図2(c)は,画像合成部で合成され,結果画像格納メモリ(7)に格納された合成画像の例を示す図である。具体的には,図2(c)に示されるように,画像合成部は,エッジ情報,レイヤ画像格納メモリ(5)に格納されたレイヤ画像情報などを参照し,ベクタ領域の領域塗りつぶしピクセル(15),ベクタ領域のエッジ部分ピクセル(好ましくはアンチエイリアスエッジピクセル)(16),及びレイヤ画像ピクセル(17)を求める。そして,求めた合成画像情報を結果画像格納メモリ(7)へ伝え,結果画像格納メモリ(7)はその情報に基づき格納情報を更新する。その結果,結果画像格納メモリ(7)のメモリ空間(18)には,ピクセルごとにベクタ領域の領域塗りつぶしピクセル(15),アンチエイリアスエッジピクセル(16),及びレイヤ画像ピクセル(17)に分類された合成画像情報が格納されることとなる。以下,各要素について説明する。
[画像生成装置]
画像生成装置(1)は,3次元コンピュータグラフィックスなどに用いられるコンピュータシステムや,そのような3次元コンピュータ画像を生成するための回路,チップなどとして実現されるものである。なお,本発明の画像生成装置(1)を構成する各要素は,バスなどで接続され,情報の授受ができるようにされている。
[エッジ情報格納メモリ]
エッジ情報格納メモリ(2)は,あるピクセルにおけるポリゴンのエッジ情報を格納するためのメモリである。このエッジ情報格納メモリは,たとえば,ハードディスク,バッファ,RAMなどの記録装置によって実現される。そして,エッジ情報格納メモリには,たとえば,ユーザからの入力により定義されたポリゴンのエッジ情報や,所定の演算に基づいて算出されたポリゴンのエッジ情報が書き込み可能に記憶される。
[ベクタデータ格納メモリ]
ベクタデータ格納メモリ(3)は,ベクトル形式のポリゴンの形状データを格納するためのメモリである。このベクタデータ格納メモリは,たとえば,ハードディスク,バッファ,RAMなどの記録装置によって実現される。なおベクトル形式のラスタライズ結果は,公知のラスタライズ回路によって求められる情報であり,3次元空間上の点とされるポリゴンの頂点のスクリーン座標系における位置情報によって,対応するフレームバッファアドレスを算出し,又頂点のテクスチャ座標情報から対応するテクスチャテクセル(ピクセル)を取り出すことにより得ることができる。ベクタデータ格納メモリ(3)に記憶される,情報は,たとえばベクトル形式で定義されたポリゴンの形状データがあげられる。好ましくは,エッジ情報格納メモリ(2)には,ピクセルとしてではなく,座標位置情報及び,ベジエ自由曲線のような所定の関数で定義されたベクタ形状データが記憶される。
ベクタデータ格納メモリは,好ましくは,情報をストリーム形式データとして格納するものがあげられる。このようなストリーム形式で格納するために,ベクタデータ格納メモリに情報が格納される前にストリームデータ生成回路により,ストリーム形式のデータへと返還されてもよい。情報がストリーム形式で格納されるので,効果的に情報を読み出すことができる。
[エッジ情報生成部]
エッジ情報生成部(4)は,ベクタデータ格納メモリに格納されたベクトル形式の形状データに基づいてラスタライズ処理を行い,前記ラスタライズ結果である画像のエッジ情報を前記エッジ情報格納メモリに書き出すための装置である。
図3は,エッジ情報生成部の構成例を示すブロック図である。図3に示されるように,エッジ情報生成部(4)として,ベクタデータ格納メモリ(3)から読み出されたベクタ形状データ(12)のコマンド解析するとともに,エッジ情報生成部(4)全体の処理を制御するためのコマンド制御部(21)と,前記コマンド制御部(21)の制御信号に従って,ベクタデータ格納メモリに格納されたベクトル形式の形状データを用いてラスタライズ処理を行うためのラスタライズ部(22)と,前記コマンド制御部(21)の制御信号に従って,ベクタデータ格納メモリに格納されたベクトル形式の形状データを用いてエッジ情報を求めるためのエッジ情報演算部(23)と,エッジ情報格納メモリ(2)に情報を伝え,エッジ情報格納メモリに格納されるエッジ情報を更新するためのエッジメモリ制御部(24),とを具備するものがあげられる。
そして,コマンド制御部(21)は,ベクタデータ格納メモリ(3)から読み出されたベクタ形状データ(12)のコマンド解析するとともに,エッジ情報生成部(4)全体の処理を制御する。この処理はハードウェアによって行われてもよい。また,ソフトウェアとハードウェアとが協働して処理を行ってもよい。具体的には,コマンド制御部(21)として機能するCPUなどが,入力情報に基づいてコマンドを解析し,必要に応じメインメモリなどに格納された制御プログラムを読み出し,読み出した制御プログラムの制御アルゴリズムに従って,入力された情報を用いて所定の処理を行うようにすればよい。なお,各情報は,適宜バッファなどのメモリに格納され,適宜更新されるようにすればよい。もちろん,コマンド制御部(21)のみならず,エッジ情報生成部(4)全体として,上記したようなハードウェアとソフトウェアとの協働による処理がなされてもよいし,ハードウェアのみによる処理がなされてもよい。
ラスタライズ部(22)は,コマンド制御部(21)の制御信号に従って,ベクタデータ格納メモリに格納されたベクトル形式の形状データを用いてラスタライズ処理を行う。より具体的には,ラスタライズ部(22)は,解析されたコマンドのうち座標及び関数のデータを用い,エッジ情報を生成する。
エッジ情報演算部(23)は,前記コマンド制御部(21)の制御信号に従って,ベクタデータ格納メモリに格納されたベクトル形式の形状データを用いてエッジ情報を求める。より具体的には,エッジ情報演算部(23)は,前記ラスタライズ部(22)で求められたラスタライズされたエッジ情報を受取り,そのエッジ情報に,後の塗りつぶし処理にて必要な位置,傾き,方向,アンチエイリアス情報のうちいずれか又は2つ以上に関する情報を付加したエッジ情報とする。
エッジメモリ制御部(24)は,エッジ情報演算部(23)からエッジ情報を受取り,エッジ情報格納メモリ(2)にエッジ情報を伝え,エッジ情報格納メモリに格納されるエッジ情報を更新する。このようにして,図2(b)に示されるようなエッジ情報を含むデータがエッジ情報格納メモリに格納されることとなる。
なお,エッジ情報生成部が,ベクタデータ格納メモリに格納されたベクトル形式のラスタライズ結果に基づいて,エッジ情報格納メモリにラスタライズ結果である画像のエッジ情報,ピクセルごとの透過度,ピクセルのエッジ部分における水平方向及び垂直方向に関するラスタライズ進行符号,及びラスタライズ時のエッジ部分の重なり回数のいずれか又は2つ以上を求め,その求めた結果をエッジ情報格納メモリに書き出するものは本発明の好ましい実施態様である。
ピクセルごとの透過度を用いれば,画像合成の際に,画像合成部(6)の制御に基づいて,半透明処理などを効果的に行うことができる。ピクセルのエッジ部分における水平方向及び垂直方向に関するラスタライズ進行符号があれば,後の画像合成の際に,画像合成部(6)が,ライン単位の情報やブロック単位の情報を,ライン単位ごと又はブロック単位ごとに容易に読み出すことができることとなる。さらに,ラスタライズ時のエッジ部分の重なり回数を用いれば,後の画像合成の際に,画像合成部(6)が塗りつぶしを行うかどうかの判定を容易に行うことができることとなる。
[レイヤ画像格納メモリ]
レイヤ画像格納メモリ(5)は,少なくとも背景に関する画像情報及び複数のレイヤごとの画像情報を格納するための装置である。レイヤ画像格納メモリ(5)は,たとえば,ハードディスク,バッファ,RAMなどの記録装置によって実現される。なお,レイヤ画像格納メモリ(5)に格納される画像が,z座標や,各レイヤに対する奥行き方向の位置を示すインデックスと共に格納されるものは,視点から見た位置が明確となるので,画像を合成する際にカリング処理などを容易に行うことができるため,好ましい。
[画像合成部]
画像合成部(6)は,エッジ情報格納メモリ(2)に格納されたエッジ情報を用いて,ベクタ形式で定義された画像の内部を塗りつぶす際に,前記レイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報のうちいずれか又は2つ以上の情報を読み出して,ベクタ形式の画像(又は,エッジピクセル(13)などのエッジ情報)及びレイヤごとの画像情報を重ね合わせ,ピクセル単位の画像処理演算を行うことによりピクセル単位の画像合成を行うための装置である。ピクセル単位の画像処理演算とは,たとえば,画像を合成するための演算処理を意味し,たとえば,ピクセル単位での塗りつぶし演算などがあげられる。
図4は,画像合成部の構成例を示すブロック図である。図4に示されるように,画像合成部(6)として,重ねあわせ処理,ピクセル単位のピクセル演算,又は半透明処理その他のラスタオペレーションのうち少なくともひとつ以上を行い,ピクセル単位での塗りつぶし処理を行うための塗りつぶし処理部(31)と,前記塗りつぶし処理部(31)が求めた演算結果をブロックごと又はラインごとに格納するラインメモリ(32)と,結果画像格納メモリ(7)に情報を伝え,結果画像格納メモリ(7)に格納される結果画像情報を更新するための結果メモリ制御部(33)と,画像合成部(6)における演算を制御する図示しない画像合成制御部と,を具備するものがあげられる。
画像合成制御部は,画像合成部(6)における演算を制御する。この処理はハードウェアによって行われてもよい。ハードウェアにより実現した場合は,処理が高速になり,消費電力が軽減するので好ましい。また,ソフトウェアとハードウェアとが協働して処理を行ってもよい。具体的には,画像合成制御部として機能するCPUなどが,入力情報に基づいてコマンドを解析し,必要に応じメインメモリなどに格納された制御プログラムを読み出し,読み出した制御プログラムの制御アルゴリズムに従って,入力された情報を用いて所定の処理を行うようにすればよい。なお,各情報は,適宜バッファなどのメモリに格納され,適宜更新されるようにすればよい。
図5は,画像合成部において行われる画像合成の過程を説明するための図である。画像合成制御部に,エッジ情報格納メモリ(2)に格納されたエッジ情報,及びレイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報のうちいずれか又は2つ以上の情報が入力される。画像合成制御部は,好ましくは,それらの情報を1ライン単位,又はブロック単位で読み出すよう指令を出し,そのようにして読み出された単位ごとに下記の処理を行う。画像合成制御部は,それら入力された情報をもとに必要な情報を分析して,各種演算処理を行うよう制御指令を出す。
塗りつぶし処理部(31)は,たとえば,上記制御指令に基づいて,エッジ情報格納メモリ(2)に格納されたエッジ情報,及びレイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報のうちいずれか又は2つ以上の情報を用いて,それらの情報の重ねあわせ処理,ピクセル単位のピクセル演算,又は半透明処理その他のラスタオペレーションのうち少なくともひとつ以上を行うことにより,ピクセル単位での塗りつぶし処理を行う。図5に示されるように,塗りつぶし処理部(31)には,たとえば,エッジ情報格納メモリ(2)に格納されたエッジ情報,及びレイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報のうちいずれか又は2つ以上の情報が,それぞれライン単位又はブロック単位で入力される。塗りつぶし処理部(31)は,ピクセル単位のピクセル演算などを行う。得られた情報は,ラインメモリ(32)に伝えられ,格納される。なお,レイヤ画像格納メモリから,各画像情報のz座標又は各レイヤに対する奥行き方向の位置を示すインデックスを読み出して,それらを分析することにより,ピクセル単位での画像の上下関係を把握して,ピクセル単位での塗りつぶし画像(色)を決定することは本発明の好ましい実施態様である。
ラインメモリ(32)は,たとえば,上記制御指令に基づいて,塗りつぶし処理部(31)が求めた演算結果を格納する。ラインメモリ(32)は,好ましくは,ブロックごと又はラインごとに格納する。また,たとえば,上記制御指令に基づいて,1ライン単位,またはブロック単位分の処理が終わった場合,ラインメモリ(32)に格納された情報に基づいて,結果メモリ制御部(33)に対して結果画像書き出しの要請を行い,ラインメモリ(32)に格納された情報を単位ごとに読み出して,結果メモリ制御部(33)へ伝える。この際にラインメモリには,ピクセル単位で,ベクタ領域の領域塗りつぶしピクセル(15),ベクタ領域のエッジ部分ピクセル(好ましくはアンチエイリアスエッジピクセル)(16),及びレイヤ画像ピクセル(17)に分類され,格納される。
結果メモリ制御部(33)は,たとえば,上記制御指令に基づいて,格納される結果画像情報を順次更新する。この更新は,たとえば,図5に示されるように,ライン単位又はブロック単位で行われる。全てのラインについて書き込み処理が終わると,図2(c)に示したようなメモリ状態が得られる。
[結果画像格納メモリ]
結果画像格納メモリ(7)は,画像合成部(6)が合成した画像を記憶するための記憶装置である。結果画像格納メモリ(7)として,フレームバッファがあげられる。結果画像格納メモリ(7)に格納された情報は,読み出された後,表示装置の特性などに応じてγ補正などの処理が適宜施され,表示装置へと伝えられ,画像として表示されることとなる。なお,結果画像格納メモリは,好ましくは,情報をストリーム形式データとして格納するものがあげられる。このようなストリーム形式で格納するために,結果画像格納メモリに情報が格納される前にストリームデータ生成回路により,ストリーム形式のデータへと返還されてもよい。情報がストリーム形式で格納されるので,効果的に情報を読み出すことができる。
画像合成部の好ましい実施態様として,前記エッジ情報格納メモリに格納されたエッジ情報を用いて,ベクタ形式で定義された画像の内部を塗りつぶす際に,前記レイヤ画像格納メモリに格納された背景に関する画像情報及び複数のレイヤごとの画像情報を読み出して,ベクタ形式の画像及び複数のレイヤごとの画像情報を重ね合わせ,前記エッジ情報格納メモリに格納されたピクセルごとの透過度を用いてピクセルごとのブレンディング計算を行い,前記エッジ情報格納メモリに格納された水平方向及び垂直方向に関するラスタライズ信号符号に基づいて,ライン単位又はブロック単位で画像合成処理を行い,前記エッジ情報格納メモリに格納されたエッジ部分の重なり回数を用いて塗りつぶしを行うかどうかの判定を行い,ピクセル単位の画像処理演算を行うことによりピクセル単位の画像合成を行うものがあげられる。
エッジ情報生成部又は画像合成部として,アンチエイリアス処理を行うアンチエイリアス回路などのアンチエイリアス処理部を具備するものがあげられる。前記アンチエイリアス処理部は,前記あるピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する面積算出回路と,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択する色選択回路と,前記面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定する色合成回路とを具備するアンチエイリアス回路があげられる。
前記画像合成部は,色空間変換処理部及び色補正処理部のいずれか又は両方を具備し,ピクセル単位で色空間変換処理又は色補正処理を施した画像合成を行うものであってもよい。さらに,前記画像合成部は,画像回転処理及び画像サイズ調整処理のいずれか又は両方を含む幾何演算処理部を具備し,レイヤ画像に対し,回転処理又は画像サイズ調整処理を施した画像合成を行うものであってもよい。
前記画像合成部は,画像回転処理及び画像サイズ調整処理のいずれか又は両方を含む幾何演算処理部を具備し,前記幾何演算処理部は,頂点データを出力する頂点データ出力装置と,前記頂点データ出力装置と接続され,頂点に関する固定された演算を行う頂点演算装置と,前記頂点演算装置と接続され,ポリゴンに関する固定された演算を行うポリゴン演算装置と,入力元に前記頂点データ出力装置,前記頂点演算装置及び前記ポリゴン演算装置のうち1つ又は2つ以上と接続され,出力先に前記頂点演算装置及び前記ポリゴン演算装置のうち1つ又は2つと接続される1又は複数の汎用演算装置とを具備する幾何演算処理部であるものがあげられる。
[アンチエイリアス回路]
たとえば,特に携帯電話など表示画面が小さな表示装置では,3次元CGなどを表示することはそれほど意図されていなかったし,ましてやアンチエイリアス処理を施したCGなどを表示することは意図されていなかった。本発明の好ましい態様では,携帯型の表示装置においても,上記のような画像処理をすることとあわせ,さらにアンチエイリアス処理を行うアンチエイリアス回路を具備するものである。以下,この態様に係るアンチエイリアス回路について説明する。このアンチエイリアス回路を具備することで,レンダリングのための計算量を大きく増加させずに,レンダラとメモリ間の通信帯域幅を大きく増加させず,又は高画質,のアンチエイリアシング技術を提供することができる。また,このアンチエイリアス回路を具備することで,アンチエイリアスをかけるためのメモリアクセスの要求帯域幅が狭く,レンダリングにおける処理量も小さいので,低消費電力,小面積のLSIで高画質のCG画像が提供できる。
[アンチエイリアス回路の例]
以下,図面を用いて本発明のアンチエイリアス回路について説明する。図6は,本発明の第1の実施形態に係るアンチエイリアス回路のブロック図である。図6に示されるように,この態様に係るアンチエイリアス回路(41)は,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する面積算出回路(42)と,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択する色選択回路(43)と,前記面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定する色合成回路(44)とを具備するアンチエイリアス回路(41)である。図中46は,エッジメモリ(又はエッジZメモリ)を示し,47は,色メモリを示す。また,各メモリ及び回路はバスにより連結されている。
このようなアンチエイリアス回路であれば,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定できるので,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択し,面積Sと選択した色とを用いて,前記ピクセルのカラーを決定する,コンピュータグラフィックスにおけるアンチエイリアス方法を提供できる。
エッジ情報は,通常,エッジの傾き及び切片に関する情報を含む情報であり,ピクセル内の,エッジの傾き,切片,始点及び終点,並びにポリゴンの法線のいずれかを含むものであってもよい。エッジ情報は通常エッジメモリ(46)に記憶され,CPUなどの制御装置による制御などによりエッジ情報が読み出され,バスを通じて面積算出回路(42)又は色選択回路へ入力される。
エッジメモリ(46)は,エッジ情報のみならず,Z値をも記憶するエッジZメモリのものを含んでもよい。このようなエッジZメモリを用いれば,複数のポリゴンの部分があるピクセル上に存在する場合であっても,効果的に最前面にあるポリゴンを判別できる。
図7は,あるピクセルにおけるポリゴンのエッジ,及びサンプリングポイントの例を示す図である。図7は,あくまで例示であって,図7に示すもの以外のサンプリングポイントを採用しても構わない。符号60は,サンプリングポイントであるピクセルの中心点C0を示す。符号61〜64は,サンプリングポイントであるピクセルにおける各頂点C1〜C4を示す。なお,各頂点C1〜C4は隣接するピクセルと共有される頂点である。符号66は,エッジを示す。エッジは,あるポリゴンの一部があるピクセルを占める場合に生ずる。符号67及び68は,エッジとピクセルの辺との交点を示す。符号69は,エッジで区切られるピクセルの2つの領域のうち,ピクセルの中心点を含む領域を示す。符号70は,エッジで区切られるピクセルの2つの領域のうち,ピクセルの中心点を含まない領域を示す。
図8は,あるピクセルにおけるポリゴンのエッジ,及びサンプリングポイントの別の例を示す図である。図9は,あるピクセルにおけるポリゴンのエッジ,及びサンプリングポイントの別の例を示す図である。図10は,あるピクセルにおけるポリゴンのエッジ,及びサンプリングポイントの別の例を示す図である。
図9に示されるように,あるピクセルに含まれるエッジの数は複数の場合もある。あるピクセルに含まれるエッジの数はエッジとピクセルの辺との交点の数を算出する回路を用いれば簡単に求めることができる。すなわち,交点の数の半分がエッジの数となる。このようなエッジ本数計算回路を有することは本発明の好ましい実施態様である。たとえば,あるピクセルに含まれるエッジの数が2本以上あるかどうか判断し,1本の場合は以下に示す各回路を用いてピクセルの色を決定し,0本又は2本以上の場合は,各サンプリングポイントのいずれか又は全ての色の平均を求めることでピクセルの色を決定するようにしてもよい。このような色の平均を求める回路は,加算回路と除算回路,加算回路とテーブルなどを適宜用いる事により容易に設計できる。また,図10に示されるようにあるピクセルに存在するポリゴンが2つ以上存在する場合もある。
[面積算出回路]
面積算出回路(42)は,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定するための回路である。
面積算出回路が求める面積Sは,たとえば,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積である。また,あるピクセルに含まれるエッジの数が2本以上ある場合は,あるポリゴンの部分のうちそのピクセルに占める領域の面積であってもよいし,あるポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積であってもよい。また,あるピクセルにポリゴンが2つ以上含まれる場合は,それぞれのポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積を求めてもよいし,あるピクセルに占める面積が最も大きいポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積を求めてもよい。また,ポリゴンの中心点を含むポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積を求めてもよい。
前記面積算出回路の例として,前記エッジと面積Sとの関係を記憶した面積テーブルを参照することにより,前記ピクセルのうち前記エッジにより分断される部分の面積Sを算出するものがあげられる。より具体的には,エッジとピクセルの辺との2つの交点と面積Sとの関係を格納した面積テーブルがあげられる。このような面積テーブルを用いることで,2つの交点から迅速に面積Sを得ることができる。あるピクセルに含まれるエッジの数が2本以上ある場合においても,各交点と面積Sとの関係を格納した面積テーブルを用意してもよい。しかし,交点が多くなると,記憶しなければならないパターンが多くなり多大なメモリを必要とするようになるので,面積テーブルは,ある2つの交点(ひとつのエッジ)についての面積Sを格納するテーブルを用いるものが好ましい。図10に示されるように,あるポリゴンがあるピクセルに2つのエッジを有する場合は,面積テーブルを2回参照し減算回路などで減算することで容易にあるピクセルに占めるあるポリゴンの面積Sを求めることができる。図9の4つの交点をP1〜P4とすると,まずは交点P3とP4とを用い,面積テーブルから台形P3C1C2C4P4の面積を求め,その値をメモリに記憶する。そして,交点P1とP2とを用いて,台形P1C1C3C4P2の面積を求め,その値をメモリに記憶し,減算回路及び/又は加算回路を用いてP1C1P3C4C4P2の面積を求めればよい。S=台形P1C1C3C4P2−(1−台形P1C1C3C4P2)より,減算回路のみでも面積Sを求めることができるし,また2つの台形の面積の和から1を引いた値となるので,減算回路及び加算回路を用いても面積Sを求めることができる。
[色選択回路]
色選択回路は,ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイントを選択するか,又は当該サンプリングポイントにおける色を選択するための回路である。なお,簡単のために色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとする。
色選択回路の例として,以下のものがあげられる。すなわち,ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,前記ピクセルの中心点をサンプリングポイントとして選択し,その中心点における色をCaとして選択する。一方,エッジで区切られるピクセルの2つの領域のうち,ピクセルの中心点を含まない領域に含まれるサンプリングポイントにおける色の平均を求めて選択する。たとえば図10の60で示される領域において,ピクセルの中心点を含まない領域に含まれるサンプリングポイントはC1とC3の2つであるから色を求めるサンプリングポイントとしてC1とC3を選択し,Cbとして,C1とC3の平均を求めればよい。サンプリングポイントを選択するには,エッジ情報(交点情報)を用いれば容易に決定できる。たとえば,エッジがひとつの場合は,どの辺上に交点があるか,また交点の位置情報を用いる事で容易にサンプリングポイントを決定できる。そして,加算回路と除算回路,加算回路と1/2テーブル,又は加算回路と1/3テーブルを用いることで容易にCbを求めることができる。
色選択回路の別の例として,以下のものがあげられる。すなわち,ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,前記ピクセルの中心点における色をCaとして選択する。一方,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含まない領域に含まれる任意のサンプリングポイントにおける色とを選択するものである。たとえば,図7のようなケースでは,C1とC3が,サンプリングポイントとして選択され,いずれかの色がCbとして選択される。
色選択回路の別の例として,以下のものがあげられる。すなわち,ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域に含まれる任意のサンプリングポイントにおける色と,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含まない領域に含まれる任意のサンプリングポイントにおける色とを選択するものである。図7のようなケースでは,C0とC2とC4が,サンプリングポイントとして選択され,いずれかの色がCaとして選択される。C1とC3が,サンプリングポイントとして選択され,いずれかの色がCbとして選択される。
色選択回路の別の例として,以下のものがあげられる。すなわち,前記ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域に含まれるサンプリングポイントにおける色の平均を求めたものと,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含まない領域に含まれるサンプリングポイントにおける色の平均を求めたものとを選択するものである。
色選択回路の別の例として,以下のものがあげられる。すなわち,エッジ情報から,前記ピクセル中のポリゴンが占める任意の点と,サンプリングポイントのうちポリゴンが占めない任意の点とを選択することにより,ピクセルにおける複数のサンプリングポイントから色合成に用いる2つのサンプリングポイントを選択するか,又は前者の点と後者の点における色を選択することにより,当該サンプリングポイントにおける色を選択するものである。
[色合成回路]
色合成回路は,面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定するための回路である。色合成回路の例として,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,Ca×S+Cb(1−S)を求めることにより,前記ピクセルのカラーを決定するものがあげられる。
より具体的な色合成回路として,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,乗算回路,加算回路及び除算回路(又は[1−Sテーブル])を用いることにより,乗算回路がSとCaとを乗算しS×Caを求め,除算回路又は[1−Sテーブル]が(1−S)の値を求め,乗算回路が(1−S)×Cbを求め,加算回路がS×Caと(1−S)×Cbとを加算することによりS×Ca+(1−S)×Cbを求め,前記ピクセルのカラーを決定するものがあげられる。
また,上記とは別の具体的な色合成回路として,S x (Ca-Cb) + Cbを求める回路が上げられる。これは,S x Ca + (1-S) x Cb = S x (Ca-Cb) +
Cbであることに基づくものである。このよう直接S x (Ca-Cb) + Cbを求めると,乗算器の数が減少する(2つからひとつになる)ので好ましい。また,1−Sテーブルなども必要なくなるため好ましい。具体的には,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,乗算回路,加算回路などを用いて,S x (Ca-Cb) + Cbを求めればよい。たとえば,S ,Ca,Cbの値がバスなどを介して色合成回路へ入力されると,加算器(減算器)が,Ca-Cbの値を求め,乗算器がS
x (Ca-Cb)の値を求め,加算器がS x (Ca-Cb) + Cbを求めればよい。
[動作例]
以下,アンチエイリアス回路の動作例を説明する。エッジメモリ46からあるポリゴンのエッジ情報,又はエッジ情報とZ値とを読み出す。読み出された情報はバスを通じて,面積算出回路(42)と,色選択回路(43)とに入力される。面積算出回路(42)は,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する。
面積算出回路が面積Sを求める方法として,エッジ情報に含まれる交点と面積Sとの関係を記憶した面積テーブルを参照することにより,前記ピクセルのうち前記エッジにより分断される部分の面積Sを算出するものがあげられる。このようにして面積Sが求められる。求められた面積Sは,バスを通じて色合成回路(44)に入力される。
一方,色選択回路が,あるピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイントを選択するか,又は当該サンプリングポイントにおける色を選択する。色を選択する例として,あるピクセルの中心点をサンプリングポイントとして選択し,その中心点における色をCaとして選択する。各サンプリングポイントの色情報は,色メモリ(47)に記憶されており,記憶された色情報を読み出すことで各サンプリングポイントにおける色情報を得ることができる。一方,エッジで区切られるピクセルの2つの領域のうち,ピクセルの中心点を含まない領域に含まれるサンプリングポイントにおける色の平均を求めて選択する。このようにして色合成に用いられる色Ca及びCbが決定される。決定された色Ca及びCbは,バスを通じて色合成回路(44)に入力される。
色合成回路が,面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定する。具体的には,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,Ca×S+Cb(1−S)(又は,S x (Ca-Cb) + Cb)などを求めることにより,前記ピクセルのカラーを決定する。
[アンチエイリアス回路の別の例] 図11は,上記とは別のアンチエイリアス回路のブロック図である。図11に示されるように,この態様に係るアンチエイリアス回路(41)は,エッジ情報からピクセルが分断されるエリアタイプを決定するためのエリアタイプ決定回路(45)と,前記エッジ情報,又は前記エッジ情報とエリアタイプ情報とを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する面積算出回路(42)と,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択する色選択回路(43)と,前記面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定する色合成回路(44)とを具備するアンチエイリアス回路(41)に関する。図中46は,エッジメモリ(又はエッジZメモリ)を示し,47は,色メモリを示す。また,各メモリ及び回路はバスにより連結されている。
このようなアンチエイリアス回路であれば,エッジ情報からピクセルが分断されるエリアタイプを決定し,前記エッジ情報,又は前記エッジ情報とエリアタイプ情報とを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定できるので,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択し,前記面積Sと前記選択された色とを用いて,前記ピクセルのカラーを決定するコンピュータグラフィックスにおけるアンチエイリアス方法を提供できる。
エッジ情報は,通常,エッジの傾き及び切片に関する情報を含む情報であり,ピクセル内の,エッジの傾き,切片,始点及び終点,並びにポリゴンの法線のいずれかを含むものであってもよい。エッジ情報は通常エッジメモリ(46)に記憶され,CPUなどの制御装置による制御などによりエッジ情報が読み出され,バスを通じて面積算出回路(42)又は色選択回路(43)へ入力される。
エッジメモリ(46)は,エッジ情報のみならず,Z値をも記憶するエッジZメモリのものを含む。このようなエッジZメモリを用いれば,複数のポリゴンの部分があるピクセル上に存在する場合であっても,効果的に最前面にあるポリゴンを判別できる。
エッジ本数計算回路を有することは本発明の好ましい実施態様である。たとえば,あるピクセルに含まれるエッジの数が2本以上あるかどうか判断し,1本の場合は以下に示す各回路を用いてピクセルの色を決定し,0本又は2本以上の場合は,各サンプリングポイントのいずれか又は全ての色の平均を求めることでピクセルの色を決定するようにしてもよい。このような色の平均を求める回路は,加算回路と除算回路,加算回路とテーブルなどを適宜用いる事により容易に設計できる。
[エリアタイプ決定回路]
エリアタイプ決定回路(45)は,エッジ情報からピクセルが分断されるエリアタイプを決定するための回路である。具体的なエリアタイプ決定回路(45)として,前記エッジと前記ピクセルの辺との交点情報を用いて,交点情報とエリアタイプとの関係を記憶したエリアタイプメモリ(エリアタイプテーブル)を参照することによりエリアタイプを決定するものがあげられる。
エリアタイプとして,六角形(例図9),五角形(例図8),四角形及び三角形を含むものがあげられる。また,別のエリアタイプとして,六角形,五角形,四角形及び三角形を含み,前記四角形は,前記ピクセルと前記ポリゴンの4つの交点が前記ピクセルの対向する辺上に存在する四角形と,前記ピクセルと前記ポリゴンの4つの交点が前記ピクセルの隣接する辺上に存在する四角形とを含み,前記三角形は,前記ピクセルと前記ポリゴンの3つの交点が前記ピクセルの対向する辺上に存在する三角形と,前記ピクセルと前記ポリゴンの3つの交点が前記ピクセルの隣接する辺上に存在する三角形とを含むものがあげられる。このようにエリアタイプごとに分類するので容易に面積を求めることができることとなる。
エリアタイプ決定回路(45)は,交点がどの辺上にあるかという情報とエリアタイプとが関連付けて記憶されたエリアタイプ関連テーブルを参照することによりエリアタイプを決定するものであってもよい。
[面積算出回路]
面積算出回路(42)は,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定するための回路である。
面積算出回路が求める面積Sは,たとえば,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積である。また,あるピクセルに含まれるエッジの数が2本以上ある場合は,あるポリゴンの部分のうちそのピクセルに占める領域の面積であってもよいし,あるポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積であってもよい。また,あるピクセルにポリゴンが2つ以上含まれる場合は,それぞれのポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積を求めてもよいし,あるピクセルに占める面積が最も大きいポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積を求めてもよい。また,ポリゴンの中心点を含むポリゴンの部分のうちそのピクセルに占める領域であって他のポリゴンよりもZ値が小さい(前面方向の)領域の面積を求めてもよい。
前記面積算出回路の例として,前記エッジと面積Sとの関係を記憶した面積テーブルを参照することにより,前記ピクセルのうち前記エッジにより分断される部分の面積Sを算出するものがあげられる。より具体的には,エッジとピクセルの辺との2つの交点と面積Sとの関係を格納した面積テーブルがあげられる。このような面積テーブルを用いることで,2つの交点から迅速に面積Sを得ることができる。あるピクセルに含まれるエッジの数が2本以上ある場合においても,各交点と面積Sとの関係を格納した面積テーブルを用意してもよい。しかし,交点が多くなると,記憶しなければならないパターンが多くなり多大なメモリを必要とするようになるので,面積テーブルは,ある2つの交点(ひとつのエッジ)についての面積Sを格納するテーブルを用いるものが好ましい。図9に示されるように,あるポリゴンがあるピクセルに2つのエッジを有する場合は,面積テーブルを2回参照し減算回路などで減算することで容易にあるピクセルに占めるあるポリゴンの面積Sを求めることができる。図9の4つの交点をP1〜P4とすると,まずは交点P3とP4とを用い,面積テーブルから台形P3C1C2C4P4の面積を求め,その値をメモリに記憶する。そして,交点P1とP2とを用いて,台形P1C1C3C4P2の面積を求め,その値をメモリに記憶し,減算回路及び/又は加算回路を用いてP1C1P3C4C4P2の面積を求めればよい。S=台形P1C1C3C4P2−(1−台形P1C1C3C4P2)より,減算回路のみでも面積Sを求めることができるし,また2つの台形の面積の和から1を引いた値となるので,減算回路及び加算回路を用いても面積Sを求めることができる。
面積算出回路の他の例として,エリアタイプ決定回路が決定したエリアタイプに応じて面積算出方法を決定し,前記エッジと面積Sとの関係を記憶した面積テーブルを参照することにより,前記ピクセルのうち前記エッジにより分断される部分の面積Sを算出するものがあげられる。
より具体的には,前記面積算出回路は,前記エリアタイプ決定回路が決定したエリアタイプと前記エッジ情報とを用い,前記エリアタイプごとに異なる面積算出回路を選択し,前記エッジ情報に含まれる頂点値情報,及び前記ピクセルと前記ポリゴンの交点情報を,選択した前記面積算出回路に入力することにより前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定するものがあげられる。
また別の例としては,前記面積算出回路は,前記エリアタイプ決定回路が決定したエリアタイプと前記エッジ情報とを用い,前記エリアタイプごとに異なる面積テーブルを選択し,前記ピクセルと前記ポリゴンの交点情報を,選択した前記面積テーブルに入力することにより前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定するものがあげられる。
[色選択回路]
色選択回路は,ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイントを選択するか,又は当該サンプリングポイントにおける色を選択するための回路である。なお,簡単のために色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとする。
色選択回路の例として,以下のものがあげられる。すなわち,ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,前記ピクセルの中心点をサンプリングポイントとして選択し,その中心点における色をCaとして選択する。一方,エッジで区切られるピクセルの2つの領域のうち,ピクセルの中心点を含まない領域に含まれるサンプリングポイントにおける色の平均を求めて選択する。たとえば図10の60で示される領域において,ピクセルの中心点を含まない領域に含まれるサンプリングポイントはC1とC3の2つであるから色を求めるサンプリングポイントとしてC1とC3を選択し,Cbとして,C1とC3の平均を求めればよい。サンプリングポイントを選択するには,エッジ情報(交点情報)を用いれば容易に決定できる。たとえば,エッジがひとつの場合は,どの辺上に交点があるか,また交点の位置情報を用いる事で容易にサンプリングポイントを決定できる。そして,加算回路と除算回路,加算回路と1/2テーブル,又は加算回路と1/3テーブルを用いることで容易にCbを求めることができる。
色選択回路の別の例として,以下のものがあげられる。すなわち,ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,前記ピクセルの中心点における色をCaとして選択する。一方,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含まない領域に含まれる任意のサンプリングポイントにおける色とを選択するものである。たとえば,図7のようなケースでは,C1とC3が,サンプリングポイントとして選択され,いずれかの色がCbとして選択される。
色選択回路の別の例として,以下のものがあげられる。すなわち,ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域に含まれる任意のサンプリングポイントにおける色と,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含まない領域に含まれる任意のサンプリングポイントにおける色とを選択するものである。図7のようなケースでは,C0とC2とC4が,サンプリングポイントとして選択され,いずれかの色がCaとして選択される。C1とC3が,サンプリングポイントとして選択され,いずれかの色がCbとして選択される。
色選択回路の別の例として,以下のものがあげられる。すなわち,前記ピクセルにおける複数のサンプリングポイントは,ピクセルの4頂点及びピクセルの中心点からなり,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域に含まれるサンプリングポイントにおける色の平均を求めたものと,エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含まない領域に含まれるサンプリングポイントにおける色の平均を求めたものとを選択するものである。
色選択回路の別の例として,以下のものがあげられる。すなわち,エッジ情報から,前記ピクセル中のポリゴンが占める任意の点と,サンプリングポイントのうちポリゴンが占めない任意の点とを選択することにより,ピクセルにおける複数のサンプリングポイントから色合成に用いる2つのサンプリングポイントを選択するか,又は前者の点と後者の点における色を選択することにより,当該サンプリングポイントにおける色を選択するものである。
[色合成回路]
色合成回路は,面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定するための回路である。色合成回路の例として,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,Ca×S+Cb(1−S)を求めることにより,前記ピクセルのカラーを決定するものがあげられる。
より具体的な色合成回路として,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,乗算回路,加算回路及び除算回路(又は[1−Sテーブル])を用いることにより,乗算回路がSとCaとを乗算しS×Caを求め,除算回路又は[1−Sテーブル]が(1−S)の値を求め,乗算回路が(1−S)×Cbを求め,加算回路がS×Caと(1−S)×Cbとを加算することによりS×Ca+(1−S)×Cbを求め,前記ピクセルのカラーを決定するものがあげられる。
[動作例]
以下,上記したアンチエイリアス回路の動作例を説明する。エッジメモリ46からあるポリゴンのエッジ情報,又はエッジ情報とZ値とを読み出す。読み出された情報はバスを通じて,エリアタイプ決定回路(45),面積算出回路(42),及び色選択回路(43)とに入力される。
エリアタイプ決定回路(45)は,エッジ情報からエリアタイプを決定する。たとえば,前記エッジと前記ピクセルの辺との交点情報を用いて,交点情報とエリアタイプとの関係を記憶したエリアタイプメモリ(エリアタイプテーブル)を参照することによりエリアタイプを決定する。求められたエリアタイプ情報は,バスを通じて面積算出回路へ入力される。また,求められたエリアタイプ情報は,バスを通じて色選択回路へ入力されてもよい。
面積算出回路(42)は,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,及び/又はエリアタイプ情報を用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する。
面積算出回路が面積Sを求める方法として,エッジ情報に含まれる交点と面積Sとの関係を記憶した面積テーブルを参照することにより,前記ピクセルのうち前記エッジにより分断される部分の面積Sを算出するものがあげられる。この面積テーブルは,エリアタイプごとに設けられ,エリアタイプに応じた面積テーブルが選択され,その選択されたテーブルに交点情報を参照して,面積Sが求められてもよい。このようにして面積Sが求められる。求められた面積Sは,バスを通じて色合成回路(44)に入力される。
一方,色選択回路が,あるピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイントを選択するか,又は当該サンプリングポイントにおける色を選択する。各サンプリングポイントの色情報は,色メモリ(47)に記憶されており,記憶された色情報を読み出すことで各サンプリングポイントにおける色情報を得ることができる。色を選択する例として,あるピクセルの中心点をサンプリングポイントとして選択し,その中心点における色をCaとして選択する。一方,エッジで区切られるピクセルの2つの領域のうち,ピクセルの中心点を含まない領域に含まれるサンプリングポイントにおける色の平均を求めて選択する。このようにして色合成に用いられる色Ca及びCbが決定される。決定された色色Ca及びCbは,バスを通じて色合成回路(44)に入力される。
色合成回路が,面積算出回路が算出した面積Sと,前記色選択回路が選択した色を用いて,前記ピクセルのカラーを決定する。具体的には,ピクセルの面積を1,前記面積算出回路が算出した前記面積Sを,前記エッジで区切られるピクセルの2つの領域のうち,前記ピクセルの中心点を含む領域の面積とし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含む領域において選択された色をCaとし,前記色選択回路が選択した2つ色のうち前記ピクセルの中心点を含まない領域において選択された色をCbとしたときに,Ca×S+Cb(1−S)を求めることにより,前記ピクセルのカラーを決定する。
[プログラム]
これまで回路(ハードウェア)について説明したが,アンチエイリアス回路の概念を用いて,アンチエイリアスを行うプログラムを提供できることはいうまでもない。
すなわち,本発明によれば,コンピュータを,ピクセルにおけるエッジ情報と,前記ピクセルにおける複数のサンプリングポイントを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する面積算出手段と,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択する色選択手段と,前記面積算出手段が算出した面積Sと,前記色選択手段が選択した色を用いて,前記ピクセルのカラーを決定する色合成手段とを具備するように機能させるアンチエイリアスプログラムをも提供できる。
また,別の態様としては,コンピュータを,エッジ情報からピクセルが分断されるエリアタイプを決定するエリアタイプ決定手段と,前記エッジ情報,又は前記エッジ情報とエリアタイプ情報とを用いて,前記ピクセルのうち前記エッジにより分断される部分の面積Sを決定する面積算出手段と,前記ピクセルにおける複数のサンプリングポイントから色合成に用いる1又は複数のサンプリングポイント又は当該サンプリングポイントにおける色を選択する色選択手段と,前記面積算出手段が算出した面積Sと,前記色選択手段が選択した色を用いて,前記ピクセルのカラーを決定する色合成手段とを具備するものとして機能させるアンチエイリアスプログラムがあげられる。
これらのプログラムが用いられるコンピュータは,たとえば,コンピュータを上記の各手段として機能させるプログラムを記憶したメインメモリと,情報を入力するための入力装置と,情報を装置外に出力するための出力装置と,情報を一時的又は半永久的に記憶するデータベースなどの記憶装置と,各種演算処理を行う中央処理装置(CPU)とを具備するものがあげられる。CPUなどが,メインメモリ中の制御プログラム(アンチエイリアスプログラム)の指令を受け,これらの手段を実現する動作をするように指示すればよい。
[塗りつぶし処理のフロー]
図12は,本発明における塗りつぶし処理例を説明するためのフローチャートである。なお,図中Sはステップ(工程)を示す。以下では,図12に従って,塗りつぶし処理を詳細に説明する。
画像合成及び,ベクタ画像にあたり,これら合成対象画像のうち最大レイヤ画像幅を変数TotalXにセットを行う(S101)。ステータスを示す変数Stateを初期化する(S102)。前に描かれたベクタ画像のエッジ情報を格納するメモリであるPreEdgeInfo(プレエッジインフォーメイション)を初期化する(S103)。S101〜S103のうち2つ又は全てのステップは,好ましくは同時又は並行して行われる。これにより前処理が完了する。
その後,ブロックループステップ(S104)が始まる。各レイヤから最小幅の画像を求める(ステップS105)。ステップS105の工程で求められた最小幅の変数であるCurrentWidth(カレントウイズ(現状況での最小幅))によって規定されるブロック単位で処理を行うと同時に,変数TotalXからCurrentWidthを減算し,未処理の水平幅を保持するとともにブロック幅を更新する。S106によって,S104のブロックループステップ内では,ブロック幅の更新以降,y方向ループステップ(S107)により,垂直方向に処理を進めるとともに,レイヤループステップ(S108)以降,描画対象レイヤ判定ステップ(S124)において,レイヤ画像及び,ベクタ画像の判断を行う。一方,それぞれのレイヤ画像のx方向ループステップ(S125),ベクタ画像x方向ループステップ(S109)以降,水平方向の処理を行う。
ベクタ画像に対する処理について,ベクタ画像x方向ループステップ(S109)以降,ベクタ画像エッジ情報判定ステップにて,エッジ情報生成部(4)内にて生成されるエッジの有無,対象エッジのy方向の符号を保持する2ビットからなるエッジ情報変数EdgeInfoを用いて,エッジの有無の判定を行う(S110)。もし,対象画素にエッジ情報がある場合は,以前に見つかったエッジ情報情報メモリであるPreEdgeInfoに格納されている値と今回のエッジ情報を比較する(前回エッジとの差分判定ステップ:S111)。S111において,前回エッジ情報と違うかどうかを判定をし,判定の結果,違う場合は,エッジ情報更新ステップ(S112)にてPreEdgeInfoに格納された前回のエッジ情報変数情報を更新すると同時に,ステータス変数Stateの反転演算を行うことで,塗りつぶし領域の有効化・無効化の制御を行う。
その後,ステータス変数Stateが1の場合は塗りつぶし領域,0の場合は塗りつぶし対象外領域と定義し,ステータス判定ステップ(S113)にて,分岐を行い,もし,塗りつぶし領域である場合は,ベクタ画像塗りつぶし時のラインメモリから背景画像データ読み出す(S115)。そして,画像データ読み出しを行い,ベクタ画像塗りつぶし時のベクタ画像及び背景画像のブレンディングを行う(S116)。S116にて,対象画素の透過度を示すたとえば4ビットからなる変数EdgeAlphaを用いて,ブレンディング演算を行い,ベクタ画像塗りつぶし時のベクタ画像結果のラインメモリへの格納する(S117)。S117にて,ラインメモリへの合成結果画素データの格納を行う。
また,ステータス判定ステップ(S113)にて,分岐を行い,もし,塗りつぶしを行わない領域である場合は,ベクタ画像塗りつぶしを行わないときのエッジ透過度を判定する(S119)。S119にて,対象画素の透過度を示す4ビットからなる変数EdgeAlphaが0xfでない場合つまり,半透過である場合は,ベクタ画像塗りつぶしを行わない時のラインメモリから背景画像データ読み出す(S120)。そして,画像データ読み出しを行い,ベクタ画像塗りつぶしを行わない時のベクタ画像及び背景画像のブレンディングを行う(S121)。S121にて,対象画素の透過度を示す4ビットからなる変数EdgeAlphaを用い,ブレンディング演算を行い,ベクタ画像塗りつぶしを行わない時のベクタ画像結果をラインメモリへの格納する(S122)。S122にて,ラインメモリへの合成結果画素データを格納する。一方,対象画素の透過度を示す4ビットからなる変数EdgeAlphaが0xfである場合つまり,不透過である場合は,ブレンディング演算を行わないで,ベクタ画像塗りつぶしを行わない時のベクタ画像結果のラインメモリへの格納する(S122)。S122にて,ラインメモリへの合成結果画素データを格納する。
また,これから合成を行う対象画像が,レイヤ画像かどうか判断する(S124)。レイヤ画像である場合は,レイヤ画像x方向ループステップ(S125)以降の処理により,水平方向の処理を行う。
レイヤ画像x方向ループステップ(S125)以降の水平方向の処理においては,レイヤ画像描画時のエッジ透過度判定ステップ(S126)にて,対象画素位置におけるエッジ画像の透過度を示す4ビットからなる変数EdgeAlphaを判断する。そして,対象画素位置におけるエッジ画像の透過度を示す4ビットからなる変数EdgeAlphaが0xfでない場合つまり,半透過である場合は,レイヤ画像ラインメモリから背景画像データ読み出す(S127)。画像データ読み出しを行い,レイヤ画像のレイヤ画像及び背景画像のブレンディングステップ(S128)にて,対象画素の透過度を示す4ビットからなる変数EdgeAlphaを用いて,ブレンディング演算を行う。その後,レイヤ画像のレイヤ画像結果のラインメモリへ格納する(S129)。
対象画素の透過度を示す4ビットからなる変数EdgeAlphaが0xfである場合つまり,不透過である場合は,ブレンディング演算を行わないで,レイヤ画像ブレンディングを行わないときのレイヤ画像結果のラインメモリへの格納ステップ(S130)にて,ラインメモリへの合成結果画素データの格納を行う。
ベクタ画像及び,レイヤ画像の処理を水平方向に処理をおこなった後(S131,S123),ステータス変数State及び前回のエッジ情報メモリであるPreEdgeInfoの初期化を行い,レイヤごとの画像重ね合わせ処理(S134),及び水平方向の処理(S135)を行う。その後,TotalX終了判定ステップ(S136)においてブロックループに関して終了判定を行い,全画面について処理を完了した場合,ブロックループ終端ステップ(S137)後,塗りつぶし処理終了となる(S138)。
[プログラム]
本発明の画像生成装置は,基本的にはハードウェア,又はハードウェアとソフウェアとの協働により実装される。そのようなソフトウェアとして,コンピュータを,あるピクセルにおけるポリゴンのエッジ情報を格納するためのエッジ情報格納メモリとしての手段と,ベクトル形式のポリゴンの形状データを格納するためのベクタデータ格納メモリとしての手段と,前記ベクタデータ格納メモリに格納されたポリゴンの形状データに基づいてラスタライズ処理を行い,ラスタライズ結果であるポリゴンのエッジ情報を前記エッジ情報格納メモリに書き出すためのエッジ情報生成部としての手段と,少なくとも背景に関する画像情報及び複数のレイヤごとの画像情報を格納するレイヤ画像格納メモリとしての手段,前記エッジ情報格納メモリに格納されたエッジ情報を用いて,ベクタ形式で定義された画像の内部を塗りつぶす際に,前記レイヤ画像格納メモリに格納された背景に関する画像情報及びレイヤごとの画像情報を読み出して,ベクタ形式の画像及びレイヤごとの画像情報を重ね合わせ,ピクセル単位の画像処理演算を行うことによりピクセル単位の画像合成を行う画像合成部としての手段と,前記画像合成部が合成した画像を記憶するための結果画像格納メモリとしての手段として機能させるプログラムがあげられる。それらの各手段は,上記において説明したものと同様に機能するので,ここでは上記の記載を準用することとする。
[記録媒体]
本発明は,上記のプログラムを格納した,コンピュータにより読み取ることができる記録媒体をも提供できる。このような記録媒体としては,CD−ROM,DVD,ハードディスク又はコンピュータ内のメモリなどがあげられる。そして,コンピュータの入力部に所定の情報が入力さると,制御部の指令を受けてプログラムが読み取され,制御部の指令を受けた演算部が,読み出されたプログラムを用いて,入力されたデータや,記憶部に記憶されるデータなどを読み出し,例えば記憶部のメモリを作業領域として利用し,所定の演算を行う。演算結果は,例えばメモリに一時的に記憶された後,出力部から出力される。これらのデータは,例えばバスを通じて,伝達されればよい。このようにして,ハードウェア資源とプログラムとが協働した処理が行われる。
[コンピュータの構成]
図13は,本発明のある実施態様(コンピュータ)を示すブロック図である。この実施態様は,コンピュータグラフィックスによるコンピュータ(グラフィック用コンピュータなど)に関する。図13に示されるとおり,このコンピュータ101は,中央演算装置(CPU)102,ジオメトリ演算回路103などのジオメトリ演算部,レンダラー104などの描画部,テクスチャ生成回路105などのテクスチャ生成部,照光処理回路107などの照光処理部,表示回路108などの表示情報作成部,フレームバッファ109,及びモニター110を具備する。これらの要素は,バスなどにより接続され,相互にデータを伝達できる。そのほか,図示しないメインメモリや,各種テーブル,ワーク領域となるワークメモリ111,テクスチャを格納するテクスチャメモリ112などを具備する記憶部などを有しても良い。各部を構成するハードウェアは,例えばバスなどを介して連結されている。なお,記憶部は,VRAMなどのRAMや,CR−ROM,DVD,ハードディスクなどにより構成されても良い。
中央演算装置(CPU)102は,画像を生成するためのプログラムなどを制御するための装置である。ワークメモリ111は,CPU102で使用するデータ及びディスプレイリストなどを記憶してもよい。そして,CPU102は,メインメモリに記憶されたプログラムなどを読み出して,所定の処理を行ってもよい。ただし,ハードウェア処理のみにより所定の処理を行っても良い。CPU102は,たとえばワークメモリ111から,ワールド座標の3次元オブジェクトデータとしてのポリゴンデータを読出し,ポリゴンデータをジオメトリ演算回路103へ出力する。具体的には,メインプロセッサ,コプロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などを適宜有するものがあげられる。これらはバスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ジオメトリ演算回路103は,入力されたポリゴンデータに対して,視点を原点とする視点座標系のデータに座標変換などを行うための回路である。ジオメトリ演算回路103は,処理したポリゴンデータを,レンダラー104へ出力する。具体的なジオメトリ演算回路として,前記メインプロセッサとバスなどで連結された,ジオメトリプロセッサ,コプロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
レンダラー104は,ポリゴン単位のデータをピクセル単位のデータに変換するための回路又は装置である。レンダラー104は,ピクセル単位のデータをテクスチャ生成回路105へ出力する。具体的なレンダラー104として,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
テクスチャ生成回路105は,テクスチャメモリ112に記憶されるテクスチャデータに基づき,ピクセル単位のテクスチャカラーを生成するための回路である。テクスチャ生成回路105は,テクスチャカラー情報を有するピクセル単位のデータを,照光処理回路107へ出力する。具体的なテクスチャ生成回路105として,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
照光処理回路107は,テクスチャカラー情報を有するポリゴンに対し,ピクセル単位で法線ベクトル,重心座標などを利用して陰影付けなどを行うための回路である。照光処理回路107は,陰影付けした画像データを,表示回路108へ出力する。具体的な照光処理回路107として,前記メインプロセッサとバスなどで連結されたデータ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。そして,メモリに格納されたテーブルなどから適宜光に関する情報を読み出して陰影付けを行えばよい。
表示回路108は,照光処理回路107から入力された画像データをフレームバッファ109に書き込み,またフレームバッファ109に書き込まれた画像データを読み出し,制御して表示画像情報を得るための回路である。表示回路108は,表示画像情報をモニター110へ出力する。具体的な表示回路として,前記メインプロセッサとバスなどで連結された描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。
モニター110は,入力された表示画像情報にしたがって,コンピュータグラフィックス画像を表示するための装置である。
本発明のコンピュータは,レンダラー,テクスチャ生成回路及び,表示装置として,本発明の画像生成装置を具備するので,これらにおける回路素子を共用することで,ハードウェアの規模を小さくできる。また,ジオメトリ部を2Dベクタ画像に適用することで,2Dベクタ画像に対するジオメトリ変換が可能となり,専用ハードウェアまたは,ソフトウェアによる演算を加えることなく,行列演算による形状変形,拡大縮小をベクタ画像に対して行うことができる。さらに,従来別々の物と扱われてきた,2D及び3Dの表示命令を一元的に扱うことが可能となり,また,これら2D/3D画像の合成についても同時に処理を行うことができることから,システムが複雑になる事態を効果的に防止できる。
[コンピュータの動作]
以下,コンピュータを用いて画像を生成する動作例を説明する。CPU102は,ワークメモリ111から,ポリゴンデータを読出し,ポリゴンデータをジオメトリ演算回路103へ出力する。ジオメトリ演算回路103は,入力されたポリゴンデータに対して,視点を原点とする視点座標系のデータに座標変換するなどの処理を行う。ジオメトリ演算回路103は,処理したポリゴンデータを,レンダラー104へ出力する。レンダラー104は,ポリゴン単位のデータをピクセル単位のデータに変換する。レンダラー104とテクスチャ生成回路105は,テクスチャメモリ112に記憶されるテクスチャデータに基づき,ピクセル単位のテクスチャカラーを生成する。テクスチャ生成回路105は,テクスチャカラー情報を有するピクセル単位のデータを,照光処理回路107へ出力する。照光処理回路107は,テクスチャカラー情報を有するポリゴンに対し,ピクセル単位で法線ベクトル,重心座標などを利用して陰影付けを行う。照光処理回路107は,陰影付けした画像データを,表示回路108へ出力する。表示回路108は,照光処理回路107から入力された画像データをフレームバッファ109に書き込み,またフレームバッファ109に書き込まれた画像データを読み出し,表示画像情報を得る。また,このとき同時にエッジバッファ等の情報を用いることで,2D/3Dの合成処理を行うことができる。表示回路108は,表示画像情報をモニター110へ出力する。モニター110は,入力された表示画像情報にしたがって,コンピュータグラフィックス画像を表示する。
本発明のコンピュータは,レンダラー,テクスチャ生成回路及び,表示装置として,本発明の画像生成装置を具備するので,これらにおける回路素子を共用することで,ハードウェアの規模を小さくできる。また,ジオメトリ部を2Dベクタ画像に適用することで,2Dベクタ画像に対するジオメトリ変換が可能となり,専用ハードウェアまたは,ソフトウェアによる演算を加えることなく,行列演算による形状変形,拡大縮小をベクタ画像に対して行うことができる。さらに,従来別々の物と扱われてきた,2D・ベクタ及び3Dの表示命令を一元的に扱うことが可能となり,また,これら2D/3D及びベクタ画像の合成についても同時に処理を行うことができることから,システムが複雑になる事態を効果的に防止できる。
[ゲーム機の構成]
図14は,本発明のある実施形態(ゲーム機)のブロック図である。このブロック図で表される実施形態は,特に携帯用,家庭用又は業務用のゲーム機として好適に利用されうる。そこで,以下では,ゲーム機として説明する。なお,同図に示されるゲーム機は,少なくとも処理部200を含めばよく(又は処理部200と記憶部270,又は処理部200と記憶部270と情報記憶媒体280を含んでもよく),それ以外のブロック(例えば操作部260,表示部290,音出力部292,携帯型情報記憶装置294,通信部296)については,任意の構成要素とすることができる。
処理部200は,システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。処理部200の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
操作部260は,プレーヤが操作データを入力するためのものである。操作部260は,の機能は,例えば,レバー,ボタン,外枠,及びハードウェアを備えたコントローラにより実現できる。なお,特に携帯用ゲーム機の場合は,操作部260は,ゲーム機本体と一体として形成されても良い。コントローラからの処理情報は,シリアルインターフェース(I/F)やバスを介してメインプロセッサなどに伝えられる。
記憶部270は,処理部200や通信部296などのワーク領域となるものである。また,プログラムや各種テーブルなどを格納しても良い。記憶部270は,例えば,メインメモリ272,フレームバッファ274,及びテクスチャ記憶部276を含んでもよく,そのほか各種テーブルなどを記憶しても良い。記憶部270の機能は,ROMやRAMなどのハードウェアにより実現できる。
RAMとして,VRAM,DRAM又はSRAMなどがあげられ,用途に応じて適宜選択すればよい。フレームバッファ274を構成するVRAMなどは,各種プロセッサの作業領域として用いられる。
情報記憶媒体(コンピュータにより使用可能な記憶媒体)280は,プログラムやデータなどの情報を格納するものである。情報記憶媒体280は,いわゆるゲームカセットなどとして販売されうる。そして,情報記憶媒体280の機能は,光ディスク(CD,DVD),光磁気ディスク(MO),磁気ディスク,ハードディスク,磁気テープ,又はメモリ(ROM)などのハードウェアにより実現できる。処理部200は,この情報記憶媒体280に格納される情報に基づいて種々の処理を行う。情報記憶媒体280には,本発明(本実施形態)の手段(特に処理部200に含まれるブロック)を実行するための情報(プログラム又はプログラム及びデータ)が格納される。なお,上記記憶部にプログラムやデータなどの情報を格納した場合は,情報記憶媒体280は必ずしも必要ない。情報記憶媒体280に格納される情報の一部又は全部は,例えば,システムへの電源投入時等に記憶部270に転送されることになる。また,情報記憶媒体280に記憶される情報として,所定の処理を行うためのプログラムコード,画像データ,音データ,表示物の形状データ,テーブルデータ,リストデータ,本発明の処理を指示するための情報,その指示に従って処理を行うための情報等の少なくとも2つを含むものがあげられる。
表示部290は,本実施形態により生成された画像を出力するものであり,その機能は,CRT(ブラウン管),LCD(液晶),OEL(有機電界発光素子),PDP(プラズマディスプレイパネル)又はHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
音出力部292は,音を出力するものである。音出力部292の機能は,スピーカなどのハードウェアにより実現できる。音出力は,例えばバスを介してメインプロセッサなどと接続されたサウンドプロセッサにより,音処理が施され,スピーカなどの音出力部から出力される。
携帯型情報記憶装置294は,プレーヤの個人データやセーブデータなどが記憶されるものである。この携帯型情報記憶装置294としては,メモリカードや携帯型ゲーム装置などがあげられる。携帯型情報記憶装置294の機能は,メモリカード,フラッシュメモリ,ハードディスク,USBメモリなど公知の記憶手段により達成できる。
通信部296は,外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行う任意のものである。通信部296の機能は,各種プロセッサ,又は通信用ASICなどのハードウェアや,プログラムなどにより実現できる。
ゲーム機を実行するためのプログラム又はデータは,ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部296を介して情報記憶媒体280に配信するようにしてもよい。
処理部200は,ゲーム処理部220,画像処理部230,及び音処理部250を含むものがあげられる。具体的には,メインプロセッサ,コプロセッサ,ジオメトリプロセッサ,描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ここでゲーム処理部220は,コイン(代価)の受け付け処理,各種モードの設定処理,ゲームの進行処理,選択画面の設定処理,オブジェクトの位置や回転角度(X,Y又はZ軸回り回転角度)を求める処理,オブジェクトを動作させる処理(モーション処理),視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理,マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理,ヒットチェック処理,ゲーム結果(成果,成績)を演算する処理,複数のプレーヤが共通のゲーム空間でプレイするための処理,又はゲームオーバー処理などの種々のゲーム処理を,操作部260からの操作データや,携帯型情報記憶装置294からの個人データ,保存データや,ゲームプログラムなどに基づいて行う。
画像処理部230は,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行うものである。また,音処理部250は,ゲーム処理部220からの指示等にしたがって,各種の音処理を行う。
ゲーム処理部220,画像処理部230,音処理部250の機能は,その全てをハードウェアにより実現してもよいし,その全てをプログラムにより実現してもよい。又は,ハードウェアとプログラムの両方により実現してもよい。画像処理部230は,ジオメトリ演算部232(3次元座標演算部),描画部240(レンダリング部)を含むものがあげられる。
ジオメトリ演算部232は,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。
描画部240は,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどに基づいて,オブジェクトをフレームバッファ274に描画する。
描画部240は,例えば,テクスチャマッピング部242,シェーディング処理部244を含むものがあげられる。具体的には,描画プロセッサにより実装できる。描画プロセッサは,テクスチャ記憶部,各種テーブル,フレームバッファ,VRAMなどとバスなどを介して接続され,更にディスプレイと接続される。
テクスチャマッピング部242は,環境テクスチャをテクスチャ記憶部276から読み出し,読み出された環境テクスチャを,オブジェクトに対してマッピングする。
シェーディング処理部244は,オブジェクトに対するシェーディング処理を行う。例えば,ジオメトリ処理部232が光源計算を行い,シェーディング処理用の光源の情報や,照明モデルや,オブジェクトの各頂点の法線ベクトルなどに基づいて,オブジェクトの各頂点の輝度(RGB)を求める。シェーディング処理部244は,この各頂点の輝度に基づいて,プリミティブ面(ポリゴン,曲面)の各ドットの輝度を例えば,ホンシェーディングや,グーローシェーディングなどにより求める。
ジオメトリ演算部232は,法線ベクトル処理部234を含むものがあげられる。法線ベクトル処理部234は,オブジェクトの各頂点の法線ベクトル(広義にはオブジェクトの面の法線ベクトル)を,ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。
本発明のゲーム機は,画像処理部に,本発明の画像生成装置を具備する。これにより,回路素子の共有化を図れるとともに,ゲーム処理部220からの制御先を画像処理に関して一元化することが可能となり,ベクタ・2D・3D画像処理に関する処理部を1つにすることにより,複雑な制御を避け,システムの複雑度を低減することができる。なお,ゲーム機における構成を適宜利用すれば,スロットマシーンやパチンコ遊技機などにおける画像表示装置としても機能しうるものを得ることができる。
[ゲーム機の基本動作]
システムの電源がONになると,情報記憶媒体280に格納される情報の一部又は全部は,例えば,記憶部270に転送される。そして,ゲーム処理用のプログラムが,例えばメインメモリ272に格納され,様々なデータが,テクスチャ記憶部276や,図示しないテーブルなどに格納される。
操作部260からの操作情報は,例えば,図示しないシリアルインターフェイスやバスを介して,処理部200へ伝えられ,音処理や,様々な画像処理が行われる。音処理部250により処理された音情報は,バスを介して音出力部292へ伝えられ,音として放出される。また,メモリカードなどの携帯型情報記憶装置194に記憶されたセーブ情報なども,図示しないシリアルインターフェイスやバスを介して,処理部200へ伝えられ所定のデータが記憶部170から読み出される。
画像処理部230が,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行う。具体的には,ジオメトリ演算部232が,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。次に,描画部240が,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどとに基づいて,オブジェクトをフレームバッファ274に描画する。
フレームバッファ274に格納された情報は,バスを介して表示部290へ伝えられ,描画されることとなる。このようにして,コンピュータグラフィックを有するゲーム機として機能する。
本発明のゲーム機は,画像処理部に,本発明の画像生成装置を具備するので,回路素子などを共有することで,ハードウェア規模を縮減でき,ベクタ・2D・3D画像処理部を一元化することにより,システムが複雑になる事態を防止できることで,無駄なハードウェア・制御処理を少なくすることができる。前記により,開発・製造コスト,消費電力を低減することができるため,特に携帯式ゲーム機などに好適に利用される。
[携帯電話機の構成]
図15は,本発明のある実施形態(コンピュータグラフィック機能つき携帯電話機)のブロック図である。このブロック図で表される実施形態は,特に3次元コンピュータグラフィック機能つき携帯電話機,特にゲーム機能付携帯電話や,ナビゲーション機能付形態電話として好適に利用されうる。
図15に示されるように,この携帯電話は,制御部221と,制御部221のためのプログラムや画像データなどが格納され,制御部や通信部などのワーク領域となるメモリ部222と,無線通信を行うための無線通信機能部223と,静止画や動画を撮影してデジタル信号に変換するCCDカメラなどの任意要素である撮像部224と,画像や文字を表示するためのLCDなどの表示部225と,テンキーや各種機能キーなどを含む操作部226と,音声通話のためのマイクなどの音声入力部227と,レシーバやスピーカなど音を出力するための音声出力部228と,当該携帯電話端末を動作させるための電池229と,電池229を安定化し各機能部へ分配する電源部230を含む。
制御部201は,携帯電話システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。制御部221の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
より具体的には,制御部は,図示しない画像処理部を具備し,画像処理部は,ジオメトリ演算回路などのジオメトリ演算部と,描画部(レンダラー)とを具備する。さらに,テクスチャ生成回路,照光処理回路,又は表示回路などを具備してもよい。更には,先に説明したコンピュータやゲーム機における描画処理回路を適宜具備すればよい。
本発明の携帯電話は,制御部に含まれるジオメトリ演算部や描画部として,本発明の画像生成装置を具備するので,回路素子などを共有することで,ハードウェア規模を縮減でき,ベクタ・2D・3D画像処理部を一元化することにより,システムが複雑になる事態を防止できることで,無駄なハードウェア・制御処理を少なくすることができる。前記により,開発・製造コスト,消費電力を低減することができるため,携帯電話など小規模な電話に好適に利用される。
[携帯電話機の動作例]
まず,音声による通信動作について説明する。例えば音声入力部227に入力された音声は,インターフェイスによりデジタル情報に変換され,制御部221によって,所定の処理が施され,無線通信機能部223から無線信号として出力される。また,相手の音情報を受信する場合は,無線通信機能部223が無線信号を受信し,所定の変換処理が施された後,制御部221の制御を受けて,音声出力部228から出力される。
次に,画像を処理するための動作や処理は,基本的には先に説明したコンピュータやゲーム機における動作や処理と同様である。操作部224から,図示しないインターフェイスやバスを介して処理情報が入力されると,例えば,制御部221中の画像処理部の指令に基づき,ジオメトリプロセッサなどが,RAMなどの作業領域,各種テーブルなどを適宜利用し,ジオメトリ演算を行う。さらに,制御部221のレンダラーは,制御部221中の画像処理部の指令に基づき,レンダリング処理を行う。カリング処理やクリッピング処理,アンチエイリアス処理などが適宜施された画像情報は,描画プロセッサにより所定の描画処理を施され,フレームバッファに記憶され,表示部に画像として表示される。このようにして,3次元コンピュータグラフィックスが表示される。
本発明の携帯電話は,制御部に含まれるジオメトリ演算部や描画部として,本発明の画像生成装置を具備するので,回路素子などを共有することで,ハードウェア規模を縮減でき,システムが複雑になる事態を防止できるので,携帯電話など小規模な電話に好適に利用される。
[カーナビの構成]
図16は,本発明のある実施形態(ナビゲーションシステム)のブロック図である。このブロック図で表される実施形態は,特に3次元コンピュータグラフィック機能つきカーナビゲーションとして好適に利用されうる。図16に示されるように,このナビゲーションシステムは,GPS部241と,任意要素としての自律測位部242と,地図記憶部243と,制御部244と,表示部245と,任意要素としてのマップマッチング部246とを含むものがあげられる。
GPS部241は,GPS受信機を備え,複数のGPS衛星からの電波を同時に受信して車両の測位データを得るGPS部である。GPS部241は,GPS受信機において受信したデータから車両の絶対位置を得るものであるが,この測位データには車両の位置情報の他に車両の進行方向情報,仰角情報が含まれている。
自律測位部242は,自律型センサを備え,自律型センサの出力データから車両の移動距離,移動方位を算出する自律測位部である。自律型センサとしては,車輪の回転数に応じた信号を検出する車輪側センサ,車両の加速度を検出する加速度センサ,車両の角速度を検出するジャイロセンサなどが含まれる。この例では,ジャイロセンサとして,さらに車両のピッチ動作方向における姿勢角度(以下「ピッチ角」と称する)も検出できる3次元ジャイロセンサが使用されており,したがって,自律測位部242から出力される測位データには車両のピッチ角が含まれている。
地図記憶部243は,2次元地図情報,3次元道路情報,及び3次元建物情報を有するデジタル地図データが記憶された地図記憶部である。地図記憶部243を構成する記憶媒体として,CD−ROM,ハードディスクがあげられる。地図データは,データ量が大きいと読み込み時間を要するため,好ましくは複数のブロックに分割されて記憶される。また,道路情報とは,交差点や屈曲点などの主要な地点(ノード)を示す情報を有したものであってもよく,ノード情報はその地点における座標データなどを備え,道路は各ノードを結ぶ直線(リンク)として近似されてもよい。このシステムでの3次元道路情報とは,ノード情報が3次元の座標データを備えていることを意味している。
制御部244は,GPS部241または自律測位部242から得られた車両の位置情報に基づいて,地図記憶部243から車両の位置が該当する所定領域の地図データを読み出すなど所定の制御を行うためのものである。
表示部245は,測位制御部244により読み出された地図データを表示するためのものである。
マップマッチング部246は,車両の測位データおよび地図データの3次元道路情報を基に,車両の位置を道路上に補正するためのものである。
本発明のカーナビは,たとえば,制御部に幾何演算部と描画部とを具備し,それらに本発明の画像生成装置を具備する。これにより,ベクタ・2D・3D画像処理部を一元化することにより,システムが複雑になる事態を防止できることで,制御処理を少なくすることができる。
[カーナビの動作例]
GPS部241が,複数のGPS衛星からの電波を同時に受信し車両の測位データを得る。自律測位部242は,自律型センサの出力データから車両の移動距離,移動方位を算出する。制御部244は,GPS部241または自律測位部242から得られたデータに所定の処理を施して車両の位置情報を得る。そして,車両の位置情報に基づいて,地図記憶部243から車両の位置に関連する所定領域の地図データを読み出す。また,図示しない操作部からの操作情報を受けて表示モードを変え,表示モードに応じた地図データを読み出す。また,制御部244は,位置情報に基づいて,所定の描画処理を行い建物の立体画像,地図の立体画像,車の立体画像などを表示する。さらに,Z値に基づいて,カリング処理などを行う。表示部245が,制御部244により読み出された地図データを表示する。
本発明のカーナビは,たとえば,幾何演算部と描画部に,本発明の画像生成装置を具備するので,回路素子などを共有することで,ハードウェア規模を縮減でき,ベクタ・2D・3D画像処理部を一元化することにより,システムが複雑になる事態を防止できる。
図17は,パチスロ機の主制御回路361を示すブロック図である。図17に示されるとおり,主制御回路361はマイクロコンピュータ(以下,「マイコン」という。)363を主な構成要素とし,これに乱数サンブリングのための回路を加えて構成されている。マイコン363は,予め設定されたプログラムに従って制御動作を行うメインCPU(中央演算処理装置)364と,プログラム(画像演出プログラムなどを含む)や各種のテーブルデータなどを格納しているROM365およびバックアップ機能付き制御RAM(以下,単にRAMと称する)366とを含んで構成されている。
メインCPU364には,基準クロックパルスを発生するクロックパルス発生回路367および分周器368と,一定範囲の乱数を発生する乱数発生器369および発生した乱数の1つを特定するサンプリング回路370とが接続されている。さらに,メインCPU364には,後述する周辺装置(アクチュエータ)との間で信号を授受するI/Oポート371が接続されている。
ここで,R0M365は,入賞確率テーブル,図柄テーブル,入賞シンボル組合せテーブル,シーケンスプログラム,告知演出テーブルおよび演出画像プログラムを格納するように記憶部が区分され,さらに,スタートレバー328を操作(スタート操作)する毎に行われる乱数サンプリングの判定に用いられる確率抽選テーブル,停止ボタンの操作に応じてリールの停止態様を決定するための停止テーブル等が格納されている。
マイコン363からの制御信号により動作が制御される主要なアクチュエータとしては,各リール305,306,307を回転駆動するステッピングモータ345L,345C,345R,各種ランプ(賭数表示ランプ319〜321,スタートランプ329,WINランプ330,インサートランプ332),各種表示部(クレジット表示ランプ323,遊技状態表示ランプ324〜327,ボーナスカウント表示ランプ318,配当枚数表示ランプ322),およびメダルを収納するホッパー372がある。これらはそれぞれモータ駆動回路373,各ランプ駆動回路374,各表示部駆動回路375およびホッパー駆動回路376によって駆動される。これら駆動回路373〜376は,マイコン363のI/Oポート371を介してメインCPU364に接続されている。
また,マイコン363が制御信号を生成するために必要な入力信号を発生する主な入力信号発生手段としては,メダル投入口から投入されたメダルを検出する投入メダルセンサ331S,スタートレバーの操作を検出するスタートスイッチ328S,前述したBETスイッチ33,およびクレジットメダル精算スイッチ334がある。さらに,フォトセンサからの出力パルス信号を受けて各リール305,306,307の回転位置を検出するリール位置検出回路377がある。なお,フォトセンサは各リール305〜307の駆動機構に含まれており,同図では図示されていない。
さらに,上記の入力信号発生手段としては,停止ボタン335〜337が押されたときに対応するリールを停止させる信号を発生するリール停止信号回路378と,ホッパー372から払い出されるメダル数を計数するメダル検出部372Sと,図示しない払出完了信号発生回路とがある。
また,I/Oポート371には副制御回路381が接続されている。図18は,パチスロ機の副制御回路を示すブロック図である。
副制御回路381は,主制御回路361からの制御指令(コマンド)に基づいて表示装置350の表示制御およびスピーカ382L,382Rからの音の出力制御を実行する。この副制御回路381は,好ましくは,主制御回路361を構成する基板とは別の基板上に構成され,サブマイクロコンピュータ83を主たる構成要素とし,表示装置350の表示制御手段としての画像制御回路391,スピーカ382L,382Rからの出力音を制御する音源IC388,増幅器としてのパワーアンプ389で構成されている。
サブマイクロコンピュータ383は,主制御回路61から送信された制御指令に従って制御動作を行うサブCPU384と,記憶手段としてのプログラムROM385およびワークRAM386とを含む。この例では,副制御回路381は,クロックパルス発生回路,分周器,乱数発生器及びサンプリング回路を備えていないが,サブCPU384の動作プログラム上で乱数サンプリングを実行するように構成されている。
プログラムROM385は,サブCPU84で実行する制御プログラムを格納する。ワークRAM386は,上記制御プログラムをサブCPU384で実行するときの一時記憶手段として構成される。
画像制御回路391は,画像制御CPU392,画像制御プログラムROM394,画像制御ワークRAM393,画像制御IC398,画像ROM396,ビデオRAM397で構成される。
ここで,画像制御CPU392は,サブマイクロコンピュータ383で設定されたパラメータに基づき,画像制御プログラムROM394内に格納する画像制御プログラムに沿って表示装置350での表示内容を決定する。画像制御プログラムROM394は,表示装置350での表示に関する画像制御プログラムや各種選択テーブルを格納する。画像制御ワークRAM393は,上記画像制御プログラムを画像制御CPU392で実行するときの一時記憶手段として構成される。画像制御IC398は,画像制御CPU392で決定された表示内容に応じた画像を形成し,表示装置350に出力する。画像ROM396は,画像を形成するためのドットデータを格納する。ビデオRAM397は,画像制御IC398で画像を形成するときの一時記憶手段として構成される。
なお,主制御回路361からの出力はINポート387を介してサブCPU384に入力され,サブCPU384からの出力はOUTポート390およびINポート395を介して画像制御CPU392に入力される。
次に,本実施の形態のパチスロ機の動作について説明する。遊技者がメダル投入口にメダルを投入すると,投入メダルセンサ331Sから検知信号がメインCPU364へ送られ,メインCPU364はメダルの投入を検知し,賭数に応じた賭数表示ランプ319〜321が点灯する。遊技者がスタートレバー328を押すと,スタートスイッチ328Sから操作信号がメインCPU364へ伝えられ,メインCPU364はスタートレバー328の操作を検知し,I/Oポート371を介してモータ駆動部373へスタート信号を送り,リール305,306,307を一斉に回転させる。
また,スタートスイッチ328Sがスタートレバーの操作を検出すると,メインCPU364は乱数発生器369より発生された乱数値をサンプリング回路370により取り込み,取り込んだ乱数値とROM365に格納された判定値とを比較して,当選,落選を決定する内部抽選を行う。その抽選結果はRAM366の所定領域に格納されるが,内部当選すると,当選の種類に応じたフラグがRAM366の所定領域に立てられる。ここで,当該ゲームで立てられたフラグは当該ゲームが終了すると消滅するのが基本であるが,内部当選確率が低いBBやRBに限って,立てられたフラグが対応する図柄が揃って入賞するまで複数ゲームにわたって持ち越される場合がある。
さらに,スタートスイッチ328Sがスタートレバーの操作を検出すると,メインCPU364はROM365から複数ゲームにわたって表示装置350に演出画像を表示するための演出指示コマンドを読み出し,これをI/Oポート371を介して副制御回路381に送出する。なお,メインCPU364は副制御回路381に送出する演出指示コマンドをRAM366の所定領域に保持しておく。
副制御回路381はメインCPU364から入力された演出指示コマンドに従った演出内容の画像を表示装置350に表示し,内部当選の契機となるスタートレバー328の有効な操作毎に入力される演出指示コマンドに従って画像を表示させる。
次にメインCPU364は,RAM366上の内部抽選結果をチェックして,内部抽選の判定結果に対応する停止テーブルを選択決定し,それぞれに対応する停止テーブルをROM365からRAM366上に読み出す。
その後,遊技者が,停止ボタン335,336,337のいずれかを操作すると,リール停止信号回路378から操作信号がメインCPU364へ伝えられ,メインCPU364はリール位置検出回路377からの各リール305,306,307の位置とRAM366上の停止テーブルに基づいてリール305,306,307を停止させる制御を行う。
これにより,内部抽選で当選していない限り,遊技者はどのようなタイミングで停止ボタン335,336,337を操作しても,当選図柄が揃わないように各リール305,306,307の停止制御が行われる。一方,内部抽選で当選し且つ,内部当選結果に対応する図柄が揃えられる停止テーブルが選択されている場合,遊技者の停止ボタン335,336,337の操作タイミング如何によっては内部当選に対応した図柄が揃う停止制御が存在することになる。
すなわち,内部抽選結果が当選の場合には,メインCPU364は引き込み停止制御に基づくストップ信号をモータ駆動部373へ送り,操作された停止ボタン335,336,337に対応するリール305,306,307を停止させるが,このとき,このリール305,306,307上の入賞に係るシンボルが有効な停止ライン上で停止するようなリール停止制御を行う。
内部抽選結果が外れの場合,メインCPU364は,停止ボタン335,336,337の操作にて,入賞に係るシンボルが有効な停止ライン上で止まらないように,操作された停止ボタン335,336,337に対応するリール305,306,307を停止させる。
本発明のパチスロ機は,たとえば,副制御回路381に含まれる画像制御プログラムや画像制御CPUとして,本発明の画像生成装置を具備するので,回路素子などを共有することで,ハードウェア規模を縮減でき,ベクタ・2D・3D画像処理部を一元化することにより,システムが複雑になる事態を防止できる。これにより,無駄なハードウェア・制御処理を少なくすることができる。前記したとおり,開発・製造コスト,消費電力を低減することができるため,パチスロ機などにおいても好適に利用される。