(57)【要約】【課題】マルチテクスチャの各要素テクスチャにおける同一位置の画素データをグラフィックスメモリから読み出す場合に、データアクセスを高速化し、システムの処理性能を向上させる。【解決手段】テクスチャに対して同一位置にある、各要素テクスチャにおける複数の画素データが、同一位置毎に１つの画像データ格納メモリ上に連続して並ぶように、画素データの格納位置を決定する画素データ格納位置決定部と、決定された格納位置にしたがって、複数の画素データを１つの画像データ格納メモリに格納する画素データ格納部とを備える。【選択図】図１
2009048509.tif 000002
【特許請求の範囲】
【請求項１】
テクスチャに対して同一位置にある、マルチテクスチャを構成する複数の要素テクスチャの複数の画素データが、前記位置毎に１つの画像データ格納メモリ上に連続して並ぶように、画素データの格納位置を決定する画素データ格納位置決定手段と、
該決定された格納位置にしたがって、前記複数の画素データを、前記１つの画像データ格納メモリに格納する画素データ格納手段とを備えることを特徴とするマルチテクスチャマッピング装置。
【請求項２】
前記マルチテクスチャマッピング装置において、
前記１つの画像データ格納メモリに格納された同一位置の前記複数の画素データを、該同一座標位置毎に読み出すための画素データ読み出し位置を決定する画素データ読み出し位置決定手段と、
該決定された読み出し位置にしたがって、前記複数の画素データを前記１つの画像データ格納メモリから読み出し、前記各要素テクスチャ毎の画素データに分解して、マルチテクスチャマッピング処理を行うマルチテクスチャマッピングモジュールに与える画素データ読み出し手段とをさらに備えることを特徴とする請求項１に記載のマルチテクスチャマッピング装置。
【請求項３】
前記マルチテクスチャマッピング装置において、前記１つの画像データ格納メモリ上で前記各要素テクスチャデータの連続する位置の前記複数の各データが格納されている位置の間隔としての周期を記憶するデータ格納周期記憶手段をさらに備え、
前記画素データ読み出し位置決定手段が、該データ格納周期記憶手段の記憶内容を用いて、前記画素データ読み出し位置を決定することを特徴とする請求項２に記載のマルチテクスチャマッピング装置。
【請求項４】
前記マルチテクスチャマッピング装置において、
前記複数の各要素テクスチャの画素データのうちで、前記１つの画像データ格納メモリに最初に格納されるべき位置の各要素テクスチャの画素データの、前記１つの画像データ格納メモリ上の格納位置を記憶する先頭画素データ格納位置記憶手段と、
前記１つの画像データ格納メモリ上で、前記各要素テクスチャデータの連続する位置の前記複数の各データが格納されている位置の間隔としての周期を記憶するデータ格納周期記憶手段とをさらに備え、
該先頭画素データ格納位置記憶手段とデータ格納周期記憶手段との記憶内容を用いて、前記１つの画像データ格納メモリに格納された複数の各要素テクスチャの画素データのうちで、１つの要素テクスチャの画素データを読み出すための読み出し位置を決定することを特徴とする請求項１に記載のマルチテクスチャマッピング装置。
【請求項５】
テクスチャに対して同一位置にある、マルチテクスチャを構成する複数の要素テクスチャの複数の画素データが、位置毎に１つの画像データ格納メモリ上に連続して並ぶように、画素データの格納位置を決定し、
該決定された格納位置にしたがって、前記複数のデータを、前記１つの画像データ格納メモリに格納することを特徴とするマルチテクスチャデータのメモリ格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータグラフィックスシステムに係り、さらに詳しくは３次元コンピュータグラフィックスにおけるマルチテクスチャマッピング装置と、マルチテクスチャの要素テクスチャデータのメモリ格納方法に関する。
【背景技術】
【０００２】
テクスチャマッピングは、３次元コンピュータグラフィックスにおいて、質感を表現するための代表的な方法である。このテクスチャマッピングは、３次元形状の表面に、例えば木目や大理石などの模様のテクスチャパターンを貼り付けて、完成形状としての物体に実際的な質感を与えるものである。
【０００３】
このマッピングの手法としてのＵＶマッピングでは、マッピング対象となる形状表面が２次元のＵＶ座標系を用いて表わされる。これは実際の３次元形状の表面がディスプレイ上、すなわち画像上では２次元的に表わされるためである。
【０００４】
複数のテクスチャの画素のデータ、例えば色情報画像、ハイライト情報画像、法線情報画像などの各テクスチャの画素のデータに対して複雑な演算を施し、その結果を３次元形状の表面に貼り付けるマルチテクスチャマッピング手法において、従来それぞれの要素テクスチャ画像のデータは、例えばグラフィックスメモリ上でそれぞれ独立した領域、すなわち異なるアドレス範囲に保持されていた。
【０００５】
図８は、要素テクスチャデータのグラフィクスメモリ、すなわち物理メモリへの格納方式の従来例の説明図である。ここでは、マルチテクスチャセットを構成する要素テクスチャがテクスチャａ、テクスチャｂ、およびテクスチャｃの３つであるものとする。例えばテクスチャａは色のデータを示すカラーマップ、テクスチャｂは法線方向のベクトルのデータを示す法線マップ、テクスチャｃは色の強度を示すスペキュラーマップであり、これらのマップのデータを同一の３次元形状、すなわち描画対象物表面にマッピングするために、そのマッピング処理では各要素テクスチャの内部で同一座標位置の画素テータを必要とするものと仮定する。各画素のデータは、例えばａ００、ａ０１、ａ０２．．のように表現されるものとし、例えばａ０１の“０”はＶ座標、“１”はＵ座標の値を表わすものとする。
【０００６】
図８においては、３つのテクスチャａ、ｂ、およびｃの画素データが物理メモリ上でそれぞれ連続する一連の領域に格納されている。テクスチャａの先頭アドレス（バイトアドレス）が０ｘ０１００００００、テクスチャｂの先頭アドレスが０ｘ０１０８００００、テクスチャｃの先頭アドレスが０ｘ０１０ｅ００００であり、テクスチャａの１画素が３２ｂｉｔ、テクスチャｂの１画素が２４ｂｉｔ、テクスチャｃの１画素が８ｂｉｔのデータ長を持つものと仮定する。すると、テクスチャａの画素データの格納領域、テクスチャｂの画素データの格納領域、およびテクスチャｃの画素データの格納領域はそれぞれ連続する領域であるが、各領域は物理メモリ上でそれぞれ離れた位置にあるものとなる。
【０００７】
マルチテクスチャマッピングの一般的な実現のために、テクスチャａ、ｂ、およびｃの参照画素を、それぞれ異なるテクスチャ座標（Ｕａ，Ｖａ）、（Ｕｂ，Ｖｂ）、（Ｕｃ，Ｖｃ）から読み出す場合もあり、図８のように物理メモリ上にテクスチャ画像データを格納することも適切な場合がある。例えば対象物の模様を表現するテクスチャと、その対象物を照らすスポットライトの照射状態を表現するテクスチャの合成においては、図８のよ
うなマルチテクスチャ画像データの格納方式を用いることができる。
【０００８】
しかしながら、例えば対象物の写実性を増すためのマルチテクスチャマッピングにおいて、要素テクスチャとしてその対象物の色データを示すカラーマップ、画素に対する法線ベクトルのデータを示す法線マップ、画素の色の強度を示すスペキュラーマップなどを組み合わせる場合には、これらのテクスチャは共に対象物に属する画像であり、Ｕａ＝Ｕｂ＝Ｕｃ，Ｖａ＝Ｖｂ＝Ｖｃという特別なテクスチャ座標に対するアクセスパターンを持つものであり、このようなアクセスパターンは実際に頻繁に利用されるものである。
【０００９】
図８において、例えば（Ｕ，Ｖ）＝（４，０）の位置のテクスチャ画素に対するアクセスが発生したとすると、テクスチャａのデータａ０４のアドレスは０ｘ０１００００１０となり、テクスチャｂのデータｂ０４のアドレスは０ｘ０１０８０００ｃとなり、テクスチャｃのデータｃ０４のアドレスは０ｘ０１０ｅ０００４となる。このような画素データａ０４、ｂ０４、およびｃ０４のグラフィックスメモリからの読み出しはアドレスが離れたランダムアクセスとなり、アクセス性能の低下を引き起こすことになる。
【００１０】
このように、例えば３つのテクスチャａ、ｂ、およびｃのような複数の要素テクスチャを組み合わせて対象図形に貼り付けるマルチテクスチャマッピングにおいて、例えば画像のサイズが同一であり、かつ同時にアクセスされる画素の座標が同じとなるような特別なテクスチャ座標アクセスパターンに対するグラフィックスメモリからのデータ読み出し処理は、アドレスが離れているためにランダム・アクセスとなり、処理性能低下を引き起こすという問題点があった。
【００１１】
このようなテクスチャマッピングに関する従来技術としての特許文献１においては、複数のテクセル（画素）データを１回のアクセスで得ることができ、その複数のテクセルデータから必要なテクセル（画素）データを選択することによって、メモリ効率が良く、高速にアクセスできるテクスチャパターンメモリ回路が開示されている。
【００１２】
また同様の従来技術としての特許文献２では、例えば対応する座標の近傍の４点のデータを重み付けして平均するバイリニアフィルタリングを用いる場合に、その近傍の４点のデータを同時に読み出せるようにアクセスすることによって、３次元グラフィックスの処理性能の向上を図ることができるテクスチャマッピング用メモリ装置が開示されている。
【００１３】
しかしながらこのような従来技術を用いても、複数の要素テクスチャを組み合わせるマルチテクスチャマッピングにおいて、同時にアクセスする画素の座標がそれぞれ同じであるような特別なアクセスパターンの場合に、グラフィックスメモリからのデータ読み出しがランダム・アクセスとなってしまい、処理性能の低下を引き起こすという問題点を解決することはできなかった。
【特許文献１】特開平８−３２０９４６号公報  「テクスチャパターンメモリ回路」
【特許文献２】特開平１１−１５４２３７号公報  「テクスチャマッピング用メモリ装置」
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の課題は、上述の問題点に鑑み、例えばグラフィックスメモリからマルチテクスチャの各要素テクスチャにおける同一の座標位置の画素データを読み出す場合に、データアクセスを高速化し、グラフィックスシステムの処理性能を向上させることである。
【課題を解決するための手段】
【００１５】
本発明のマルチテクスチャマッピング装置は、対象物に対応する複数の要素テクスチャ
の画素のデータを、例えば演算し、その結果を対象物の図形に貼り付けるマルチテクスチャマッピングを行うものであり、少なくとも画素データ格納位置決定手段と画素データ格納手段とを備える。
【００１６】
画素データ格納位置決定手段は、テクスチャに対して同一位置にある、マルチテクスチャの各要素テクスチャの複数の画素データを、１つの画像データ格納メモリ、例えばグラフィックスメモリ上に前記位置毎に連続して並ぶように画素データの格納位置を決定するものであり、画素データ格納手段は、決定された格納位置にしたがって複数の画素データを、例えばグラフィックスメモリに格納するものである。
【００１７】
本発明のマルチテクスチャデータのメモリ格納方法は、前述のマルチテクスチャマッピング装置によって実行される画素データ格納位置の決定と、決定された格納位置に従う画素データの、例えばグラフィックスメモリへの格納を行う方法である。
【００１８】
本発明においては、以上のように例えばグラフィックスメモリ上に、テクスチャに対して同一位置にある、複数の要素テクスチャのデータにおける複数の画素データが連続して格納され、実際のマルチテクスチャマッピングにおいては、必要な位置の各要素テクスチャの複数の画素データをバースト的に読み出し、読み出されたデータを用いてマルチテクスチャマッピングが行われる。
【発明の効果】
【００１９】
本発明によれば、マルチテクスチャの各要素テクスチャの画素データであって、同一の位置の画素データをバースト的に読み出すことが可能となり、データアクセスが高速化され、グラフィックスシステムの処理性能向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００２０】
図１は、本実施形態におけるマルチテクスチャマッピング装置の基本的な構成ブロック図である。同図においてマルチテクスチャマッピング装置１は、画素データ格納メモリ２、例えばグラフィックスメモリに格納されたマルチテクスチャ画像データを用いてマルチテクスチャマッピングを行うものであり、画素データ格納位置決定部３、画素データ格納部４、画素テータ読み出し位置決定部５、画素データ読み出し部６、およびマルチテクスチャマッピングモジュール７を備える。
【００２１】
画素データ格納位置決定部３は、例えば図示しないメインメモリに格納されているマルチテクスチャの各要素テクスチャの画像データを、画像データ格納メモリ２、例えばグラフィックスメモリに格納する場合に各画素データの格納位置を決定するものであり、テクスチャに対して同一位置にある、各要素テクスチャのデータにおける複数の画素データが画素データ格納メモリ２上で座標毎に連続して並ぶように画素データの格納位置を決定する。画素データ格納部４は決定された格納位置にしたがって、各要素テクスチャの画素データを画像データ格納メモリ２に格納する。
【００２２】
画素データ読み出し位置決定部５は、画像データ格納メモリ２に格納されている画素データ、すなわち同一位置のデータが連続的に並んでいる画素データを、同一位置毎に読み出すための読み出し位置を決定するものであり、画素データ読み出し部６は決定された読み出し位置に対応して、同一位置毎に連続して読み出されたデータを各要素テクスチャ毎の画素データに分解して、マルチテクスチャマッピング処理を行うマルチテクスチャマッピングモジュール７に与えるものである。
【００２３】
図２は、本実施形態におけるマルチテクスチャの各要素テクスチャの画素データの物理メモリ、例えばグラフィックスメモリへの格納方式の説明図である。この方式では、単一
の先頭アドレス０ｘ０１００００００から始まって、テクスチャａ、テクスチャｂ、テクスチャｃの画素データが交互に並べられる配置が用いられる。テクスチャａ、テクスチャｂ、テクスチャｃの各１画素が循環する周期は、３２ｂｉｔ＋２４ｂｉｔ＋８ｂｉｔ＝６４ｂｉｔなので、ａ０４のアドレスは０ｘ０１００００２０となり、ｂ０４のアドレスは０ｘ０１００００２４となり、ｃ０４のアドレスは０ｘ０１００００２７となって、全ての画素データが連続的に繋がっているので、バースト転送により画素データを高速にリードすることができる。
【００２４】
続いて、図３を参照して本発明の第一の実施例におけるマルチテクスチャマッピング装置の構成を説明する。同図においてマルチテクスチャマッピング装置１０には、あるマルチテクスチャセットを指す先頭アドレスを保持するための、マルチテクスチャセットアドレスレジスタ１５が存在する。さらに、そのマルチテクスチャセットに含まれる要素テクスチャの枚数を保持するための、マルチテクスチャ枚数レジスタ１６が存在する。さらに、各要素テクスチャで共通の画像解像度（幅と高さ）を保持するための、マルチテクスチャセット解像度レジスタ１７が存在する。さらに、各要素テクスチャ毎に個別の画素あたりデータサイズ（ビット長）を保持するための、マルチテクスチャサイズ情報レジスタ配列１８が存在する。さらに、各要素テクスチャ毎に固有の識別子を保持するための、マルチテクスチャＩＤ番号レジスタ配列１９が存在する。さらに、各要素テクスチャデータがグラフィックスメモリ１３にロードされるときの画素並び順を保持するための、マルチテクスチャ並び順指示レジスタ配列２０が存在する。
【００２５】
マルチテクスチャセットアドレスレジスタ１５には、例えば図２の説明で述べたアドレス０ｘ０１００００００が保持される。マルチテクスチャ枚数レジスタ１６には、例えばテクスチャａ、テクスチャｂ、テクスチャｃを登録するのであればその枚数である“３”が保持される。マルチテクスチャセット解像度レジスタ１７には、テクスチャ画像の幅と高さが画素数単位で保持される。例えば、幅５１２テクセル（画素）、高さ２５６テクセルといった形式である。マルチテクスチャＩＤ番号レジスタ配列１９には、各要素テクスチャに固有のＩＤ番号が保持される。マルチテクスチャサイズ情報レジスタ配列１８には、各要素テクスチャ毎の画素あたりのデータ長（ビット数）が、ＩＤ番号をキーとして保持される。マルチテクスチャ並び順指示レジスタ配列２０には、各要素テクスチャの画素がどの順番でグラフィックスメモリ１３に格納されるかが、ＩＤ番号の並びとして保持される。この例では、ＩＤ２、ＩＤ３、ＩＤ１の順に並んでいるので、テクスチャａ、テクスチャｂ、テクスチャｃの並び順になる。あるいは、ＩＤ番号をキーとして、順位を表す数値を保持してもよい。
【００２６】
これらの各レジスタに保持された情報は、画素データ転送制御モジュール２５に送られる。このモジュールは、各要素テクスチャの画素が入り組んで間欠的になった、メインメモリ１２から読み出すべき画素データのアドレスの生成と、これらの画素データのライト時のグラフィックスメモリ１３上の物理アドレスの決定と、マルチテクスチャマッピングモジュール２８に画素データを送るためのデータリード時のグラフィックスメモリ１３上の物理アドレスの決定とを行うものである。具体的なアドレス計算手法は後述する。
【００２７】
画素データ転送制御モジュール２５から送信されたアドレスにもとづいて、メインメモリ１２、メモリコントローラ２７、グラフィックスメモリ１３の間で、画素データの転送が行われる。
【００２８】
続いて、図４を参照して、本発明の第一の実施例における、要素テクスチャデータのグラフィックスメモリ１３へのデータロード（格納）手順を説明する。同図のＡｃｔｉｖｉｔｙ１のステージにおいて、Ａｃｔｉｏｎ１−１マルチテクスチャセットアドレスレジスタ１５へのアドレス指定、Ａｃｔｉｏｎ１−２マルチテクスチャ枚数レジスタ１６への枚
数指定、Ａｃｔｉｏｎ１−３マルチテクスチャセット解像度レジスタ１７への解像度指定がＣＰＵ１１によって行われる。なお、Ａｃｔｉｏｎ１−１からＡｃｔｉｏｎ１−３までの設定順序は任意であり、入れ替えても良い。
【００２９】
Ａｃｔｉｖｉｔｙ２のステージにおいて、Ａｃｔｉｏｎ２−１マルチテクスチャＩＤ番号レジスタ配列１９へのＩＤ付与、Ａｃｔｉｏｎ２−２マルチテクスチャサイズ情報レジスタ配列１８への画素データ長の指定、Ａｃｔｉｏｎ２−３マルチテクスチャ並び順指示レジスタ配列２０への要素テクスチャ並び順指定が行われる。なお、Ａｃｔｉｏｎ２−１からＡｃｔｉｏｎ２−３までの設定順序は、設定内容に変更が起こらないならば任意であり、入れ替えても良い。Ａｃｔｉｖｉｔｙ２のステージは、対象となるマルチテクスチャセットの全要素テクスチャにわたって実行される必要があるので、Ｄｅｃｉｓｉｏｎ０−１で終了判定しながらループ実行される。
【００３０】
Ａｃｔｉｖｉｔｙ３のステージにおいて、Ａｃｔｉｏｎ３−１先頭アドレス計算により、選択中の要素テクスチャデータのロード先の先頭アドレスを算出する。前述の例の場合は、テクスチャａを選択中なら０ｘ０１００００００、テクスチャｂを選択中なら０ｘ０１０００００４、テクスチャｃを選択中なら０ｘ０１０００００７になる。Ａｃｔｉｏｎ３−２画素アドレス周期計算では、各要素テクスチャの画素座標が１画素分移動する周期を算出する。この例の場合は、テクスチャａ、テクスチャｂ、テクスチャｃの１画素が循環する周期は、３２ｂｉｔ＋２４ｂｉｔ＋８ｂｉｔ＝６４ｂｉｔ＝０ｘ０８ｂｙｔｅである。
【００３１】
Ａｃｔｉｏｎ３−３画素アドレス計算では、選択中の画素のロード先アドレスを以下のように計算する。（Ｕ，Ｖ）＝（１００，４９）の場合を例にとると、テクスチャの幅と高さがそれぞれ５１２と２５６であることを利用して、選択中の画素（１００，４９）をＵ座標方向にシリアライズした画素順は、５１２ｘ４９＋１００＝２５１８８番目である。これと、１画素の循環周期６４ｂｉｔと、要素テクスチャの画素データ長を考慮すると、求めるアドレスは、テクスチャａ選択時は０ｘ０１００００００＋２５１８８ｘ６４ｂｉｔ＋０ｂｉｔ＝０ｘ０１０３１３２０となり、テクスチャｂ選択時は０ｘ０１０３１３２０＋３２ｂｉｔ＝０ｘ０１０３１３２４となり、テクスチャｃ選択時は０ｘ０１０３１３２０＋３２ｂｉｔ＋２４ｂｉｔ＝０ｘ０１０３１３２７となる。これらの計算には、マルチテクスチャセットアドレスレジスタ１５の情報の他に、マルチテクスチャセット解像度レジスタ１７の情報とマルチテクスチャ並び順指示レジスタ配列２０の情報と、マルチテクスチャサイズ情報レジスタ配列１８の情報を利用する。
【００３２】
Ａｃｔｉｏｎ３−４では、Ａｃｔｉｏｎ３−３で求めたアドレスに画素データをロードする。Ａｃｔｉｏｎ３−３とＡｃｔｉｏｎ３−４は全ての画素にわたって実行する必要があるので、Ｄｅｃｉｓｉｏｎ３−１で終了判定しながらループ実行される。さらに、Ａｃｔｉｖｉｔｙ３のステージ自体は、対象となるマルチテクスチャセットの全要素テクスチャにわたって実行する必要があるので、Ｄｅｃｉｓｉｏｎ０−２で終了判定しながらループ実行される。
【００３３】
なお、本発明の特許請求の範囲の請求項１における画素データ格納位置決定手段は、図３では画素データ転送制御モジュール２５に、図４ではＡｃｔｉｏｎ３−１から３−３に相当する。また画素データ格納手段は、図３では画素データ転送モジュール２６とメモリコントローラ２７に、図４ではＡｃｔｉｏｎ３−４に相当する。
【００３４】
続いて、図５を参照して、本発明の第一の実施例における、マルチテクスチャマッピング時の各要素テクスチャ画素データのグラフィックスメモリ１３からのリード手順とマッピングの手順とを説明する。Ａｃｔｉｏｎ０−１各要素テクスチャ毎のマッピング効果（混色方法）設定を行った後、Ａｃｔｉｏｎ０−２でリードすべきテクスチャ座標を計算する。
【００３５】
なおこのＡｃｔｏｎ０−１、Ａｃｔｉｏｎ０−２の処理と、後述するＡｃｔｉｖｉｔｙ３における要素テクスチャ毎のマッピングと合成の処理については公知技術としての次の文献がある。
【非特許文献１】ＯｐｅｎＧＬ策定委員会：ＯｐｅｎＧＬプログラミングガイド  原著第５版  第９章テクスチャマッピング  ｐ．４１９マルチテクスチャ処理、ビアソン・エデュケーション社
【００３６】
Ａｃｔｉｖｉｔｙ１のステージにおいて、Ａｃｔｉｏｎ１−１にて前記テクスチャ座標（Ｕ，Ｖ）から、シリアライズされた画素位置を計算する。前述の（Ｕ，Ｖ）＝（１００，４９）の例では、画素位置は２５１８８番目である。Ａｃｔｉｏｎ１−２画素開始／終了アドレス計算により、リードすべきアドレス範囲を算出する。（Ｕ，Ｖ）＝（１００，４９）の例では、リード開始アドレスは０ｘ０１０３１３２０となり、終了アドレスは０ｘ０１０３１３２０＋６４ｂｉｔ＝０ｘ０１０３１３２７となる。Ａｃｔｉｏｎ１−３にて、求めたアドレス範囲に存在する対象画素データを一括リードする。
【００３７】
Ａｃｔｉｖｉｔｙ２のステージにおいて、Ａｃｔｉｏｎ２−１各要素テクスチャ画素のデータオフセット量を取得する。これは、マルチテクスチャサイズ情報レジスタ配列１８に保持されている画素データ長、３２ｂｉｔ、２４ｂｉｔ、８ｂｉｔを、マルチテクスチャ並び指示順レジスタ配列２０に保持されている順序に沿って並べ替えたものである。Ａｃｔｉｏｎ２−２選択中要素テクスチャの画素抽出にて、テクスチャａ、テクスチャｂ、テクスチャｃのうち、現在選択中のものに対応した画素データを取り出す。Ａｃｔｉｏｎ２−３にて、一括リードした画素データ中で、抽出先頭ビットを画素データオフセット量分インクリメントし、次の要素テクスチャに備える。Ｄｅｃｉｓｉｏｎ２−１では全ての要素テクスチャにわたって画素データを抽出したか判定しながらループ実行する。具体的には、Ａｃｔｉｖｉｔｙ２開始時にＡｃｔｉｏｎ２−２が抽出する画素データはテクスチャａのものであり、Ａｃｔｉｏｎ１−３で一括リードしたデータの先頭から３２ｂｉｔ分を抽出する。抽出後、Ａｃｔｉｏｎ１−３で一括リードしたデータの先頭から３２ｂｉｔ後方を指すように、Ａｃｔｉｏｎ２−３でアドレスポインタをインクリメントする。Ｄｅｃｉｓｉｏｎ２−１では、まだテクスチャａしか処理していないのでループを続行する。次のＡｃｔｉｏｎ２−２ではテクスチャｂの画素データを抽出する。抽出後、Ａｃｔｉｏｎ１−３で一括リードしたデータの先頭から３２ｂｉｔ  ＋  ２４ｂｉｔ後方を指すように、Ａｃｔｉｏｎ２−３でアドレスポインタをインクリメントする。Ｄｅｃｉｓｉｏｎ２−１では、まだテクスチャｂまでしか処理していないのでループを続行する。次のＡｃｔｉｏｎ２−２ではテクスチャｃの画素データを抽出する。抽出後、Ａｃｔｉｏｎ１−３で一括リードしたデータの先頭から３２ｂｉｔ  ＋  ２４ｂｉｔ  ＋  ８ｂｉｔ後方を指すように、Ａｃｔｉｏｎ２−３でアドレスポインタをインクリメントする。Ｄｅｃｉｓｉｏｎ２−１では、テクスチャｃまで処理完了したのでループを打ち切り、Ａｃｔｉｖｉｔｙ２を終了する。
【００３８】
Ａｃｔｉｖｉｔｙ３のステージにおいて、Ａｃｔｉｏｎ３−１選択中画素の基本色決定により、テクスチャマッピング前の基本画素色を決定する。典型的には、画素が属するポリゴンあるいは画素自体への照光処理を施した結果が反映される。Ａｃｔｉｏｎ３−２選択中画素テクスチャによるマッピング画素色決定により、テクスチャａ、テクスチャｂ、テクスチャｃのうち、現在選択中のものによって導出される効果色を決定する。ここでは、Ａｃｔｉｏｎ０−１で決定された色計算手法を、Ａｃｔｉｏｎ２−２で抽出した要素テクスチャ毎の画素に適用することにより実現する。Ａｃｔｉｏｎ３−３では、Ａｃｔｉｏｎ３−１で決定した選択中画素の基本色から始めて、Ａｃｔｉｏｎ３−２で決定したマッピング画素色を累計的に混色していく。混色方法はＡｃｔｉｏｎ０−１で決定された色計算手法に従う。Ｄｅｃｉｓｉｏｎ３−１では、全ての要素テクスチャをマッピングしたか終了判定を行ってループ制御する。
【００３９】
Ａｃｔｉｏｎ０−２からＡｃｔｉｖｉｔｙ３までは画素単位の処理なので、Ｄｅｃｉｓｉｏｎ０−２で描画対象となる全てのテクスチャ画素座標（Ｕ，Ｖ）にわたって処理したか否かで終了判定を行ってループ制御する。
【００４０】
なお、請求項２における画素データ読み出し位置決定手段は、図３では画素データ転送制御モジュール２５に、図５ではＡｃｔｉｏｎ１−１と１−２に相当する。また画素データ読み出し手段は、図３では画素データ転送モジュール２６とメモリコントローラ２７に、図５ではＡｃｔｉｏｎ１−３、および２−１から２−３に相当する。
【００４１】
続いて、図６を参照して、本発明の第一の実施例における、要素テクスチャ復元時のグラフィックスメモリ１３からのデータリード手順を説明する。この手順は、例えばデバッグ時に元の要素テクスチャ画像が破壊されていないか視覚的に確認したい場合などに利用できる。Ａｃｔｉｖｉｔｙ１のステージにおいて、Ａｃｔｉｏｎ１−１にて復元対象要素テクスチャをＩＤで指定する。Ａｃｔｉｏｎ１−２にて復元先のメモリアドレスを指定する。復元先はグラフィックスメモリ１３上の空き領域でもよいし、メインメモリ１２まで書き戻してもよい。
【００４２】
Ａｃｔｉｖｉｔｙ２のステージにおいて、Ａｃｔｉｏｎ２−１にて読み出しを開始する先頭アドレスを計算する。このアドレスは、マルチテクスチャセットアドレスレジスタ１５、マルチテクスチャサイズ情報レジスタ配列１８、マルチテクスチャ並び順指示レジスタ配列２０に保持されている情報から算出できる。Ａｃｔｉｏｎ２−２にて、画素アドレス周期を計算する。この例では３２ｂｉｔ＋２４ｂｉｔ＋８ｂｉｔ＝６４ｂｉｔ＝０ｘ０８ｂｙｔｅである。Ａｃｔｉｏｎ２−３にて、選択中の画素に対するリードアドレスを計算する。これはちょうど、図４のＡｃｔｉｏｎ３−３におけるロード先アドレス計算と同様の処理になる。Ａｃｔｉｏｎ２−４にて、該当アドレスの画素データをリードする。Ａｃｔｉｏｎ２−４にて、復元先の画素ライトアドレスを計算する。これは、対象となる要素テクスチャＩＤをキーとしてマルチテクスチャサイズ情報レジスタ配列１８から画素あたりのビット長を取得し、ループ毎にそのビット長ずつインクリメントすることで実現できる。Ａｃｔｉｏｎ２−４にて、復元先アドレスに画素データをライトする。Ｄｅｃｉｓｉｏｎ２−１では、全ての画素を処理したか否かで終了判定し、ループ制御する。処理すべき画素数は、マルチテクスチャセット解像度レジスタ１７の幅と高さの積である。
【００４３】
次に第２の実施例について説明する。図７は、第２の実施例におけるマルチテクスチャマッピング装置の構成ブロック図である。同図を第１の実施例における図３と比較すると、図４のＡｃｔｉｏｎ３−１において計算された各要素テクスチャ毎の先頭画素データのアドレスを保持するマルチテクスチャ先頭アドレスレジスタ配列３１と、図４のＡｃｔｉｏｎ３−２において計算された画素アドレス周期を保持するマルチテクスチャセット画素アドレス周期レジスタ３２が追加されている点が異なっている。
【００４４】
第２の実施例においては、まず図４の処理が実行され、複数の要素テクスチャの同一座標位置の画素データが連続して並べられる形式で画素データがグラフィックスメモリ１３に格納された後に、図５、または図６の処理が行われることになる。図５のＡｃｔｉｏｎ１−１と１−２では、マルチテクスチャセット画素アドレス周期レジスタ３２に格納されている画素アドレスの周期をそのまま用いることができ、また図６のＡｃｔｉｏｎ２−１からＡｃｔｉｏｎ２−３までの処理において、マルチテクスチャ先頭アドレスレジスタ配列３１、およびマルチテクスチャセット画素アドレス周期レジスタ３２の格納内容を利用することによって、これらのレジスタの格納内容の再計算を行う手間を省くことができる。なお、これら２つのレジスタ以外の各レジスタ１５〜２０の内容は、ユーザ入力に対応してＣＰＵ１１によって設定される。
【００４５】
なお、請求項３と４におけるデータ格納周期記憶手段は図７のマルチテクスチャセット画素アドレス周期レジスタ３２に相当し、請求項５における先頭画素データ格納位置記憶手段はマルチテクスチャ先頭アドレスレジスタ配列３１に相当する。
【００４６】
以上の説明ではマルチテクスチャ（セット）を構成する要素テクスチャが３枚の例をあげて発明の実施形態を説明したが、要素テクスチャの数は２枚でも良く、また４枚以上でも良い。また１つのマルチテクスチャセットに対する実施形態のみを説明したが、マルチテクスチャセットが複数ある場合にも、本実施形態におけるグラフィックスメモリへのデータ格納形式や、グラフィックスメモリからのデータ読み出し方式、およびデータ復元方式を実現することが可能である。この場合には、以上において説明した各種のレジスタのセットを複数組実装して並列的に値を保持させても良く、レジスタのセットを１組だけとして複数のマルチテクスチャセットの間で時系列的に使いまわすことも可能である。
【００４７】
以上のように本実施形態においては、マルチテクスチャセットの中の各要素テクスチャのうちで、常に各要素テクスチャの同一の座標位置の画素データにアクセスする処理主体、例えばスレッドが、リード対象となる全テクスチャの画素データを１度にバーストリードすることが可能となり、例えばリアルタイム・グラフィックスシステムの性能向上に寄与するところが大きい。またユーザは、例えばＣＰＵを介して本実施形態において導入された各種レジスタに対して簡単なデータ設定を行うだけでよく、実際の各要素テクスチャの画素データのグラフィックスメモリへの格納のためのアドレス計算などの複雑な処理はシステムによって自動的に行われ、ユーザにとって利便性が良いシステムを実現することができる。
【００４８】
（付記１）
テクスチャに対して同一位置にある、マルチテクスチャを構成する複数の要素テクスチャの複数の画素データが、前記位置毎に１つの画像データ格納メモリ上に連続して並ぶように、画素データの格納位置を決定する画素データ格納位置決定手段と、
該決定された格納位置にしたがって、前記複数の画素データを、前記１つの画像データ格納メモリに格納する画素データ格納手段とを備えることを特徴とするマルチテクスチャマッピング装置。
（付記２）
前記マルチテクスチャマッピング装置において、
前記１つの画像データ格納メモリに格納された同一位置の前記複数の画素データを、該同一座標位置毎に読み出すための画素データ読み出し位置を決定する画素データ読み出し位置決定手段と、
該決定された読み出し位置にしたがって、前記複数の画素データを前記１つの画像データ格納メモリから読み出し、前記各要素テクスチャ毎の画素データに分解して、マルチテクスチャマッピング処理を行うマルチテクスチャマッピングモジュールに与える画素データ読み出し手段とをさらに備えることを特徴とする付記１に記載のマルチテクスチャマッピング装置。
（付記３）
前記マルチテクスチャマッピング装置において、前記１つの画像データ格納メモリ上で前記各要素テクスチャデータの連続する位置の前記複数の各データが格納されている位置の間隔としての周期を記憶するデータ格納周期記憶手段をさらに備え、
前記画素データ読み出し位置決定手段が、該データ格納周期記憶手段の記憶内容を用いて、前記画素データ読み出し位置を決定することを特徴とする付記２に記載のマルチテクスチャマッピング装置。
（付記４）
前記マルチテクスチャマッピング装置において、
前記１つの画像データ格納メモリに格納された複数の各要素テクスチャの画素データのうちで、１つの要素テクスチャの画素データを読み出すための読み出し位置を決定する画
素データ読み出し位置決定手段と、
該決定された読み出し位置にしたがって、前記１つの要素テクスチャの画素データを読み出し、前記１つの画像データ格納メモリの他の領域、または該メモリと異なるメモリに格納して前記１つの要素テクスチャの画像の復元を行う要素テクスチャ画像復元手段とをさらに備えることを特徴とする付記１に記載のマルチテクスチャマッピング装置。
（付記５）
前記マルチテクスチャマッピング装置において、
前記複数の各要素テクスチャの画素データのうちで、前記１つの画像データ格納メモリに最初に格納されるべき位置の各要素テクスチャの画素データの、前記１つの画像データ格納メモリ上の格納位置を記憶する先頭画素データ格納位置記憶手段と、
前記１つの画像データ格納メモリ上で、前記各要素テクスチャデータの連続する位置の前記複数の各データが格納されている位置の間隔としての周期を記憶するデータ格納周期記憶手段とをさらに備え、
前記画素データ読み出し位置決定手段が、該先頭画素データ格納位置記憶手段とデータ格納周期記憶手段との記憶内容を用いて、前記読み出し位置を決定することを特徴とする付記４に記載のマルチテクスチャマッピング装置。
（付記６）
テクスチャに対して同一位置にある、マルチテクスチャを構成する複数の要素テクスチャの複数の画素データが、位置毎に１つの画像データ格納メモリ上に連続して並ぶように、画素データの格納位置を決定し、
該決定された格納位置にしたがって、前記複数のデータを、前記１つの画像データ格納メモリに格納することを特徴とするマルチテクスチャデータのメモリ格納方法。
【図面の簡単な説明】
【００４９】
【図１】本実施形態におけるマルチテクスチャマッピング装置の基本的な構成ブロック図である。
【図２】本実施形態におけるグラフィックスメモリへの各要素テクスチャの画素データ格納方式の説明図である。
【図３】第１の実施例におけるマルチテクスチャマッピング装置の構成ブロック図である。
【図４】各要素テクスチャ画素データのグラフィックスメモリへの格納処理のフローチャートである。
【図５】グラフィックスメモリからの画素データ読み出しとマルチテクスチャマッピング処理のフローチャートである。
【図６】グラフィックスメモリからの要素テクスチャ画像復元処理のフローチャートである。
【図７】第２の実施例におけるマルチテクスチャマッピング装置の構成ブロック図である。
【図８】従来の要素テクスチャ画素データの物理メモリへの格納方式の説明図である。
【符号の説明】
【００５０】
１、１０  マルチテクスチャマッピング装置
２  画像データ格納メモリ
３  画素データ格納位置決定部
４  画素データ格納部
５  画素データ読み出し位置決定部
６  画素データ読み出し部
７、２８  マルチテクスチャマッピングモジュール
１１  中央処理装置（ＣＰＵ）
１２  メインメモリ
１３  グラフィックスメモリ
１５  マルチテクスチャセットアドレスレジスタ
１６  マルチテクスチャ枚数レジスタ
１７  マルチテクスチャセット解像度レジスタ
１８  マルチテクスチャサイズ情報レジスタ配列
１９  マルチテクスチャＩＤ番号レジスタ配列
２０  マルチテクスチャ並び順指示レジスタ配列
２５  画素データ転送制御モジュール
２６  画素データ転送モジュール
２７  メモリコントローラ
３１  マルチテクスチャ先頭アドレスレジスタ配列
３２  マルチテクスチャセット画素アドレス周期レジスタ
【図１】
2009048509.tif 000003
【図２】
2009048509.tif 000004
【図３】
2009048509.tif 000005
【図４】
2009048509.tif 000006
【図５】
2009048509.tif 000007
【図６】
2009048509.tif 000008
【図７】
2009048509.tif 000009
【図８】
2009048509.tif 000010