明細書 描画装 び描画方法 技術分野
本発明は、フレームバッファを使用せずに品質の高レ、三次元イメージの表示を可能とする 描画装 びその関連技術に関する。 背景技術
従来では、三次元イメージを表^ rる 、 1フレーム以上のイメージデータを描画するこ とが可能なフレームバッファやビデオメモリを、画像生成装置に実装するのが一般的であつ た (特開 6— 348861号公報、特開平 7— 282270号公報)。
しかしながら、画像生成装置にフレームバッファ等を実装しょうとするど、少なくとも一つの イメージ全体を格納する容量のメモリが必要不可欠となり、コストが高くなる。高品質の三次 元イメージを表示するために、ダブルバッファ方式を採用すると、少なくとも二つのフレーム バッファを! ^内可能な容量のメモリが必要となるため、更にコストが高くなる。
一方、二次^メージを表示する^ 1ま、必ずしもフレームバッファは必要なぐラインパッ ファでも十分である。しかし、ラインバッファを用いて、三次元イメージを表示しょうとすると、 従来の画 装置の描画能力では、描画可能なポリゴンの ¾ ^限られてくる等、見る者が 満足するような品質の高い表示を行うことが困 i ある。
そこで、本発明は、少ない記'隨量の、描画のためのバッファを用いながらも、品質の高い 三次元イメージの表示を可能とする描画装置及びその関連技術を撤することを目的とす る。
また、本発明の他の目的は、少ない記憶容量の、描画のためのバッファを用い がらも、 半透明合成を可能として、より品質の高レ、三次元イメージの表示を可能とする描南装«び
その関連技 を»することである。
さらに、本発明の他の目的は、インタレーススキャンによる表示を行う においても、少 ない記' »量の、描画のためのバッファを用いながらも、品質の高い三次元イメージの表示 を可能とする描画装»びその関連技術を することである。 発明の開示
本発明の第 1の観点によれば、描画装置は、それぞれが複数のピクセルから構成される平 行な複数のラインを、そのラインに垂直な方向に並べて構成されるスクリーンに、多角形状 のグラフィック要素 むグラフィック要素ごとの表示情報に基づ 、て、嫌己グラフィック要素 の組み合わせからなるスクリーンイメージを表示するための描画を行う描画装置であって、 IflB表示情報に含まれる、 tiff己グラフィック要素の嫌己ラインに垂直な方向の位置を示す座 標が、昇順あるいは降順のいずれかで並ぶように、謝己グラフィック要素ごとの lift己表示情 報を並べ替えるソート手段と、 Itrt己ソート手段が並べ替えた ttrlB表示情報を順番に読み出し て、読み出した肅己表示情報に基づいて、対応する膽己グラフィック要素の描画を菊 る 描画手段と、を備える。
この構成によれば、グラフィック要素のラインに垂直な方向の位置を示す座標が、昇順ある V、は降順の 、ずれかで並ぶように、グラフィック要素ごとの表示情報を並べ替えて!/、る (ソー ト)。従って、ソート後の表示情報を順番に読み出して、描画処理を行うだけでよいため、描 画のたびに、全ての表示情報の中から、そのとき描画すべき表示情報を検索する処理が不 要になり、処理を高速化できる。以上の結果、 1フレーム以上のイメージを樹内するための大 容量のバッファ (フレームバッファ等)を実装する必要は必ずしもなぐより容量の小さ ヽパッ ファ (ラインバッファや、 1ラインに満たな 、ピクセルを描画するピクセルバッファ等)を実装し た場合であっても、多くのグラフィック要素を組み合わせたスクリーンイメージの表示が可能 になる。特に、二次元イメージ表示のための描画処理と比較して、高い処理能力が必要な三 次元イメージ表示のための描画処理にも好適である。
ここで、昇順とは、小さいほうから大きいほうへの順に ベることを意味し、降順とは、大き
V、ほうから小さ 、ほうへの順に並べることを意味する。
上記描画装置において、 it己描画手段は、 ΙίίΙΒ^クリーンを構成する tiff己ピクセルのうち 第 1の所; »分のピクセル情報を 内可能であって、鶴内した廳己ピクセル情報を鎌 3^ク リーンイメージを表示するために出力し、出力した嫌己ピクセル情報が 内されて!/ヽた位置 に、前記スクリーンイメージを表示するための新たなピクセル情報を格納する第 1バッファ (例えば、図 1のラインパッファ LB1, LB2に相当)と、第 2の所定数分の前記グラフィック要 素の嫌己表示情報を搬内可能であって、膽己表示情報に基づく WISピクセル情報が肅己第 1パッファに櫞内された後に、当該表示' [«に基づく他のピクセル情報を嫌已第 1バッファに 搬内するために、当該表示情報が再利用可能なときに、再利用のために送られてくる順番で、 当該表示情報を鶴内し、 tiff己第 1バッファが前 »fたなピクセル情報を 内する期間が到来 したときに、辦内した順番で嫌己表示情報を出力する第 2バッファ (例えば、図 1のリサイクル ノッファ 110に相当)と、灘己ソート手段が並べ替えた順番で読み出された嫌己表示情報の うち、鍵己第 1バッファに編内すべき期間が到来した嫌 ef?たなピクセル情報を生成するた めの嫌己表示情報に含まれる表示滅情報と、辦己第 2バッファから出力される觸己表示情 報に含まれる表示 «情報と、を比較し、予め定められた纏 従って、いずれかの鍵己表 示情報 ¾1択して先に出力する比較手段と、嫌己比較手段から出力された fit己表示情報に 基づレ、て膽己ピクセル情報を生成し、嫌己生成したピクセル情報を鍵己第 1バッファに書き 込む書き込み手段と、 ¾ra p0
この構成によれば、第 1バッファへの新たなピクセル情報の書き込み (新たなピクセルの描 爾のために、表示情報が再利用可能な^ ^は、その表示情報は、第 2バッファに觸内され る。このため、同じ表示情報を使用する新たなピクセルの描画のたびに、ソート後の全ての 表示情報が編内され モリから、その同じ表示情報を繰り返し読み出す処理が不要になつ て、より処理の高速化を図ることができる。
また、比較手段を設けて、ソート手段が並べ替えた順番で新たに読み出されだ表示',と、
再利用のための第 2バッファに觸内された表示情報と、の描画順序 (つまり、これら表示情報 に基づくヒ。クセルの描画順序)を判定している。このため、判定終了後に、再利用可能な表 示情報を第 2バッファに送って順番に棚するだけで、第 2バッファには、再利用可能な表 示情報について、適切な描卿酵で表示'隨が辦内される。このように、第 2バッファには、 再利用可能な表示'隨について適切な描画順序で ¾内されているところ、これらは、ソート 手段が並べ替えた順番で新たに読み出された表示情報との間で、さらに描画順序が判定さ れるので、常に適切な描画順序での描画が可能となる。
上記描画装置において、複数の fit己グラフィック要素を表示する ^であって、その複数 のグラフィック要素の前 標が同じ^ \嫌己ソート手段は、その複数のグラフィック要素 に対しては、賺己表示情報に含まれる表示深度情報が示す表示深度の昇順ある ヽは降順 のいずれかで肅己表示情報を並べる。
この構成によれば、複数のグラフィック要素を表示する であって、その複数のグラフィ ック要素の座標が同 D¾^、スクリーンを構成する各ラインにおいて、表示^ gの昇順あるい は降順のいずれかで表示情報が並べられる。従って、各ラインにおいて、表示情報に基づく グラフィック要素は、表示深度の大きレ、もの順ある!/、は小さ 、もの順のレ、ずれかで描画され る。表示深度の昇順で表示情報を並べる は、グラフィック要素は、表示深度が小さいも の順で描画されるので、仮に表示 ί«が大き ヽグラフィック要素の描画処¾ ^間に合わなか つた ¾^でも、表示後の見た目の印象を良くすることができる。一方、表示深度の降順で表 示情報を並べる^は、グラフィック要素は、表示 «が大きレ、もの順で描画されるので、半 透明合成 ¾1切に行うことができる。何故ならば、半透明のグラフィック要素の描画色は、当 該グラフィック要素の奥にあるグラフィック要素の描画色に依存するため、グラフィック要素を 奥から順に描画する必要がある。
この描画装置において、複数の tiff己グラフィック要素が、辦 クリーンの先頭ラインに表 示すべきピクセル ¾ ^む齢、肅 3ソート手段は、その複数のグラフィック要素に対しては、 tiff己座標の大小に関係な《 tfff己表示深度の昇順あるいは降順のいずれかで Hit己表示情
報を並べる。
この構成によれば、複数のグラフィック要素が、スクリーンの先頭ラインに表示すべきピクセ ル む^ \それらの座標に関係なぐつまり、それらの座標を同一とみなして、表示渡 の昇順あるいは降順のいずれかで表示情報が並べられる。 て、先頭ラインにおいて、表 示情報に基づくグラフィック要素は、表示深度の大き!/、もの順ある 、は小さレ、もの順の 、ず れかで描画される。表示情報を表示座標順 (グラフィック要素の、ラインに垂直な方向の位置 を示す座標順)でソートし、表示座標の同じものについては表示深度順でソートする 、 先頭ラインの描画にお!/、ては、必ずしも表示深度の昇順または降順での描画が保証されな V、が、この構成によれば、先頭ラインから表示深度順での描画を行うことが可能となる。表示 深度の昇順で並べる効果及び降順で並べる効果は上記と同様である。
上記描画装置において、 tirts —ト手段は、所定数分の肅己グラフィック要素の嫌己表示 情報の並ぺ替えが完了するたぴに、その旨を嫌己描画手段に通知し、搬己描画手段は、前 記ソート手段からの前記通知を受けて、並べ替えが完了した前記表示情報を順次読み出 す。
この構成によれば、表示情報のソートが確定するたぴに、その都度、その旨の通知がなさ れるので、描画手段は、全表示情報のソートの完了を待つことなぐ逐次、表示情報を読み 込むことができる。
この描画装置において、辦己所 分の膽己グラフィック要素の嫌己表示情報は、 1つ分 の tiff己グラフィック要素の ΙίΐΙ己表示情報である。
この構成によれば、 1つ分のグラフィック要素のソートが確定するたびに、その旨の通知が なされるので、描画手段は、ソートが確定したグラフィック要素の表示情報をソート完了直後 から読み込むことができる。
上記描画装置において、嫌己描画手段は、第 1バッファ及ぴ第 2バッファに加えて、さらに、 第 3バッファ (例えば、図 1のプリフェッチバッファ 108に相当)を含み、この第 3バッファは、 第 3の所定数分の前記グラフィック要素の前記表示情報を觸内可能であって、前記ソート手
段が並べ替えた順番で読み出される MI己表示情報を、読み出された順番で搬内し、 m 1バッフナに鶴内すべき期間が到来した辦3¾?たなピクセル情報を生成するための tin己表 示情報を鶴内された順番で出力し、廳己比較手段は、鍵己第 3バッファから出力される肅己 表示情報に含まれる表示深度情報と、再利用のために送られてきた順番で m内された 己 第 2バッファから出力される嫌己表示'隨に含まれる表示深度情報と、を比較し、歸己予め 定められた纖 IJに従って、 V、ずれかの觸己表示情報 ¾1択して先に出力する。
この構成によれば、第 3バッファ力 S設けられ、この第 3バッファは、ソート手段がソートした順 番での表示情報の入力タイミングと比較手段への表示' ft¾の出力タイミングとの緩衝機構で ある。これにより、ソート手段がソートした順番での表示情報の入力の、描画手段にとっての 待ち時間を削^ eきる。
上記描画装置において、嫌己予め定められた纖 ijは、嫌己比 の結果、大きい嫌己表示 鍵を示す嫌己表示深度情報 む嫌己表示情報 ¾1択することである。
この構成によれば、グラフィック要素は、表示深度の大きいもの順で描画される。その結果, 半透明合成 ¾ 切に行うことができる。
上記描画装置にぉ ヽて、鍵己ソート手段が並べ替えを節する際の グラフィック要素 の tfrtfii 標は、 tin己グラフィック要素の頂点の座標であって、最も大きい座標あるいは最も 小さい座標のいずれかである。
この構成によれば、全てのグラフィック要素に対して同じ条件でソートができるので、正しい 描卿醉で描画を行うことができる。
上記描画装置にぉレ、て、爾己第 1パッファは、少なくとも 1つの嫌己ラインを構成する複数 の ttff己ピクセル情報を觸内するバッファである。
この構成によれば、フレームバッファを棚する:^よりもコストを低く抑えることができる。 また、 1ラインに満たな Vヽピクセルを格納するピクセルバッファを使用する齢よりも簡素な 回路構成で (簡 よ制御で)描画を難できる。
上記描画装置にぉレ、て、嫌己ソート手段は、肅己表示情報の並べ替えを、ヒープソートに
より剪 る。
この構成によれば、表示情報のソートが 1つずつ確定されるので、ソートの確定のたびに、 その旨を «1する機構を容易に »できる。また、全表示情報のソートに必要な時間のパラ ツキを少なくできる。
上記描画装置にお!/ヽて、膽己ソート手段は、 tinsグラフィック要素としてのポリゴンを表示 するための l己表示情報と、 tiff己グラフィック要素としてのスプライトを表示するための tiff己 表示情報と、で独立して肅碰ぺ替えを節する。
この構成によれば、ポリゴンのための表示情報と、スプライトのための表示情報と、の形式 及ぴサイズが異なって!/ヽる場合でも容易にソートが可能であり、表示情報を m内するための メモリ領域の使用効 高まる。
この描画装置において、肅雕画手段は、嫌己ソート手段が並べ替えた ItlfBポリゴンのた めの Ml己表示情報と、前記ソート手段が並べ替えた前 IB ^ブライトのための ΜΙΒ表示情報と、 を肅己ソート手段による並べ替えの纖 IJに準じてマージソートするマージソート手段をさらに 含む。
この構成によれば、ポリゴン及びスプライトが独立してソートされた^であっても、描画処 理の前にポリゴンのための表示情報群とスプライトのための表示情報群がマージソートされ るため、適切な描画処 可能となる。
本発明の第 2の観点〖こよると、描画装置は、それぞれが複数のピクセルから構成される平 行な複数のラインを、そのラインに垂直な方向に並べて構成されるスクリーンに、多角形状 のグラフ ック要素 ¾r ^むグラフィック要素ごとの表示情報に基づレ、て、インタレーススキャン により it己グラフィック要素の組み合わせからなるスクリーンイメージを表示するための描画 を行う描画装置であって、偶数フィールドを表示するために、嫌己グラフィック要素ごとの表 示情報を、第 1の纖 ljに従って並べ替え、 つ、 フィールドを表示するために、廳己グ ラフィック要素ごとの表示情報を、第 2の細 ijに従って並べ替えるソート手段と、
一ルドを表示する場合、その表示のために前記ソート手段が並べ替えた前記表示情報を順
番に読み出して、読み出した嫌己表示情報に基づいて、 応する Ml己グラフィック要素の描 画を実行し、かつ、前記偶数フィールドを表示する場合、その表示のために前記ソート手段 が並べ替えた肅己表示情報を順番に読み出して、読み出した肅己表示情報に基づいて、対 応する歸己グラフィック要素の描画を菊汁る描画手段と、を備え、鍵己第 1の細 Uは、肅己 表示情報に含まれる、 tiff己グラフィック要素の l己ラインに垂直な方向の位置を示す座標が、 昇順あるレ、は降順の 、ずれかで並ぶように、肅己グラフィック要素ごとの肅己表示情報を並 ベ替える際に、 flBffi標が、スキャンする奇数ライン又はその 1つ前の偶数ラインを示す前 記グラフィック要素については、当該グラフィック要素の嫌己座標が同一であるとして、嫌己 表示情報に含まれる表示深度情報が示す表示深度の昇順ある ヽは降順の 、ずれかで嫌己 表示情報を並べることであり、嫌己第 2の纖 IJは、嫌己表示情報に含まれる、 ttff己グラフイツ ク要素の fttM標が、昇順あるいは降順のいずれかで並ぶように、嫌己グラフィック要素ごと の嫌己表示情報を並べ替える際に、廳 flffi標が、スキャンする偶 イン又はその 1つ前の 奇 インを示す ilBグラフィック要素については、嫌继標が同一であるとして、肅己表示 情報に含まれる表示深度情報が示す表示深度の昇順ある 、は降順の!/ヽずれかで嫌己表示 'If報を並べることである。
この構成によれば、第 1の観点による発明と同様の作用効果を奏することに加えて、次の作 用効果を針る。
表示座 標 (グラフィック要素の、ラインに垂直な方向の位置を示す座標)が飛び越し走査により飛び 越されたラインを示す表示情報と、表示座標が描画纖のラインを示す表示情報とが、表示 文檢ラインの描画処理にぉレ、て共に読み出される。した力つて、これらの表示情報の示す表 示座標を同じ値とみなし、表示深鹿噴にソートを行うことにより、インタレーススキャンの:^ でも表示深度順での描画処理が保証される。表示深度の昇順で並べる効果及ぴ降順で並 ベる効果は上記と同様である。
以上の結果、インタレーススキャンによる表示を行う:^においても、 z少ない記'慮容量の、 描画のためのバッファ(第 1パッファ)を用レ、ながらも、品質の高!/ヽ三次元イメージの表示を
親できる。
上記描 装置において、 ttrt己描画手段は、 ttna クリーンを構成する tin己ピクセルのうち 第 1の所 分のピクセル情報を編内可能であって、鶴内した tiriBピクセル情報を嫌 ク リーンイメージを表示するために出力し、出力した前記ピクセル情報が編内されていた位置 に、 ttilS クリーンイメージ 示するための新たなピクセル'! f¾を する第 1バッファと、 第 2の所定数分の前記グラフィック要素の前記表示情報が 内可能であって、前記表示情 報に基づく歸己ピクセル情報が鍵己第 1バッファに搬内された後に、当該表示情報に基づく 他のピクセル†錄を黼 3第 1バッファに編内するために、当該表示 ' が再利用可能なとき に、再利用のために送られてくる順番で、当該表示情報を 内し、嫌己第 1バッファが膽己 新たなピクセル情報を格納する期間が到来したときに、格納した順番で嫌己表示情報を出 . 力する第 2バッファと、廳己奇 ¾ ィールドを表示する その表示のために嫌己ソート手 段が並べ替えた順番で読み出された膽己表示情報のうち、嫌己第 1パッファに格納すべき 期間が到来した前言 BSfたなピクセル情報を生成するための前記表示情報に含まれる前記表 示深度情報と、 tins第 2バッファから出力される嫌己表示情報に含まれる嫌己表示深度情報 と、を比較し、予め定められた纖 IJに従って、レ、ずれかの嫌己表示情報 択して先に出力 し、前記偶数フィールドを表示する場合、その表示のために前記ソート手段が並べ替えた順 番で読み出された廳己表示情報のうち、嫌己第 1パッファに編内すべき期間が到来した Iff!己 新たなピクセル情報を生成するための lift己表示情報に含まれる l己表示深度情報と、 ttif己 第 2バッファから出力される嫌己表示情報に含まれる歸己表示深度情報と、を比較し、前記 予め定められた麵 ϋに従って、 Vヽずれかの嫌己表示情報 ¾1択して先に出力する比較手段 と、觸己比較手段から出力された肅己表示情報に基づいて ttif己ピクセル情報を生成し、前 記 したピクセル情報を tine第 1バッファに書き込む書き込み手段と、 む。
この構成によれば、第 1の観点による発明に加えた第 2バッファ及び比較手段と同様の第2 バッファ及び比較手段を有している。このため、その ¾ ^と同様の作用効果を奏ずる。
上記描画装置にぉレ、て、複数の嫌己グラフィック要素が、嫌 3^クリーンの先頭ラインに表
示すべきピクセル む 、 ΙΐίΐΒソート手段は、 Ιίίΐ己第; Lの 及び fffl己第 2の 用せず、 の複数のグラフィック要素に対しては、 ttriB表示深度の昇順あるいは降順のいず れかで ΙΐίΙΒ表示情報を並べる。
この構成によれば、第 1の観点による発明に加えた、複数のグラフィック要素がスクリーンの 先頭ラインに表示すべきピクセル ¾ ^む^の並べ替えの纖 Uと同じ纖 Uを有して 1/ヽる。こ のため、その と同様の作用効果を奏する。
上記描画装置にぉレ、て、 MISソート手段は、所:^分 (好ましくは、 1つ分)の歸 Sグラフィ ック要素の謝己表示情報の並べ替えが完了するたぴに、その旨を前記描画手段に通知し、 かつ、嫌己奇¾7ィールドを表示するための嫌己並べ替えを、当該 ¾¾7ィ一ルドを表示す る直前の垂直ブランキング期間の開始直後に実行開始し、 l己偶^ィールドを表示するた めの歸己並べ替えを、当該偶数フィールドを表示する直前の垂直プランキング期間の開始 直後に節開始する。
ソートが確定する毎にその旨を脑することにより、描画手段はソートの完了を待たずに描 画処理を行うことが可能であるが、さらにこの構成によれば、垂直プランキング期間の開始直 後にソートが実行開始されるので、ソート前の演算処理のために余裕を持ったより十分な時 間を確保できる。
本発明の新規な糊敫は、請求の範囲に記載されている。しかしながら、発明そのもの及び その他の糊敷と効果は、 図面を参照して具体的な 例の詳細な説明を読むことにより 容易に藝される。 図面の簡^ ¾説明
図 1 (a)は、本発明の難の形態による YSU19が菊 るソートルール 1を説明するため の、スクリーン SCRに表示されたポリゴン # 0〜 # 7の例示図である。図 1 (b)は、ソートルー ル 1に従ったソートの例示図である。
図 2 (a)は、 YSU19が紫 "るソートルール 2を説明するための、スクリーン S0Rに表示さ
れたポリゴン #0〜# 7の例示図である。図 2(b)は、ソート/レール 2に従ったソートの例示図 . である。
図 3 (a)は、 YSU19が るソートルール 3を説明するための、スクリーン SCRに表示さ れたポリゴン #0〜# 7の例示図である。図 3 (b)は、ソートルール 3に従ったソートの例示図 である o
図 4は、本発明の実施の形態による RPU19の前段部分の説明図である。
図 5 (a)は、 RPU9のプリフェッチバッファ 108、リサイクルバッファ 110、及ぴデブスコンパ レータ 112の処理を説明するための、スクリーン SCRに表示されたポリゴンの例示図である。 図 5 (b)は、 RPU9による描画処理の前処理としての YSU19によるソーティング結果の例示 図である。
図 6 (a)は、図 5 (a)のライン Lcの 1つ前のラインの表示のための描画が終了した直後の、 プリフェッチバッファ 108及ぴリサイクルバッファ 110の櫞内状態を示す図である。図 6 (b)は、 ポリゴン # 1, # 2及び # 4の対応するピクセルをライン Lcに描画する際のポリゴン構造^ ンスタンスの流れを示す図である。図 6 (c)は、ポリゴン # 1, # 2及ぴ #4の対応するピクセ ルをライン Lcに描画する際のポリゴ: /«造 # ^ンスタンスの流れを示す図である。図 6 (d)は、 ポリゴン # 1, # 2及び #4の対応するピクセルをライン Lcに描画する際のポリゴン構造^ ンスタンスの流れを示す図である。図 6 (e)は、ライン Lcの表示のための描画が終了した直 後の、プリフェッチバッファ 108及ぴリサイクルバッファ 110の 内状態を示す図である。
図 7 (a)は、図 5 (b)のポリゴン構造体インスタンス #0, # 3, # 1及び # 2がプリフェッチパ ッファ 108に觸内された状態を示す図である。図 7(b)は、図 5 (a)のポリゴン #0及び # 3の 対応するピクセルをライン Laに描画する際のポリゴン構造 # ^ンスタンスの流れを示す図で ある。図 7 (c)は、図 5 (a)のポリゴン # 0及び # 3の対応するピクセルをライン Laに描画する 際のポリゴン構造体インスタンスの流れを示す図である。図 7 (d)は、ポリゴン # 0及び # 3の 表示最終ライン Lbの描画に至るまでのポリゴン構造 ί材ンスタンスの流れを示す図である。 図 7 (e)は、ポリゴン # 0及ぴ # 3の表示最終ライン Lbの描画でのポリゴン構造体インスタン
スの流れを示す図である。
図 8は、インタレーススキャンによる表示を行う の YSU19によるソートルール 4の説明 図である。
図 9 (a)は、インタレーススキャンによる表示を行う^^のソート処理をモード 1のタイミング で行う の説明図である。図 9 (b)は、インタレーススキャンによる表示を行う のソート 処理をモード 2のタイミングで行う^^の説明図である。
図 10は、本発明の実施の形態によるマルチメディアプロセッサ 1の内部構成を示すプロッ ク図である。
図 11は、図 10のマルチメディアプロセッサ 1によるグラフィックス処理の流れの概要を示す フローチャートである。
図 12は、図 10の RPU9の内部構成を示すプロック図である。
図 13は、テクスチャマッピングモードのポリゴン構造体の構成を示す図である。
図 14は、テクスチャアトリビュート構造体の構成を示す図である。
図 15は、グーローシェーディングモードのポリゴン構造体の構成を示す図である。
図 16 (a)は、シザリングディセーブル時のスプライト構造体の構成を示す図である。図 16 (b)は、シザリングイネーブル時のスプライト構造体の構成を示す図である。
図 17は、スライサ 118による、グーローシェーディングモードのポリゴンに ¾ "る処理の説 明図である。
図 18は、スライサ 118による、テクスチャマッピングモードのポリゴンに対する処理の説明 図である。
図 19は、スライサ 118によるスプライトに る処理の説明図である。 .
図 20は、ピクセルディザ 122によるディザリングの説明図である。
図 21は、ノ ィリニアフィルタ 130によるパイリニアフィルタリングの説明図である。
図 22は、図 10の YSU19による配列 Aの Yソート完了後のヒープ構造を示す図である。 図 23は、図 22のヒープ構造のメイン RAM25への!^方法の説明図である。
図 24は、図 10の YSU19によるポリゴン構造体配列の Yソート処理の全体的な流れの一例 を示すフローチャートである。
図 25は、図 24のステップ S21のヒープ構築処理の流れの一例を示すフローチャートであ る。
図 26は、ダウンヒープ処理の流れの一例を示すフローチャートである。
図 27は、順位比 理の»1の一例を示すフローチャートである。 発明を するための最良の形態
以下、本発明の実施の形態にっ 、て、図面を参照しながら説明する。なお、図中、同一ま たは相当部分にっ 、ては同一の参照符号を付してその説明を翻する。数式中「· Jは乗算 を意味する Q
まず、本発明の »の形態による 3次元イメージ表示のための描画処理の原理を説明する c 本難の形態では、描画処理の前処理として、後述の Yソーティングユニット (以下、「YSU」 と呼ぶ。) 19によるソート(「Yソート」と呼ぶこともある。)処^ ^節される。ソートの通は、 構造体配列の各要素である。構造体配列は、二次元空間に投影された三次元立体の各面 の形状を表すための多角形状のグラフィック要素であるポリゴンのための構造体配列 (以下,
「ポリゴン構造体配列」と呼ぶ。)と、スクリーンに φ ^な矩形状のグラフィック要素であるスプ ライトのための構造体酉 Β ^(以下、「スプライト構造体配列」と呼ぶ。)と、が後述のメイン RAM (random access memory) 25に用意される。ポリゴ 造体配列の要素は、「ポリゴン構 造 ί材ンスタンス」であり、スプライト構造体配列の要素は、「スプライト構造! ^ンスタンス」で ある。ただし、両者を区別して説明する必要がないときは、単に「構造 # rンスタンス」と呼ぶ こともある。
ポリゴン構造体配列に鶴内された各ポリゴン構造 ί材ンスタンスは、ポリゴンごとの表示情 報 (スクリーンにおける頂点座標、テクスチャマッピングモードでのテクスチャパターンに関 する情 ぴグ一口一シェーディングモードでのカラーデータ (RGBのカラーコンポーネン
ト) ¾ ^む。)であり、 1つのポリゴン構造体インスタンスに 1 のポリゴンが対応している。スプ ライト構造体配列に撫内された各スプライト構造 ンスタンスは、スプライトごとの表示情報
(スクリーンにおける座標及びテクスチャパターンに関する' ¾ ^む。)であり、 1つのスプ ライト構造 ^ンスタンスに 1つのスプライトが対応している。これらについては、後で詳述す る。
以下、 YSU19によるソートルール 1, 2及ぴ 3について説明する力 その前に座標系につ V、て説明する。ディスプレイ装置 (図示せず)への実際の表示に用 ヽられる二次元座標系を スクリーン座標系と呼ぶ。本実施の形態では、スクリーン座標系は、水平方向 2048ピクセル X垂直方向 1024ピクセルの 2次元ピクセル配列から構成される。座標原点は左上にあり、 水平右方向力 ¾軸の正、垂直下方向力 軸の正に相当する。ただし、実際に表示される領域 は、スクリーン座標系の:^間ではなく一部の空間である。この表示領域をスクリーンと呼ぶ ことにする。
図 1 (a)は、 YSU19が実 ί ^Τるソートルール 1を説明するための、スクリーン SCRに表示さ れたポリゴン # 0〜 # 7の例示図である。図 1 (b)は、ソートルール 1に従ったソートの例示図 である。図 1 (b)に示すように、ポリゴン構造体配列 PSには、図 1 (a)のポリゴン #0〜 # 7に 対応するポリゴン構造 ί材ンスタンス # 0〜# 7が 内されている。なお、対応するポリゴン 及びポリゴン構造 ί材ンスタンスには、同一の参照符号を付してレ、る。
YSU19は、ポリゴン #0〜# 7の Υ座標が小さい順に、各ポリゴン構造 ンスタンス #0 〜# 7を並べ替える。この:^、ポリゴンの 3頂点の Υ座標のうち、最も小さい Υ座標 (以下、 「最小 Υ座標」と呼ぶ。 )が、この並べ替えで用レヽるポリゴンの Υ座標とする。
このソートの結果、図 1 (b)の右側に示すように、最小 Υ座標が小さい順に、各ポリゴン構造 インスタンス # 0〜 # 7が並べ替えられる。
以上のように、最小 Υ座標が小さい順に、各ポリゴン構造 ί材ンスタンスを並べ替えることを ソートルール 1と呼ぶ。
ただし、最小 Υ座標が同一である複数のポリゴ^ しうる。この^は、ソートルール 2
に従う c
図 2(a)'は、 YSU19が実 frfるソートルール 2を説明するための、スクリーン SCRに表示さ れたポリゴン #0〜# 7の例示図である。図 2(b)は、ソートルール 2に従ったソートの例示図 である。図 2 (a)に示すように、スクリーン SCRにおいて、ポリゴン #0、 # 1、及び # 7の最小 Y座標は、共に「Ys」であり同一である。この^、 YSU19は、各ポリゴン構造 # rンスタン ス # 0、 # 1、及ぴ # 7に含まれるデプス値が大き!/、順に、各ポリゴ ^造インスタンス # 0、 # 1、及ぴ # 7を並べ替える。
このソートの結果、図 2 (b)の右側に示すように、ポリゴン構造 #H スタンス #0、 # 1、及 ぴ # 7につレヽては、デプス値が大き!/ヽ順に並べ替えられて ヽる。
デプス値 (「表示深度情報」と呼ぶこともある。 )は、描画 のピクセルが重なった齢、ど のピクセルを先に描画する力を示す情報であり、その値が大き 、ほど先に (奥に)描画され、 その値が小さいほど後で (手前に)描画される。つまり、デプス値が大きいほどスクリーン SC Rの奥に表示することが示され、小さ!/、ほど手前に表示することが示される。
以上のように、最小 Y座標が同じである複数のポリゴンについては、デプス値が大きい順 に、各ポリゴン構造 スタンスを並べることがソートルール 2である。
ただし、 YSU19は、スクリーン SCRの先頭ラインに表示されるピクセルを持つ複数のポリ ゴンについては、最小 Y座標が つている でも、それらが同一であるとみなして、ソー トルール 1ではなぐソートルール 2に従って、各ポリゴン構造体インスタンスの並べ替えを行 う。つまり、スクリーン SCRの先頭ラインに表示されるピクセルを持つポリゴンが複数 す る^ 1ま、最小 Y座標が同一であるとみなして (つまり、最小 Y座標の値に関係なく)、デプス 値が大きレヽ順に並べ替えられる。これをソートルール 3と呼ぶことにする。
図 3 (a)は、 YSU19が 汁るソートルール 3を説明するための、スクリーン SCRに表示さ れたポリゴン #0〜# 7の例示図である。図 3 (b)は、ソートルール 3に従ったソートの例示図 である。図 3 (a)に示すように、スクリーン SCRの先頭ラインに表示されるピクセル'を持つポリ ゴン # 2、 # 5、及ぴ # 7の最小 Y座標は、 つている。この 、 YSU19は;ポリゴン #
2、 # 5、及ぴ # 7の最小 Y座標が同一であるとみなして、务ポリゴン構造 ンスタンス # 2、 # 5、及ぴ # 7に含まれるデプス値が大き 、順に、各ポリゴン構造 ί材ンスタンス # 2、 # 5、 及び # 7を並べ替える。
このソートの結果、図 3 (b)の右側に示すように、ポリゴン構造 ^ンスタンス # 2、 # 5、及 ぴ # 7につ 、ては、デブス値が大き!/、順に並べ替えられて 、る。
以上のように、先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小 Υ 座標が ¾つている ¾^でも、ソートルール 1ではなぐ最小 Υ座標が同一であるとみなして、 ソートルール 2に従い、デブス値の大きい順に、各ポリゴン構造 # ^ンスタンスを並べ替える ことがソートノレ一ノレ 3である。
上記のソートルール 1〜3は、スプライト構造体配列の各スプライト構造 ンスタンスを並 ベ替える際にも適用される。ここで、スプライトの最小 Υ座標は、スプライトの 4頂点の Υ座標 のうち、最も小さい Υ座標である。
後で詳述するが、本 »の形態では、ポリゴン構造体のサイズは、 128ビットであり、スプラ イト構造体のサイズは、 64ビットである。このように、ポリゴンとスプライトでは、構造体のサイ ズが異なるので、構造 ί材ンスタンスの並べ替えは、ポリゴン構造体配列とスプライト構造体 配列とで、それぞれ別個に行われる。
ここで、ソートルール 1によるソートを行う効果を説明する。比較のため、各ラインの描画の たびに、該当ラインに描画すべきポリゴン構造体インスタンス及びスプライト構造体インスタ ンスを、全ポリゴン構造材ンスタンス及ぴ^ プライト構造 ンスタンス力も検索して、描 画処理を行うことを想定する。この比較例では、各ラインの描画のたびに、全ポリゴン構造体 インスタンス及ぴ^ ブライト構造 ンスタンス力もの検索処理が必要となり、高速処理が できず、多くのポリゴン及びスプライトの表示ができない場合も発生して、十分な三次元ィメ ージの表示が不可能な ¾ ^もある。
この点、本実施の形態のように、最小 Υ座標が小さい順に、各ポリゴン構造 ί材ンスタンス 及ぴ各スブライト構造 ί材ンスタンスを予めソートしておくことにより、ソート後の各ポリゴン構
造 # ^ンスタンス及び各スプライト構造^ンスタンスを順番に読み出して、描画処理を行う だけでよい。この際に、最小 Y座標が描画 ¾ ^位置の Y座標より大きい構造インスタンス 力 Sソート済みの構造体配列より読み出された に、そのラインの描画処理を停止すること により、不要な構造^ンスタンスの検索処理を全く行わずに済む。その結果、比較例のよう な検索処¾ ^不要になって、処理の高速化を図ることができ、多くのポリゴン及ぴスプライト の表示が可能になって、十分な三次 ¾ ^メージの表示が可能になる。
但し、本 の形態では、ピクセルを觸内するバッファに る描画処理を水平ライン単 位で行って ヽるので、 ¾ ^となる水平ラインに描画すべきピクセルを持つポリゴン及びスプラ イトの構造 ンスタンスを、水平ライン毎に順番に読み出して処理する必要がある。
そこで、本実施の形態にぉレ、ては、後述するように、複 インに跨るポリゴン及びスプラ イトの構造 ί材ンスタンスを再利用することにより、それらをメモリから毎回取得することを避 ける機構、新たにメモリから読み出した構造 ί材ンスタンスと再利用のためのバッファに辦内 された構造^ンスタンスとの描画順序を判定する機構、及ぴ全てのピクセルを描画し終え た構造^ンスタンスを再利用のためのバッファに ずに «する機構を備える。 上記のように、表示先頭ラインでの複数グラフィック要素 (ポリゴン、スプライト)の描画や、 同じラインで最小 Υ座標が同一の複数グラフィック要素の描画の に、ソートルール 2及び 3を il¾口したのは、各ラインにおいて、必ず、デプス値が大きいものから描画されるようにす るためである。本実施の形態においては、ソート済みの構造体配列から読み出された構造 ンスタンスのデプス値と、再利用のためのバッファ力 読み出された構造 ί材ンスタンス のデプス値とを比較し、より大きレ、デブス値を持つ構造体インスタンスを先に描画する機構 を備えているので、ソートルール 2及ぴ 3の 卩によって、全ての構造 ί材ンスタンスに対し て、必ずデプス値が大き!/、ものから描画を行うことを保証できる。
このように、各ラインにおいて、デプス値の大きい、より奥に表示されるべきグラフィック要 素から先に描画処理を行うようにしたのは、半透明合成を実現するためである。奥に描画さ れるべき不透明のグラフィック要素が、手前に描画されるべき半透明のグラフィック要素の後
に描画された^ \透けて見えるべき両者が重なった部 の描画を正しく処理することがで きない。このため、各ラインにおいて、デプス値の大きい、より奥に表示されるべきグラフイツ ク要素から先に描画処理を行うのである。
さて、 YSU19によるソート後の各構造 ί材ンスタンスは、メイン RAM25から、後述のレン ダリングプロセッシングユニット (以下、「RPU」と呼ぶ。 ) 9に読み込まれ、描画処理に利用さ れる。この描画処理の前段の処理を説明する。ここで、本 »の形態では、後述のラインパ ッファ LB1あるいは LB2にデータを書き込むことを描画と呼ぶ。各ラインバッファ LB1及び L B2は、スクリーンの 1ラインに対応したピクセルのデータを H内する。
図 4は、本発明の »の形態による RPU19の前段部分の説明図である。図 4に示すように. RPU19は、その前段部分に、プリフェッチバッファ 108、リサイクルバッファ 110、及ぴデプ スコンパレータ 112¾r ^む。
プリフェッチバッファ 108は、メイン RAM25から、ソート後の構造 ンスタンスを順次読 み込み、読み込んだ順番で構造 ί材ンスタンスを出力する FIFO (first— in first- out)構 造のバッファである。つまり、プリフェッチバッファ 108には、 YSU19により並ぺ替えられた 順番で構造インスタンスが ¾内される。そして、 内された構造インスタンスは、対応するポリ ゴンある 、はスプライトの表示のための描画サイクルにおレ、て、編内された順番で出力され る。プリフェッチバッファ 108は、メイン RAM25からの入力タイミングとデプスコンパレータ 1 12への出力タイミングの緩衝機構として用意されている。これは、メイン RAM25は、 RPU1 9以外の機能ユニットと ^"されて 、るため、メイン RAM25からのデータ取得に待ち時間が 発生し 6ためである。
リサイクルバッファ 110は、次の描画サイクルでも棚される (つまり、再利用できる)構造体 インスタンスを 内する FIFO構造のバッファである。従って、リサイクルバッファ 110に編内 された構造体インスタンスは、次の描画サイクルで使用される。 1描画サイクルは、 1ラインの 表示を行うための描画期間である。つまり、 1描画サイクルは、ラインバッファ LB1 'あるいは L B2のレヽずれかに、対応するラインの表示のために必要な全てのデータの描画が行われる
期間である。
デプス inンパレータ 112は、プリフェッチバッファ 108から取り出した構造 ンスタンスに 含まれるデプス値と、リサイクルバッファ 110から取り出した構造 ί ンスタンスに含まれるデ ブス値と、を比較して、より大きなデプス値を持つ (つまり、より奥に表示されるべき)構造 # Γ ンスタンス ¾1択して、後段に出力する。
この 、選択された構造インスタンスが、次の描画サイクルでも使用される (つまり、次 のラインの描画にも使用される) は、後段に出力されるとともに、リサイクルバッファ 110 にも出力され書き込まれる。ただし、選択された構造 ί材ンスタンスが、次の描画サイクルで 使用されない (つまり、次のラインの描画には使用されない) ま、後段に出力されるだけ で、リサイクルバッファ 110には書き込まれなレヽ。
て、リサイクルバッファ 110には、現ラインの描画に棚される構造 ンスタンスであ つて、次ラインの描画にも使用される構造 #^ンスタンスのみ力 デプス値の大きい順に格 糸内される。以下、具体例を挙げながら説明する。
図 5 (a)は、 RPU9のプリフェッチバッファ 108、リサイクルバッファ 110、及ぴデブスコンパ レータ 112の処理を説明するための、スクリーン SCRに表示されたポリゴンの例示図である。 図 5 (b)は、 RPU9による描画処理の前処理としての YSU19によるソーティング結果の例示 図である。
図 6 (a)は、図 5 (a)のライン Lcの 1つ前のラインの表示のための描画が終了した直後の、 プリフェッチバッファ 108及びリサイクルバッファ 110の櫞內状態を示す図、図 6 (b)〜図 6 (d)は、ポリゴン # 1, #2及び #4に含まれる、ライン Lcに対応するピクセルを描画する際の ポリゴン構造体インスタンスの流れを示す図、図 6 (e)は、ライン Lcへの表示のための描画が 終了した直後の、プリフェッチバッファ 108及びリサイクルバッファ 110の 内状態を示す図、 である。
図 6 (a)に示すように、図 5 (a)のライン Lcの 1つ前のラインの表示のための描画が終了した 直後では、プリフェッチバッファ 108には、図 5 (b)に示したソート後の並びの順で、ポリゴン
構造 f材ンスタンス #4, # 7, #6及び #5が搬内され、リサイクルバッファ 110には、デプス 値が大きい順番で、ポリゴ^ 造 スタンス: ίΐ 1及 #2が觸内されている。なお、ポリゴン 構造 # スタンス #0及び #3は、ライン Lcに表示されないため、リサイクルバッファ 110に は穩されていない。
そして、図 6 (b)に示すように、デブスコンパレータ 112は、プリフェッチバッファ 108の先頭 のポリゴン構造 ンスタンス #4と、リサイクルバッファ 110の先頭のポリゴン構造 ンス タンス # 1と、に含ま l¾デプス値を比較し、デプス値が大きいポリゴ 造 ί材ンスタンス: S 1を選択して、後段に出力するとともに、ポリゴ «造 # ^ンスタンス # 1は、リサイクルパッフ ァ 110に送られる。なぜなら、ポリゴン # 1は、次のラインにも表示されため、次の描画サイク ルでも利用される力らである。この 、ポリゴン構造^ンスタンス # 4は、デブスコンノヽ。レ ータ 112に選択されていないので、プリフェッチバッファ 108のリードポインタは、次に進ま ず、ポリゴ: ^造 ンスタンス #4を指したままである。
次に、図 6 (c)に示すように、デブスコンパレータ 112は、プリフェッチバッファ 108の先頭 のポリゴン構造体インスタンス #4と、リサイクルバッファ 110の先頭のポリゴン構造体インス タンス # 2と、に含まれるデプス値を比較し、デプス値が大きレ、ポリゴ «造 ί材ンスタンス # 4を選択して、後段に出力するとともに、ポリゴ/ «造# ^ンスタンス #4は、リサイクルパッフ ァ 110に送られる。なぜなら、ポリゴン #4は、次のラインにも表示されため、次の描画サイク ルでも禾 IJ用される力もである。この 、ポリゴン構造 ί材ンスタンス # 2は、デプスコンパレ ータ 112に選択されていないので、リサイクルバッファ 110のリードポインタは、次に進まず、 ポリゴ 造インスタンス # 2を指したままである。
そして、図 6 (d)に示すように、デプスコンパレータ 112は、リサイクルバッファ 110の先頭 のポリゴ^^造 ンスタンス # 2を読み込んで、後段に出力するとともに、ポリゴン構造 f材 ンスタンス # 2は、リサイクルバッファ 110に送られる。なぜなら、ポリゴン # 2は、次のライン にも表示されるため、次の描画サイクルでも利用される力もである。
以上の結果、ライン Lcの表示のための描画が終了した直後では、リサイクルバッファ 110
には、次のラインの描画に利用されるポリゴン構造^ rンスタンス # 1, #4及び #2が、デプ ス値の大きい順に!^内される。なお、ライン Lcには、ポリゴン # 7は表示されないため、図 6 (e)において、ポリゴン構造 ί材ンスタンス # 7は、プリフェッチバッファ 108から読み出され ない。
図 7 (a)は、図 5 (b)のポリゴン構造体インスタンス # 0, # 3, # 1及ぴ # 2がプリフェッチパ ッファ 108に H内された状態を示す図、図 7(b)及び図 7(c)は、図 5 (a)のポリゴン #0及ぴ # 3に含まれる、ライン Laに対応するピクセルを描画する際のポリゴ^ f造インスタンスの 流れを示す図、図 7(d)は、ポリゴン #0及び # 3の表示最終ライン Lbに至るまでのポリゴン 構造 ンスタンスの流れを示す図、図 7 (e)は、ポリゴン # 0及ぴ # 3の表示最終ライン Lb でのポリゴン構造体インスタンスの流れを示す図、である。
図 7 (a)に示すように、図 5 (a)の先頭ライン La^の表示のための描画の前に、プリフェッチ ノッファ 108には、図 5 (b)に示したソート後のポリゴ «造 # ^ンスタンス力 その並びの順 で欄される。
そして、図 7(b)に示すように、プリフェッチバッファ 108の先頭のポリゴ /^造 ンスタン ス # 0力 デプスコンパレータ 112に読み込まれ、デプスコンパレータ 112は、このポリゴン 構造 ンスタンス #0を後段に出力するとともに、ポリゴ V»造 ンスタンス #0は、リサイ クルバッファ 110に送られ 内される。なぜなら、ポリゴン #0は、次のラインにも表示された め、次の描画サイクルでも利用される力もである。なお、プリフェッチバッファ 108には、メイ ン RAM25から み出されたポリゴン構造 ί材ンスタンス #4が書き込まれる。
次に、図 7(c)に示すように、プリフェッチバッファ 108の先頭のポリゴン構造 ί材ンスタンス # 3が、デプスコンパレータ 112に読み込まれ、後段に出力されるとともに、ポリゴン構造体 インスタンス # 3は、リサイクルバッファ 110に送られ 内される。なぜなら、ポリゴン # 3も、 次のラインに表示されため、次の描画サイクルでも利用される力もである。なお、プリフェッチ バッファ 108には、メイン RAM25から読み出されたポリゴン構造 ί材ンスタンス' # 7が書き 込まれる。
先頭ライン Laの表示のための描画が終了すると、次のラインの表示のための描画をすべく, 図 7(d)に示すように、デブスコンパレータ 112は、リサイクルバッファ 110から、ポリゴ «造 f材ンスタンス #0を読み出して、後段に出力するとともに、ポリゴン構造 ンスタンス # 0 は、リサイクルバッファ 110に送られ 内される。なぜなら、ポリゴン #0は、引き続き次のライ ンに表示されるため、次の描画サイクルでも利用される力もである。続レヽて、デプスコンパレ ータ 112は、リサイクルバッファ 110から、ポリゴン構造 # ^ンスタンス # 3を読み出して、後 段に出力するとともに、ポリゴン構造 # ^ンスタンス # 3は、リサイクルバッファ 110に送られ 櫞内される。なぜなら、ポリゴン # 3もまた、引き 次のラインに表示されるため、次の描画 サイクルでも利用される力もである。このような M^、ポリゴン # 0及び # 3の描画が終了す るまで繰り返される。なお、ポリゴン # 1は未だ表示されないため、プリフェッチバッファ 108 力もは読み出されない。
そして、図 7(e)に示すように、ライン Lbへポリゴン #0及び # 3を表示するための描画処理 では、デプスコンパレータ 112は、リサイクルバッファ 110から、ポリゴン構造インスタンス # 0を読み出して、後段に出力するが、ポリゴン構造 ί材ンスタンス # 0は、リサイクルパッフ ァ 110には送られない。なぜなら、ポリゴン #0は、次のラインでは表示されず不要だからで ある。続いて、デプスコンパレータ 112は、リサイクルバッファ 110から、ポリゴン構造 ί材ン スタンス # 3を読み出して、後段に出力するが、ポリゴン構造体インスタンス # 3は、リサイク ルバッファ 110に送られない。なぜなら、ポリゴン # 3もまた、次のラインには表示されず不 要だからである。
上記では、ポリゴンのみをスクリーン SCRに表示する場合を例に挙げたため、プリフェッチ バッファ 108に読み込まれる構造 ί材ンスタンスは、ポリゴン構造 ί材ンスタンスのみであつ た。しかし、後述するように、ソート後のポリゴン構造インスタンスと、ソート後のスプライト構 造材ンスタンスと、はソートルール 1〜3に従ってマージソートされるため、マージソート後 の構造 f材ンスタンス力 プリフェッチバッファ 108に搬内されることになる。従って、ポリゴン 及びスプライトの双方を表示する^は、ソートルール 〜 3に従った順番で、プリフェッチ
バッファ 108に、各構造 # ^ンスタンスが櫞内され、上記のような処應行われる。 以上のように、デブスコンパレータ 112及ぴリサイクルバッファ 110を設け、次の描画サイク ルで利用する構造 ンスタンスを、デプス値の大きい順に 内していった。これにより、 Y SU19によるソートルール 1のソートを行うにも力かわらず、各ラインにおいて、必ず、デブス 値の大き ヽグラフィック要素 (ポリゴン、スプライト)から描画処趣行われる。
さて、上記のソートルール 1〜3は、ノンインタレーススキャンによる表示を行う^に限ら ず、インタレーススキャンによる表示を行う にも、同様に適用される。ただし、インタレー ススキャンの:^は、ソ—トルール 1〜3だけでなぐ次のようなソートルール 4をさらに加える ことが望ましい。
インタレーススキャンの:^でも、上記ソートルール 1〜3が適用される。ただし、奇数フィ 一ルドを表示するためのソートでは、 ¾m ^インに表示されるポリゴンの最小 γ座標及ぴ 又はその インの 1つ前の偶数ラインに表示されるポリゴンの最小 Y座標とが同一であ るとみなして、ソートルール 2によるソートを行う。ただし、先頭の奇 インは除く。なぜなら、 その 1つ前の偶 インが ¾Eしないからである。一方、 »C7ィールドを表示するためのソ ートでは、偶数ラインに表示されるポリゴンの最小 Y座標及び Z又はその偶翁 インの 1つ 前の奇 インに表示されるポリゴンの最小 γ座標とが同一であるとみなして、ソートルール
2によるソートを行う。このようなソートをソートルール 4と呼ぶ。
図 8は、インタレーススキャンによる表示を行う の YSU19によるソートルール 4の説明 図である。図 8に示すように、スクリーン SCRに、ポリゴン #0〜# 3を表示する を想定し、 まず、奇数フィールドを表示するためのソート処理を考える。図中、上から第二番目の奇 » インに注目する。
この 、ソートルール 4によれば、第二番目の インに初めて表示されるポリゴン # 2の最小 Υ座標とその 1つ前の偶数ラインに初めて表示されるポリゴン # 1の最小 Υ座標と、 が同一であるとみなして、デプス値の大きい順に、ポリゴ: 造 ί材ンスタンス # 2;次にポリ ゴン構造インスタンス # 1と並べられる。
図 8の例では、ソートルール 1〜4によるソートの結果、 ィールドの表示のために、ポ. リゴン構造 #^ンスタンスは、 #0、 # 2、 # 1、及び # 3の順番で並べ替えられる。ちなみに、 ソートルール 1〜3のみでは、ポリゴン構造体インスタンスは、 #0、 # 1、 #2、及ぴ #3の順 番で並べ替えられる。
次に、 «7ィールドを表示するためのソート処理を考え、図中、一番上の偶 インに注 目する。この^^、ソートルール 4によれば、一番上の偶 インに初めて表示されるポリゴ ン # 1の最小 Y座標とその 1つ前の奇懇ラインに初めて表示されるポリゴン # 0の最小 Y座標 と、が同一であるとみなして、デプス値の大きい順に、ポリゴン構造 スタンス # 1、次に ポリゴ/ ¾造 ンスタンス # 0と並べられる。
図 8の例では、ソートルール 1〜4によるソートの結果、 ィールドの表示のために、ポ リゴン構造 ί材ンスタンスは、 # 1、 #0、 # 3、及び # 2の順番で並べ替えられる。ちなみに、 ソートルール 1〜3のみでは、ポリゴン構造体インスタンスは、 #0、 # 1、 # 2、及び # 3の順 番で並べ替えられる。
上記ソートルール 4は、ソートルール 1〜3に加えて、スプライト構造体配列の各スプライト 構造^ (Vスタンスを並べ替える際にも適用される。
ここで、インタレーススキャンの に、ソートルール 4を i ¾した理由を説明する。図 8に おいて、ソートルール:!〜 3のみでソートを行う場合を想定する。この^^、ポリゴン構造体ィ ンスタンス #0, # 1, # 2及び # 3という順番で、最小 Y座標が小さい順にソートが行われる。 すると、奇数フィールドを表示する場合、例えば、図中、— ゝら第一番目の奇^インの描画 が終了した直後では、プリフェッチバッファ 108の先頭には、ポリゴン構造インスタンス # 1 力 リサイクルバッファ 110の先頭には、ポリゴン構造 ί材ンスタンス #0がある。従って、図 中、 ± ^ら第二番目の奇 インの描画を行う際、ポリゴン # 1, #2及び #0という順番で描 画が行われる。このように、この奇 ic^インでは、デプス値が大きい順に、描画が行われなく なる。
ソートルール 4を ίΙΛ口することにより、奇¾ ィールドを表示する^、ポリゴン構造 ί材ン
スタンス # 0, # 2, # 1及ぴ # 3という順番に並べ替えが行われる。すると、奇数フィールド を表示する齢、例えば、図中、 J ^ゝら第一番目の ¾m ^インの描画が終了した直後では、 プリフェッチバッファ 108の出口には、ポリゴ #造 f材ンスタンス # 2が、リサイクルバッファ 110の出口には、ポリゴン構造 ί材ンスタンス # 0がある。従って、図中、上から第二番目の ¾^インの描画を行う際、ポリゴン # 2, # 1及ぴ # 0という順番で、デプス値の大きい順に 描画処親嚇される。
以上のことは、 «7ィールド ¾r¾示する際にも言える。
さて、インタレーススキャンによる表示を行うためのソート処理においては、ソートを^ fi1す るタイミングによって、 ィールド用のソート処理と偶 フィールド用のソート処理を行うタ イミングが異なる。そこで、本実施の形態では、モード 1とモード 2の二つのソートのモードが 用意されて 、る。これらを図面を用 、て説明する。
図 9 (a)は、インタレーススキャンによる表示を行う ¾ ^のソート処理をモード 1のタイミング で行う の説明図、図 9 (b)は、インタレーススキャンによる表示を行う のソート処理を モード 2のタイミングで行う ¾ ^の説明図、である。
図 9 (a)に示すように、モード 1では、 YSU19は、偶 ¾ ィールド Bが表示される前に表示 される ¾¾7ィールド Aの表示中に、当該偶 ^ィ一ルド Bを表示するためのソート Bを行う。 従って、偶¾ ィールド Bのための、ポリゴン構造体配列ゃスプライト構造体配列に代入する 値 (つまり各構造 ンスタンスの値)の計算 B及びソート Bの双方の処理は、当該偶数ブイ 一ルド Bの 1つ前に表示される奇数フィールド Aの表示中に全て完了しなければならない。 なぜなら、計算 Bの結果に基づ 、て、ソート Bが行われる力もである。
同様に、モード 1では、 YSU19は、奇¾7ィールド Aが表示される前に表示される偶数フィ 一ルド Bの表示中に、当該奇数フィールド Aを表示するためのソート Aを行う。従って、奇数 フィールド Aのための、ポリゴン構造体配列ゃスプライト構造体配列に代入する値の計算 A 及びソート Aの双方の処理は、当該 ¾¾7ィールド Aの 1つ前に表示される偶 一ルド B の表示中に全て完了しなければならなレヽ。なぜなら、計算 Aの結果に基づレ、て、ソート Aが
行われるからである。
一方、 *ード 2では、図 9 (b)に示すように、 YSU19は、直前の垂直プランキング期間中及 ぴ » ィールド Aの表示中に、当該 ¾1 ^ィールド Aのためのソート Aを節する。 «フ ィールド Aのための計算 Aは、当該 ¾ ィールド Aの 1つ前の ί¾¾ ィールド Bの表示中に 行われる。同様に、モード 2では、 YSU19は、直前の垂直プランキング期間中及び ί»ィ 一ルド Βの表示中に、当該偶数フィールド Βのためのソート Βを 亍する。偶数フィールド Β のための計算 Βは、当該 «C ィールド Βの 1つ前の «7ィールド Αの表示中に行われる。 従って、モード 2では、奇^ 7ィールド Aの表示中に、奇数フィールド Aのためのソート Aと « ィールド Bのための計算 Bとを並列に菊 することができ、また、 « ィールド Βの表 示中に、偶 ¾7ィ一ルド Βのためのソート 8と フィールド Αのための計算 Αとを並列に実 ることができる。その結果、計算 Α¾ΌΦのための期間を十分に確保できる。
本実施の形態では、全構造 ί材ンスタンスのソートの完了を待つことなぐ順位の高いもの から構造 ί材ンスタンスが 1つ確定するたびに、その都度、 RPU9に構造 ンスタンスが読 み込まれ、描画処理を行うことができる機能が用意されている。具体的には、ソートされるポリ ゴン構造体配列のソート済みポリゴン構造体インスタンスが確定するたび、 YSU19から RP U9にパルス信号 PPL (後述)が伝達され、 RPU9は、このパルス信号 PPLの数をカウントし、 カウント値を超えない範囲の数のポリゴ ^/«造{材ンスタンスをメイン RAM25から読み出す。 また、スフ。ライト構造体配列のソート及び読み出しについても、同様の機能が用意されている。 このため、モード 2のように、表示中のフィールドに対する各構造体インスタンスのソートを、 直前の垂直プランキング期間及ぴフィールド表示中に節できる。
順位の高 、ものから 1つずつ構造 ί材ンスタンスを送り出すことができるソート技法の一例 として、本難の形態では、ヒープソートを採用している。また、ヒープソートを採用する他の 利点として、ソート性能が安定している、すなわちソートに必要な時間にばらつきが少ないこ とが挙げられる。
図 10は、本発明の実施の形態によるマルチメディアプロセッサ 1の内部構成を示すプロッ
ク図である。図 10に示すように、このマルチメディアプロ ッサは、外部メモリインタフェース. 3、 DMAC (direct memory access controller) 4、中央演算処理装置 (以下、「CPU」 と呼ぶ。)5、 CPUローカル RAM7、レンダリングプロセッシングユニット(以下、「RPU」と呼 ぶ。)9、カラーパレット RAM11、サウンドプロセシングユニット (以下、「SPU」と呼ぶ。) 13、 SPUローカル RAM15、ジオメトリエンジン (以下、「GE」と呼ぶ。 ) 17、 Yソーティングュニッ ト (以下、「YSU」と呼ぶ。 ) 19、外咅^ Tンタフェースプロック 21、メイン RAMアクセスアービタ 23、メイン RAM25、 I/Oパス 27、ビデオ DAC (digital to analog converter) 29、ォ 一ディォ DACプロック 31、及び AZDコンバータ(以下、「ADC」と呼ぶ。)33を具備する。 メイン RAM25及び外部メモリ 50を区別して説明する必要がな ヽときは、「メモリ MEM」と表 記する。
CPU5は、メモリ MEMに編内されたプログラムを 亍して、各種演算やシステム全体の制 御を行う。また、 CPU5は、 DMAC4にプログラム及ぴデータの 要求を行うこともできる し、 DMAC4を介さずに、外部メモリインタフェース 3及ぴ外部バス 51を通じて、外部メモリ 5 0力も直接プログラムコードをフェッチし、外部メモリ 50に直接データアクセスを行うこともで きる。
グラフィックス処理に関する CPU5の処理として、メモリ MEMに; ^内されたプログラムを実 行して、各オブジェクト及ぴ各スプライトの拡大 ·縮小、回転、及ぴ Z又は5 動のパラメ ータ、視点座標 (カメラ座標)、並びに 镍ベクトルの算出等を行う。ここで、 1または複数の ポリゴンから構成され、同じ拡大 ·縮小、回転、及び 動の変換が適用される単位を「ォ ブジェクト」と呼ぶ。
I/Oパス 27は、 CPU5をバスマスタとするシステム制御用のバスであり、.バススレイブであ る各機能ユニット (外部メモリインタフェース 3、 DMAC4, RPU9、 SPU13、 GE17、 YSU1 9、外音 I ンタフェースプロック 21、及び ADC33)の制御レジスタ及ぴローカル RAM7, 11: 15へのアクセスに用いられる。このようにして、これらの機能ユニットは、 IZOバ 27を通じ て、 CPU5により制御される。
CPUローカル RAM7は、 CPU5専用の RAMであり、サブルーチンコールや割り込み時 におけるデータの などを行うためのスタック領域、及ぴ CPU5のみ力 S扱う変数の編内領 域等として使用される。
本発明の赚の 1つである RPU9は、ポリゴン及ぴスプライトから構成される三次元ィメー ジをリアルタイムに生成する。具体的には、 RPU9は、 YSU19によるソート済みの、ポリゴン 構造体配列の各構造 #H スタンス及ぴスプライト構造体配列の各構造 ί材ンスタンスを、メ イン RAM25から読み出し、上述したデプスコンパレータ 112等による処通ぴ後述する 様々な処理を新して、スクリーンのスキャンに合わせて水平ラインごとにイメージを^^す る。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、 ビデオ DAC29に出力される。また、 RPU9は、 DMAC4に対して、ポリゴン及びスプライト のテクスチャパターンデータの取り込みのための DMA ^^要求を行う機能を有する。 RPU 9については、後で詳述する。
テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる 2次元の画素配 列データであり、各画素データは、カラーパレット RAM11のエントリを指定するための情報 の一部である。このように、本実施の形態では、カラーの指定には、間接指定方式を採用す る。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるィ メージを構成する画素を指す「ピクセル」とは区別して棚する。従って、テクスチャパターン データは、テクセルデータの集合である。
ビデオ DAC29は、アナログのビデオ信号を^^するためのデジタル Zアナログ変婦で ある。ビデオ DAC29は、 RPU9から入力されたデータストリームをアナログのコンポジットビ デォ信号に変換し、ビデオ信号出力 (図示せず)力もテレビジョンモニタ等 (図示せず) に出力する。
カラーパレット RAMI 1は、本^の形態では 512色すなわち 512エントリのカラーパレツ トからなる。 RPU9は、テクスチャパターンデータに^ ¾れるテクセルデータをカラーパレット のエントリを指定するインデックスの一部として、カラ一パレット RAMI 1を参照し、テクスチャ
ノターンデータを、カラーデータ (RGBのカラ"コンポーネント)に変換する。
SPU13は、 PCM(pulse code modulation)波形データ (以下、「ウェーブデータ」と呼 ぶ。 )、アンプリチユードデータ、及びメインポリユームデータを する。具体的には、 SPU 13は、最大 64チャンネル分のウエーブデータを して^割多重化するとともに、最大 6 4チャンネル分のエンベロープデータを生成してチャンネルポリユームデータと乗算し、アン プリチユードデータを 割多重化する。そして、 SPU13は、メインボリュームデータ、時分 割多重化されたウエーブデータ、及ぴ時分割多重化されたアンプリチユードデータを、ォー ディォ DACブロック 31に出力する。また、 SPU13は、 DMAC4に対して、ウェーブデータ 及びエンベロープデータの取り込みのための DMA¾¾要求を行う機能を有する。
オーディオ DACプロック 31は、 SPU13から入力されたウエーブデータ、アンプリチユード データ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗 算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ 信号出力端子 (図示せず)からテレビジョンモニタ等 (図示せず)のオーディオ入力端子 (図 示せず)に出力される。
SPUローカル RAMI 5は、 SPU13がウェーブ再生及びエンベロープ生成を行う際に用 V、るパラメータ (例えば、ウェーブデータやエンベロープデータの 内アドレスやピッチ情報 など)を搬内する。
GE17は、三次元イメージを表示するための衡可演算を節する。具体的には、 GE17は、 行列積、ベクトルァフィン変換、ベクトル直交変換、 変換、頂点明度 Zポリゴン明度 計算 (ベクトル内積)、及ぴポリゴン裏面力リング処理 (ベクトル外積)などの演算を^ る。 本発明の糊敷の 1つである YSU19は、メイン RAM25に!^内されて!/、るポリゴ ^造体配 列の各構造^ スタンス及びスプライト構造体配列の各構造^ンスタンスを、ソートルー ル 1〜4に従ってソートする。この^、ポリゴン構造体配列とスプライト構造体配列とで、別 個にソートが行われる。
外部メモリインタフェース 3は、外部バス 51を介して、外部メモリ 50からのデータの読み出
し、及び外部メモリ 50へのデータの書き込みを司る。この:^、外部メモリインタフェース 3は、 図示しない EBI優先順位テーブルに従って、 CPU5及び DMAC4力もの外部バスアクセス 要求要因 (外部バス 51へのアクセスを要求する要因)を調停して、レ、ずれか 1つの外部パス アクセス要求要因 ¾1択する。そして、選択した外部バスアクセス要求要因に対して外¾ ス 51へのアクセスを許可する。 EBI優先順位テーブルは、 CPU5からの複難類の外部バ スアクセス要求要因及び DMAC4力もの外咅 くスアクセス要求要因の優先順位を定めたテ ブルである 0
外咅 くスアクセス要求要因として、 CPU5に含まれる図示しない IPL (initial program lo ader)によるブロック^ ¾要求、 CPU5によるデータアクセス要求、 CPU5による命令フェツ チ要求、及ぴ DMAC4による DMA要求がある。
DMAC4は、メイン RAM25と、外咅 [^くス 51に接続された外部メモリ 50と、の間で DMA転 送を行う。この場合、 DMAC4は、図示しない DMA優先順位テーブルに従って、 CPU5、
RPU9、及ぴ SPU13からの DMA繊要求要因 (DMA鍵を要求する要因)を調停して、 いずれか 1つの DMA 要求要因を選択する。そして、外部メモリインタフェース 3に対し て、 DMA要求を行う。 DMA優先順位テーブルは、 CPU5、 RPU9、及び SPU13からの D MA要求要因の優先順位を定めたテープノレである。
SPU13の DMA要求要因として、(1)ウェーブデータをウェーブバッファに "ること、 (2)エンベロープデータをエンベロープバッファに^すること、がある。ウェーブバッファ 及びエンベロープバッファは、それぞれメイン RAM25上に設定されるウェーブデータ及び エンベロープデータのテンポラリ格納領域である。なお、 SPU13の 2つの DMA要求要因 間の調停は、 SPU13内のハードウェア(図示せず)で行われ、 DMAC4は関知しない。
RPU9の DMA要求要因として、テクスチャパターンデータをテクスチャバッファに す ること、がある。テクスチャバッファは、メイン RAM25上に設定されるテクスチャパターンデ ータめテンポラリ 瞧域である。
CPU5の DMA要求要因として、(1) 想記憶管理にぉレ、てページミスが発生した ΐ の
ぺ一ジ^!、(2)アプリケーションプログラム等が要求する—データ te、がある。なお、 CPU 5内で複数の DMA鍵要求が同時に発生した齢は、その調停は CPU5で節されるソ フトウェアにて行われ、 DMAC4は関知しない。
DMAC4は、 LZ77アルゴリズムに基づくデータ伸張機能を備えており、 CPU5による DM A¾¾要求に対して、外部メモリ 50に編内された圧縮データを伸張しながら DMA する ことが可能である。
外咅 I ンタフェースブロック 21は、周辺装置 54とのインタフェースであり、 24チャンネルの プログラマブルなデジタル入出力 (IZO)ポートを含む。 24チャンネルの I/Oポートの各々 は、 4チャンネル分のマウスインタフェース機能、 4チャンネル分のライトガンインタフェース 機能、 2チャンネル分の汎用タイマ/カウンタ、 1チャンネル分の調歩同期式シリアルインタ フェース機言 g、 1チャンネル分の汎用パラレル Zシリアル変換ポート機能のうち 1または複数 に内部接続されている。
ADC33は、 4チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力 装置 52から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等の アナログ入力信号をサンプリングしてデジタルデータに変換する。
メイン RAMアクセスアービタ 23は、機能ユニット (CPU5、 RPU9、 GE17、 YSU19、 DM
AC4、及び外咅 I ンタフェースブロック 21 (汎用パラレル Zシリアル変換ポート)力ものメイン
RAM25へのアクセス要求を調停して、 V、ずれかの機能ユニットにアクセス許可を出す。 メイン RAM25は、 CPU5のワーク領域、変数編内領域、および仮想記憶管理領域等とし て利用される。また、メイン RAM25は、 CPU5が他の機能ユニットに受け » "データの格 糸觸域、 RPU9及び SPU13が外部メモリ 50から DMAによって取得したデータの格^ ^域、
GE17及ひ YSU19の入力データ及ぴ出力データの ! ^域等としても使用される。
外咅 ス 51は、外部メモリ 50にアクセスするためのバスである。 CPU5および DMAC4か ら、外部メモリインタフェース 3を介してアクセスされる。外部バス 51のアドレスパスは、 30ビ ットから成り、最大で 1Gバイト(=8Gビット)の外部メモリ 50を接続することができる。外咅
ス 51のデータパスは、 16ビットから成り、 8ビット又は 16 、ットのデータバス幅を持つ外部メ モリ 50を接続できる。 ¾るデータバス幅を持つ外部メモリを同時に接続可能であり、ァクセ スする外部メモリによってデータパス幅を自動的に切り替える機能が備えられる。
次に、マルチメディアプロセッサ 1によるグラフィックス処理の概要を説明する。
図 11は、図 10のマルチメディアプロセッサ 1によるグラフィックス処理の流れの概要を示す フローチャートである。図 11に示すように、ステップ S1にて、 CPU5は、各オブジェクト(1ま たは複数のポリゴンから構成され、同じ拡大'縮小、回転、及び 移動の変換が適用され る単位)及び各スプライトの拡大'縮小、回転、及ぴ平行移動のパラメータを算出する。算出 されたパラメータから、各オブジェクト及ぴ各スプライトに対し、拡大'縮小、回転、及び5 W 移動のための変衡亍列が生成される。これらの変衡亍列は、各オブジェクト及び各スプライト のローカルな座標系 (ローカル座標系)から、全てのオブジェクト及び全てのスプライトを統 一の座標系で表現する直 ¾¾標系 (ワールド座標系)への変換に用!/ヽられる。
また、 CPU5は、視点 (カメラ)座標、文像点座標、及ぴ ¾ /線ベクトルの を行う。これ らのパラメータから、ワールド座標系から視点を中心とした直 ¾¾標系 (ビュー座標系)への 変換行列が生成される。
ステップ S2にて、 GE17は、各オブジェクト及ぴ各スプライトに対し、拡大'縮小、回転、及 ぴ 動のための変換行列が複数 する^、それらの変衡亍列の行列積を求めるこ とにより、複数の変衡亍列を単一の変換行列に合成する。さらに、 GE17は、合成された変換 行列と、座標系変換のための変換行列と、の行列積を求めて、オブジェクト頂点座標配列、 才ブジェクト¾ ^ベクトル配列、及びスプライト座標を変換するための変換行列をそれぞれ 合成する o
ステップ S3にて、 GE17は、合成された変換行列を用い、オブジェクト頂雄標配列、ォプ ジェクト¾ ^ベクトル配列、及びスプライト座標の^ {¾換を行う。また、 GE17は、'変換後の オブジェクト タトル配列と光源べタトルとの内積を演算し、オブジェクトの各頂点または 面 (ポリゴン)の明度を算出する。このような幾何変 »ぴライティングの結果は ポリゴン構
造体配列及びスプライト構造体配列に欄される。
ステップ S4にて、 RPU9による描画処 ¾^行われる前に、 YSU19は、ソートルール 1〜4 に従って、ポリゴ^ ft造 ンスタンスおよびスプライト構造 ί材ンスタンスをソートする。
ステップ S5にて、 RPU9〖ま、 YSU19によるソート後のポリゴ:/ «造# ^ンスタンスおよぴス プライト構造 #^ンスタンスを読み出すとともに、テクスチャマッピングモードのポリゴン及び スプライトの属性を示すテクスチャアトリビュート構造体インスタンスを読み出しつつ、各水平 表示ラインのピクセルデータ列を生成する。また、テクスチャマッピングモードのポリゴン及 ぴスプライトのピクセルデータ列生成には、これらに貼り付けるテクスチャパターンデータを, 外部メモリ 50から読み出すことが必要とされる。このようなピクセルデータ列生成処理を「ラス タライジング」と呼ぶ。
本難の形態では、ポリゴンの描画モードとして、テクスチャマッピングを用いて描画を行う テクスチャマッピングモードと、グーローシェーディングを用レヽてポリゴンの描画を行うグー口 一シェーディングモードと、を実装している。テクスチャマッピングは、二次元の格子状に並 ベられたテクセルのパターンをポリゴン表面に貼り付ける描画手法である。グーローシエー デイングは、少ない個数のポリゴンで擬似的に滑らカな曲面を表現するために用いられるス ムーズシェーディングの一種である。グーローシェーディングでは、独立に指定されたポリゴ ンの頂点色を 線補完することでポリゴン内の各ピクセルの描画色を求める。
また、 RPU9は、シザリングを する。シザリングとは、ポリゴン及ぴスプライトのピクセル データ列生成時に、指定されたビューポートの領域からはみ出して ヽる部分 り取って表 示しなレ、ようにする処理である。生成されたピクセルデータ列は、 RPU9内のラインバッファ
LB1ある 、は LB2に書き込まれる力 この際に書き込みピクセルが半透明色に設定されて レ、る 、ラインバッファ内のピクセルのカラーと書き込みピクセルのカラーを混ぜ合わせる 力ラーブレンデイングが行われる。
ステップ S6にて、 RPU9は、ラインバッファ LB1あるいは LB2から表示 の各ピクセル の情報を読み出し、同期信号及ぴカラーバースト信号等を てコンポジットビデオ信号
のデジタルデータストリームを生成する。生成されたデータストリームは、ビデオ DAC29に 入力され、ビデオ DAC29からは、アナログのコンポジットビデオ信号が出力される。
次に、 RPU9の詳細を説明する。
図 12は、図 10の RPU9の内部構成を示すブロック図である。図 12に示すように、 RPU9 は、 RPU内メイン RAMアクセスアービタ 100、ポリゴンプリフェツチヤ 102、スプライトプリフ エツチヤ 104、マージソータ 106、プリフェッチバッファ 108、リサイクルバッファ 110、デプス コンパレータ 112、パーテックスソータ 114、バーテックスエキスパンダ 116、スライサ 118、 ピクセルステツパ 120、ピクセルディザ 122、テクセルマツパ 124、テクスチャキャッシュプロ ック 126、パイリニアフィルタ 130、カラープレンダ 132、ラインバッファプロック 134、ビデオ エンコーダ 136、ビデオタイミングジェネレータ 138、メモリマネージャ 140、及ぴ DMACィ ンタフェース 142を含む。ラインバッファブロック 134は、各々スクリーンの 1水平ラインに対 応するラインバッファ LB1及び LB2を含む。なお、図 12では、説明の便宜のため、カラーパ レット RAMI 1を RPU9に含めて記載してレヽる。
RPU内メイン RAMアクセスアービタ 100は、ポリゴンプリフェツチヤ 102、スプライトプリフ エツチヤ 104、及びメモリマネージャ 140からメイン RAM25へのアクセス要求を調停して、 いずれか〖こアクセス要求の許可を出す。許可されたアクセス要求は、メイン RAMアクセスァ ービタ 23に出力され、マルチメディアプロセッサ 1内の他の機能ユニットからのアクセス要求 との間で調停が行われる。
ポリゴンプリフェツチヤ 102は、メイン RAM25から、 YSU19によるソート後の各ポリゴン構 造 スタンスを取り込む。ポリゴンプリフェツチヤ 102には、 YSU19から、パルス PPLが 入力される。 YSU19は、ソートにおいて順位の高いもの力もポリゴン構造 ί材ンスタンスが 1 つ確定するたぴに、パルス PPLを出力する。従って、ポリゴンプリフェツチヤ 102は、ポリゴン 構造体配列の全ポリゴ^造 ί材ンスタンスのうち、 V、くつのポリゴン構造 #H スタンスのソ ートが完了したかを知ることができる。
このため、ポリゴンプリフェツチヤ 102は、全ポリゴ^ «造# ^ンスタンスのソートめ完了を待
つことなぐ順位の高いものカゝらポリゴン構造体インスタン が 1つ確定するたぴに、その都 度、ポリゴン構造体インスタンスを取得できる。その結果、フレームの表示中に、当該フレー ムのためのポリゴン構造 # ^ンスタンスのソートを行うことができる。また、インタレーススキヤ ンによる表示を行う にも、前述のモード 2 (図 9(b)参照)を用いることにより、フィールドの 表示中に当該フィールドのためのソートを行っても、正し!/、描画結果が得られる。なお、ポリ ゴンプリフェツチヤ 102は、ビデオタイミングジェネレータ 138力もの垂直走 ゥント信号 V Cから、フレームおよびフィールドの切り替わりを知ることができる。
スプライトプリフェツチヤ 104は、メイン RAM25から、 YSU19によるソート後の各スフ。ライト 構造 スタンスを取り込む。スプライトプリフェツチヤ 104には、 YSU19から、パルス SP Lが入力される。 YSU19は、ソートにぉ 、て順位の高 、ものからスプライト構造 ί材ンスタン スが 1つ確定するたぴに、パルス SPLを出力する。従って、スフ。ライトプリフェツチヤ 104は、 スプライト構造体配列の^ ブライト構造 # rンスタンスのうち、 、くつのスプライト構造 ί材 ンスタンスのソートが完了したかを知ることができる。
このため、スプライトプリフェツチヤ 104は、 プライト構造 ί材ンスタンスのソートの完了 を待つことなぐ順位の高レ、ものからスプライト構造 ί材ンスタンスが 1つ確定するたぴに、そ の都度、スプライト構造 ί材ンスタンスを取得できる。その結果、フレームの表示中に、当該 フレームのためのスプライト構造体インスタンスのソートを行うことができる。また、インタレ ススキャンによる表示を行う:^にも、前述のモード 2 (図 9 (b)参照)を用いることにより、フィ 一ルドの表示中に当^ ィールドのためのソートを行っても、正しい描画結果が得られる。な お、スプライトプリフェツチヤ 104は、ビデオタイミングジェネレータ 138からの垂直走^ 7ゥ ント信号 VCから、フレームおよびフィールドの切り替わりを知ることができる.。
ここで、ポリゴ^ «造体、テクスチャアトリビュート 造体、およぴスプライト構造体の構成に ついて詳しく説明する。
図 13は、テクスチャマッピングモードのポリゴン構造体の例示図である。図 13に示すように, 本 の形態では、このポリゴン構造体は、 128ビットで構成されて!/ヽる。このポリゴン構造
体のメンバ Typeは、ポリゴンの描画モードを示し、テクスチャマッピングモードのポリゴンに 対しては「0」が設定される。メンバ Ay, Ax, By, Bx, Cy及び Cxは、それぞれ、ポリゴンの、 頂 の Y座標、頂 の XJM標、頂点 Βの Υ座標、頂点 Βの 標、頂点 Cの Υ座標、及ぴ 頂点 Cの Xffi標を示す。これらの Y座標及ひ 標は、スクリーン座標系の値である。
メンバ Bw, Cw, Light及び Tsegmentは、それぞれ、ポリゴンの、頂;^ Bのパースぺクティ ブコレクト用パラメータ(=AzZBz)、頂点 Cのパースペクティブコレクト用パラメータ(二 Az /Cz)、明度、及びテクスチャパターンデータの ¾¾ί立置情報を示す。
メンバ Tattribute, Map, Filter, Depth及ひ Viewportは、それぞれ、テクスチャアトリビ ユート構造体のインデックス、テクスチャパターンデータのフォーマット ¾¾、ノ ィリニアフィ ルタリングあるいは二アレストネィパーのいずれかを示すフィルタリングモード、デプス値、 及ぴシザリングのビューポート指定情報を示す。パイリニアフィルタリング及び二アレストネィ バーについては後 ¾ ^る。
以上が、テクスチャマッピングモードのポリゴン構造体の各メンバの内容であり、 1つのポリ ゴン構造体のインスタンス (ポリゴン構造体に代入された値)により 1つのポリゴンが定義され る。
図 14は、テクスチャアトリビュート構造体の例示図である。図 14に示すように、本実施の形 態では、このテクスチャアトリビュート構造体は、 32ビットで構成されている。このテクスチャ アトリビュート構造体のメンバ Width, Height, M, N, Bit及び Paletteは、それぞれ、テク スチヤの幅 (単位:テクセル数)より「1」小さい値、テクスチャの高さ(単位:テクセル数)より 「1」小さ 、値、「Width」の上御ものマスクビット数、「Height」の上御らのマスクビット数、 カラーモード(1ピクセル当りのビット数一 1)、及びパレットプロックナンパを示す。カラーパレ ットの 512色のエントリは、選択されたカラーモードに応じて複数のプロックに分割されており、 メンバ Paletteにより、使用するパレットプロックが示される。
テクスチャアトリビュート構造体のインスタンスは、描画ポリゴン毎に 1つずつ用意されるも のではなぐ 64個のテクスチャアトリビュート構造 ンスタンス力 テクスチャ ッピングモ
一ドの全ポリゴ i造 ンスタンス及び^ ブライト構 5¾ ンスタンスで雜される。
図 15は、グーローシェーディングモードのポリゴン構造体の例示図である。図 15に示すよ うに、本実施の形態では、グーローシェーディングモードのポリゴン構造体は、 128ビットで 構成されており、メンバ Ax (11ビット), Ay (10ビット), Bx(llビット), By (10ビット), Cx(l 1ビット), Cy (10ビット), Ac (15ビット), Be (15ビット), Cc (15ビット), Depth (12ビット), Viewport (2ビット)及 O^Nalpha (3ビット)を有する。
メンバ Typeは、ポリゴンの描画モードを示し、グーローシェーディングモードのポリゴンに 対しては「1」が設定される。メンバ Ay, Ax, By, Bx, Cy及ぴ Cxは、それぞれ、ポリゴンの、 頂 の Y座標、頂 の XJM標、頂点 Βの Υ座標、頂点 Βの难標、頂点 Cの Υ座標、及ぴ 頂点 Cの X座標を示す。これらの Υ座標及ひ X座標は、スクリーン座標系の値である。
メンバ Ac, Be,及び Ccは、それぞれ、ポリゴンの、頂 ¾Aのカラーデータ (RGB各 5ビット)、 頂点 Bのカラーデータ (RGB各 5ビット)、及ぴ頂点 Cのカラーデータ (RGB各 5ビット)を示 す。
メンバ Depth, Viewport及ぴ Nalphaは、それぞれ、デブス値、シザリングのビューポート 指定情報、及びアルファプレンディングで使用する(1— α )を示す。 (l- α )は透明度を示 し、「000 (二進数)」が透明度 0%、すなわち完全不透明を表し、「111 (二進数)」が透明度 8 7. 5%を表す。
以上が、グーローシェーディングモードのポリゴン構造体の各メンバの内容であり、 1つの ポリゴン構造体のインスタンス (ポリゴン構造体に代入された値)により 1つのポリゴンが定義 される。
図 16 (a)は、シザリングディセーブル時のスプライト構造体の例示図、図 16 (b)は、シザリ ングイネーブル時のスプライト構造体の例示図である。図 16 (a)に示すように、本実施の形 態では、シザリングディセーブル時のスプライト構造体は、 64ビットで構成されている。この スプライト構造体のメンバ Ax及び Ayは、それぞれ、スフ。ライトの左上の Xffi標及ひ Ύ座標を 示す。これらの Y座標及ひ 標は、スクリーン座標系の値である。
メンバ Depth, Filter及び Tattributeは、それぞれ、デブス値、フィルタリングモード (バイ リニアフィルタリングあるいは二アレストネィパー)、及ぴテクスチャアトリビュート構造体のィ ンデックスを示す。メンバ ZoomX, ZoomY及び Tsegmentは、それぞれ、 X軸方向のスプ ライト拡大率 (雄率)、 Y#方向のスプライト拡大率 (雄率)、及びテクスチャパターンデー タの 立置†青報を示す。
図 16(b)に示すように、本»の形態では、シザリングイネーブル時のスフ。ライト構造体は、 64ビットで構成されている。このスプライト構造体のメンバ A S XAyは、それぞれ、スプラ イトの左上の x¾標及ひ Y座標を示す。これらの γ座標及ひ: 標は、スクリーン座標系の値 である。
メンバ Depth, Scissor, Viewport, Filter及び Tattributeは、それぞれ、デフ。ス値、シザ リング適用フラグ、シザリングのビューポート指定情報、フィルタリングモード (バイリニアフィ /レタリングある 、は二アレストネィバー)、及ぴテクスチャアトリビュート構造体のインデックス を示す。メンバ ZoomX, ZoomY及び Tsegmentは、それぞれ、 X軸方向のスプライト拡大 率 (纖率)、 Y軸方向のスプライト拡大率 (鎌率)、及ぴテクスチャパターンデータの搬内 位置情報を示す。
シザリングイネーブル時のスプライト構造体においては、シザリングディセーブル時のスプ ライト構造体に比べ、 X座標及ひ Ύ座標のビット数がそれぞれ 1ビット少ない。シザリングイネ 一ブル時にスフ。ライトがスクリーンに配置される際には、後述のパーテックスエキスパンダ 11 6によって、 X座標に 512ピクセル分のオフセット、 Y座標に 256ピクセル分のオフセットが加 えられる。また、デプス値のビット »1ビット少ないが、シザリングイネ一プル時には、後述 のテクセルマツパ 124によって、構造体に觸内されて ヽるデブス値の LSB側に 1ビットの「0」 が付加され、シザリングディセープル時と同様に 8 ットのデプス値として扱われる。
以上が、シザリングディセープル時及ぴシザリングイネ一プル時のスプライト構造体の各メ ンバの内容であり、 1つのスプライト構造体のインスタンス (スプライト構造体に代入された値) により 1つのスプライトが定義される。スプライトのテクスチャアトリビュート構造体の構成は、
図 14のポリゴンのテクスチャアトリビュート構造体の構成と.同じである。テクスチャァトリビュー ト構造体のインスタンスは、描画スプライト毎に 1つずつ用意されるものではなぐ 64個のテ タスチヤアトリビュート構造 ンスタンス力 テクスチャマッピングモードの全ポリゴ «造体 インスタンス及ぴ^ ブライト構造 ンスタンスで される。
図 12に戻って、マージソータ 106は、ポリゴンプリフェツチヤ 102及びスプライトプリフェツ チヤ 104から、それぞれ、ポリゴ «造 ί材ンスタンス及びそれに付随するテクスチャアトリビ ユート構造 # ンスタンス、並びに、スプライト構造 # ^ンスタンス及ぴそれに付随するテクス チヤアトリビュート構造 # ^ンスタンスを受け取り、 _ ϊϋした YSU19によるソートルール:!〜 4 と同じソートルール 1〜4に従って、マージソートを実行し、結果をプリフェッチバッファ 108 に送出する。
つまり、マージソータ 106は、ソートルール 1〜4に ί^ て、ポリゴ ^!造 ンスタンス ¾1 択した^^、テクスチャマッピングモードのポリゴンについては、ポリゴン構造体インスタンス をポリゴン/スプライトデータ PSD (128ビット)として、それに付随するテクスチャアトリビュ ート構造 # ^ンスタンスをテクスチャアトリビュート構造 ί材ンスタンス ΤΑΙ (32ビット)として、 プリフェッチバッファ 108に出力する。
また、マージソータ 106は、ソートルール 1〜4に従って、ポリゴン構造 ί材ンスタンスを選 択した 、グーローシェーディングモードのポリゴンについては、ポリゴン構造体インスタ ンスをポリゴン/スプライトデータ PSD (128ビット)として、テクスチャアトリビュート構造 ί材 ンスタンス ΤΑΙ (32ビット)の全ビットを「0」として、プリフェッチバッファ 108に出力する。 —方、マージソータ 106は、ソートルール 1〜4に従って、スプライト構造 # Γンスタンスを 選択した^、スフ。ライト構造体インスタンスをポリゴン Zスプライトデータ PSD (128ビット) として、それに付随するテクスチャアトリビュート構ίί材ンスタンスをテクスチャアトリビュート 構造 ί材ンスタンス ΤΑΙ (32ビット)として、プリフェッチバッファ 108に出力する。ただし、この : ^のポリゴン/スプライトデータ PSDは、有効データ力 SLSBから詰められ、上位 64ビット は「0」を示す。
上で詳述したプリフェッチバッファ 108は、マージソー 106から、マージソート後の構造
# rンスタンス (つまり、ポリゴン zスプライトデータ PSD及びテクスチャアトリビュート構造体 インスタンス TAI)を順次読み込み、読み込んだ順番で構造 ンスタンスを出力する FIFO (first— in first— out)構造のバッファである。つまり、プリフェッチバッファ 108には、マー ジソータ 106により並べ替えられた順番で構造インスタンスが搬内される。そして、編内され た構造インスタンスは、対応するポリゴンあるレ、はスプライトの表示のための描画サイクルに おいて、編内された順番で出力される。なお、プリフェッチパッファ 108は、ビデオタイミング ジェネレータ 138からの垂直走 ゥント信号 VCから、描画中の水平ラインを知ることがで きる。つまり、描画サイクルの切り替わりを知ることができる。本»の形態では、例えば、プ リフエツチバッファ 108は、物理的にはリサイクルバッファ 110とパッファを共有することが可 能であり、リサイクルパッファ 110のエントリ数 ¾Τ ^め、(128ビット +32ビット) X 128エントリ とする。
上で詳述したリサイクルバッファ 110は、次の描画サイクルでも棚される (つまり、再利用 できる)構造 ί材ンスタンス (つまり、ポリゴン Ζスプライトデータ PSD及びテクスチャアトリビ ユート構造 ί材ンスタンス ΤΑΙ)を、スライサ 118から受け取って櫞内する FIFO構造のパッフ ァである。従って、リサイクルバッファ 110に觸内された構造^ンスタンスは、次の描画サイ クルで使用される。本難の形態では、例えば、リサイクルバッファ 110は、物理的にはプリ フェッチバッファ 108とバッファを することが可能であり、プリフェッチバッファ 108のェン トリ数 ¾Τ ^め、(128ビット +32ビット) X 128エントリとする。
上で詳述したデプスコンパレ一タ 112は、プリフェッチバッファ 108の先頭の構造 ンス タンスに含まれるデプス値と、リサイクルバッファ 110の先頭の構造 ί材ン タンスに含まれ るデプス値と、を比較して、より大きなデブス値を持つ (つまり、より奥に表示されるべき)構造 f材ンスタンスを選択して、後段に出力する。この齢、デプスコンパレータ 112は、選択し た構造体インスタンスがポリゴン構造体 ンスタンスの ^は、バーテックスソータ 114へ出 力し、スプライト構造体インスタンスの場合は、バーテックスエキスパンダ 116に出力する。ま
た、デプスコンパレータ 112は、選択した構造 ンスタンスをスライサ 118に出力する。な お、デプスコンパレータ 112は、ビデオタイミングジェネレータ 138からの垂直走 ゥント 信号 VCから、描画中の水平ラインを知ることができる。つまり、描画サイクルの切り替わりを 知ることがでさる。
バーテックスエキスパンダ 116は、受け取ったスプライト構造 ί材ンスタンスに含まれる、ス プライトの左上の頂点座標 (Ax, Ay)、 Y軸方向の拡大率 ZoomY、及ひ 軸方向の 大率 ZoomX、並びに、当 ブライト構造^ fンスタンスに付随するテクスチャアトリビュート構造 ンスタンスに含まれる、テクスチャの幅より「1」小さ 、iiWidth及び高さより「1」小さ 、値 Heightに基づいて、当該スプライトの頂点の座標 (スクリーン座標系における XY座標およ ぴ UV座標系における UV座標)を算出し、ポリゴン Zスフ。ライト共通データ CI (208ビット)と してスライサ 118へ出力する。ただし、ポリゴン Zスプライト共通データ CIの後述のフィール WG* (* =0, 1, 2)は、常に「0x0040」 (=1. 0)として出力される。バーテックスエキス パンダ 116が出力するポリゴン Zスプライト共通データ CIの構造 (形式)は、ノーテックスソ ータ 114が出力するポリゴン Zスプライト共通データ CIの構造 (形式)と同じである。
パーテックスエキスパンダ 116は、受け取ったスプライト構造体インスタンスに含まれる、ス プライトの左上の頂点座標 (Ax, Ay)、 Y軸方向の拡大率 ZoomY、及ひ X軸方向の拡大率 ZoomX、並びに、当^ ブライト構造 Wンスタンスに付随するテクスチャアトリビュート構造 f材ンスタンスに含まれる、テクスチャの幅より「1」小さ ヽィ SWidth及び高さより「1」小さ!/、値 Heightに基づいて、当該スプライトの頂点の座標 (スクリーン座標系における Y座標およ ぴ UV座標系における UV座標)を算出し、ポリゴン Zスプライト共通データ CI (208ビット)と してスライサ 118へ出力する。ただし、ポリゴン Zスプライト共通データ CIの後述のフィール ド WG* (* =0, 1, 2)は、常に「0x0040」(=1. 0)として出力される。パーテックスエキス パンダ 116が出力するポリゴン/スプライト共通データ CIの構造 (形式)は、パーテックスソ ータ 114が出力するポリゴン/スプライト共通データ CIの構造 (形 5 と同じである。
ここで、スクリーン座標系は上述の通りである。 UV座標系は、テクスチャを構成する各テク
セノレが、ポリゴンある 、はスプライトにマッピングされる態様で配置される二次元直 ¾ ^標系 である。
バーテックスソータ 114は、受け取ったポリゴン構造体インスタンス及びそれに付随するテ クスチヤアトリビュート構造インスタンスから、ポリゴンの各頂点のパラメータ (XYUV座標、 パースペクティブコレクト用パラメータ、及びカラーデータ)を取得及ぴ算出し、各頂点のパ ラメータを γ座標が小さ ヽ職こ並べ替えて、ポリゴン/スフ。ライト共通データ CIとしてスライサ
118へ出力する。頂点の出 ?1)噴は、早いほうから頂点 0、頂点 1、及ぴ頂点 2とする。
つまり、テクスチャマッピングモードでは、パーテックスソータ 114は、演算結果、つまり、各 頂点 0〜2のパラメータ (XY座標、パースペクティブコレクト後の UV座標、及びパースぺク ティブコレクト用パラメータ)を、ポリゴン Zスプライト共通データ CIとして、スライサ 118に出 力する。
また、グーローシェーディングモードでは、パーテックスソータ 114は、演算結果、つまり、 各頂点 0〜2のパラメータ (XY座標、及びカラーデータ)を、ポリゴン Zスプライト共通データ CIとして、スライサ 118に出力する。
パーテックスソータ 114が出力するポリゴン/ /スプライト共通データ CIの構成 (形式)は、パ 一テックスエキスパンダ 116が出力するポリゴン/スプライト共通データ CIの構成 (形式)と 同じである。
パーテックスソータ 114及びパーテックスエキスパンダ 116が出力するポリゴン Zスプライ ト共通データ CIの構成を説明する。ポリゴン Zスプライト共通データ CIは、フィールド F(lビ ット), WG * (各 16ビット), VR * (各 16ビット), UB * (各 16ビット), Y * (各 10ビット)及び X* (各 11ビット)力もなる (計 208ビット)。 * =0, 1, 2であり、頂点を示す。.
フィーノレド Fは、ポリゴン Zスフ。ライト共通データ CI力 ポリゴンについてのものである力、 スプライトについてのものである力、を示すフラグフィールドである。従って、パーテックスソ ータ 114は、ポリゴンを示す「1 Jをフィールド Fに櫞内する。一方、バーテックスエキスパンダ 116は、スプライトを示す「0」をフィールド F ¾内する。
パーテックスエキスパンダ 116から出力されるポリゴン スブライト共通データ CIでは、フィ ール KVR* , UB *, Y*及ひ X*は、それぞれ頂点 *の V座標、 U座標、 Y座標、及ひ X 座標である。この^ \フィーノレ WG *には、「0x0040」(= 1. 0)が觸内される。 ±M,† ように、頂点 *の出 ¾J噴は、早いほうから頂点 0、頂点 1、及び頂点 2である。
パーテックスソータ 114から出力される、テクスチャマッピングの纖であるポリゴン Zスプ ライト共通データ CIでは、フィールド WG * , VR * , UB * , Y *及び X *は、それぞれ頂 点 *のパースペクティブコレクト用パラメータ、パースペクティブコレクト済み V座標、パース ぺクティブコレク 済み U座標、 Y座標、及ひ 標である。
パーテックスソータ 114から出力される、グーローシェーディングの対象であるポリゴン Z スフ。ライト共通データ CIでは、フィール KWG *, VR *, UB *, Y *及ひ X *は、それぞれ 頂点 *の誠分、赤成分、青成分、 Y座標、及ひ¾¾標である。
図 17〜図 19を用いてスライサ 118の動作を説明する。図 17は、スライサ 118による、グー ローシェーディングモードのポリゴンに る処理の説明図である。図 17に示すように、スラ ィサ 118は、与えられたポリゴン Zスプライト共通データ CIにより定義されるポリゴン (三角 形)と、描画対象の水平ラインと、の交点の XY座標 (Xs, Ys)及び (Xe, Ye)を求める。ここで、 ポリゴンに対しては、描画文豫の水平ラインと交わらな!/、辺が する側の交点を終端 (Xe, Ye)とし、当該辺が據しなレ、側の交点を始端 (Xs, Ys)とする。
そして、スライサ 118は、描画 Y座標 Yr力 SY0≤Yrく Y1の範囲では、頂点 0の RGB値 (V RO, WGO, UB0)及ぴ頂点 2の RGB値 (VR2, WG2, UB2)に基づいて、 ί 補間により、 交点始端の RGB値 (Rs, Gs, Bs)を算出するとともに、頂点 0の RGB値 (VR0, WGO, UB
0)及び頂点 1の RGB値 (VR1, WG1, UB1)に基づいて、直線補間により.、交点終端の RG
Bit (Re, Ge, Be)を算出する。また、スライサ 118は、描画 Y座標 Yrが Yl≤Yr≤Y2の範 囲では、頂点 0の RGB値 (VRO, WGO, UB0)及び頂点 2の RGB値 (V 2, WG2, UB2) に基づいて、 補間により、交点始端の RGB値 (Rs, Gs, Bs)を算出するとともに、頂点 1 の RGB値 (VR1 , WG1, UB1)及び頂点 2の RGB値 (VR2, WG2, UB2)に基づ!/、て、直
線補間により、交点終端の RGB値 (Re, Ge, Be)を算出する。
そして、スライサ 118は、 AR、 AG、 ΔΒ及び AXgを算出する。ここで、 AR、 AG, ΔΒは. 描画練の水平ラインにおける AXgあたりの R、 G、 Bそれぞれの変化量であり、 ΔΧ§は、 描画 の水平ラインにおける 1ピクセルあたりの 標の変化量である。 AXgは、「+1」ま たは「—1」のいずれかとなる。
Δ R= (Re— Rs) / (Xe— Xs)
厶 G= (Ge— Gs) Z (Xe— Xs)
Δ B= (Be-Bs) / (Xe.— Xs)
AXg= (Xe-Xs)/ I Xe-Xs |
スライサ 118は、デブスコンパレータ 112から受け取った構造 ンスタンスと共に、算出 した Xs, Rs, Gs, Bs, Xe, AR, AG, ΔΒ及ぴ AXgを、ピクセルステツパ 120へ送出する c また、スライサ 118は、パーテックスソータ 114から受け取ったポリゴン/スプライト共通デー タ CIが、次の描画サイクルでも使用される は、リサイクルバッファ 110に、デプスコンパ レータ 112から受け取った構造 ί材ンスタンスを書き込む。なお、ビデオタイミングジエネレ ータ 138からの垂直 ¾ ^ゥント信号 VC及ぴポリゴンの頂点座標から、次の描画サイクルで の使用の有無を知ることができる。
図 18は、スライサ 118による、テクスチャマッピングモードのポリゴンに る処理の説明 図である。図 18に示すように、スライサ 118は、与えられたポリゴン Zスプライト共通データ C Iにより定義されるポリゴン (三角形)と、描画通の水平ラインと、の交,髓標である始端 C¾ Ys)及ぴ終端 (Xe, Ye)を求める。この点は、グーローシェーディングモードのポリゴンに対 する処理と同じである。
ここで、パースペクティブコレクト機能について説明する。透視 変換された三次元ィメ ージを表現するテクスチャマッピングにお 、て、スクリーン上の描画ピクセルに対応するテク セルを、ポリゴンの各頂点座標に対応する、 UV空間のテクスチャの各頂点座標の^ ¾る線 开缩完によって求めると、マッピングされたイメージが歪んでしまうことがある。こめ歪みを解
消するのがパースペクティブコレクト機能であり、具体的.には、以下のような処理が行われ. る。
ポリゴンの各頂 ¾A, B, Cを UV空間へ写像したときの座標を、(Au, Av) , (Bu, Bv) , (C u, Cv)とする。また、各頂 ¾A, B, Cのビュー座標を (Ax, Ay, Az) , (Bx, By, Bz), (Cx, Cy, Cz)とする。そして、 (Au/Az, Av/Az, 1/Az) , (Bu/Bz, Bv/Bz, l/Bz) , (C u/Cz, Cv/Cz, lZCz)の線开繩間によつて求められた値 (uZz, vZz, lZz)の u/zに Ι,ζの逆数を乗じた値 uおよび vZzに lZzの逆数を乗じた値 v、つまり (u, V)をテクセノレ座 標 (U, V)としてテクセルデータを取得することにより、進職変換後の正確なテクスチャ マッピングを実現する。ここで、ビュー座標とは、ビュー座標系の座標である。ビュー座標系 は、 XYZの三軸から) ^三次元直»標系であり、視点を原点とし、機を Z軸の正とする。 本難の形態では、 1/Az, l/Bz, 1/Czを頂点毎に設定する代りに、それぞれの値に Azを掛け合わせた値、すなわち、 Az/Az(=Aw) , Az/Bz(=Bw) , Az/Cz (=Cw)を ポリゴン構造体に設定する (図 13参照 )0但し、頂,^ A ¾ "るパラメータ Awは常に「1」とな るため、ポリゴン構造体には設定しない。
従って、本実施の开多態では、(Au'Aw, AvAw, Aw) , (Bu-Bw, BvBw, Bw) , (Cu- Cw, CvCw, Cw)の,線开^ t間によつて求められた値 (u'w, v , w)の u'wに 1/wを乗 じた値 uおよび vwに lZwを乗じた値 v、つまり (u, V)をテクセル座標 (U, V)としてテクセ ルデータを取得することにより、 »S ^変換後の正確なテクスチャマッピングを ¾?¾する。 このことを念項においた上で、スライサ 118は、描画 Y座標 Yrが YO≤Yrく Y1の範囲では、 頂点 0の (UBO, V O, WG0)、及び頂点 2の(UB2, VR2, WG2)に基づ!/、て、直線補間 により、交点始端の(Us, Vs, Ws)を算出するとともに、頂点 0の(UBO, VRO, WG0)、及 ぴ頂点 1の (UB1, VR1, WG1)に基づいて、直線補間により、交点終端の (Ue, Ve, We) を算出する。また、スライサ 118は、描画 Y座標 Yrが Yl≤Yr≤Y2の範囲では、頂点 0の (U
BO, VRO, WG0)、及び頂点 2の (UB2, VR2, WG2)に基づいて、直線補間により、交点 始端の (Us, Vs, Ws)を算出するとともに、頂点 1の (UB1, VR1, WG1)、及び頂点 2の (U
B2, V 2, WG2)に基づいて、直線補間により、交点終竭の (Ue, Ve, We)を算出する。 このことを、頂点間の Y座標が By≤Ayく Cyであり、描画 Y座標 Yrが Yl Yr≤Y2の範 囲である場合を例に挙げて説明する。そうすると、スライサ 118は、頂点 0の (UBO, VRO, WGO) = (Bu-Bw, BvBw, Bw)、及ぴ頂点 2の (UB2, VR2, WG2) = (Cu-Cw, CvC w, Cw)に基づ ヽて、纖補間により、交点始端の (Us, Vs, Ws)を算出するとともに、頂点 1の(UB1, VR1, WG1) = (Au-Aw, AvAw, Aw)、及び頂点 2の (UB2, V 2, WG2) = (Cu-Cw, CvCw, Cw)に基づいて、 I 補間により、交点終端の (Ue, Ve, We)を算 出する。
次に、スライサ 118は、 Δυ、 Δν、 AW及ぴ AXtを算出する。ここで、 Δυ、 Δν、 AWは, 描画 ¾· ^の水平ラインにおける ΔΧΐあたりの U座標 (=u'w)、 V座標(=vw)、パースぺク ティブコレクト用パラメータ W(=w)それぞれの変化量であり、 AXtは、描画^の水平ライ ンにおける 1ピクセルあたりの X座標の変化量である。 AXtは、「+ 1」または「一 1」のいずれ かとなる。
AU= (Ue-Us)/(Xe-Xs)
AV= (Ve -Vs) / (Xe— Xs)
AW= (We -Ws) / (Xe— Xs)
AXt= (Xe-Xs)/ I Xe— Xs |
スライサ 118は、デプスコンパレータ 112から受け取った構造 ί材ンスタンスと共に、算出
L cXs, Us, Vs, Ws, Xe, Δυ, AV, AW及ぴ厶 Xtを、ピクセルステッパ 120へ送出する c また、スライサ 118は、バーテックスソータ 114から受け取ったポリゴン Zスプライト共通デー タ CIが、次の描画サイクルでも使用される^^は、リサイクルバッファ 110に、デプスコンパ レータ 112から受け取った構造 ί材ンスタンスを書き込む。なお、ビデオタイミングジエネレ ータ 138からの垂直^^ゥント信号 VC及ぴポリゴンの頂 標から、次の描画サイクルで の使用の有無を知ることができる。
図 19は、スライサ 118によるスプライトに る処理の説明図である。図 19に示すように、
スライサ 118は、与えられたポリゴン Zスプライト共通データ CIにより定義されるスプライト (麵)と、描画 の水平ラインと、の交,鍵標 (Xs, Ys)及ぴ (Xe, Ye)を求める。ここで、 スプライトに対しては、先に描画される側の交点を始端 (Xs, Ys)とし、後に描画される側の 交点を終端 (Xe, Ye)とする。
スプライトの各頂点 0, 1, 2, 3を UV空間へ写像したときの座標は、(UB0, VRO) , (UB1, VR1) , (UB2, VR2) , (UB3, VR3)である。ここで、 UB3, VR3はスライサ 118に入力さ れなレ、が、それぞれ下記のようにスライサ 118内で求められる。
UB3=UB1
VR3=VR2
スライサ 118は、頂点 0の(UBO, V 0)及ぴ頂点 2の (UB2, VR2)に基づいて、麵補 間により、交点始端の UV座標 (Us, Vs)を算出するとともに、頂点 1の (UB1, VR1)及ぴ頂 点 3の (UB3, VR3)に基づいて、歸泉補間により、交点終端の UV座標 (Ue, Ve)を算出す る。
そして、スライサ 118は、 AUおよび AVを算出する。ここで、 Δυ、 Δνは、描画通の水 平ラインにおける AXsあたりの U座標、 V座標それぞれの変化量である。 AXsは、描画対 象の水平ラインにおける 1ピクセルあたりの 標の変化量である力 常に「1」となるので、 算出は行わない。
Δ U= (Ue— Us) / (Xe— Xs)
Δ V= (Ve— Vs) Z (Xe一 Xs)
AXs= (Xe-Xs)/ I Xe— Xs | =1
スライサ 118は、デプスコンパレータ 112から受け取った構造 f材ンスタンスと共に、算出 し;^ Xs, Us, Vs, Xe, Δυ, AV及び厶 Xsを、ピクセルステツパ 120へ送出する。また、スラ ィサ 118は、バーテックスエキスパンダ 116から受け取ったポリゴン Zスプライト共通データ
CIが、次の描画サイクルでも使用される齢は、リサイクルバッファ 110に、デブ コンパレ ータ 112から受け取った構造 ί材ンスタンスを書き込む。なお、ビデオタイミングジエネレー
タ 138からの垂直走 ゥント信号 VC及ぴスプライトの 標から、次の描画サイクルで の使用の有無を知ることができる。
ここで、スライサ 118は、ポリゴン/スプライト共通データ CIのフィールド Fから、ポリゴンお よぴスプライトの別を認識でき、ポリゴン構造体インスタンスのメンバ Typeから、グーローシ エーデイング及びテクスチャマッピングの另 IJを認識できる。
図 12に戻って、ピクセルステツパ 120は、グーローシェーディングモードのポリゴンについ ては、スライサ 118から与えられたパラメータ (Xs, Rs, Gs, Bs, Xe, AR, A G, ΔΒ及ぴ AXg)から、描画文檢ピクセルの描画难標と RGB値を求め、(1— )値とともにピクセル ディザ 122に送出する。具体的には、ピクセルステツパ 120は、交点の始端 (描画開始端) X sの赤成分 Rsに、 1ピクセル当たりの赤成分の変化量 ΔΙを順^/口えていき、各ピクセルの 赤成分 RXを求める。この処理を、交点の終端 (描画終了端) Xeに到針るまで行う。緑成分 GX¾^青成分 BXについても同様である。また、交点の始端 Xsに AXsを順 卩えていき、 描画 j¾標 Xrを求める。なお、 X=0〜 I Xe-Xs |であり、 ある。
RX== AXg- AR-X+Rs
GX= AXg- AG-X+Gs
BX= AXg- AB-X+Bs
Xr= AXs-X+Xs
ピクセルステツパ 120は、求めた各ピクセルの RGB値 (RX, GX, BX)、並びに描画 Xl¾標 rを、(1— 幽ぴにデブス値 (Depth)とともに、ピクセルディザ 122に出力する。
また、ピクセルステツパ 120は、テクスチャマッピングモードのポリゴンにつ V、ては、スライ サ 118から与えられたパラメータ (Xs, Us, Vs, Ws, Xe, Δυ, AV, 1^ ら、 描画豫ピクセルを UV空間へ写像したときの座標' (U, V)を求める。具体的には、ピクセル ステツパ 120は、交点の始端 (描画開始端) Xsのパースペクティブコレクト用パラメータ Wsに-
1ピクセル当たりのパースペクティブコレクト用パラメータの変化量 AWを順 ¾fo¾えていき、 各ピクセルのパースペクティブコレクト用パラメータ WXを求める。この処理を、交点の終端
(描画終了端) Xeに到針るまで行う。なお、 X=0〜 I Xe— Xs |であり、 MfCある。
X= AXt- AW-X+Ws
ピクセルステッパ 120は、交点の始端 (描画開始端) Xsの U座標(-u'w)Usに、 1ピクセ ル当たりの U座標の変化量 ΔΙΤを順次加えていき、求めた値に WXの逆数を掛け合わせ、 各ピクセルの U座標 UXを求める。この処理を、交点の終端 (描画終了端) Xeに到 るま で行う。 V座標 (=vw)VXについても同様である。また、交点の始端 Xsに厶 Xsを順 口え ていき、描画 X¾t!Xrを求める。なお、 X=0〜 I Xe— Xs |であり、 ある。
VX= (AXt- AV-X+Vs)♦ (1/WX)
Xr= AXs-X+Xs
ピクセルステツパ 120は、求めた各ピクセルの UV座標 (UX, VX)並びに描画 X座標 ^Xrを, スライサ 118から受け取った構造インスタンス (テクスチャマッピングのポリゴン構造 ン スタンス及びテクスチャアトリビュート構造 #^ンスタンス)とともにテクセルマツパ 124に出力 する。
さらに、ピクセルステツパ 120は、スプライトについては、スライサ 118から与えられたスプ ライトのパラメータ (Xs, Us, Vs, Xe, Δυ, Δν及び AXs)から描画舰ピクセルを UV空 間へ写像したときの座標 (U, V)を求める。具体的には、ピクセルステツパ 120は、交点の始 端 (描画開始端) Xsの U座標 Usに、 1ピクセル当たりの U座標の変化量 AUを順 Pえてい き、各ピクセルの U座標 UXを求める。この処理を、交点の終端 (描画終了端) Xeに到針る まで行う。 V座標 VXにつ!/ヽ T¾同様である。また、交点の始¾¾に AXs、すなわち「1」を順 卩えていき、描画 標 Xrを求める。なお、 X=0〜 I Xe— Xs |であり、 Mr ある。 UX= AXs- AU-X+Us
VX= AXs- AV-X+Vs
Xr=X+Xs
ピクセルステッパ 120は、求めた各ピクセルの UV座標 (UX, VX)、並びに描画 X ^標 Xr
を、スライサ 118から受け取った構造インスタンス (スプ イト構造 ンスタンス及びテク スチヤアトリビュート構造 H スタンス)とともにテクセルマツパ 124に出力する。
ピクセルディザ 122は、ピクセルステツパ 120力ち与えられた RGB値の小数部にノイズを 加え、マッハパンドを目立たなくするディザリングを実行する。なお、ピクセルディザ 122は、 ディザリング後のピクセルの RGB値を、 mx mxr, (ι— ά )値,及びデプス値とともに力 ラーブレンダ 132に出力する。
図 20は、ピクセルディザ 122によるディザリングの説明図である。図 20に示すように、ディ ザパターンは、 2 X 2の格子状のピクセルプロックを単位として RPU9の制御レジスタ(図示 せず)に設定される。描画ピクセルのスクリーン座標系 Υ座標の LSBの値によって、 4つの パターン「00」, 「01」, 「10」, 「11」のどれが適用される力が決定される。
各パターンは 2ビットの大きさで、 RGB値のそれぞれの小数部に加算される。加算の結果、 難部へのキャリー力 S発生する には、キャリーが難部に加算される。実際に表示色と して用レ、られる部分《RGB値の通部であるので、ディザパターンとして設定した値が全て 同じでない限り、色の境界部にノイズが 、マッハパンドを目立たなくする。
図 12に戻って、テクセルマツパ 124は、テクスチャアトリビュート構造体のメンバ Filterが 「0」を示してレヽる ^1こは座標 (UX, VX)の近傍 4つのテクセルデータを指し示す 4組のヮ 一ドアドレス WADとビットアドレス BADを、メンバ Filter力 「1」を示して 、る^ 1こは座標 (UX, VX)に最も近い 1つのテクセルデータを指し示す 1組のワードアドレス WADとビット アドレス BADを算出して出力する。また、メンバ Filterが「0」を示している^^には、パイリ ニァフィルタリングにおける各テクセルの係数部に相当するバイリニアフィルタパラメータ BF Pを算出して出力する。更に、シザリングイネ一プル時のスプライトと、シザリングディセーブ ル時のスプライトと、ポリゴンとで互!/、に るデフ。ス値 (メンバ Depth)の形式を統一して出 力する。
テクスチャキャッシュプロック 126は、テクセルマツパ 124から出力されたワードアドレス W AD、ビットアドレス BAD、構造 ί材ンスタンスのメンバ Tsegmentから、各テクセルのァドレ
スを算出する。算出されたアドレスが指し示すテクセルデータが既にキャッシュに!^内され てレ、る齢、撫内されてレ、るテクセルデータ及びアトリビュート構造体のメンバ Paletteから、 カラーパレット RAMI 1のエントリを選択するインデックスを生成し、カラーパレット RAMI 1 に出力する。
一方、当該テクセルデータが、キャッシュに ¾内されていない場合は、テクスチャキヤッシ ュブロック 126は、メモリマネージャ 140に対して、テクセルデータの取 示を出す。メモリ マネージャ 140は、メイン RAM25から該当するテクスチャパターンデータを取得して、テク スチヤキャッシュプロック 126のキャッシュに H内する。また、メモリマネージャ 140は、マー ジソータ 106からの指示で、後段で必要になるテクスチャパターンデータを、外部メモリ 50 力ち取得して、メイン RAM25に觸内する。
この際、メモリマネージャ 140は、テクスチャマッピングモードのポリゴン用のテクスチャパ ターンデータについては、 1ポリゴンにマッピングされるデータ全体を一括して取得し、メイン RAM25に棚するのに対し、スプライト用のテクスチャパターンデータについては、 1スプ ライトにマッピングされるデータをライン単位で取得し、メイン RAM25に搬内する。これは、 描画 の水平ラインに^ ¾れるピクセル群を UV空間に写像すると、ポリゴンの は UV 空間中のあらゆる雌上に写像される可能性があるのに対し、スプライトの は u軸に平 行な smtにのみ写像される力もである。
本実施の形態では、テクスチャキャッシュブロック 126のキャッシュは、 64ビット X 4エントリ とし、プロック置換アルゴリズムは、 LRU (least recently used)とする。
カラーパレット RAMI 1は、テクスチャキャッシュプロック 126から入力されたテクセルデー タとメンバ Paletteとが連接されたインデックスが示すエントリに含まれる RGB做び半透明 合成のための(1— α )値を、バイリニアフィルタ 130に出力する。バイリニアフィルタノヽ。ラメ一 タ BFP、デプス値、及び描画 X座標 Xrについては、そのままパイリニアフィルタ 130に出力 される。
バイリニアフィルタ 130は、バイリニアフィルタリングを実行する。テクスチャマッピングにお
いて、最も単純なピクセル描画色の算出方法は、 UV空間に写像されたピクセル座標 (UX,
VX)に最も近いテクセル座標に位 m~るテクセルのカラーデータを取得し、取辱したカラー' データ力 ピクセルの描画色を算出する方法である。この手法を「二アレストネィパ一」と呼 ぶ。
但し、隣り合うピクセルを UV空間に写像した際の 2点間の距离! ¾ 1テクセル分の り極 めて小さい場合、すなわち、スクリーン上でテクスチャが大きく拡大されてマッピングされる場 合には、二アレストネィパーではテクセルの:^が明瞭に表示されてしまうため、粗いモザィ ク状のテクスチャマッピングとなってしまう。このような問題^消する手法として、パイリニア フィルタリングを節する。
図 21は、パイリニアフィルタ 130によるパイリニアフィルタリングの説明図である。図 21に示 すように、パイリニアフィルタ 130は、 UV空間に写像されたピクセル座標 (UX, VX)の近傍 4テクセルの RGBiiS!Kl—ひ)値のカロ重平均を算出し、ピクセルの描画色を決定する。こ れにより、テクセルのカラーが滑らかに補完され、マッピング結果におけるテクセルの境界が 目立たなくなる。具体的には、バイリニアフィルタリングは次式 (パイリニアフィルタリングの 式)により節される。ただし、次式にぉレヽて、「u」は U座標 UXの小数部、「v」は V座標 VX の小数部、「nu」は(1— u)、「nv」は(1— v)、である。
R=R0-nu-nv+Rl -u-nv+R2-nu'v+R3-u'v
G=G0-nu-nv-t-Gl-u-nv+G2-nu-vH-G3-u-v
B=B0-nu-nv+Bl -u-nv+B2-nu-v+B3'U-v
Α=Α0·ηιι·ην+Α1 ·ιι·ην+Α2·ηιι·ν+Α3·ιι·ν
ここで、 R0, Rl, R2及ひ Ί 3は、それぞれ、上言 S4テクセル 0R値であり、 GO, Gl, G2及 び G3は、それぞれ、上 テクセルの G値であり、 BO, Bl, B2及ぴ B3は、それぞれ、上記 4テクセルの B値であり、 AO, Al, A2及び A3は、それぞれ、上曾 B4テクセルの(1— α )値 である。
バイリニアフィルタ 130は、算出したピクセルの RGB値並びに Α値 (つまり(1一 α )値)を、
デプス雜ぴに描画 i¾標 xとともに、力ラーブレンダ 132に出力する。
図 12を参照して、カラープレンダ 132の説明の前に、ラインバッファプロック 134について 説明する。ラインバッファプロック 134は、ラインバッファ LB1及ひ 1LB2^"み、一方のライン パッファが表示用に棚されているときは、 »のラインバッファカ描画用に使用され、表示 用と描画用とを交互に切り替えて使用するダブルバッファ方式を採用する。表示用に使用さ れて ヽるラインバッファ LB1ある ヽは LB2は、ビデオタイミングジェネレータ 138からの水平 走査カウント信号 HC及ぴ垂直走査カウント信号 VCに従って、ピクセルごとの RGB値を、ビ デォエンコーダ 136に出力する。
力ラーブレンダ 132は、半透明合成を箭する。具体的には、次の通りである。カラープレ ンダ 132は、ピクセルディザ 122あるいはパイリニアフィルタ 130から与えられたピクセルの RGBifi¾び (1— α Μ直と、描画 ¾ ^のラインバッファ LBの描画^ピクセル位置 (描画 標^ rが示すピクセル)に!^内されている RGB値とを用い、次式により、アルファブレンディン グを節し、結果を同じラインバッファ LBの描画舰ピクセル位置に書き込む。
Rb=Rf- (l- ar) +Rr
Gb=Gf- (l- ar) +Gr
Bb=Bf- (l- a r) +Br
b= ί· (1— ar + a r
ここで、「l—a r」は、ピクセルディザ 122あるいはバイリニアフィルタ 130から与えられた (1— a )値である。「Rr」、「Gr」及ぴ「Br」は、それぞれ、ピクセルディザ 122あるいはパイリ ニァフィルタ 130力ら与えられた RGB値である。「Rf J、「Gf」及び「Bf」は、それぞれ、描画 用に使用されて V、るラインバッファ LBの描画 ピクセル位動 取得し fcRGB値である。 一般的なアルファブレンデイングのアルゴリズムにおいては、上式の Rr, Gr,および Brの項 は、それぞれ Rr. ar、 Gr- a r,および Br' a rとなる力 本難の形態では、予め Rr. α τ, G r- α τ,および Br' a rの計算結果を Rr、 Gr、および Brとして用意しておくことによ''り、演算回 路の簡 ヒを行っている。
ビデオエンコーダ 136は、表示用に使用されているライ バッファ LB1あるいは LB2から 入力され RGB値と、ビデオタイミングジェネレータ 138から入力されたタイミング情報 (複 合同期信号 SYN、複合プランキング信号 BLK、パーストフラグ信号 BST、及びライン交番 信号 LA等)と、を信号 VSに対応したコンポジットビデオ信号を表すデータストリーム VDに 変換する。信号 VSは、テレビジョン; ¾¾(NTSCや PAL等)を指示する信号である。
ビデオタイミングジェネレータ 138は、入力されるクロックを基に、水平走^ゥント信号 H C及び垂直^^ゥント信号 VC、並びに、複合同期信号 SYN、複合プランキング信号 BLK、 バーストフラグ信号 BST、及ぴライン交番信号 LA等のタイミング信号を生成する。 ΤΚ平 カウント信号 HCは、システムクロックの 1周期毎にカウントアップされ、 1水平ラインのスキヤ ンが終了すると、リセットされる。また、垂直 ゥント信号 VCは、 1Z2水平ラインのスキヤ ンが終了するたぴにカウントアップされ、 1フレームあるレ、は 1フィールドのスキャンが終了す ると、垂直 ゥント信号 VCはリセットされる。
さて、次に、図 10の YSU19によるソート処理の詳細を図面を参照しながら説明する。上述 したように、 YSU19によるソート処理で採用するソート は、ヒープソートである。
上記のように、ポリゴン構造体配列のソート処理とスプライト構造体配列のソート処理とは別 個に行われる。しかし、それぞれにおいて、同じソート処理が節されるので、後述の図 22 及ぴ図 23において、配列おょぴその要素は、ポリゴン構造体配列のソート処理の ¾ ^には、 それぞれポリゴン構造体配列おょぴポリゴン構造^ンスタンスを指し、スプライト構造体配 列のソート処理の には、それぞれスプライト構造体配列およびスプライト構造 ί材ンスタ ンスを指す。
一般に、配列の要素は、値を代入するための、インデックスが付された変数 (Λ^)として 定義されたり、あるいは、インデックスが付された変数に代入された値そのものとして定義さ れたりする。本難の形態では、両者を区別する必要があるときは、変数 (A i物)としての 配列の要素を「要素」、その変数に Aされた値を「要素値」又は「要素の値」と呼ぶ。
図 22は、図 10の YSU19による配列 Aのヒープ構築後のヒープ構造を示す図 ある。図 2
2では、配列 Aの要素数を 10個とし、 Yソート前の要素 A[0]〜A[9]の要素値をそれぞれ要 素値 ev0〜ev9と表す。
図 22を参照して、本«の形態におけるヒープ構造は、二分木の構造を持ち、 1つの親に 対して 2つの子が接続される。但し、ヒープ構造の においては、子を 1つしか持たない親 が械する^^がある。親は子に対して高レ、順位を持つ力 2つの子の間の順位にっレ、て は、特にルールは定められていない。
ここで、順位とは、ソートルール 1〜4 (ノンインタレーススキャンの ^^はソートルール 1〜
3)で定められる構造 ンスタンス間 (ポリゴ^ «造体配列の Yソートの にはポリゴン構 造 ンスタンス間、スプライト構造体配列の Yソートの にはスプライト構造 f材ンスタン ス間)の優先順位を指す。つまり、順位とは、ソートルール 1〜4 (ノンインタレーススキャンの ^はソートルール ι〜3)で定められる要素値間 (ポリゴン構造体配列の γソートの^ こ はポリゴン構造体配列の要素値間、スプライト構造体配列の Yソートの場合にはスプライト構 造体配列の要素値間)の優先順位を指す。木構造の上位ほど順位が高いので、図 22の例 では、要素値 ev3が最も順位の高レヽ要素値である。
メイン RAM25へのヒープ構造の 内方法を説明する。一般的なヒープ構造の 、最も 順位の高い親の要素働 順に、メモリ上の配列の先頭から編内される。ヒープソートにお いては、ソート結果が 1つずつ確定するため、一般的には、メモリ領域を効率的に用いるた めに、順位が確定した要素値は、ヒープ構造の の子の要素値と A i替えられて格納さ れる。従って、最も順位の高い親の要素値は、配列の末尾に 内されて、ヒープ構^^ら切 り離される。これに対して、本 の形態では、一般的な酵とは逆の ll で、ヒープ構造を メモリ上の配列に搬内する。この点を、図 22のヒープ構造を例に挙げながら説明する。
図 23は、図 22のヒープ構造のメイン RAM25への辦内方法の説明図である。図 23 (a)及 ぴ図 22に示すように、本 の形態のヒープ構造においては、最も順位の高い親の要素値 力 順に、メイン RAM25上の配列 Aの末尾から 内される。そして、図 23(b)に示すように, 順位が確定し配列 Aの末 A[9]に權內された最も順位の高レ、親の要素値 ev3と、配列 Aの
先 HA[0]に鶴内されたヒープ構造の の子の要素値 ev5と、が λ^1 えられ、要素値 ev
3が鶴内きれた先頭の要素 A[0]は、ヒープ構 切り離される。理由は次の通りである。 ' 上記のように、 YSU19は、順位 (ソート結果)が 1つ確定する度にパルス信号 (ポリゴンの
^^パルス信号 PPL、スプライトの: ¾ ^パルス信号 SPL)の 1パルスを RPU9に出力する。 これらのパルス信号を受けて、 RPU9は、順位が確定した要素値、つまり、順位カ確定した 構造 ンスタンスを、配列の先頭から読み出して描画処理を行う。このため、一般的な順序 とは逆の )1酵で、ヒープ構造をメイン RAM25上の配列に搬内する。
配列の 1要素のサイズについて説明する。配列の 1要素のサイズは、ポリゴ »造体とスプ ライト構造体とで異なる。ポリゴン構造体の場合、配列の 1要素 (1個のポリゴン構造体インス タンス)は 16バイトで構成され、スプライト構造体の場合、 の 1要素 (1個のスプライト構造 f材ンスタンス)は 8バイトで構成される(図 13、図 15、及び図 16参照)。但し、ポリゴン構造
^ンスタンスとスプライト構造 ί材ンスタンスとは別々の配列に!^内されるため、メイン RA
Μ25上の同じ配列内に異なるサイズの要素が混在することはない。また、 YSU19は、ポリ ゴン構造体配列のソートとスプライ卜構造体配列のソー卜とを独立に行う。
次に、 YSU19によるポリゴン構造体配列の Υソート処理をフローチャートを用 、て説明す る。 YSU19によるスフ。ライト構造体配列の Υソート処理は、ポリゴン構造体配列の Υソート処 理と同様の流れで行われるので説明を省略する。
図 24は、図 10の YSU19によるポリゴ «造体配列の Υソート処理の全体的な流れの一例 を示すフローチャートである。なお、図 24及び後述の図 25〜図 27において、特に明示しな V、限り、配列とレヽうときは、ポリゴン構造体配列を指す。
図 24を参照して、ステップ S20にて、 YSU19は、配列のソートの開始前に、ソート舰と なる当廳己列の先頭アドレスを YSU19内の制御レジスタ「Polygon— Array— YSU— Bas e_AddressJ (図示せず)から取得し、 つ、当該配列の要素数「s」を YSU19内の制御レ ジスタ「Number一 of— Sorted一 PolygonsJ (図示せず)力も取得する。なお、図 22及ぴ図 23の例では、 s= 10である。 '
ちなみに、スプライト構造体配列のソートを行う齢には、当該スプライト構造体配列の先 頭アドレスを YSU19內の制御レジスタ「Sprite— Array一 YSU一 Base— AddressJ (図示 せず)力も取得し、かつ、当 プライト構造体配列の要素数「s#」を YSU19内の制御レジ スタ「Number— of— Sorted— Spritesj (図示せず)から取獨する。
次のステップ S21にて、 YSU19は、ヒープ構造を構築する (ヒープ構築処 S)。ヒープ構築 処理の詳細は後述する。この処理の完了後、配列全体がヒープ構造となり、それぞれの要素 の接続において、親の要素の順位が子の要素の順位より高いことが保証される。したがって. ヒープ構築処理後、最も順位の高い親、すなわち「根 (root)」の親の要素の順位は、配列の 全要素中で最も高レ、ことが確定する。
以降、 YSU19は、順位の高いものから要素が 1つ確定するたびに、「根」の親の要素の値 と、ヒープ構造の の子の要素の値と、を交換する (A L替える)。これは、順位の確定し た「根」の親の要素をヒープ構 ゝら切り離し、メイン RAM25上の配列の先頭から腿こ整列 させることを意味する。
従って、 YSU19は、ステップ S21の次のステップ S22にて、最も順位の高い要素として確 定した親の要素の値、つまり要素 [s—l]の値と、ヒープ構造の の子の要素の値、つまり 要素 [0]の値と、を交換するために、変数に「0」を設定し、続くステップ S23にて、要素 [0] の値と要素 [s— 1]の値とを交換する。つまり、要素 [0]の値を要素 [s— 1]へ、要素 [s— 1]の 値を要素 [0]へ、 ¾Aする。この交換後、要素 [0]はヒープ構 ら切り離される。なお、'図 2
2及び図 23の例では、要素 A[0]の値 ev5と要素 A[9]の値 ev3とが交換される。
ステップ S27の後のステップ S23においては、 YSU19は、その時のヒープ構造における 最も順位の高い要素として確定した親の要素の値、つまり要素 [s二 1]の値と、その時のヒー プ構造の末端の子の要素の値、つまりインクリメント後 (ステップ S25)の要素 [i]の値と、を交 換する。つまり、要素 [i]の値を要素 [s— 1]へ、要素 [s— 1]の値を要素 [i]へ、代入する。こ の交換後、要素 [i]はヒープ構 ら切り離される。
続くステップ S24にて、 YSU19は、 1個の要素の順位確定を通知すベぐパル 信号 PPL
の 1パルスを RPU9に出力する。ちなみに、スプライト構造体配列のソートの ¾ ^には、ノル . ス信号 SPLの 1パルスを RPU9に出力する。次のステップ S25にて、 YSU19は、変数の値 をインクリメントする。従って、.変数は常にヒープ構造の を指し示すように設定される。こ れは、インクリメント前の要素 [i]がヒープ構 ら切り離され、インクリメント後の要素 [i]が新 たにヒープ構造の となったことを意味する。
ステップ S25で変数をインクリメントした後の値が「s— l」と同じ は、ソートが完了して いないヒープ構造に れる要素は、要素 [s—1]のみということになる。これは、全ての要 素値のソートが完了したことを意味する。従って、 YSU19は、ステップ S26にて、 i=s— 1と 判断したときは、ステップ S28に進んで、最後の要素値の順位確定を示すパルス信号 PPL (スプライトの場合はパルス信号 SPL)を 1パルス出力し、 Yソート処理を終了する。
一方、 YSU19は、ステップ S26にて、変数が「s— 1」と等しくなレ、と判断したときは、 Yソー ト処舰完了してレヽな 、ので、ステップ S27に進む。
この時点では、ステップ S23の交 »Mにより、ヒープ構造の の子の要素の値が「根」 の親の位置に櫞内されているため、ヒープ構造は崩れている。この状態からヒープ構造を再 構築するために、ステップ S27にて、 YSU19は、「ダウンヒープ処理」を行う。ここでは、「根」 の親から順に、いずれかの子の要素の順位が親の要素より高い ¾^に、子の要素の値と親 の要素の値とを A i替え、 Λ ^替えた後の子の要素を新たな親の要素として、同じ処理をヒ ープ構造の «まで行う処理を「ダウンヒープ処理」と呼 る。ダウンヒープ処理の詳細は 後述する 0 "
ステップ S27では、要素 [s—1]を処理開始時の親とし、「s— i」をヒープ構造の要素数とす るダウンヒープ処理を行う。ダウンヒープ処理完了に伴い、ヒープ構造が蒲築される。した がって、ステップ S27終了後の「根」の親は、その時点のヒープ構造で最も高い順位であるこ とが確定する。その後、ステップ S23に戻って、ソート処 継铳される。
図 25は、図 24のステップ S21のヒープ構築処理の流れの一例を示すフローチ ートであ る。図 25を参照して、ステップ S40にて、 YSU19は、変数 jに「0」を設定する。変 ¾jは、ダウ
ンヒープ処理における最初の子の要素を指し示 のであり、初期状態では、ヒープ構造全 体の の要素、すなわち要素 [0]を指し示す。
ステップ S41にて、 YSU19は、要素 [j]の親の要素 [P]を特定する。親の要素 [P]のィ ンデックス「p」は、以下の計算式により算出される。次式において、「s」はヒープ構造全体の 要素 i eある。但し、右辺の隨の商は常に »e得られるものとし、剰余は切り捨てる。 p=s— (s— j)/2
ステップ S42にて、 YSU19は、ステップ S41で特定した親の要素 [p]を親とし、「sjをヒー プ構造全体の要素数とするダウンヒープ処理を行う。ダウンヒープ処理の詳細は後财る。 ステップ S42のダウンヒープ処酷了後、ステップ S43にて、 YSU19は、変数 jの値をイン クリメントする。そして、ステップ S44にて、 YSU19は、インクリメント後の変数; jの値が「s— 1」 より小さければ、ステップ S41へ戻る。一方、インクリメント後の変数 jの値が「s—l」に等しけ れば、 YSU19は、ヒープ構築処理を終了し、図 24のステップ S22に進む。
図 26は、ダウンヒープ処理の流れの一例を示すフローチャートである。このダウンヒープ処 理は、図 24のステップ S27及ぴ図 25のステップ S42にお 、て節される。
図 26を参照して、ステップ S60にて、 YSU19は、親の要素のインデックスと、 ¾ ^となるヒ ープ構造の要素数とから、親に ¾ ^る子の個数がいくつであるかを特定する。 YSU19は、 親の要素のインデックスを「pjとし、 となるヒープ構造の要素数を「sjとしたときに、 2(s- p)の値が「s」より小さい ¾ ^には子の個動 ¾個、「s」と同 C ^には子の個 c^i個、「s」よ り大き 、 には子の個 個であるとする。
ステップ S61において、 YSU19は、子の個数が「0」と判定すると、ダウンヒープ処理を終 了する。また、ステップ S62にて、 YSU19は、子の個 ¾^「1」と判定すると、ステップ S63に 進んで、その 1つの子を親との比較^として設定し、ステップ S66に進む。一方、ステップ S62にて、 YSU19は、子の個 ¾^「1」でない、つまり、「2」と判定すると、ステップ S64に進 む。 ,
ステップ S64では、 YSU19は、子の個数が「2」であるので、どちらの子がより順位が高レヽ
力を判定するために、順位比較処理を行う。順位比較処琿の詳細は後述する。そして、ステ . ップ S65にて、 YSU19は、順位比較処理の結果、順位の高い方の子を親との比 ^とし 定し、ステップ S66に進む。
ステップ S63の後あるいはステップ S65の後のステップ S66では、 YSU19は、比較纖 に設定された子の要素と、親の要素との順位比較処理を行う。比較処理の結果、ステップ S6 7にて、 YSU19が親の順位が高いと判定した:^、そこでダウンヒープ処理は終了する。一 方、子の順位が高いと判定した 、ステップ S68にて、 YSU19は、比^^の子の要素 の値と、親の要素の値とを交換する。交換後、ステップ S69にて、 YSU19は、値が交換され た子の要素 (つまり、交換前の親の要素の値を鶴内している要素)を、新たな親として設定し、 ステップ S60に戻る。
図 27は、順位比較処理の流れの一例を示すフローチャートである。この順位比較処理は、 図 26のステップ S64及び S66において節される。順位比較処理では、ソートルール 1〜4 (ノンインタレーススキャンの:^はソートルール 1〜3)に基づいて、 2つのポリゴン構造 ί材 ンスタンス間で順位を比較する。つまり、順位比較処理では、ソートルール 1〜4 (ノンインタ レーススキャンの^ 1まソートルール:!〜 3)に基づ 、て、配列の 2つの要素間で順位を比較 する。ここで、比^^の 2つの要素 (ポリゴン構造 ンスタンス)をそれぞれ要素「Α」及び 「Β」と表記する。
ステップ S80にて、 YSU19は、要素「Α」及び「Β」ごとに、最小 Υ座標と描画先頭ライン (描 画上端ライン)の Υ座標と、を比較する。この例では、比^^の要素「Α」及び「Β」は、ポリ ゴン構造 ί材ンスタンスであるので、メンバ Ay, By及ぴ Cy (図 13及ぴ図 15参照)のうち最も 小さな値が、最小 Y座標として扱われる。ちなみに、比 豫の要素「A」及び「B」が、スプラ イト構造 frl スタンスである 、シザリングイネーブル時はメンバ Ayの値 +256が、シザ リングディセーブル時はメンバ Ayの値そのもの力 最小 Y座標として扱われる(図 16参照)。 ステップ S81にて、 YSU19は、要素「A」の最小 Y座標のみが、描画先頭ラインめ Y座標以 下であると判断した^、すなわち、要素「A」に基づくポリゴンのみが、描画先翁ラインと交
わるか、あるいは、描画先頭ラインより上にあると判断した^、ステップ S82に進み、要素 「A」の嫩が高!/、と判定し、順位比較処理を終了する (ソートルール 1)。
ステップ S83にて、 YSU19は、要素「B」の最小 Y座標のみ力 描画先頭ラインの Y座標以 下であると判断した:^、すなわち、要素「B」に基づくポリゴンのみ力 描画先頭ラインと交 わるか、あるレ、は、描画先頭ラインより上にあると判断した^^、ステップ S84に進み、要素 「B」の順位が高、と判定し、順位比較処理を終了する (ソートルール 1)。
要素「A」及ぴ「B」の双方の最小 Y座標が、描画先頭ラインの Y座標以下である:^は、要 素「AJ及ぴ「BJのそれぞれに基づくポリゴンが、描画先頭ラインと交わる力 \あるいは、描画 先頭ラインより上にあることを意味する。要素「A」及ぴ「BJの双方の最小 Y座標が描画先頭 ラインより上にある 、要素「A」及び「B」に基づくポリゴンは、スクリーンに描画されないた め、ソートルール 1によって判定される順位は描画結果に影響を与えない。この点、スプライ トについても同様である。
従って、ステップ S85にて、 YSU19は、要素「A」及び「B」の双方の最小 Y座標が描画先 頭ラインの Y座標以下であると判断した^、つまり、要素「A」及び「B」に基づく双方のポリ ゴンが、描画先頭ラインと交わっていると判断した ¾^、ステップ S86に進んで、要素「A」及 ぴ「B」間の順位を、最小 Y座標の比較でなぐデプス値の比較により定める(ソートルール 3)。
この 、ポリゴン構造体にメンバ Depthがあり(図 13及ぴ図 15参照)、この値の大小によ り順位が判定される。スプライトの も同様であり、スプライト構造体のメンバ Depthの値の 大小により順位が判定される(図 16参照)。メンバ Depthのビット数は、ポリゴン構造体と、シ ザリングイネーブル時のスプライト構造体と、シザリングディセーブル時のスフ。ライト構造体と、 で異なるカ、 YSU19が比較するのは、同一フォーマットの構造 fr Vスタンス同士であるた め、単純にメンバ Depthの値を比較するだけで大 /J IJ定を行うことができる。
ステップ S86に^ <ステップ S87にて、 YSU19は、デプス値の比較の結果、要素「A」のデ プス値が、要素「B」のデプス値以上であると判断した^ \ステップ S88に進んで、要素
「AJの順位が高いと判定し、順位比較処理を終了する。一方、 YSU19は、デプス値の比較. の結果、'要素「A」のデプス値が、要素「B」のデプス値より小さいと判断した場合、 テップ S 89に進んで、要素「B」の順位が高いと判定し、順位比 »理を終了する。
一方、ステップ S85において、 YSU19は、要素「A」及び「B」の双方の最小 Y座標が、描 画先頭ラインの Y座標より大き!/、と判定した 、ステップ S90に進んで、 の最小 Y座標 同士を比較する。但し、インタレーススキャンモードでの順位比較処理においては、描画対 象となるフィールドのライン上にある最小 Y座標の値と、その 1つ前のフィールドのライン上に ある、 1つ小さい最小 Y座標の値と、が同じであるとして、比較を行う (ソートルール 4)。一方、 ノンインタレーススキャンモードでの順位比較処理にぉ 、ては、単純に最 /J、Y座標の大 /J、が 比較される。
そして、ステップ S91にて、 YSU19は、要素「A」及び「B」の双方の最小 Y座標が同じであ ると判定した:^、ステップ S86に進んで、デプス値の比較により、要素「A」及び「B」の順位 を判定する(ソートルール 2)。一方、ステップ S91にて、 YSU19が、要素「A」及ぴ「B」の最 小 Y座標が ¾ると判定した:^、ステップ S92に進む。
ステップ S92では、 YSU19は、要素「A」の最小 Y座標が、要素「B」の最小 Y座標より小さ レ、と判断した齢、ステップ S93に進んで、要素「A」の順位が高いと判定して、順位比較処 理を終了する (ソートルール 1)。一方、 YSU19は、要素「A」の最小 Y座標が、要素「B」の最 小 Y座標以上であると判断した^ \ステップ S94に進んで、要素「B」の順位が高いと判定 して、順位比較処理を終了する (ソートルール 1)。
なお、図 24〜図 27にお!/、て、ポリゴン構造体配列の Yソート処理を例に挙げて説明したが、 同様の処理が、スフ。ライト構造体配列の Yソート処理でも行われる。
さて、以上のように、本難の形態によれば、グラフィック要素 (ポリゴン、スプライト)の最小
Y座標が、昇順 (小から大の順)で並ぶように、つまり、グラフィック要素の出稱貭で、グラフィ ック要素ごとの構造 ί材ンスタンスを並べ替えている (ソート)。また、 1度描画で角いられた 構造 ンスタンスは、リサイクルバッファに 内され、描画通ラインの Υ座標 当該構造
^ンスタンスの最大 Y座標 (ポリゴンにつ ヽては 3頂点の Υ座標のうち最も大きレヽ Υ座標、ス プライ Μこつ ヽては 4頂点の Υ座標のうち最も大きレヽ Υ座標)を超えるまで再利用される。 従って、ソート後の構造体インスタンスを順番に読み出して、描画処理を行うだけでよいた め、描画のたびに、全ての構造 ンスタンスの中から、そのとき描画すべき構造 ンスタ ンスを検索する処舰 S不要になり、処理を高速化できる。以上の結果、 1フレーム以上のィメ ージを格納するための大容量のバッファ (フレームバッファ等)を実装する必要は必ずしもな ぐより容量の小さいパッファ (ラインバッファや、 1ラインに満たないピクセルを描画するピク セルバッファ等)を実装した^ eあっても、多くのグラフィック要素を組み合わせた三次元 イメージの表示が可能になる。
一般的な技術により、ラインバッファある 、はピクセルバッファに描画を行おうとすると、 1ラ インごとあるいは所 のピクセルごとに、全構造 ンスタンスの中から、描画 の構造 f材ンスタンスを検索しなければならないが、本実施の形態では、 YSU19により、予め、最 小 Υ座標の昇順で (つまりグラフィック要素の出 |¾噴で)ソートが行われて!/ヽるため、そのよう な検索処理が不要になる。また、そのような検索処理を行っていたのでは、多くのグラフイツ ク要素を組み合わせた三次元イメージの表示が困難になる。ちなみに、フレームバッファを 実装するときは、 1フレーム分のイメージを H内できるので、そもそも、そのような検索処理は 不要で、デプス値の大きレ、もの力ち順に描 s 、けばよレ、。
また、本 の形態によれば、ラインバッファ LB1あるいは LB2への新たなピクセル情報 の書き込み (新たなピクセルの描歸のために、構造体インスタンスが再利用可能な ¾ ^は、 その構造体インスタンスは、リサイクルバッファ 110に格納される。このため、同じ構造体イン スタンスを棚する新たなピクセルの描画のたびに、ソート後の全ての構造 ンスタンスが ¾内されたメイン RAM25から、その同じ構造体インスタンスを繰り返し読み出す処理が不要 になって、より処理の高速化を図ることができる。
また、デプスコンパレータ 112を設けて、 YSU19が並べ替えた順番で新たに読み出され た構造 ンスタンスと、再利用のためのリサイクルパッファ 110に樹内された構造 ί材ンス
タンスと、の描画順序 (つまり、これら構造 ί材ンスタンスに基づくピクセルの描画順序)を判 定している。このため、判^!了後に、再利用可能な構造 #^ンスタンスをリサイク/レバッフ ァ 110に送って順番に;^!内するだけで、リサイクルバッファ noには、再利用可能な構造体 インスタンスについて、適切な描画順序で (つまり、デプス値が大きいものが先頭に来る順 で)構造 # ^ンスタンスが総内される。このように、リサイクルバッファ 110には、再利用可能 な構造 ί材ンスタンスについて適切な描画順序で編内されているところ、これらは、 YSU19 が並べ替えた順番で新たに読み出された構造 ンスタンスとの間で、さらに描画 I酵が判 定されるので、常に適切な描画順序での (つまり、デプス値が大きいもの順での)描画が可 能となる。
さらに、本雄の形態によれば、複数のグラフィック要素を表示する ¾^であって、その複 数のグラフィック要素の最小 Υ座標が同 ¾^、ソートルール 2力 S適用され、スクリーンを構成 する各ラインにぉレヽて、デプス値の降順 ( zJ、の jig)で構造 ンスタンスが並べられる c 従って、各ラインにおいて、構造体インスタンスに基づくグラフィック要素は、デブス値の大き いもの順で描画される。
ここで、構造 ンスタンスを最小 Y座標の小さ 、もの順でソートし (ソートルール 1)、最小 Y座標の同じものにっ 、てはデプス値の大きいもの順でソートする ¾ ^(ソートルール 2)、 つまり、ソートルール 1及び 2のみでは、表示先頭ラインの描画においては、必ずしもデプス 値の大きレ、もの順での描画が保証されなレ、。
しかし、本実施の形態では、複数のグラフィック要素力 スクリーンの先頭ラインに表示す べきピクセル^"む 、ソートルール 3が適用され、それらの最小 Y座標に関係なぐつま り、それらの最小 Y座標を同一とみなして、デプス値の降順で構造 ί材ンスタンスが並べられ る。従って、先頭ラインにおいても、構造 ί材ンスタンスに基づくグラフィック要素は、デプス 値の大きレ、もの順で描画される。
以上の結果、 インにおいて、グラフィック要素は、必ずデプス値が大きいもめ順で描画 されるので、半透明合成 ¾ 切に行うことができる。何故ならば、半透明のダラライツク要素
の描画色は、当該グラフィック要素の奥にあるグラフィック要素の描画色に依存するため、グ ラフィック要素を奥から順に描画する必要がある。
さらに、本雄の形態によれば、プリフェッチバッファ 108が設けられ、このプリフェッチパ ッファ 108は、 YSU19がソートした順番での構造 f材ンスタンスの入力タイミングとデブスコ ンパレータ 112への構造 ί材ンスタンスの出力タイミングとの緩衝機構である。これにより、 Υ SU19がソートした順番での構造 ンスタンスの入力の、 RPU9にとつての待ち時間を削 減できる。
さらに、本実施の形態によれば、ラインバッファ LB1, LB2を実装しているので、フレーム バッファを使用する よりもコストを低く抑えることができるし、また、 1ラインのピクセル数 に満たない数のピクセルデータを觸内するピクセルバッファを使用する よりも簡素な回 路構成で (簡戦制御で)描画を類できる。
さらに、本»の形態によれば、ポリゴ^造インスタンスと、スプライト構造 ンスタン スと、で別個にソートを行っているので、ポリゴン構造インスタンスと、スプライト構造 # ^ン スタンスと、の形 ¾¾ぴサイズが異なっている^^でも容易にソートが可能であり、構造 ンスタンスを鶴内するためのメモリ領域の 効^ ¾高まる。
このように、ポリゴ «造{材ンスタンス及ぴスプライト構造 ンスタンスが独立してソート された齢であっても、マージソータ 106を設けることで、描画処理の前にポリゴン構造 ンスタンス群とスプライト構造 ί材ンスタンス群がマージソートされるため、適切な描画処¾^ 可能となる。
さらに、本実施の形態によれば、ノンインタレーススキャンのみならず、インタレーススキヤ ンにも対応して!/ヽる。具体的には次の通りである。
インタレーススキャンによってイメージが表示される場合、最小 Υ座標が飛び越し走査によ り飛び越されたラインを示す構造 #H スタンスと、最小 Υ座標が描画贿のラインを示す構 造 f材ンスタンスとが、表示像ラインの描画処理において共に読み出される。しナこがって、 これらの構造 ί材ンスタンスの示す最小 Υ座標を同じ値とみなし、デプス値の大きいもの順
にソートを行うことにより、インタレーススキャンの^でもデプス値の大き 、もの順での描画 処舰保証される。そこで、奇 ifc ィールド表示のときと «7ィールド表示のときとで ¾る ソートを行うソートルール 4を設けて、る。
以上の結果、ノンインタレーススキャンのみならず、インタレーススキャンによる表示を行う 齢にぉレヽても、デプス値の大き!/、ものから描画されるので、適切な半透明合成を実現でき る。
さらに、本難の形態によれば、 YSU19は、ソートにおいて順位の高いものから構造 ンスタンス力 S1つ確定するたぴに、その都度、パルス PPL, SPLを、 RPU9に出力する。この ため、 YSU9は、全構造 ンスタンスのソートの完了を待つことなぐ逐次、構造^ンスタ ンスを読み込むことができる。さらに、表示中のフィールドに ¾-Τる各構造^ (インスタンスの ソートを、直前の垂直プランキング期間ある V、は当該フィールド表示中に^1開始すること により、ソート前の演算のために余裕を ί^ たより十分な時間を確保できる。
特に、上述のモード 2においては、垂直プランキング期間の開始直後にソートを実行して いるので、ソート前の演算のために余裕を持ったより十分な時間を確保できる(図 9 (a)参 照)。
さらに、本実施の形態によれば、 YSU19が実装するソート技法は、ヒープソートであるた め、構造 ΐ材ンスタンスのソート結果が 1つずつ確定され、ソート結果の確定のたびに、ノヽ。ル ス PPL, SPLを出力する機構を容易に できる。また、全構造^ンスタンスのソートに必 要な時間のパラツキを少なくできる。
さらに、本 の形態によれば、ソートルール 1〜4にお ヽて、纖の座標を最小 Y座標と している。このため、全てのグラフィック要素に対して同じ条件でソートができるので、正しい 描画順序で描画を行うことができる。
なお、本発明は、上記の難の形態に限られるものではなぐその要旨を舰しない範囲 で種々の纖において することが可能であり、例えば、以下のような変开 能である。
(1)上記では、カラープレンダ 132による半透明合成を行って 、るため、各ラインにぉレ、て、
グラフィック要素 (ポリゴン、スフ。ライト)は、デプス値が大きいものから先に描画した。しかし、 半透明合成を行わない は、デプス値が小さいものから描画することが好ましい。なぜな' ら、デプス値が小さい、より手前に表示されるべきグラフィック要素から先に描画することによ り、描画能力や 1ラインに描画するグラフィック要素の数が多すぎる等の理由により、仮に、 1 ラインに描画すべき全てのグラフィック要素の描画が、表示までに間に合わなかった齢で も、デプス値が大きい、より奥に表示されるべきグラフィック要素から先に描画する と比 較して、表示後の見た目の印象が良くなる力 である。また、デプス値が小さいグラフィック 要素から描画することにより、より奥に表示されるべきグラフィック要素については、既に描画 されたグラフィック要素と重なる部分については、描画が不要であるため、処理の高速ィ匕を 図ることができるカゝらである。
(2)上記では、描画のため、スクリーンの 1ライン分のデータを搬内可能なラインバッファ L Bl, LB2を RPU9内に設けた。ただし、 1ライン分より少ないピクセル数分のデータを格納 する 2つのピクセルバッファを RPU9内に設けることもできる。また、 K(Kは 2以上の難)ラ イン分のデータを編内可能な 2つのバッファを RPU9内に設けることもできる。
(3)上記では、 RPU9にお V、て、ダブルバッファ; ¾を採用したが、シングルバッファ方式 を採用することもできるし、 3以上のバッファを使用する; 採用することもできる。
(4)上記では、プリフェッチバッファ 108の記憶容量とリサイクルバッファ 110の記憶容量と を同一にする例を挙げたが、 らせることもできる。
(5)上記では、 YSU19は、 1つのポリゴン構造体インスタンスのソートが確定するたびに、 ノヽ。ルス PPLを出力した力 所 のポリゴン構造 ί材ンスタンスのソートが確定するたぴに、 パルス PPLを出力することもできる。ノ、。ルス SPLにつレヽても同様である。
(6)上記では、テクスチャデータの色の指定に、カラーパレットを用いる間接指定^:を採 用したが、各テクセルの色を直 定する直接指定^を採用することもできる。
以上、本発明を»例により詳細に説明したが、当難にとっては、本発明が本願中に説 明した 例に限定されるものではなレ、と!/、うことは明ら力である。本発明は、請求の範囲の
記載により る本発明の趣旨及び範囲を舰することなく修正及ぴ変更鎌として^ Sす ることが きる。従って、本願の記載は、例示説明を目的とするものであり、本発明に対して 何ら制限的な意味を有するものではな!/、。