(57)【特許請求の範囲】
【請求項１】
描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、単位領域にあるピクセルを同時に処理する画像処理装置であって、
描画すべきプリミティブに関する情報を受けて、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、当該単位領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成回路と、
上記大領域データ生成回路により生成された大領域データを単位領域と同等の領域データに分割し、分割した領域データを所定のタイミングで順次出力する大領域データ分割回路と、
上記大領域データ分割回路による領域データに基づいて描画処理を行う処理回路と
を有する画像処理装置。
【請求項２】
上記大領域データ生成回路は、プリミティブ情報記憶回路、およびピクセル内外判定回路を含み、
上記プリミティブ情報記憶回路は、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データをピクセル内外判定回路に出力し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータをピクセル内外判定回路に出力し、
上記ピクセル内外判定回路は、プリミティブ情報記憶回路から読み出されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成する
請求項１記載の画像処理装置。
【請求項３】
上記大領域データ生成回路は、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を示す指定データをプリミティブ情報記憶回路に出力する大領域移動回路を有し、
上記ピクセル内外判定回路は、大領域データを生成した旨、またはピクセルがプリミティブの内側に無く大領域データを生成しなかった旨を上記大領域移動回路に報知する
請求項２記載の画像処理装置。
【請求項４】
上記大領域データ分割回路は、生成された大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成回路と、
領域データ生成回路による一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶回路と
を含む請求項１記載の画像処理装置。
【請求項５】
上記大領域データ生成回路は、プリミティブ情報記憶回路、およびピクセル内外判定回路を含み、
上記プリミティブ情報記憶回路は、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データをピクセル内外判定回路に出力し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータをピクセル内外判定回路に出力し、
上記ピクセル内外判定回路は、プリミティブ情報記憶回路から読み出されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成し、
上記大領域データ分割回路は、生成された大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成回路と、
領域データ生成回路による一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶回路と
を含む請求項１記載の画像処理装置。
【請求項６】
上記大領域データ生成回路は、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を示す指定データをプリミティブ情報記憶回路に出力する大領域移動回路を有し、
上記ピクセル内外判定回路は、大領域データを生成した旨、またはピクセルがプリミティブの内側に無く大領域データを生成しなかった旨を上記大領域移動回路に報知する
請求項５記載の画像処理装置。
【請求項７】
描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、単位領域にあるピクセルを同時に処理する画像処理装置であって、
描画すべきプリミティブに関する情報を受けて、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、当該単位領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成回路と、
上記大領域データ生成回路により生成された大領域データを記憶する大領域データ記憶回路と、
上記大領域データ記憶回路に記憶された大領域データを読み出し、読み出した大領域データを単位領域と同等の領域データに分割し、分割した領域データを所定のタイミングで順次出力する大領域データ分割回路と、
上記大領域データ分割回路による領域データに基づいて描画処理を行う処理回路と
を有する画像処理装置。
【請求項８】
上記大領域データ生成回路は、プリミティブ情報記憶回路、およびピクセル内外判定回路を含み、
上記プリミティブ情報記憶回路は、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データをピクセル内外判定回路に出力し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータをピクセル内外判定回路に出力し、
上記ピクセル内外判定回路は、プリミティブ情報記憶回路から読み出されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成し、上記大領域データ記憶回路に出力する
請求項７記載の画像処理装置。
【請求項９】
上記大領域データ生成回路は、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を示す指定データをプリミティブ情報記憶回路に出力する大領域移動回路を有し、
上記ピクセル内外判定回路は、大領域データを生成した旨、またはピクセルがプリミティブの内側に無く大領域データを生成しなかった旨を上記大領域移動回路に報知する
請求項８記載の画像処理装置。
【請求項１０】
上記大領域データ分割回路は、上記大領域データ記憶回路から読み出した大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成回路と、
領域データ生成回路による一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶回路と
を含む請求項７記載の画像処理装置。
【請求項１１】
上記大領域データ生成回路は、プリミティブ情報記憶回路、およびピクセル内外判定回路を含み、
上記プリミティブ情報記憶回路は、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データをピクセル内外判定回路に出力し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータをピクセル内外判定回路に出力し、
上記ピクセル内外判定回路は、プリミティブ情報記憶回路から読み出されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成し、上記大領域データ記憶回路に出力し、
上記大領域データ分割回路は、生成された大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成回路と、
領域データ生成回路による一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶回路と
を含む請求項７記載の画像処理装置。
【請求項１２】
上記大領域データ生成回路は、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を示す指定データをプリミティブ情報記憶回路に出力する大領域移動回路を有し、
上記ピクセル内外判定回路は、大領域データを生成した旨、またはピクセルがプリミティブの内側に無く大領域データを生成しなかった旨を上記大領域移動回路に報知する
請求項１１記載の画像処理装置。
【請求項１３】
描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、単位領域にあるピクセルを同時に処理する画像処理方法であって、
描画すべきプリミティブに関する情報を受けて、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、当該単位領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成ステップと、
上記大領域データ生成ステップにより生成された大領域データを単位領域と同等の領域データに分割し、分割した領域データを所定のタイミングで順次出力する大領域データ分割ステップと、
上記大領域データ分割ステップによる領域データに基づいて描画処理を行う処理ステップと
を有する画像処理方法。
【請求項１４】
上記大領域データ生成ステップでは、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データを供給し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータを供給し、
供給されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成する
請求項１３記載の画像処理方法。
【請求項１５】
上記大領域データ生成ステップでは、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を次に処理すべき大領域として指定する
請求項１４記載の画像処理方法。
【請求項１６】
上記大領域データ分割ステップでは、生成された大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成ステップと、
領域データ生成ステップによる一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶ステップと
を含む請求項１３記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モデルを単位図形の組み合わせによって表現し、スクリーン座標系の描画対象領域内に、ピクセルを発生する画像処理装置およびその方法に関するものである。
【０００２】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス（ＣＧ）」技術が盛んに研究・開発され、さらに実用化されている。
【０００３】
たとえば、３次元グラフィックスは、３次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで３次元的な２次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのＣＡＤ／ＣＡＭ、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【０００４】
３次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【０００５】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する３次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【０００６】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル（ｐｉｘｅｌ）を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるＲＧＢ形式などで表される色（描画色）データ、奥行き方向の距離を表すｚ値などがある。
また、最近の高精細な３次元グラフィックス処理では、遠近感を醸し出すためのｆ（ｆｏｇ：霧）や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャｔ（ｔｅｘｔｕｒｅ）なども、画像パラメータの１つとして含まれている。
【０００７】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）と呼ばれる線形補間手法を用いて実行される。
ＤＤＡプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向（Ｘ方向）の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【０００８】
このとき、１ピクセル単位で走査を行う代わりに、領域単位で走査を行うことで、複数のピクセルを同時に発生するという方法がある。
その一つとして、特開２０００−３３８９５９号公報（特願平１１−１５２７０２号（文献１））に記載されているものがある。
この方法では、短形内の領域にあるピクセルを同時に処理を行い、ピクセルをまとめて短形領域データとして後段の処理へ渡すことで、ピクセルの描画速度を向上させることができる。
【０００９】
【発明が解決しようとする課題】
しかし、上述した領域単位でピクセルを処理する方法では、たとえば領域を短形領域とした場合、処理をした領域に有効なピクセルが一つも含まれないことがあるという不利益がある。
【００１０】
たとえば、図１に示すように、２×２の領域単位でピクセルの中心点が三角形の領域内に含まれるかどうかを処理していく場合、図中に符号１，２，３で示す領域は、スキャンを行ったが、有効なピクセルは存在しない。
この場合は、後段の処理へはデータは渡されず、後段の処理の稼働率は低下してしまう。
【００１１】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、領域データを絶え間なく生成することができ、無効な領域による無駄な処理を省くことができ、画像を効率的に描画することができる画像処理装置およびその方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点に係る画像処理装置は、描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、単位領域にあるピクセルを同時に処理する画像処理装置であって、描画すべきプリミティブに関する情報を受けて、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、当該単位領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成回路と、上記大領域データ生成回路により生成された大領域データを単位領域と同等の領域データに分割し、分割した領域データを所定のタイミングで順次出力する大領域データ分割回路と、上記大領域データ分割回路による領域データに基づいて描画処理を行う処理回路とを有する。
【００１３】
また、本発明の第２の観点に係る画像処理装置は、描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、単位領域にあるピクセルを同時に処理する画像処理装置であって、描画すべきプリミティブに関する情報を受けて、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、当該単位領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成回路と、上記大領域データ生成回路により生成された大領域データを記憶する大領域データ記憶回路と、上記大領域データ記憶回路に記憶された大領域データを読み出し、読み出した大領域データを単位領域と同等の領域データに分割し、分割した領域データを所定のタイミングで順次出力する大領域データ分割回路と、上記大領域データ分割回路による領域データに基づいて描画処理を行う処理回路とを有する。
【００１４】
好適には、上記大領域データ生成回路は、プリミティブ情報記憶回路、およびピクセル内外判定回路を含み、上記プリミティブ情報記憶回路は、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データをピクセル内外判定回路に出力し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータをピクセル内外判定回路に出力し、上記ピクセル内外判定回路は、プリミティブ情報記憶回路から読み出されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成する。
【００１５】
また、好適には、上記大領域データ生成回路は、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を示す指定データをプリミティブ情報記憶回路に出力する大領域移動回路を有し、上記ピクセル内外判定回路は、大領域データを生成した旨、またはピクセルがプリミティブの内側に無く大領域データを生成しなかった旨を上記大領域移動回路に報知する。
【００１６】
また、上記大領域データ分割回路は、生成された大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成回路と、領域データ生成回路による一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶回路とを含む。
【００１７】
本発明の第３の観点に係る画像処理方法は、描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、単位領域にあるピクセルを同時に処理する画像処理方法であって、描画すべきプリミティブに関する情報を受けて、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、当該単位領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成ステップと、上記大領域データ生成ステップにより生成された大領域データを単位領域と同等の領域データに分割し、分割した領域データを所定のタイミングで順次出力する大領域データ分割ステップと、上記大領域データ分割ステップによる領域データに基づいて描画処理を行う処理ステップとを有する。
【００１８】
好適には、上記大領域データ生成ステップでは、プリミティブに関する情報を記憶し、記憶されているデータの現在位置がプリミティブの内側であるか否かの判別を行い、内側にある場合には指定された大領域に含まれる記憶データを供給し、内側に無い場合にはさらにプリミティブに関する情報を受け取って記憶し、指定された大領域のデータを供給し、供給されたプリミティブ情報に基づいて、大領域内の各ピクセルについてプリミティブに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合に大領域データを生成する。
【００１９】
また、好適には、上記大領域データ生成ステップでは、大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を移動し、移動した大領域を次に処理すべき大領域として指定する。
【００２０】
また、上記大領域データ分割ステップでは、生成された大領域データを単位領域と同等の領域データに分割し、分割した大領域データのうち有効なピクセルを含むデータを領域データとして出力する領域データ生成ステップと、領域データ生成ステップによる一つないし複数の領域データを記憶し、記憶した領域データを所定のタイミングで出力する領域データ記憶ステップとを含む。
【００２１】
本発明によれば、たとえば各種データ（ｚ，テクスチャ座標、カラーなど）をラスタライズするにあたっては、大領域データ生成回路において、プリミティブに関する情報を基に、複数のピクセルを含む単位領域において、少なくとも一つのピクセルがプリミティブの内側に位置する場合、単位領域の少なくとも一つ分のデータを増やした大領域データが生成されて、この大領域データが単位領域と同等の通常の領域データに分割されて、後段の処理回路に出力される。
具体的には、大領域データ生成回路においてはプリミティブに関する情報がプリミティブ情報記憶回路に記憶される。
そして、プリミティブ情報記憶回路に記憶されているデータの現在の位置が、プリミティブの内側であるか否かの判別が行われる。
ここで、プリミティブの内側にないと判別される前段の回路からプリミティブに関する情報がセットアップデータが受け取られ、受け取ったプリミティブに関する情報がプリミティブ情報記憶回路に記憶される。
ここで、ピクセル内外判定回路にプリミティブ情報記憶回路の記憶データから大領域移動回路により指定された大領域に相当するデータが読み出される。
ピクセル内外判定回路において、大領域内の各ピクセルについて内外判定、具体的には、少なくとも一つのピクセルがプリミティブの内側に有るか否かの判別が行われる。
ここで、少なくとも一つのピクセルがプリミティブの内側に有ることから、ピクセル内外判定回路において、大領域データが生成されて大領域データ記憶回路に出力される。
そして、ピクセル内外判定回路により、大領域データを生成し出力した旨が大領域移動回路に報知される。
ピクセル内外判定回路による大領域データが生成された旨が報知されると、大領域移動回路では、ピクセルの内外判定を行う大領域が移動され、移動した大領域を示すデータがプリミティブ情報記憶回路に出力される。
【００２２】
さらに、大領域データ生成回路により生成された大領域データが大領域データ記憶回路に記憶されると、この記憶データが大領域データ分割回路に読み出される。
大領域データ分割回路においては、領域データ生成回路により大領域データ記憶回路から読み出した大領域データが単位矩形領域と同等の通常の領域データに分割される。
分割された大領域データのうち有効なピクセルを含むものが領域データとして領域データ記憶回路に出力される。
これにより、領域データ記憶回路の所定のアドレスに、領域データ生成回路による複数の領域データが記憶される。
そして、領域データ記憶回路により記憶した領域データが所定のタイミングで順次に後段の処理回路に出力される。
【００２３】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ(Cathode Ray Tube)などのディスプレイ上に高速に表示する３次元コンピュータグラフィックスシステムについて説明する。
【００２４】
図２は、本発明に係る画像処理装置としての３次元コンピュータグラフィックスシステム１０のシステム構成図である。
【００２５】
３次元コンピュータグラフィックスシステム１０は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックスシステム１０では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００２６】
図２に示すように、３次元コンピュータグラフィックスシステム１０は、メインプロセッサ１１、メインメモリ１２、Ｉ／Ｏインタフェース回路１３、およびレンダリング回路１４が、メインバス１５を介して接続されている。
以下、各構成要素の機能について説明する。
【００２７】
メインプロセッサ１１は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ１２から必要なグラフィックデータを読み出し、このグラフィックデータに対して、座標変換、クリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。
メインプロセッサ１１は、ポリゴンレンダリングデータＳ１１を、メインバス１５を介してレンダリング回路１４に出力する。
【００２８】
Ｉ／Ｏインタフェース回路１３は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス１５を介してレンダリング回路１４に出力する。
【００２９】
レンダリング回路１４に入力されるポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）のデータを含んでいる。ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、実際のテクスチャ座標データ（ｕ，ｖ）が得られる。
レンダリング回路１４のグラフィックスメモリ（具体的には後記するテクスチャバッファ）に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータである。
【００３０】
以下、レンダリング回路１４について詳細に説明する。
【００３１】
図２に示すように、レンダリング回路１４は、線形補間演算のための初期設定演算ブロックとしてのＤＤＡ(Digital Differential Anarizer) セットアップ回路１４１、線形補間処理ブロックとしてのトライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリインタフェース（Ｉ／Ｆ）回路１４４、たとえばＤＲＡＭからなるグラフィックスメモリ１４５、およびＣＲＴコントロール回路１４６を有している。そして、テクスチャエンジン回路１４３、およびメモリインタフェース（Ｉ／Ｆ）回路１４４により処理回路が構成される。
【００３２】
本実施形態におけるレンダリング回路１４は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するグラフィックスメモリ１４５とが混載されている。
【００３３】
以下、レンダリング回路１４の各ブロックの構成および機能について、図面に関連付けて順を追って説明する。
【００３４】
ＤＤＡセットアップ回路１４１は、後段のトライアングルＤＤＡ回路１４２において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路１４１は、算出した変分データを含むプリミティブに関する情報としてのセットアップデータＳ１４１をトライアングルＤＤＡ回路１４２に出力する。
【００３５】
ＤＤＡセットアップ回路１４１の機能について図３に関連付けてさらに説明する。
上述したように、ＤＤＡセットアップ回路１４１の主な処理は、前段のジオメトリ処理を経て物理座標にまで落ちてきた各頂点における各種情報（色、テクスチャ座標）の与えられた三頂点Ｐ０（ｘ０，ｙ０）、Ｐ１（ｘ１，ｙ１）、Ｐ２（ｘ２，ｙ２）により構成される三角形内部で変分を求めて、後段の線形補間処理の基礎デ−タを算出することである。
三角形の描画はひとつひとつの画素の描画に集約されるが、そのために描画開始点における最初の値を求める必要がある。
最初の描画点における各種情報は、頂点からその最初の描画点までの水平距離に水平方向の変分を掛けた値と、垂直距離に垂直方向の変分を掛けた値を足し合わせたものとなる。いったん目的の三角形の内部の一つの整数格子上の値が求まれば、対象の三角形内部のその他の格子点における値は変分の整数倍で求めることが可能となる。
【００３６】
三角形の各頂点データは、たとえばｘ，ｙ座標が１６ビット、ｚ座標が２４ビット、ＲＧＢカラー値が各１２ビット（＝８＋４）、ｓ，ｔ，ｑテクスチャ座標は各３２ビット浮動少数値（ＩＥＥＥフォーマット）等で構成される。
【００３７】
なお、このＤＤＡセットアップ回路１４１は、従来のようにＤＳＰ構造ではなく、ＡＳＩＣ手法により実装している。
具体的には、図４に示すように、多段に配置したレジスタ１４１１−１〜１４１１−４間に複数の演算ユニットを並列に配置した演算ユニット群１４１２−１〜１４１２−３を挿入したフルデータパスロジック、換言すれば、同期パイプライン方式の時間並列構造として構成されている。
【００３８】
トライアングルＤＤＡ回路１４２は、ＤＤＡセットアップ回路１４１から入力した変分データを含むプリミティブに関する情報としてのセットアップデータＳ１４１を基に、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データを算出する。
トライアングルＤＤＡ回路１４２は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データとを、ＤＤＡデータ（補間データ）Ｓ１４２としてテクスチャエンジン回路１４３に出力する。
【００３９】
すなわち、トライアングルＤＤＡ回路１４２は、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間するラスタライズ処理（ラスタライゼーション：Ｒａｓｔｅｒｉｚａｔｉｏｎ）を行う。
具体的には、トライアングルＤＤＡ回路１４２は、各種データ（ｚ，テクスチャ座標、カラーなど）をラスタライズする。
【００４０】
本実施形態に係るトライアングルＤＤＡ回路１４２は、図５（Ａ）に示すように、ＤＤＡセットアップ回路１４１から入力した変分データを含むセットアップデータＳ１４１を基に、複数のピクセル、たとえば２×２の４個のピクセルを含む単位矩形領域ＵＳＲにおいて、少なくとも一つのピクセルがプリミティブ（本実施形態ではトライアングル）の内側に位置する場合、換言すれば、単位矩形領域ＵＳＲにトライアングルの内側に位置する有効な領域データが存在する場合には、単位矩形領域ＵＳＲをｎ（ｎは２以上の整数、本実施形態ではｎ＝２）倍した２×４の８個のピクセルを含む大領域データを生成し（ＳＴ１）、大領域データを記憶し（ＳＴ２）、さらに記憶した大領域データを単位矩形領域と同等の領域データに分割して（ＳＴ３）、ＤＤＡデータＳ１４２としてテクスチャエンジン回路１４３に出力する（ＳＴ４）。
従来は図５（Ｂ）に示すように、単に領域データを生成し、出力する場合には、必ず有効な領域データを出力することができるとは限られなかったのに対し、本実施形態に係るトライアングルＤＤＡ回路１４２においては、大領域データ内には必ず有効な領域を含むことから、領域データを絶え間なく生成することができ、画像の効率的な描画を実現している。
【００４１】
以下、大領域データ生成、分割データ出力機能を有するトライアングルＤＤＡ回路１４２の具体的な構成例について、図面に関連付けて説明する。
【００４２】
図６は、本実施形態に係るトライアングルＤＤＡ回路１４２の要部構成を示すブロック図である。
【００４３】
本トライアングルＤＤＡ回路１４２は、図６に示すように、ＤＤＡセットアップ回路１４１によるセットアップデータＳ１４１を受けて単位矩形領域の少なくとも一つ分のデータを増やした大領域データを生成する大領域データ生成回路１４２１、大領域データ生成回路１４２１で生成された大領域データＳ１４２１を記憶する大領域データ記憶回路１４２２、および大領域データ記憶回路１４２２に記憶された大領域データＳ１４２２を読み出して、通常の領域データの大きさ、すなわち単位矩形領域の大きさに分割してＤＤＡデータＳ１４２としてテクスチャエンジン回路１４３に出力する大領域データ分割回路１４２３を主構成要素として有している。
【００４４】
図７は、本実施形態に係るトライアングルＤＤＡ回路の主要部である大領域データ生成回路１４２１の具体的な構成例を示すブロック図である。
【００４５】
本大領域データ生成回路１４２１は、図７に示すように、プリミティブ情報記憶回路としてのセットアップデータ記憶回路１４２１１、ピクセル内外判定回路１４２１２、および大領域移動回路１４２１３を有している。
【００４６】
セットアップデータ記憶回路１４２１１は、ＤＤＡセットアップ回路１４１によるセットアップデータＳ１４１を記憶し、記憶されているデータの現在位置がトライアングルの内側であるか否かの判別を行い、内側にある場合には記憶データをピクセル内外判定回路１４２１２に出力し、内側に無い場合にはＤＤＡセットアップ回路１４１からセットアップデータＳ１４１を受け取り、このセットアップデータを新たに記憶し、大領域移動回路１４２１３により指定された大領域のデータをピクセル内外判定回路１４２１２に出力する。
【００４７】
ピクセル内外判定回路１４２１２は、セットアップデータ記憶回路１４２１１に記憶されているセットアップデータに基づいて、あらかじめ設定した大きさを有する矩形の大領域、たとえば２×２の単位矩形領域ＵＳＲをｘ方向に２倍した２×４の矩形の大領域内の各ピクセルについてトライアングルに対する内外判定を行い、少なくとも一つのピクセルが内側にある場合には、大領域データＳ１４２１を生成して大領域データ記憶回路１４２２に出力する。
また、ピクセル内外判定回路１４２１２は、大領域データを生成して出力した旨、またはピクセルがトライアングルの内側に無く大領域データを生成しなかった旨を大領域移動回路１４２１３に報知する。
【００４８】
大領域移動回路１４２１３は、ピクセル内外判定回路１４２１２による大領域データを生成あるいは生成しなかった旨を報知されると、ピクセルの内外判定を行う大領域を、たとえば隣接する大領域に移動し、移動した大領域を示すデータＳ１４２１３をセットアップデータ記憶回路１４２１１に出力する。
【００４９】
図８は、図７の構成を有する大領域データ生成回路１４２１の動作を説明するためのフローチャートである。
図８に示すように、大領域データ生成回路１４２１においては、以下のステップＳＴ１１〜ＳＴ１６の処理が行われる。
【００５０】
ステップＳＴ１１において、セットアップデータ記憶回路１４２１１に記憶されているデータの現在の位置が、トライアングルの内側であるか否かの判別が行われる。
ここで、トライアングルの内側にないと判別するとステップＳＴ１２に処理に移行し、トライアングルの内側にあると判別するとステップＳＴ１３の処理に移行する。
【００５１】
ステップＳＴ１２においては、ＤＤＡセットアップ回路１４１からセットアップデータを受け取り、受け取ったセットアップデータをセットアップデータ記憶回路１４２１１に新たに記憶し、ステップＳＴ１３の処理に移行する。
【００５２】
ステップＳＴ１３においては、ピクセル内外判定回路１４２１２にセットアップデータ記憶回路１４２１１の記憶データから大領域移動回路１４２１３により指定された大領域に相当するデータを読み出し、ピクセル内外判定回路１４２１２において、大領域内の各ピクセルについて内外判定を行い、ステップＳＴ１４の処理に移行する。
【００５３】
ステップＳＴ１４においては、少なくとも一つのピクセルがトライアングルの内側に有るか否かの判別を行う。
ここで、内側に有ると判別するとステップＳＴ１５の処理に移行し、内側に無いと判別するとステップＳＴ１６の処理に移行する。
【００５４】
ステップＳＴ１５においては、少なくとも一つのピクセルがトライアングルの内側に有ることから、ピクセル内外判定回路１４２１２において、大領域データＳ１４２１を生成して大領域データ記憶回路１４２２に出力し、ステップＳＴ１６の処理に移行する。
そして、ピクセル内外判定回路１４２１２により、ステップＳＴ１５において大領域データを生成して出力した旨、またはステップＳＴ１４においてピクセルがトライアングルの内側に無く大領域データを生成しなかった旨を大領域移動回路１４２１３に報知する。
【００５５】
ステップＳＴ１６においては、ピクセル内外判定回路１４２１２による大領域データを生成あるいは生成しなかった旨を報知されると、大領域移動回路１４２１３は、ピクセルの内外判定を行う大領域を移動し、移動した大領域を示すデータＳ１４２１３をセットアップデータ記憶回路１４２１１に出力する。
【００５６】
図９は、本実施形態に係るトライアングルＤＤＡ回路の主要部である大領域データ分割回路１４２３の具体的な構成例を示すブロック図である。
【００５７】
本大領域データ分割回路１４２３は、図９に示すように、領域データ生成回路１４２３１、および領域データ記憶回路１４２３２を有している。
【００５８】
領域データ生成回路１４２３１は、大領域データ記憶回路１４２２に記憶された大領域データＳ１４２２を読み出し、この大領域データを単位矩形領域と同等の領域データに分割して（たとえば２つに分割して）、たとえば分割した大領域データのうち有効なピクセルを含むものを領域データとして領域データ記憶回路１４２３２に出力する。
【００５９】
領域データ記憶回路１４２３２は、領域データ生成回路１４２３１による領域データを記憶する。
【００６０】
図１０は、図９の構成を有する大領域データ分割回路１４２３の動作を説明するためのフローチャートである。
図１０に示すように、大領域データ分割回路１４２３においては、以下のステップＳＴ２１〜ＳＴ２４の処理が行われる。
【００６１】
ステップＳＴ２１においては、領域データ生成回路１４２３１により大領域データ記憶回路１４２２から読み出した大領域データＳ１４２２を単位矩形領域と同等の領域データに分割し、ステップＳＴ２２の処理に移行する。
【００６２】
ステップＳＴ２２においては、分割された大領域データのうち有効なピクセルを含むものを領域データとして領域データ記憶回路１４２３２に出力し、ステップＳＴ２３の処理に移行する。
【００６３】
ステップＳＴ２３においては、領域データ記憶回路１４２３２の所定のアドレスに、領域データ生成回路１４２３１による一つないし複数の領域データを記憶し、ステップＳＴ２４の処理に移行する。
【００６４】
ステップＳＴ２４においては、領域データ記憶回路１４２３２により記憶した領域データを所定のタイミングでテクスチャエンジン回路１４３にＤＤＡデータＳ１４２として出力する。
【００６５】
テクスチャエンジン回路１４３は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、グラフィックスメモリ１４５からの（Ｒ，Ｇ，Ｂ）データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路１４３は、たとえば所定の矩形内に位置する複数（たとえば４あるいは８）画素についての処理を同時に並行して行う。
【００６６】
テクスチャエンジン回路１４３は、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１４３には、たとえば図示しない除算回路が並列処理する画素数分だけ（たとえば８個）設けられており、８画素についての除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。また、８画素のうち代表点からの補間演算処理を行うように実装することも可能である。
【００６７】
また、テクスチャエンジン回路１４３は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１４３は、メモリＩ／Ｆ回路１４４を介して、グラフィックスメモリ１４５に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１４４を介して、グラフィックスメモリ１４５に含まれるテクスチャバッファに記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ）データを得る。
テクスチャエンジン回路１４３は、読み出した（Ｒ，Ｇ，Ｂ）データの（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとを、それぞれ掛け合わせるなどして、画素データを生成する。
テクスチャエンジン回路１４３は、この画素データを最終的に画素のカラー値としてメモリＩ／Ｆ回路１４４に出力する。
【００６８】
なお、グラフィックスメモリ１４５に含まれるテクスチャバッファには、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【００６９】
テクスチャエンジン回路１４３は、フルカラー方式の場合には、テクスチャバッファから読み出した（Ｒ，Ｇ，Ｂ）データを直接用いる。
一方、テクスチャエンジン回路１４３は、インデックスカラー方式の場合には、あらかじめ作成しておいたカラーインデックステーブルのデータを、テクスチャカラールックアップテーブル（ＣＬＵＴ）バッファより内蔵するＳＲＡＭ等で構成した一時保管バッファに転送しておいて、このカラールックアップテーブルを用いて、テクスチャバッファから読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
たとえばカラールックアップテーブルがＳＲＡＭで構成された場合、カラーインデックスをＳＲＡＭのアドレスに入力すると、その出力には実際の（Ｒ，Ｇ，Ｂ）データが出てくるといった使い方となる。
【００７０】
ここで、いわゆるテクスチャマッピング処理について、図１１および図１２に関連付けてさらに説明する。
図１１は、テクスチャエンジン回路１４３におけるテクスチャマッピング処理回路の構成例を示すブロック図であり、図１２は、実際のテクスチャマッピング処理をイメージ的に示す図である。
【００７１】
このテクスチャマッピング処理回路は、ＤＤＡ回路１４３１，１４３２、テクスチャ座標算出回路（Ｄｉｖ）１４３３、ＭＩＭＭＡＰレベル算出回路１４３４、フィルタ回路１４３５、第１の合成回路（ＦＵＮＣ）１４３６、および第２の合成回路（ＦＯＧ）１４３７を有している。
【００７２】
このテクスチャマッピング処理回路においては、図１２（Ａ）に示すように、ＤＤＡ回路１４３１，１４３２において、三角形の内部で線形補間されたテクスチャの同時座標ｓ、ｔ、ｑを用いて、デカルト座標でのテクスチャの実際のアドレスに変換する（ｑでの除算）。
さらにＭＩＰＭＡＰ等を行う場合は、ＭＩＭＭＡＰレベル算出回路１４３４においてＭＩＰＭＡＰのレベルの算出を行う。そして、図１２（Ｂ）に示すように、テクスチャ座標算出回路１４３３においてテクスチャ座標の算出を行う。
また、フィルタ回路１４３５において、グラフィックスメモリ１４５に含まれるテクスチャバッファからそれぞれのレベルのテクスチャデータを読み出し、そのまま使うポイントサンプリング（Point Sampling）または、bi-Linea（４近傍）補間、Tri-Linea 補間等を行う。
そこで得られたテクスチャーカラーに対して次の処理を行う。すなわち、第１の合成回路１４３６において、入力された物体カラーとテクスチャーカラーを合成し、さらに第２の合成回路１４３７でそれにフォグカラーを合成して、最終的に描画する画素のカラーを決定する。
【００７３】
メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３から入力した画素データＳ１４５に対応するｚデータと、グラフィックスメモリ１４５に含まれるｚバッファに記憶されているｚデータとの比較を行い、入力した画素データによって描画される画像が、前回、グラフィックスメモリ１４５（ディスプレイバッファ）に書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画像データに対応するｚデータでｚバッファに記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１４４は、（Ｒ，Ｇ，Ｂ）データをグラフィックスメモリ１４５（ディスプレイバッファ）に書き込む。
【００７４】
さらに、メモリＩ／Ｆ回路１４４は、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャデータを格納しているグラフィックメモリ１４５のメモリブロックをそのテクスチャアドレスより算出し、そのメモリブロックにのみ読み出し要求を出すことにより、テクスチャデータを読み出す。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャデータの読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【００７５】
メモリＩ／Ｆ回路１４４は、描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているグラフィックスメモリ１４５のメモリブロックに対して、該当アドレスから画素データをモディファイ書き込みをするために読み出し、モディファイ後同じアドレスへ書き戻す。
隠れ面処理を行なう場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータをモディファイ書き込みするため読み出し、必要ならばモディファイ後同じアドレスへ書き戻す。
【００７６】
また、メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３からグラフィックスメモリ１４５に対する、生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を受けた場合には、グラフィックスメモリ１４５に記憶された（Ｒ，Ｇ，Ｂ）データを読み出す。
また、メモリＩ／Ｆ回路１４４は、ＣＲＴコントロール回路１４６から表示データを読み出す要求を受けた場合には、この要求に応じて、グラフィックメモリ１４５（ディスプレイバッファ）から一定の固まり、たとえば８画素あるいは１６画素単位で表示データを読み出す。
【００７７】
メモリＩ／Ｆ回路１４４は、グラフィックスメモリ１４５へのアクセス（書き込みまたは読み出し）を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスＡＤＲＷと書き込みデータＤＴＷが書き込み系回路で処理されてグラフィックスメモリ１４５に書き込み、読み出しの場合には読み出し系回路で処理されてグラフィックスメモリ１４５から読み出す。
そして、メモリＩ／Ｆ回路１４４は、所定のインターリーブ方式のアドレッシングに基づいてグラフィックスメモリ１４５へのアクセスを、たとえば１６画素単位で行う。
【００７８】
このようなメモリとのデータのやりとりにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルＤＤＡ部分とテクスチャエンジン部分を並列実効形式で、同じ回路を設ける（空間並列）か、または、パイプラインを細かく挿入する（時間並列）ことで、複数画素の同時算出を行っている。
グラフィックスメモリ１４５のメモリブロックは表示領域において隣接した部分は、後述するように異なるメモリブロックとなるように配置してあるので、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのメモリブロックの動作確率は非常に高くなっている。
【００７９】
グラフィックスメモリ１４５は、テクスチャバッファ、ディスプレイバッファ、ｚバッファおよびテクスチャＣＬＵＴ(Color Look Up Table) バッファとして機能する。
また、グラフィックスメモリ１４５は、同一機能を有する複数、たとえば４個のモジュールに分割されている。
【００８０】
また、グラフィックスメモリ１４５には、より多くのテクスチャデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値が、テクスチャＣＬＵＴバッファに格納されている。
インデックスおよびカラールックアップテーブル値は、上述したように、テクスチャ処理に使われる。
すなわち、通常はＲ，Ｇ，Ｂそれぞれ８ビットの合計２４ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいたたとえば２５６色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで２５６色であればそれぞれのテクスチャ要素は８ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデータとすることが可能となる。
これにより、テクスチャデータの圧縮が可能となり、内蔵メモリの効率良い利用が可能となる。
【００８１】
さらに、グラフィックスメモリ１４５には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、たとえばメモリブロックの所定の位置、たとえば先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。
図面に関連付けて概念的に説明すると、図１３（Ａ）〜（Ｃ）に示すように、いわゆるベースポインタ（ＢＰ）で示された位置から図中ＦＢで示す領域に、たとえば２４ビット幅で表示データと奥行きデータが格納され、残りの空いた領域である８ビット幅の領域に図中ＴＢで示すようにテクスチャデータが格納される。これらは表示データとテクスチャデータのユニファイドメモリ（Unified Memory）化ということになる。
これにより、テクスチャデータを効率よく格納できることになる。
【００８２】
以上のように、ＤＤＡセットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリＩ／Ｆ回路１４４等における所定処理を経て、最終的なメモリアクセスがピクセル(Pixel；Picture Cell Element) という描画画素単位になる。
【００８３】
ＣＲＴコントロール回路１４６は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示する表示アドレスを発生し、グラフィックスメモリ１４５に含まれるディスプレイバッファから表示データを読み出す要求をメモリＩ／Ｆ回路１４４に出力する。
この要求に応じて、メモリＩ／Ｆ回路１４４は、グラフィックスメモリ１４５（ディスプレイバッファ）から一定の固まりで表示データを読み出す。
ＣＲＴコントロール回路１４６は、グラフィックスメモリ１４５から読み出した表示データを記憶するたとえばＦＩＦＯ回路を内蔵し、一定の時間間隔で、ＲＧＢのインデックス値を発生する。
ＣＲＴコントロール回路１４６は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、発生したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、図示しないＤ／Ａコンバータ(Digital/Analog Converter)に転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。
ＣＲＴコントロール回路１４６は、この生成されたＲ，Ｇ，Ｂデータを図示しないＣＲＴに出力する。
【００８４】
次に、上記構成による動作を説明する。
なお、この説明において、トライアングルＤＤＤＡ回路１４２の動作については、図１４に関連付けて説明する。
図１４において、実線で区分けした図中上側が大領域データ生成回路１４２１の処理を示し、下側が大領域データ分割回路１４２３の処理を示している。
【００８５】
３次元コンピュータグラフィックスシステム１０においては、グラフィックス描画等のデータは、メインプロセッサ１１のメインメモリ１２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路１３からメインバス１５を介してレンダリング回路１４に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各３頂点の頂点座標ｘ，ｙ，ｚ、輝度値Ｒ，Ｇ，Ｂ、描画しようとしている画素と対応するテクスチャ座標ｓ，ｔ，ｑとからなるポリゴンレンダリングデータＳ１１となる。
このポリゴンレンダリングデータＳ１１は、レンダリング回路１４のＤＤＡセットアップ回路１４１に順々に転送される。
【００８６】
ＤＤＡセットアップ回路１４１においては、ポリゴンレンダリングデータＳ１１に基づいて、三角形の辺と水平方向の差分などを示す変分データが生成される。
具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データを含むセットアップデータＳ１４１としてトライアングルＤＤＡ回路１４２に出力される。
【００８７】
トライアングルＤＤＡ回路１４２においては、変分データを含むセットアップデータＳ１４１を用いて、、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１４２として、トライアングルＤＤＡ回路１４２からテクスチャエンジン回路１４３に出力される。
すなわち、トライアングルＤＤＡ回路１４２においては、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータ（ｚ，テクスチャ座標、カラーなど）を補間するラスタライズ処理が行われる。
そして、トライアングルＤＤＡ回路１４２において、各種データ（ｚ，テクスチャ座標、カラーなど）をラスタライズするにあたっては、セットアップデータＳ１４１を基に、複数のピクセル、たとえば２×２の４個のピクセルを含む単位矩形領域ＵＳＲにおいて、少なくとも一つのピクセルがトライアングルの内側に位置する場合、単位矩形領域ＵＳＲをｘ方向にたとえば２倍した２×４の８個のピクセルを含む大領域データが生成されて記憶され、さらに記憶した大領域データが単位矩形領域と同等の通常の領域データに分割されて、ＤＤＡデータＳ１４２としてテクスチャエンジン回路１４３に出力される。
【００８８】
具体的には、まず、図１４（Ａ）に示す処理が行われる。
すなわち、大領域データ生成回路１４２１においては、セットアップデータＳ１４１がセットアップデータ記憶回路１４２１１に記憶される。
そして、セットアップデータ記憶回路１４２１１に記憶されているデータの現在の位置が、トライアングルの内側であるか否かの判別が行われる。
ここで、トライアングルの内側にないと判別されるＤＤＡセットアップ回路１４１からセットアップデータが受け取られ、受け取ったセットアップデータがセットアップデータ記憶回路１４２１１に新たに記憶される。
ここで、ピクセル内外判定回路１４２１２にセットアップデータ記憶回路１４２１１の記憶データから大領域移動回路１４２１３により指定された大領域に相当するデータが読み出される。
ピクセル内外判定回路１４２１２において、大領域内の各ピクセルについて内外判定、具体的には、少なくとも一つのピクセルがトライアングルの内側に有るか否かの判別が行われる。
図１４（Ａ）の場合は、少なくとも一つのピクセルがトライアングルの内側に有ることから、ピクセル内外判定回路１４２１２において、大領域データＳ１４２１が生成されて大領域データ記憶回路１４２２に出力される。
そして、ピクセル内外判定回路１４２１２により、大領域データを生成し出力した旨が大領域移動回路１４２１３に報知される。
ピクセル内外判定回路１４２１２による大領域データが生成された旨が報知されると、大領域移動回路１４２１３では、ピクセルの内外判定を行う大領域が移動され、移動した大領域を示すデータＳ１４２１３がセットアップデータ記憶回路１４２１１に出力される。これにより、大領域データ生成回路１４２１では、図１４（Ｂ）の処理に移行する。
【００８９】
図１４（Ａ）の処理において、大領域データ生成回路１４２１により生成された大領域データが大領域データ記憶回路１４２２に記憶されると、この記憶データが大領域データ分割回路１４２３に読み出される。
大領域データ分割回路１４２３においては、領域データ生成回路１４２３１により大領域データ記憶回路１４２２から読み出した大領域データＳ１４２２が単位矩形領域と同等の通常領域データＤＵＳＲ１およびＤＵＳＲ２に分割される。
分割された大領域データのうち有効なピクセルを含むものが領域データＤＵＳＲ１，ＤＵＳＲ２として領域データ記憶回路１４２３２に出力される。
これにより、領域データ記憶回路１４２３２の所定のアドレスに、領域データ生成回路１４２３１による２つの領域データＤＵＳＲ１，ＤＵＳＲ２が記憶される。
そして、領域データ記憶回路１４２３２により記憶した領域データＤＵＳＲ１が所定のタイミングｔ０でテクスチャエンジン回路１４３にＤＤＡデータＳ１４２として出力される。
【００９０】
次に、図１４（Ｂ）の処理では、ピクセル内外判定回路１４２１２にセットアップデータ記憶回路１４２１１の記憶データから大領域移動回路１４２１３により指定された大領域に相当するデータが読み出される。
ピクセル内外判定回路１４２１２において、大領域内の各ピクセルについて内外判定、具体的には、少なくとも一つのピクセルがトライアングルの内側に有るか否かの判別が行われる。
図１４（Ｂ）の場合は、少なくとも一つのピクセルがトライアングルの内側に無いことから、ピクセル内外判定回路１４２１２において、大領域データは生成されず、大領域データ記憶回路１４２２への出力は行われない。
そして、ピクセル内外判定回路１４２１２により、ピクセルがトライアングルの内側に無く大領域データを生成しなかった旨が大領域移動回路１４２１３に報知される。
ピクセル内外判定回路１４２１２による大領域データが生成されなかった旨が報知されると、大領域移動回路１４２１３では、ピクセルの内外判定を行う大領域が移動され、移動した大領域を示すデータＳ１４２１３がセットアップデータ記憶回路１４２１１に出力される。これにより、大領域データ生成回路１４２１では、図１４（Ｃ）の処理に移行する。
【００９１】
図１４（Ｂ）の処理において、大領域データ生成回路１４２１により大領域データは生成されなかったことから、大領域データ記憶回路１４２２に次の大領域データは記憶されてない。
したがって、大領域データ分割回路１４２３においては、分割処理は行われないが、このとき、図１４（Ａ）の処理においては得られた通常の領域データＤＵＤＵＳＲ２が、出力されずに領域データ記憶回路１４２３２に記憶されている。そして、領域データ記憶回路１４２３２により記憶されている領域データＤＵＳＲ２が所定のタイミングｔ１でテクスチャエンジン回路１４３にＤＤＡデータＳ１４２として出力される。
【００９２】
次に、図１４（Ｃ）の処理では、ピクセル内外判定回路１４２１２にセットアップデータ記憶回路１４２１１の記憶データから大領域移動回路１４２１３により指定された大領域に相当するデータが読み出される。
ピクセル内外判定回路１４２１２において、大領域内の各ピクセルについて内外判定、具体的には、少なくとも一つのピクセルがトライアングルの内側に有るか否かの判別が行われる。
図１４（Ｃ）の場合は、少なくとも一つのピクセルがトライアングルの内側に有ることから、ピクセル内外判定回路１４２１２において、大領域データＳ１４２１が生成されて大領域データ記憶回路１４２２に出力される。
そして、ピクセル内外判定回路１４２１２により、大領域データを生成して出力した旨が大領域移動回路１４２１３に報知される。
ピクセル内外判定回路１４２１２による大領域データが生成された旨が報知されると、大領域移動回路１４２１３では、ピクセルの内外判定を行う大領域が移動され、移動した大領域を示すデータＳ１４２１３がセットアップデータ記憶回路１４２１１に出力される。これにより、大領域データ生成回路１４２１では、大領域データの生成処理が終了する。
【００９３】
図１４（Ｃ）の処理において、大領域データ生成回路１４２１により生成された大領域データが大領域データ記憶回路１４２２に記憶されると、この記憶データが大領域データ分割回路１４２３に読み出される。
大領域データ分割回路１４２３においては、領域データ生成回路１４２３１により大領域データ記憶回路１４２２から読み出した大領域データＳ１４２２が単位矩形領域と同等の通常の領域データＤＵＳＲ３およびＤＵＳＲ４に分割される。
分割された大領域データのうち有効なピクセルを含むものが領域データＤＵＳＲ３，ＤＵＳＲ４として領域データ記憶回路１４２３２に出力される。
これにより、領域データ記憶回路１４２３２の所定のアドレスに、領域データ生成回路１４２３１による２つの領域データＤＵＳＲ３，ＤＵＳＲ４が記憶される。
そして、領域データ記憶回路１４２３２により記憶した領域データＤＵＳＲ３が所定のタイミングｔ２でテクスチャエンジン回路１４３にＤＤＡデータＳ１４２として出力される。
さらに、領域データ記憶回路１４２３２により記憶した領域データＤＵＳＲ４が次にのタイミングｔ３でテクスチャエンジン回路１４３にＤＤＡデータＳ１４２として出力される。
【００９４】
テクスチャエンジン回路１４３においては、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とが行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
【００９５】
次に、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に対して生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求が出力され、メモリＩ／Ｆ回路１４４を介して、グラフィックスメモリ１４５に記憶された（Ｒ，Ｇ，Ｂ）データが読み出される。
次に、テクスチャエンジン回路１４３において、読み出した（Ｒ，Ｇ，Ｂ）データの（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとが掛け合わされ、画素データとして生成される。
この画素データは、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に出力される。
【００９６】
そして、メモリＩ／Ｆ回路１４４において、テクスチャエンジン回路１４３から入力した画素データに対応するｚデータと、ｚバッファに記憶されているｚデータとの比較が行われ、入力した画素データＳ１４５によって描画される画像が、前回、ディスプレイバッファに書き込まれた画像より、手前（視点側）に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データに対応するｚデータでｚバッファに記憶されたｚデータが更新される。
【００９７】
次に、メモリＩ／Ｆ回路１４４において、（Ｒ，Ｇ，Ｂ）データがグラフィックスメモリ１４５のディスプレイバッファに書き込まれる。
これら書き込む（更新も含む）べきデータは、書き込み系回路を介し所定のメモリに対して並列的に書き込まれる。
【００９８】
メモリＩ／Ｆ回路１４４においては、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャを格納しているグラフィックスメモリ１４５のメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【００９９】
描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているメモリブロックに対して、該当アドレスから画素データがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【０１００】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【０１０１】
そして、図示しないＣＲＴに画像を表示する場合には、ＣＲＴコントロール回路１４６において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリＩ／Ｆ回路１４４へ表示データ転送の要求が出される。
メモリＩ／Ｆ回路１４４では、その要求に従い、一定のまとまった固まりで、表示データがＣＲＴコントロール回路１４６に転送される。
ＣＲＴコントロール回路１４６では、図示しないディスプレイ用ＦＩＦＯ等にその表示データが貯えられ、一定の間隔でＲＧＢのインデックス値が生成される。
ＣＲＴコントロール回路１４６においては、内部にＲＧＢのインデックスに対するＲＧＢ値が記憶されていて、インデックス値に対するＲＧＢ値が図示しないＤ／Ａコンバータへ転送される。
そして、Ｄ／Ａコンバータでアナログ信号に変換されたＲＧＢ信号がＣＲＴへ転送される。
【０１０２】
以上説明したように、本実施形態によれば、ＤＤＡセットアップ回路１４１から入力した変分データを含むセットアップデータＳ１４１を基に、複数のピクセルを含む単位矩形領域ＵＳＲにおいて、少なくとも一つのピクセルがトライアングルの内側に位置する場合、単位矩形領域ＵＳＲの少なくとも一つ分のデータを増やした大領域データを生成して、大領域データを記憶し、さらに記憶した大領域データを単位矩形領域と同等の通常の領域データに分割して、ＤＤＡデータＳ４２としてテクスチャエンジン回路１４３に出力するトライアングルＤＤＡ回路１４２を設けたので、単位図形を連続して描画する場合に、分割された領域データを絶え間なく生成でき、無効な領域による無駄な処理を省くことができ、領域データを絶え間なく生成することができる。その結果、画像を効率的に描画することができる利点がある。
【０１０３】
なお、図２に示す３次元コンピュータグラフィックスシステム１０では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ１１で行う場合を例示したが、レンダリング回路１４で行う構成にしてもよい。
【０１０４】
【発明の効果】
以上説明したように、本発明によれば、連続する単位図形を描画する場合、同時に処理を行う領域データを生成する場合に、領域データを絶え間なく生成することができる。
その結果、画像を効率的に描画することができる。
【図面の簡単な説明】
【図１】従来の課題を説明するための図である。
【図２】本発明に係る画像処理装置としての３次元コンピュータグラフィックスシステムのシステム構成図である。
【図３】本実施形態に係るＤＤＡセットアップ回路の機能を説明するための図である。
【図４】本実施形態に係るＤＤＡセットアップ回路の構成例を示す図である。
【図５】本実施形態に係るトライアングルＤＤＡ回路の機能を説明するための図である。
【図６】本実施形態に係るトライアングルＤＤＡ回路の要部構成を示すブロック図である。
【図７】本実施形態に係るトライアングルＤＤＡ回路の主要部である大領域データ生成回路の具体的な構成例を示すブロック図である。
【図８】図７の構成を有する大領域データ生成回路の動作を説明するためのフローチャートである。
【図９】本実施形態に係るトライアングルＤＤＡ回路の主要部である大領域データ分割回路の具体的な構成例を示すブロック図である。
【図１０】図９の構成を有する大領域データ分割回路の動作を説明するためのフローチャートである。
【図１１】本実施形態に係るテクスチャエンジン回路におけるテクスチャマッピング処理回路の構成例を示すブロック図である。
【図１２】本実施形態に係るテクスチャエンジン回路における実際のテクスチャマッピング処理をイメージ的に示す図である。
【図１３】本実施形態に係るグラフィックスメモリへの表示データと奥行きデータおよびテクスチャデータの格納方法を概念的に説明するための図である。
【図１４】図２の画像処理装置のトライアングルＤＤＡ回路の動作を説明するための図である。
【符号の説明】
１０…画像処理装置、１１…メインプロセッサ、１２…メインメモリ、１３…Ｉ／Ｏインタフェース回路、１４…レンダリング回路、１４１…ＤＤＡセットアップ回路、１４２…トライアングルＤＤＡ回路、１４２１…大領域データ生成回路、１４２１１…セットアップデータ記憶回路、１４２１２…ピクセル内外判定回路、１４２１３…大領域移動回路、１４２２…大領域データ記憶回路、１４２３…大領域データ分割回路、１４２３１…領域データ生成回路、１４２３２…領域データ記憶回路、１４３…テクスチャエンジン回路、１４４…メモリインタフェース（Ｉ／Ｆ）回路、１４５…グラフィックスメモリ、１４６…ＣＲＴコントロール回路。
【図１】
0003747859.tif 000002
【図２】
0003747859.tif 000003
【図３】
0003747859.tif 000004
【図４】
0003747859.tif 000005
【図５】
0003747859.tif 000006
【図６】
0003747859.tif 000007
【図７】
0003747859.tif 000008
【図８】
0003747859.tif 000009
【図９】
0003747859.tif 000010
【図１０】
0003747859.tif 000011
【図１１】
0003747859.tif 000012
【図１２】
0003747859.tif 000013
【図１３】
0003747859.tif 000014
【図１４】
0003747859.tif 000015