(57)【特許請求の範囲】
【請求項１】
仮想的に定義された空間内の物体をビュースクリーンに投影することによって画像を生成する画像生成装置であって、前記物体は複数のポリゴンによって表現され、
ビュースクリーンの全ての各画素に対して、少なくとも一のポリゴンが前記ビュースクリーンに投影される位置に存在するか否かを示す有効画素フラグの値を決定するフラグ値決定手段と、
少なくとも一のポリゴンが前記ビュースクリーンに投影される位置の画素である有効画素の画素値のみを前記有効画素の位置に関わらずレンダリングバッファの連続するアドレス領域に格納する画素値格納手段と、
決定された前記有効画素フラグの値に従って、前記レンダリングバッファに格納されている前記有効画素の画素値をフレームバッファに展開する展開手段と
を備えることを特徴とする画像生成装置。
【請求項２】
前記画像生成装置は、さらに、
前記ビュースクリーンを複数のブロックに分割する分割手段を備え、
前記フラグ値決定手段は、分割された一のブロック毎に前記有効画素フラグの値を決定し、
前記画素値格納手段は、前記ブロック毎に前記レンダリングバッファへの前記格納を行い、
前記展開手段は、すべてのブロックについて前記レンダリングバッファに格納された前記画素値を前記フレームバッファに展開する
ことを特徴とする請求項１記載の画像生成装置。
【請求項３】
前記画素値格納手段は、さらに、
前記一のブロックについて、当該ブロックにおける前記レンダリングバッファ上の前記画素値のデータ長を算出するデータ長算出部と
算出された前記データ長を前記レンダリングバッファに付加するデータ長付加部とを備える
ことを特徴とする請求項２記載の画像生成装置。
【請求項４】
前記画素値格納手段は、さらに、
前記一のブロックに一のポリゴンが描画されたとき、前記ポリゴンの形態を特定し得る情報として、少なくとも、前記ポリゴンにおける頂点の座標、画素値およびＺ値を用いて、前記有効画素の画素値を生成し、生成された当該画素値を前記レンダリングバッファに格納する
ことを特徴とする請求項２記載の画像生成装置。
【請求項５】
前記画素値格納手段は、前記ポリゴンの形態を特定し得る情報を用いて前記画素値の補間計算を行う補間計算部を備え、
前記補間された画素値を前記レンダリングバッファに格納する
ことを特徴とする請求項４記載の画像生成装置。
【請求項６】
画像生成装置が、仮想的に定義された空間内の物体をビュースクリーンに投影することによって画像を生成する画像生成方法であって、
前記画像生成装置は、フラグ値決定手段、画素値格納手段および展開手段を備え、前記物体は複数のポリゴンによって表現され、
前記画像生成方法は、
前記フラグ値決定手段が、ビュースクリーンの全ての各画素に対して、少なくとも一のポリゴンが前記ビュースクリーンに投影される位置に存在するか否かを示す有効画素フラグの値を決定するフラグ値決定ステップと、
前記画素値格納手段が、少なくとも一のポリゴンが前記ビュースクリーンに投影される位置の画素である有効画素の画素値のみを前記有効画素の位置に関わらずレンダリングバッファの連続するアドレス領域に格納する画素値格納ステップと、
前記展開手段が、決定された前記有効画素フラグの値に従って、前記レンダリングバッファに格納されている前記有効画素の画素値をフレームバッファに展開する展開ステップと
を有することを特徴とする画像生成方法。
【請求項７】
仮想的に定義された空間内の物体をビュースクリーンに投影することによって画像を生成する画像生成装置に用いられる、コンピュータに実行させるためのプログラムであって、前記物体は複数のポリゴンによって表現され、
前記プログラムは、
ビュースクリーンの全ての各画素に対して、少なくとも一のポリゴンが前記ビュースクリーンに投影される位置に存在するか否かを示す有効画素フラグの値を決定するフラグ値決定ステップと、
少なくとも一のポリゴンが前記ビュースクリーンに投影される位置の画素である有効画素の画素値のみを前記有効画素の位置に関わらずレンダリングバッファの連続するアドレス領域に格納する画素値格納ステップと、
決定された前記有効画素フラグの値に従って、前記レンダリングバッファに格納されている前記有効画素の画素値をフレームバッファに展開する展開ステップと
を含むプログラム。
【請求項８】
請求項１記載の画像生成装置が備える手段を実現する集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元コンピュータグラフィックス技術に関し、特に３次元空間内の物体を対象とした陰面消去技術に関するものである。
【背景技術】
【０００２】
コンピュータの内部で表現された３次元空間内の物体をディスプレイに表示するためには、その物体を投影する２次元平面（以下「ビュースクリーン」という。）上に投影する必要がある。このとき、視線上に複数の物体が重なる場合は、手前の物体によって奥の物体の隠れる部分を消去してディスプレイに表示する必要がある。３次元コンピュータグラフィックス（以下「３ＤＣＧ」ともいう。）の描画では、このような陰面消去手法が不可欠となっている。
【０００３】
一般によく用いられる陰面消去手法として、Ｚバッファ法がある（例えば、非特許文献１参照）。図１（ａ）は、Ｚバッファ法を説明するための図である。
【０００４】
Ｚバッファ法では、ビュースクリーン９００の各画素に対応する、視点Ｖとビュースクリーン９００上の画素を結ぶ直線が面（例えば、３次元空間内の物体を表すポリゴン）と交わる点のＺ座標（以下「Ｚ値」という。）を格納するためのバッファ（以下「Ｚバッファ」という。）を用意する。Ｚ値は、視点から遠ざかるほど大きくなる値である。また、各画素の画素値（例えば、カラー値や輝度値）を格納するためのバッファ（以下「フレームバッファ」という。）を用意する。
【０００５】
図１（ａ）では、３次元空間内の互いに交差する２つのポリゴン９１０とポリゴン９２０がある場合に、これらのポリゴンをビュースクリーン９００に投影させた場合の様子を示している。この場合、ビュースクリーン９００の画素９３０に投影される部分は、ポリゴン９１０の点Ａの部分であり、ポリゴン９２０の点Ｂは、ポリゴン９１０の点Ａによって隠されてしまう。これは、視点Ｖから画素９３０までの直線を延長して、視点Ｖ−点Ｂ間の距離ＺBより視点Ｖ−点Ａ間の距離ＺAの方が短いため、視点Ｖから見て、より手前にあるポリゴン９１０の点Ａのみがビュースクリーン９００に投影されるからである。
【０００６】
図１（ｂ）は、Ｚバッファ法を用いて陰面消去を行った（即ち、ビュースクリーン９００上にポリゴン９１０およびポリゴン９２０を投影した）場合の画像の表示例である。図１（ｂ）では、各ポリゴンのＺ値が小さい部分ほど濃い黒で表されている。
【０００７】
Ｚバッファ法を用いて陰面消去を行う場合の手順は、以下の通りである。
（１）ビュースクリーン上のすべての画素について、Ｚバッファ内のＺ値を「＋∞」に、フレームバッファ内の画素値を「背景色」にそれぞれ初期化する。
（２）３次元空間（「ビューボリューム」ともいう。）内の全ての投影対象のポリゴンを順次ビュースクリーンに投影させ、各ポリゴンに対応する全ての画素について、以下に示す処理を行う。
（２−１）処理対象のポリゴンに対応する画素毎にＺ値を計算する。
（２−２）上記（２−１）で計算したＺ値が、Ｚバッファに格納されている、対応する画素のＺ値よりも小さいときのみ、その画素について画素値を計算し、Ｚバッファ内のＺ値およびフレームバッファ内の画素値を更新する。
【０００８】
次に、Ｚバッファ法を用いて陰面消去を行う場合の手順について、図２（ａ）〜（ｄ）を参照しながら、さらに具体的に説明する。
【０００９】
図２（ａ）は、ポリゴン９０１について既に描画を終えた、８×８画素から構成される画像の一例である（なお、図２（ａ）では、メモリアドレスを［Ｎ−Ｍ］で示している）。また、図２（ｂ）は、図２（ａ）に新たなポリゴン９０２を加えて描画した画像である。図２（ａ）および（ｂ）の各升目には、それぞれの画素に対応するＺ値を示している。図２（ｃ）は、上記図２（ａ）に対応するフレームバッファに格納されている画素値およびＺバッファに格納されているＺ値の一例である。
【００１０】
図２（ｂ）に示されるように、ポリゴン９０１を描画した画像にポリゴン９０２を追加して描画する場合は、ポリゴン９０２に対応する各画素のうち、既にポリゴン９０１に対応する各画素のＺ値よりも小さいＺ値を持つ画素のみが採用され、ビュースクリーンに描画される。
【００１１】
以上の処理を終了した後のフレームバッファに格納されている画素値およびＺバッファに格納されているＺ値を図２（ｄ）に示す。図２（ｄ）に示されるように、ポリゴン９０２に対応する画素のＺ値がポリゴン９０１に対応する画素のＺ値より小さい場合のみ、それぞれの画素値およびＺ値が更新されている。
【００１２】
以上の手順により、最終的にフレームバッファには、ビュースクリーンに相当する実際のディスプレイに表示すべき陰面消去が施された画像の画像データが格納される。
【００１３】
上記のように、Ｚバッファ法は、ビュースクリーン上の全ての画素に対する画素値とＺ値とを格納するための大容量のバッファ（メモリ）を必要とするが、アルゴリズムが単純であるため、ハードウェア化し易く、多くのリアルタイムレンダリングを行う装置に用いられている。
【非特許文献１】荒屋真二著「明解３次元コンピュータグラフィックス」共立出版  ２００３年
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記Ｚバッファ法を用いた従来の画像生成装置では、各ポリゴンに対応する各画素について、フレームバッファおよびＺバッファに対して頻繁に読み書きを行う必要があるため、膨大なメモリアクセスが発生する。そのため、フレームバッファおよびＺバッファへのアクセスについては、高速なアクセスが要求される。
【００１５】
また、３次元コンピュータグラフィックスにおいて、描画処理効率を最大限に発揮させるためには、読み出し／書き込みの最小処理単位のデータ長（以下「バースト長」という。）を１画素分のデータ（画素値およびＺ値を含む）長程度とするのが好ましく、また、読み出し／書き込みの待ち時間（以下「レイテンシ」という。）が短いメモリを用いる必要がある。
【００１６】
ところが、１チップで様々な機能を搭載する、３次元コンピュータグラフィックス処理について特に考慮をしていないシステムＬＳＩにおいては、必ずしも３次元コンピュータグラフィックス処理に最適なメモリが搭載されていない場合（例えば、読み出し／書き込みの際のバースト長が１画素分のデータよりもはるかに長い場合）が多い。上記のシステムＬＳＩのように、読み出し／書き込みの際のバースト長が１画素分のデータよりもはるかに長い場合は、描画処理中のポリゴンに関係のない画素の画素データも一緒にアクセスされてしまい、メモリアクセス時の処理効率が低下する。
【００１７】
さらに、メモリアクセス時のレイテンシが長い場合は、その待ち時間をほとんど描画処理に充てることができず、ただ無為に待っていなければならない。そのため、描画処理における処理効率が低下し、滑らかな動きの画像が得られないなど、画質の低下等を招くという課題がある。
【００１８】
そこで、本発明は、上記課題に鑑みてなされたものであり、Ｚバッファ法を適用して陰面消去を行う場合でも、描画処理における処理効率の低下を回避し得る画像生成装置等を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明では、上記課題を解決するために以下の手段を講じた。すなわち、ポリゴンの描画処理を複数の画素から構成されるブロック毎に行い、前記ブロックのポリゴンが描画された画素のデータである有効画素データから構成されるメモリ格納イメージを作成する。さらに、前記有効画素データを前記メモリ格納イメージに従ってレンダリングバッファの連続アドレス領域に格納し、前記メモリ格納イメージを描画情報データにエンコードし、前記描画情報データを描画情報バッファに格納する。さらにまた、前記レンダリングバッファへのメモリアクセスは、あらかじめ参照された前記描画情報データがデコードされた結果であるメモリ格納イメージに基づいて必要最小限に行う。
【００２０】
上記の課題を解決するために、本発明に係る画像生成装置は、仮想的に定義された空間内の物体をビュースクリーンに投影することによって画像を生成する画像生成装置であって、前記物体は複数のポリゴンによって表現され、ビュースクリーンの全ての各画素に対して、少なくとも一のポリゴンが前記ビュースクリーンに投影される位置に存在するか否かを示す有効画素フラグの値を決定するフラグ値決定手段と、決定された前記有効画素フラグに対応させて、ポリゴンに対応する画素の画素値をレンダリングバッファの連続アドレス領域に格納する画素値格納手段と、決定された前記有効画素フラグの値に従って、前記レンダリングバッファに格納されている前記画素値をフレームバッファに展開する展開手段とを備えることを特徴とする。
【００２１】
これにより、陰面消去を伴うポリゴンの描画においては、描画に必要な有効画素のデータは描画情報データに従って前記レンダリングバッファの連続アドレス領域に格納するため、メモリアクセスを簡素に実現し、メモリアクセス量を大幅に低減することができる。
【００２２】
また、前記画像生成装置は、さらに、前記ビュースクリーンを複数のブロックに分割する分割手段とを備え、前記フラグ値決定手段は、分割された一のブロック毎に前記有効画素フラグの値を決定し、前記画素値格納手段は、前記ブロック毎に前記レンダリングバッファへの前記格納を行い、前記展開手段は、すべてのブロックについて前記レンダリングに格納された前記画素値を前記フレームバッファに展開することとしてもよい。
【００２３】
また、前記画素値格納手段は、さらに、前記一のブロックについて、当該ブロックにおける前記レンダリングバッファ上の前記画素値のデータ長を算出するデータ長算出部と、算出された前記データ長を前記レンダリングバッファに付加するデータ長付加部とを備えることとしてもよい。
【００２４】
また、前記画素値格納手段は、さらに、前記一のブロックに一のポリゴンが描画されたとき、前記ポリゴンの形態を特定し得る情報を用いて前記画素値を生成し、生成された当該画素値を前記レンダリングバッファに格納することとしてもよい。
【００２５】
また、前記画素値格納手段は、前記ポリゴンの形態を特定し得る情報を用いて前記画素値の補間計算を行う補間計算部を備え、前記補間された画素値を前記レンダリングバッファに格納することとしてもよい。
【００２６】
さらに、本発明に係るデータ記録媒体は、仮想的に定義された空間内の物体をビュースクリーンに投影することによって画像を生成する画像生成装置に用いられるデータ記録媒体であって、前記物体は複数のポリゴンによって表現され、前記画像生成装置は、ビュースクリーンの全ての各画素に対して、少なくとも一のポリゴンが前記ビュースクリーンに投影される位置に存在するか否かを示す有効画素フラグの値を決定するフラグ値決定手段と、決定された前記有効画素フラグに対応させて、ポリゴンに対応する画素の画素値を決定する画素値決定手段と、決定された前記有効画素フラグの値に従って、決定された前記画素値をフレームバッファに展開する展開手段とを備え、前記データ記録媒体は、決定された前記有効画素フラグおよび前記画素値の少なくとも一方を、連続するアドレス領域に格納することを特徴とする。
【００２７】
なお、本発明は、上記画像生成装置における特徴的な構成手段をステップとする画像生成方法として実現したり、それらステップをパーソナルコンピュータ等に実行させるプログラムや集積回路として実現したりすることもできる。そして、そのプログラムをＤＶＤ等の記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのは云うまでもない。
【発明の効果】
【００２８】
本発明に係る画像生成装置は、複数の画素からなるブロック単位で、かつポリゴンが描画された画素（以下「有効画素」という。）をレンダリングバッファの連続アドレス領域に格納するので、後のポリゴンの描画においては、描画に必要な有効画素のデータは描画情報データに従って前記レンダリングバッファの連続アドレス領域にのみアクセスすればよく、バースト読み出しを行った際の無駄なデータを減らすことができ、メモリアクセス量を大幅に低減することができる。
【００２９】
したがって、３次元コンピュータグラフィックス処理を特に考慮していない、アクセス時のバースト長が大きなメモリを搭載したシステムＬＳＩにおいても、描画処理を高速に行うことができるという効果がある。
【００３０】
また、３次元コンピュータグラフィックス処理におけるメモリアクセス量を減らすことで、上記システムＬＳＩに含まれる３ＤＣＧ処理以外の機能モジュールによるメモリアクセスに悪影響を与えないという効果もある。
【発明を実施するための最良の形態】
【００３１】
以下、本発明に係る実施の形態について、図面を参照しながら説明する。なお、以下の実施の形態において、本発明について図面を用いて説明するが、本発明をこれらに限定することを意図するものではない。
【００３２】
（実施の形態１）
図３は、本実施の形態に係る画像生成装置３００のハードウェア構成を示すブロック図である。図３に示す画像生成装置３００は、３次元コンピュータグラフィックスの陰面消去処理に伴うメモリアクセス量を大幅に低減し得る画像生成装置であり、ＣＰＵ３０１、グラフィックスエンジン３０２、ブロックバッファ３０３、メモリコントローラ３０４、メモリ３０５、ディスプレイコントローラ３０９およびディスプレイ３１０を備える。さらに、メモリ３０５は、レンダリングバッファ３０６、描画情報バッファ３０７およびフレームバッファ３０８を備える。
【００３３】
ＣＰＵ３０１は、制御プログラムを格納するＲＯＭ、およびＲＡＭ等を備え、ＣＰＵバス３１１を介してグラフィックスエンジン３０２に描画命令を発行する。
【００３４】
グラフィックスエンジン３０２は、ＣＰＵから受け付けた描画命令に従って陰面消去を伴う描画処理を行うと共に、ＣＰＵバス３１１を介してＣＰＵ３０１に描画処理に関する割り込み要求などを行う。なお、ＣＰＵ３０１、グラフィックスエンジン３０２およびディスプレイコントローラ３０９は、メモリバス３１２を介してメモリコントローラ３０４に接続されており、それぞれメモリ３０５にアクセスして必要なデータの読み書きを行う。
【００３５】
ブロックバッファ３０３は、描画領域を分割したブロック毎に描画イメージを展開するための作業用バッファであり、グラフィックスエンジン３０２に直接接続されている。ここで、「描画イメージ」とは、グラフィックスエンジンのラスタライズ部における描画処理（画素処理）で直接用いることのできる非圧縮のデータであり、画素値とＺ値とを含むものをいう。なお、ブロックバッファ３０３には、読み書きを高速に行うレジスタもしくはＳＲＡＭ（Static Random Access Memory）を用いるのが望ましい。
【００３６】
メモリ３０５における各バッファは、ＤＲＡＭ（Dynamic Random Access Memory）などの大容量メモリを用いるのが望ましい。なお、本実施の形態では、これらのバッファは１つのメモリに集約させたが、別々のメモリに分散させてもよい。
【００３７】
レンダリングバッファ３０６は、グラフィックスエンジン３０２における描画（即ち、画像データを生成）を行う際の作業用のバッファであり、画素値やＺ値を含む陰面消去に必要なデータなどを格納する。
【００３８】
描画情報バッファ３０７は、前記ブロック用のレンダリングバッファ上のメモリ格納イメージを格納する作業用のバッファであり、各ブロックの描画情報データを格納する。なお、描画情報バッファ３０７は、その一部または全部がレンダリングバッファ３０６に含まれてもよい。また、描画情報バッファ３０７は、ブロックバッファ３０３と同様に、高速な読み書きが可能なレジスタまたはＳＲＡＭによって構成することとしてもよい。
【００３９】
フレームバッファ３０８は、最終的にディスプレイ３１０に表示される画像の画像データを格納するバッファであり、グラフィックスエンジン３０２によって生成された画像データが格納される。なお、フレームバッファ３０８に格納された画像データは、ディスプレイコントローラ３０９によって読み出され、ディスプレイ３１０に出力される。
【００４０】
図４は、上記図３におけるグラフィックスエンジン３０２の機能構成を示すブロック図である。図４に示されるように、グラフィックスエンジン３０２は、ホストインターフェース４０１、制御部４０２、頂点処理部４０３、セットアップ部４０４、ラスタライズ部４０５、データ変換部４０６およびメモリバスインターフェース４０７を備える。
【００４１】
ホストインターフェース４０１は、ＣＰＵバス３１１を介して、ＣＰＵ３０１から描画命令等の描画制御信号を受け付け、又は、ＣＰＵ３０１へグラフィックスコアの割り込み信号等を出力する。
【００４２】
制御部４０２は、ＣＰＵ３０１から受け付けた描画命令に付随するポリゴンデータを頂点処理部４０３に出力する。
【００４３】
頂点処理部４０３は、制御部４０２から入力したポリゴンデータを用いて、各ポリゴンの頂点（ポリゴンが三角形の場合は３頂点）に対して光源計算や座標変換処理等を行い、その結果をセットアップ部４０４に出力する。
【００４４】
セットアップ部４０４は、各ポリゴンにおける頂点の座標、これらの頂点に対応する画素の画素値およびＺ値などの係数から、当該ポリゴンを囲む直線の傾き、当該ポリゴンに対応する他の画素の画素値およびＺ値などの係数の補間値を計算して、ラスタライズ部４０５に出力する。なお、この際の補間計算のための方式は、線形補間やスプライン関数等の関数式を用いた補間など、いろいろな方式が考えられるが、特に限定はしない。
【００４５】
ラスタライズ部４０５は、セットアップ部４０４が入力した係数やセットアップ部４０４で計算された係数の補間値（以下「セットアップ係数」という。）を用いてポリゴンの描画処理を行う。
【００４６】
データ変換部４０６は、メモリ３０５に存在するレンダリングバッファ３０６および描画情報バッファ３０７に格納されているデータのデコードおよびエンコードを行う。
【００４７】
次に、本実施の形態に係るラスタライズ部４０５においてポリゴンを描画する際の処理の流れについて説明する。まず、ラスタライズ部４０５は、ポリゴンの内部座標をブロック毎に走査して、ポリゴンを描画するブロックを決定する。
【００４８】
次に、データ変換部４０６は、メモリバスインターフェース４０７を介して、描画情報バッファ３０７にアクセスし、決定された前記ブロックの描画情報データを読み出す。さらに、データ変換部４０６は、描画情報データの有効画素フラグの内容に従ってメモリバスインターフェース４０７を介してレンダリングバッファ３０６に必要最小限の読み出しアクセスを行う。さらに、データ変換部４０６は、読み出された有効画素データをブロックバッファ３０３に展開して描画イメージを復元する。
【００４９】
その後、ラスタライズ部４０５は、上記ポリゴンの内部の画素について、画素値およびＺ値を算出して、ブロックバッファ３０３に展開した描画イメージとのブレンド処理を行う。ここで、「ブレンド処理」とは、Ｚ値を用いた陰面消去処理や画素値に含まれるα成分（混合率）を用いた半透明処理など、処理済みの描画されたポリゴンと現在処理中のポリゴンとを合わせ込む処理の総称をいう。
【００５０】
最後に、データ変換部４０６は、ブロックバッファ３０３上の描画イメージから有効画素データを取り出してレンダリングバッファ３０６の連続アドレス領域に格納し、有効画素フラグを更新して描画情報データを描画情報バッファ３０７に格納する。
【００５１】
全てのポリゴンの描画が終わった後、データ変換部４０６は、レンダリングバッファ３０６の内容を、ディスプレイ３１０に表示可能な形式に変換してフレームバッファ３０８に格納する。なお、頂点処理部４０３とセットアップ部４０４の処理はＣＰＵ３０１で行うことも可能であるが、その場合は、制御部４０２から直接ラスタライズ部４０５にセットアップデータが出力される。
【００５２】
図５は、本実施の形態におけるポリゴンの描画方法の概要を示す図である。
図５（ａ）は、レンダリングバッファ３０６上のポリゴンの描画イメージである。図５（ａ）では、ビュースクリーンの描画領域１０１を分割（本実施例では、４８分割）することによって生成された、複数の画素から構成されるブロック１０２（本実施例では、８×８画素としたが、これ以外の画素でブロックを構成してもよい。）にポリゴン１０３を描画する様子を示している。
【００５３】
図５（ａ）のポリゴンの内部の画素値は、カラー値を示している。ブロック１０２にポリゴン９０１を描画すると、ポリゴン９０１の内部の画素が描画される。本実施の形態では、ポリゴンを描画した際の対応する画素を「有効画素」という。ポリゴン９０１を描画した後のブロック１０２については、有効画素のデータ（画素値およびＺ値を含む）のみレンダリングバッファ３０６に格納する。このとき、各有効画素データは、図５（ｂ）に示すように、レンダリングバッファ３０６の連続したアドレス領域に格納する。ブロック１０２の描画情報データは、ブロックの各画素にポリゴンが描画されたかどうかを示すフラグ（以下「有効画素フラグ」という。）であり、図６（ａ）のようなテーブル形式で格納される。最初、有効画素フラグの値は、ポリゴンが描画されていないことを表す値「０」に初期化されるが、そのうちポリゴンが描画されると、その描画を表す画素に対応するフラグに値「１」が設定されて、図６（ｂ）のように更新され、描画情報バッファ３０７に格納される。
【００５４】
ブロック１０２に、さらにポリゴンを描画するときは、図６（ｂ）のテーブルを参照して図５（ｂ）のメモリ格納イメージをデコードすることで有効画素データを参照することができる。
【００５５】
以下に、本実施の形態におけるポリゴンを描画する際に行う陰面消去の詳細な手順について説明する。まず、ポリゴンを描画するブロックの描画情報データを読み出す。描画情報データの有効画素フラグの値から、レンダリングバッファ３０６に格納された有効画素データの位置が判別できる。例えば、図５（ｂ）のレンダリングバッファ３０６の格納状態から、図５（ａ）のブロック１０２の描画イメージを復元するとき、図６（ｂ）の有効画素フラグの値「１」が設定されている画素に対しては、レンダリングバッファ３０６から読み出した有効画素データをアドレス順に割り当て、値「０」が設定されている有効画素フラグに対応する画素に対しては、画素値およびＺ値の初期値を割り当てることで復元できる。また、有効画素フラグの値「１」が設定されている画素の数は有効画素の数を表すので、有効画素データの読み出しはレンダリングバッファ３０６の該当するブロックの先頭アドレスから「（有効画素数）×（１画素分のデータ量）」分だけメモリアクセスを行えばよい。
【００５６】
上記の例では、図５（ｂ）のレンダリングバッファ３０６における「メモリアドレス０」から「メモリアドレス１０」までが有効画素データが格納された領域（以下「有効画素データ領域」という。）であり、この部分に対してのみ読み出しアクセスを行えば、すべての有効画素データを読み出すことができる。
【００５７】
以上のような手順で、読み出す有効画素データの対応する画素と有効画素データ領域を決定して、レンダリングバッファの有効画素データ領域から有効画素データを読み出し、ブロック単位の描画イメージを復元する。
【００５８】
次に、新たに描画するポリゴン、復元されたブロックの描画イメージの画素値およびＺ値を用いてブロックの陰面消去処理を行う。こうして作成された新たなブロック描画イメージのうち、有効画素のデータを再びレンダリングバッファ３０６の該当するブロックの先頭アドレスから順に格納し、さらに描画情報データの有効画素フラグを新たに有効画素となった画素のフラグの値を「１」に更新して描画情報バッファ３０７に格納する。
【００５９】
これを全てのブロックおよび全ての入力ポリゴンについて繰り返し行う。
上記の手順に従って、最終的にディスプレイ３１０に複数のポリゴンから構成される物体の画像を生成するには、レンダリングバッファ３０６に格納されたブロックの有効画素データを前記ブロックの描画のときと同様に読み出してブロックの描画イメージをフレームバッファ３０８上のブロックの位置に相当するアドレス領域に展開すればよい。
【００６０】
次に、以上のように構成される画像生成装置３００の動作について説明する。図７は、画像生成装置３００の処理の流れを示すフローチャートである。
【００６１】
最初に、制御部４０２は、ホストインターフェース４０１を介して描画対象の物体のポリゴンデータを取得し（Ｓ７０２）、レンダリングバッファ３０６に格納する。さらに、制御部４０２は、メモリ３０５内の各バッファに対して初期化処理を行う（Ｓ７０４）。次に、制御部４０２は、ビュースクリーンを８×８画素から構成されるＮ個（本実施例では４８個）のブロックに分割する（Ｓ７０６）。
【００６２】
この後、制御部４０２は、全てのブロックについて以下の処理を行うように、各部を制御する（Ｓ７０８〜７２０）。
【００６３】
まず、ラスタライズ部４０５は、当該ブロックにポリゴンが存在するか否かを判定し（Ｓ７１０）、ポリゴンがある場合は（Ｓ７１０：Ｙｅｓ）、当該ブロックの全ての画素について、以下の処理を行う（Ｓ７１２〜Ｓ７１８）。
【００６４】
ラスタライズ部４０５は、各ポリゴンに対応する画素のＺ値を比較し、Ｚ値が小さい場合にそのポリゴンが投影された画素の画素値（例えば、カラー値）およびＺ値を更新する（Ｓ７１４）。さらに、ラスタライズ部４０５は、そのポリゴンが投影された画素に対応する有効画素フラグを設定する（Ｓ７１６）。
【００６５】
次に、図８を用いて、本実施の形態に係る画像生成装置３００の効果について説明する。ここでは、メモリの読み出しバースト長を４×４画素分のデータ長とし、ブロックは８×８画素から構成されるものとする。従来の画像生成装置では、バースト長に合わせて４×４画素単位で描画を行い、本実施の形態の画像生成装置３００では、８×８画素単位で描画を行うこととする。このとき、ポリゴン５０１が描画された画素のデータをメモリから読み出す場合、従来の画像生成装置では４回のメモリアクセスを行う必要があるが、本実施の形態の画像生成装置３００では、有効画素データをレンダリングバッファ３０６の連続アドレス領域に集めて格納しているので、１回のメモリアクセスを行うだけでよい。また、ブロックに跨って描画されたポリゴン５０２に対応するメモリの読み出しについても、従来の画像生成装置では３回であるが、本実施の形態の画像生成装置３００では２回と、メモリアクセス回数を低減させることができる。なお、有効画素の位置情報は、描画情報バッファ３０７で管理されているため、メモリアクセスの効率をさらに高めるために、レンダリングバッファ３０８に格納するデータに対してランレングス法やハフマン法などの一般に良く知られている方法で圧縮を行うこともできる。
【００６６】
本実施の形態においては、レンダリングバッファ３０８に格納する前記有効画素データとして、画素値とＺ値とを例示したが、Ｚ値を用いない陰面消去法を行う場合は、もちろんＺ値がなくてもよい。
【００６７】
（実施の形態２）
図９（ａ）〜（ｆ）は、実施の形態２におけるポリゴンの描画方法の概要を示す図である。
【００６８】
図９（ａ）は、既にポリゴンが描画されたブロックの描画イメージを示す図である。図９（ｂ）は、上記図９（ａ）のブロック６０１に追加で描画するポリゴンストリップ６０２の描画イメージを示す図である。上記実施の形態１では、新たなポリゴンを描画する度にレンダリングバッファ３０６にアクセスしてブロック単位で有効画素データの読み書きを行って描画イメージの更新を行ったが、本実施の形態では、ひとまずレンダリングバッファ３０６への読み出しアクセスは行わずに、新たに描画するポリゴンの描画イメージを作成し、描画データをレンダリングバッファ３０６の該当ブロックのデータ領域の末尾に追記する方法を採用する。追記するポリゴンの描画データを管理するために、描画情報データに上記実施の形態１で用いた有効画素フラグに加えて、レンダリングバッファ３０６上の該当ブロックのデータ長（以下「ブロックデータ長」という。）を含めることとする。例えば、図９（ａ）のブロック６０１に、図９（ｂ）のポリゴンストリップ６０２を描画する場合、ポリゴンストリップ６０２を構成するポリゴン６０３、ポリゴン６０４およびポリゴン６０５については、それぞれポリゴン内部の画素値およびＺ値を計算して描画イメージを作成し、描画データをレンダリングバッファ３０６のブロック６０１の有効画素データが格納されたメモリ領域の後方アドレスに追記する。レンダリングバッファ３０６上のブロック６０１のデータは、図９（ｆ）に示すように、ブロック６０１の有効画素データの後に格納される。このとき、ブロックデータ長を、追記した描画データを含めたサイズで更新する。ブロックデータ長があるサイズに達したところで、レンダリングバッファ３０８の有効画素データおよびポリゴンの描画データを格納した該当ブロックのデータ領域へ読み出しアクセスを行い、１つの描画イメージに合成する。
【００６９】
以下、本実施の形態におけるブロックの描画の詳細な手順について説明する。まず、ポリゴンを描画するブロックの描画情報データを読み出す。ここで、該当ブロックの描画情報データのブロックデータ長が指定された大きさに達しているか否かについて判定する。この場合、当該ブロックのブロックデータ長が指定された大きさに達している場合は「真」、指定された大きさに達していない場合は「偽」と判定する。
【００７０】
前記判定で「偽」の場合は、該当ブロックに描画するポリゴンのみの描画イメージを作成して、描画データをレンダリングバッファ３０６の該当ブロックの描画データ領域の後方アドレスに追記し、描画情報データのブロックデータ長をポリゴンの描画データ分だけ増やして、描画情報バッファ３０７に格納する。ここで、追記するポリゴンの描画データは、該当ブロックの描画イメージと同様に、有効画素データから作成して、ポリゴンの有効画素フラグは有効画素データとともにレンダリングバッファ３０６に格納する。前記判定で「真」の場合、もしくは最終結果の画像を出力する場合は、まず、描画情報データのブロックデータ長からブロックデータ長分だけレンダリングバッファ３０６に読み出しアクセスを行う。レンダリングバッファ３０６からのデータ読み出しが開始されると、はじめに描画情報データの有効画素フラグから上記実施の形態１と同様の手順でそのブロックの描画イメージを復元する。
【００７１】
その後、これまで合成していなかったポリゴンの描画イメージをレンダリングバッファ３０６から読み出されたポリゴンの有効画素フラグと有効画素データから描画イメージを復元し、順次ブロックの描画イメージとのブレンド処理を行う。
【００７２】
最後に、今回入力されたポリゴンとブロックの描画イメージとのブレンド処理を行う。更新された描画イメージの有効画素データを再度レンダリングバッファ３０６の連続アドレス領域に格納し、ブロックの有効画素データを更新した描画イメージに合わせて設定し、ブロックデータ長はブロックの有効画素データのサイズに設定して描画情報バッファに格納する。これを全てのブロックおよび全ての入力ポリゴンについて繰り返した後に、上記実施の形態１と同様の手順でフレームバッファ３０８に出力することでディスプレイ９１０に表示が可能となる。
【００７３】
上記手順で、ポリゴン描画を行う画像生成装置は、上記実施の形態１の画像生成装置とほぼ同様の構成であるが、グラフィックスエンジン１３０２は、図１０に示す構成となる。上記実施の形態１と異なるところは、条件判断部７０１が追加された点である。条件判断部７０１は、データ変換部４０６がデコードした描画情報データのうちブロックデータ長を受け取って、
（１）レンダリングバッファ３０６に読み出しアクセスしないで、ラスタライズ部４０５に入力されたポリゴンのみの描画データをレンダリングバッファ３０６に追記する、若しくは、
（２）レンダリングバッファ３０６に読み出しアクセスを行い、ブロックの描画イメージとこれまで追記されたポリゴンの描画イメージおよびラスタライズ部４０５に入力されたポリゴンのブレンド処理を行う、のどちらを行うかを判断する。
【００７４】
ラスタライズ部４０５およびデータ変換部４０６は、条件判断部７０１の判断に従って上記（１）または（２）の処理を行う。
【００７５】
本実施の形態における描画処理は、上記実施の形態１と同様に、ラスタライズ部４０５がポリゴンの内部座標をブロック毎に走査して、ポリゴンを描画するブロックを決定する。次に、データ変換部４０６は、描画情報バッファ３０７にアクセスして該当ブロックの描画情報データを読み出してデコードを行い、描画情報データのうちブロックデータ長を条件判断部７０１に出力する。
【００７６】
条件判断部７０１は、ブロックデータ長から上記判断を行い、上記（１）または（２）の処理を行うかを決定する。（１）の処理を行う場合、まず、ラスタライズ部４０５は入力されたポリゴンの描画イメージをブロックバッファ３０３に作成する。次に、データ変換部４０６は、上記実施の形態１と同様に、ブロックバッファ３０３のポリゴンの描画イメージから有効画素フラグと有効画素データを作成し、レンダリングバッファ３０６の該当ブロックのデータに追記する。（２）の処理を行う場合、データ変換部４０６はブロックデータ長の分だけレンダリングバッファ３０６の該当ブロックのデータが格納されているアドレスに読み出しアクセス要求を発行する。
【００７７】
データ読み出しが開始されると、データ変換部４０６は、描画情報データの有効画素フラグから該当ブロックの描画イメージをブロックバッファ３０３に復元し、後の読み出しデータを順次有効画素フラグと有効画素データからポリゴンの描画イメージに復元してラスタライズ部４０５に出力する。ラスタライズ部４０５は、データ変換部４０６から入力されたポリゴンの描画イメージおよびセットアップ部４０４から入力されたポリゴンとブロックバッファ３０３上のブロックの描画イメージとブレンド処理を行う。
【００７８】
最後に、データ変換部４０６はブロックバッファ３０３上の描画イメージから有効画素データを取り出してレンダリングバッファ３０６の連続アドレス領域に格納し、描画情報データの有効画素フラグを更新し、ブロックデータ長を有効画素データのサイズに設定して描画情報バッファ３０７に格納する。全てのポリゴンの描画が終わった後は、全てのブロックに対して（２）の処理を行って結果をフレームバッファ３０８に格納する。
【００７９】
次に、本実施の形態に係る画像生成装置の効果について説明する。上記実施の形態１の画像生成装置３００では、ポリゴンを描画した画素のレンダリングバッファ３０６への格納方法を工夫することでメモリアクセス回数を低減することができた。しかし、ポリゴンの描画の度にメモリへの読み出しアクセスを行うため、メモリ読み出しレイテンシの問題は依然として残る。この問題に対して、本実施の形態の画像生成装置では、ポリゴン描画データをひとまずレンダリングバッファ３０６に書き込む。メモリへの書き込みについては、一般的なメモリバスの場合は実際にメモリに書き終わるまで待つ必要はないので、書き込み要求を発行する時間だけメモリアクセスに必要な時間となる。また、ブロックの描画イメージとポリゴンの描画イメージの合成を行う際、ブロックの有効画素と追記したポリゴン描画データのメモリ読み出し要求は一度に連続して行うことができるため、メモリ読み出しレイテンシによる待ち時間を減らすことができる。本実施の形態の画像生成装置において、一度にＮ個のポリゴンを処理するときのメモリ読み出しレイテンシは、書き込み要求や読み出し要求を発行する時間に対してメモリ読み出しレイテンシが十分長い場合は、上記実施の形態１の画像生成装置の１／Ｎ程度になる。この結果、メモリアクセスに必要な時間が低減され、描画速度が大幅に高速化される。
【００８０】
なお、レンダリングバッファ３０６のブロックデータに追記するポリゴンの描画データの作成については、本実施の形態で示した圧縮法に限らず、ランレングス法やハフマン法などの一般に良く知られている可逆圧縮法や画素値についてはＤＣＴ（離散コサイン変換）などを用いた非可逆圧縮法を用いることもできる。１つのポリゴン描画データは局所性が高いため、複数のポリゴンが描画された通常の描画イメージよりも高い圧縮率が達成できる。
【００８１】
（実施の形態３）
図１１（ａ）〜（ｄ）は、本実施の形態におけるポリゴンの描画方法の概要を示す図である。図１１（ａ）は、すでに複数のポリゴンが描画されたブロックの描画イメージを示す。また、図１１（ｂ）は、図１１（ａ）のブロック８０１に追加描画するポリゴン８０２を示したものである。図１１（ａ）のブロック８０１に、図１１（ｂ）のポリゴン８０２を描画する場合、上記実施の形態２では、ポリゴンの描画イメージをレンダリングバッファ３０６に追記したが、本実施の形態では図１１（ｃ）に示したポリゴン８０２のセットアップ係数（ここでは、頂点ｓのＸＹ座標、画素値、Ｚ値、頂点ｃと頂点ｅのＸＹ座標、辺ｓｃと辺ｓｅと辺ｃｅの傾き、画素値とＺ値のＸＹ方向差分から構成される）をレンダリングバッファ３０６に追記する。セットアップ係数を追記した場合、レンダリングバッファ３０６上のブロックのデータは、図１１（ｄ）のようになる。
【００８２】
本実施の形態においてポリゴンを描画する手順は、上記実施の形態２とほぼ同じであるが、ブロックデータ長が指定したサイズに達しない場合に、レンダリングバッファ３０６に追記するデータがポリゴンの描画イメージではなく、ポリゴンのセットアップ係数である点が異なる。ブロックデータ長が指定したサイズに達した場合、ブロックの描画イメージを復元し、このとき初めて各ポリゴン内部の画素値およびＺ値を計算して、ブロックの描画イメージとのブレンド処理を行う。
【００８３】
上記の手順でポリゴンの描画を行う画像生成装置は、基本的に上記実施の形態２で示した画像生成装置と同じ構成であるが、各ブロックにポリゴンを描画するときの動作が少し異なっている。
【００８４】
条件判断部７０１がポリゴンデータの追記を判断した場合、ラスタライズ部４０５はセットアップ部４０４から入力されたセットアップ係数をデータ変換部４０６へ出力し、データ変換部４０６はセットアップ係数をレンダリングバッファ３０６に格納し、描画情報データのブロックデータ長をセットアップ係数のデータ長分だけ加算して描画情報バッファへ格納する。条件判断部７０１がポリゴンデータとブロックの描画イメージの合成を判断した場合、データ変換部４０６は、上記実施の形態２と同様にレンダリングバッファ３０６上の有効画素データからブロックの描画イメージをブロックバッファ３０６上に復元する。後の読み出しデータをセットアップ係数としてラスタライズ部４０５に出力する。ラスタライズ部４０５は、データ変換部４０６とセットアップ部４０４から入力されたセットアップ係数からそれぞれのポリゴン内部の画素値とＺ値とを算出し、ブロックバッファ３０３上のブロック描画イメージとのブレンド処理を行う。
【００８５】
本実施の形態に係る画像生成装置の効果について説明するために、本画像生成装置を用いてアンチエイリアシングを行う場合を考える。「アンチエイリアシング」とは、ポリゴンをディスプレイに表示したときに、ポリゴンの境界に現れるギザギザ模様（エイリアシング）を低減して画質を向上させる処理である。
【００８６】
一般的なアンチエイリアシングの方法としては、一旦ディスプレイの解像度よりも大きい解像度で描画を行い、フレームバッファ３０８に書き込むとき、レンダリングバッファ３０６の複数の画素の画素値を平均化して、対応するフレームバッファ３０８の１画素の画素値を求めるという方法がよく知られている。
【００８７】
しかし、フレームバッファのＮ倍の解像度でアンチエイリアシングを行った場合は、レンダリングバッファ３０６に読み書きするデータ量もＮ倍になる。従って、ポリゴンを描画する度にレンダリングバッファ３０６を更新する画像生成装置では、毎回Ｎ倍のメモリアクセスを行わなければならないため、描画処理に長時間を要する結果となる。また、上記実施の形態２の画像生成装置においても、ブロックの有効画素データとポリゴンの描画データの双方がＮ倍のデータ量になり、ブロックデータ長が指定されたサイズに達しやすくなり、ブロックの描画イメージの合成を頻繁に行うことになるので、メモリアクセス量が増大し、描画処理に長時間を要する結果となる。
【００８８】
一方、本実施の形態における画像生成装置では、一旦処理解像度に依存しないポリゴンのセットアップ係数をレンダリングバッファ３０６に格納するので、ブロックデータ長の増加を抑えることができ、ブロックの描画イメージと複数のポリゴンを合成する間隔を大きくすることができ、さらに合成時においても、Ｎ倍の有効画素データと解像度に依存しないセットアップ係数をレンダリングバッファ３０６から読み書きすればよいので、メモリアクセス量が低減され、描画速度が大幅に高速化される。上記のアンチエイリアス処理と同様の理由で、本実施の形態に係る画像生成装置は、単純に高解像度のフレームを生成する場合においても大きなメリットがあることは言うまでもない。
【００８９】
なお、本実施の形態の説明で用いたセットアップ係数は一例であり、テクスチャやフォグなど、その他のセットアップ係数を含めてもよいし、描画に使用しないのであれば、本実施の形態で用いたセットアップ係数を含めなくともよい。また、レンダリングバッファ３０６に格納するセットアップ係数に対して、ランレングス法やハフマン法などの一般に良く知られている方法で圧縮を行ってもよい。
【００９０】
また、上記の実施の形態１〜３では、画素値やＺ値をレンダリングバッファ等のメモリに格納する実施例について説明したが、メモリに限らず、ハードディスク等の磁気記録媒体やＤＶＤやＣＤ等の光ディスク型の記録媒体、その他の記録媒体に格納することとしてもよい。
【産業上の利用可能性】
【００９１】
本発明の画像生成装置は、グラフィックス描画機能を搭載するさまざまな電子機器、例えば、携帯電話、ＰＤＡ、デジタルテレビ、カーナビゲーションシステム、家庭用ゲーム機およびパーソナルコンピュータ等に利用が可能である。
【図面の簡単な説明】
【００９２】
【図１】図１（ａ）は、Ｚバッファ法を説明するための図である。（ｂ）は、Ｚバッファ法を用いて陰面消去を行った画像の表示例である。
【図２】図２（ａ）は、あるポリゴンについて描画を終えた８×８画素から構成される画像の一例である。（ｂ）は、上記図２（ａ）に新たなポリゴンを加えて描画した画像の一例である。（ｃ）は、上記図２（ａ）のポリゴンに対応するフレームバッファに格納されている画素値およびＺバッファに格納されているＺ値の一例である。（ｄ）は、上記図２（ｂ）のポリゴンに対応するフレームバッファに格納されている画素値およびＺバッファに格納されているＺ値の一例である。（ｅ）は、Ｚバッファ法によって更新された、フレームバッファに格納されている画素値およびＺバッファに格納されているＺ値の一例である。
【図３】図３は、実施の形態１に係る画像生成装置のハードウェア構成を示すブロック図である。
【図４】図４は、実施の形態１に係るグラフィックスエンジンの機能構成を示すブロック図である。
【図５】図５（ａ）は、実施の形態１におけるレンダリングバッファ上のポリゴンの描画イメージを示す図である。（ｂ）は、あるポリゴンを描画する際のカラー値とＺ値の一例を示す図である。（ｃ）は、他のポリゴンを描画する際のカラー値とＺ値の一例を示す図である。（ｄ）は、上記（ｂ）のポリゴンと上記（ｃ）のポリゴンとを合成して描画する際のカラー値とＺ値の一例を示す図である。
【図６】図６（ａ）は、初期化された有効画素フラグのテーブルの一例を示す図である。（ｂ）は、上記図５（ｂ）に対応する有効画素フラグのテーブルの一例を示す図である。（ｃ）上記図５（ｃ）に対応する有効画素フラグのテーブルの一例を示す図である。（ｄ）は、上記図５（ｄ）に対応する有効画素フラグのテーブルの一例を示す図である。
【図７】図７は、実施の形態１における画像生成装置の処理の流れを示すフローチャートである。
【図８】図８は、実施の形態１における効果を説明するための図である。
【図９】図９（ａ）は、実施の形態２におけるレンダリングバッファ上のポリゴンの描画イメージの一例を示す図である。（ｂ）は、実施の形態２におけるレンダリングバッファ上のポリゴンの描画イメージの他の例を示す図である。（ｃ）〜（ｅ）は、上記図９（ｂ）のポリゴンを分解した様子を示す図である。（ｆ）は、実施の形態２におけるレンダリングバッファに格納されるデータの一例を示す図である。
【図１０】図１０は、実施の形態２に係るグラフィックスエンジンの機能構成を示すブロック図である。
【図１１】図１１（ａ）は、実施の形態３におけるレンダリングバッファ上のポリゴンの描画イメージの一例を示す図である。（ｂ）は、実施の形態３において追加して描画するポリゴンのイメージの一例を示す図である。（ｃ）は、実施の形態３におけるセットアップ係数の一例を示す図である。（ｄ）は、実施の形態３におけるレンダリングバッファに格納されるデータの一例を示す図である。
【符号の説明】
【００９３】
１０１      描画領域
１０２      ブロック
３００      画像生成装置
３０１      ＣＰＵ（中央演算装置）
３０２、１３０２      グラフィックスエンジン
３０３      ブロックバッファ
３０４      メモリコントローラ
３０５      メモリ
３０６      レンダリングバッファ
３０７      描画情報バッファ
３０８      フレームバッファ
３０９      ディスプレイコントローラ
３１０      ディスプレイ
３１１      ＣＰＵバス
３１２      メモリバス
４０１      ホストインターフェース
４０２      制御部
４０３      頂点処理部
４０４      セットアップ部
４０５      ラスタライズ部
４０６      データ変換部
４０７      メモリバスインターフェース
５０１      ブロック内部に描画されたポリゴン
５０２      ブロックに跨って描画されたポリゴン
６０１      ポリゴンが描画されたブロック
６０２      ブロックに追加描画するポリゴンストリップ
６０３〜６０５      ポリゴンストリップを構成するポリゴン
７０１      条件判断部
８０１      ポリゴンが描画されたブロック
８０２      ブロックに追加描画するポリゴン
９００      ビュースクリーン
９０１      先に描画されたポリゴン
９０２      後から描画されたポリゴン
９１０      ポリゴン
９２０      ポリゴン
【図１】
0004704348.tif 000002
【図２】
0004704348.tif 000003
【図３】
0004704348.tif 000004
【図４】
0004704348.tif 000005
【図５】
0004704348.tif 000006
【図６】
0004704348.tif 000007
【図７】
0004704348.tif 000008
【図８】
0004704348.tif 000009
【図９】
0004704348.tif 000010
【図１０】
0004704348.tif 000011
【図１１】
0004704348.tif 000012