(57)【要約】【課題】背景画像の高速描画、および画面更新時間の短縮を図ることのできる３次元描画装置を提供する。【解決手段】ＶＲＡＭ４には、表示用と描画用とに交互に切り替えて使用される表フレームバッファ４１および裏フレームバッファ４２と、テクスチャを保持するテキスチャバッファ４３が設けられている。ＧＰＵ５はＣＰＵ１よりテクスチャのビットマップ転送命令を受けた場合には、テキスチャバッファ４３から裏フレームバッファ４２にテクスチャをビットマップ転送して背景画像の書き込みを行い、ＣＰＵ１よりテクスチャマッピングの命令を受けた場合には、裏フレームバッファ４２に３次元描画された物体の視覚面へのテクスチャの貼り付けをテクスチャマッピングにより行う。【選択図】    図６
2005063329.tif 000002
【特許請求の範囲】
【請求項１】
表示用と描画用とに交互に切り替えて使用される２つのフレームバッファおよびテクスチャを保持するテクスチャバッファを有するメモリと、
前記メモリの前記テクスチャバッファに保持された前記テクスチャを前記描画用のフレームバッファにビットマップ転送して、描画すべき３次元画像の背景画像として前記描画用のフレームバッファに書き込む書き込み手段と
を具備することを特徴とする３次元描画装置。
【請求項２】
前記書き込み手段は、前記描画用のフレームバッファに書き込まれた背景画像の上に３次元物体を３次元描画し、前記テクスチャバッファに保持されたテクスチャをテクスチャマッピングにより前記３次元物体の面に貼り付けることを特徴とする請求項１に記載の３次元描画装置。
【請求項３】
メモリに表示用と描画用とに交互に切り替えて使用される２つのフレームバッファおよびテクスチャを保持するテクスチャバッファを設けておき、
前記描画用のフレームバッファに、前記テクスチャバッファに保持された前記テクスチャをビットマップ転送して、描画すべき３次元画像の背景画像として前記描画用のフレームバッファに書き込むことを特徴とする描画方法。
【請求項４】
前記描画用のフレームバッファに書き込まれた背景画像の上に３次元物体を３次元描画し、前記テクスチャバッファに保持されたテクスチャをテクスチャマッピングにより前記３次元物体の面に貼り付けることを特徴とする請求項３に記載の描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元描画装置および描画方法にかかり、特にテクスチャを３次元画像の背景画像あるいは３次元物体の表面画像として貼り付ける場合の処理に改良を加えた３次元描画装置および描画方法に関するものである。
【背景技術】
【０００２】
コンピュータにおいて、３次元の描画内容をディスプレイに表示する場合のＶＲＡＭ（Video Random Access Memory）の使用方法として、表フレームバッファと裏フレームバッファとを描画とディスプレイ表示に交互に切り替えて使用する技法がある（たとえば、特許文献１、特許文献２を参照）。この技法では、次のような流れで３Ｄ描画と表示が行われる。
【０００３】
ハードウェアとして、ＣＰＵ（Central Processing Unit）とバスを通じて接続されているＧＰＵ（Graphics Processing Unit）が、ＣＰＵからの命令に従って、表フレームバッファおよび裏フレームバッファを有するＶＲＡＭを用いて３Ｄ描画／表示を行う構成を想定する。
【０００４】
ＧＰＵは、表フレームバッファに記憶されている描画内容がディスプレイに表示されている期間に、裏フレームバッファへの３次元描画を行う。裏フレームバッファへの３次元描画が完了したら、表フレームバッファと裏フレームバッファとの切り替え、すなわち、それまで表示用に使用されていた一方のフレームバッファを描画用のフレームバッファ（裏フレームバッファ）に、それまで描画用に使用されていた他方のフレームバッファを表示用のフレームバッファ（表フレームバッファ）に切り替える。その後、表フレームバッファの描画内容をディスプレイに表示させ、この間にＧＰＵは裏フレームバッファの描画内容を消去し、裏フレームバッファへの次の３次元描画を行う。
【特許文献１】特開平１１−１９５１３６号公報（段落０００８等）
【特許文献２】特開２０００−１３２７０６号公報（段落００８４−００８６等）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、３Ｄ物体（ポリゴン）の表面にテクスチャを貼り付ける技法としてテクスチャマッピング（３Ｄ座標演算によるテクスチャの貼り付け処理）が知られている。このテクスチャマッピングは、３Ｄ物体の表面にテクスチャを貼り付ける場合のみならず、３Ｄ画像の背景画像としても用いられている。すなわち、３Ｄ空間に板を用意し、この板にテクスチャマッピングによって、背景画像の貼り付けが行われる。しかしながら、背景画像は決まった位置に表示すればよいから、背景画像をテクスチャマッピングする際の３次元座標演算は無駄であった。
【０００６】
さらに、この問題について補足すると、２次元および３次元描画用のＡＰＩ（Application Program Interface）として現在の業界標準として知られているＯｐｅｎＧＬでは、ＶＲＡＭに設けられたテクスチャバッファにあるテクスチャをフレームバッファへ描画する際に、１ピクセルずつテクスチャの色をピックアップして、フレームバッファに色を書き込む技法（テクセルルックアップ処理）を採用している。しかし、このように１ピクセルずつ処理をしていたのでは、背景画像の効率的な描画が困難である。
【０００７】
これに対し、メインメモリ上にあるテクスチャをビットマップ転送する方法（bitblt）があるが、この場合、システムバス径由の転送となるため、バスのもつ転送能力が描画速度向上の壁となる。
【０００８】
また、テクスチャマッピングでは、描画の高速化のために、テクスチャの縦横のサイズが２のべき乗の値をとることが要求されており、利用できるテクスチャに制約が課させられていた。
【０００９】
さらに、通常の３次元描画においては、前記のように裏フレームバッファの描画内容を一旦消去してから次の描画を行わなければならない。この裏フレームバッファの消去処理による描画の更新時間のロスが発生するという問題があった。
【００１０】
本発明は、かかる実情に鑑み、背景画像の高速描画、および画面更新時間の短縮を図ることのできる３次元描画装置および描画方法を提供しようとするものである。
【課題を解決するための手段】
【００１１】
本発明の３次元描画装置は、上記課題を解決するために、表示用と描画用とに交互に切り替えて使用される２つのフレームバッファおよびテクスチャを保持するテクスチャバッファを有するメモリと、前記メモリの前記テクスチャバッファに保持された前記テクスチャを前記描画用のフレームバッファにビットマップ転送して、描画すべき３次元画像の背景画像として前記描画用のフレームバッファに書き込む書き込み手段とを具備するものである。
【００１２】
この本発明の３次元描画装置によれば、背景画像を描画用のフレームバッファに描画する場合には、常にテクスチャバッファから描画用のフレームバッファにテクスチャをビットマップ転送するだけでよく、背景画像のテクスチャマッピングを完全に排除できることによって、背景画像の描画速度を飛躍的に向上させることができ、３次元描画全体の高速化を図ることができる。また、テクスチャのビットマップ転送による書き替えにより、描画用のフレームバッファに次の画像を描画する事前の消去処理が不要になることによって、画面の更新時間を短縮することもできる。また、背景画像のテクスチャマッピングを省けることで、テクスチャの縦横のサイズが２のべき乗の値をとらねばならないという制約からも解放されるという利点が奏せられる。
【００１３】
また、本発明の３次元描画装置において、書き込み手段は、描画用のフレームバッファに書き込まれた背景画像の上に３次元物体を３次元描画し、テクスチャバッファに保持されたテクスチャをテクスチャマッピングにより３次元物体の面に貼り付けるものであってもよい。これにより、背景画像の描画時と３次元物体の面の塗りつぶし時とで、それぞれにマッチしたテクスチャ処理を行うことができる。
【００１４】
また、本発明の描画方法は、上記課題を解決するために、メモリに表示用と描画用とに交互に切り替えて使用される２つのフレームバッファおよびテクスチャを保持するテクスチャバッファを設けておき、前記描画用のフレームバッファに、前記テクスチャバッファに保持された前記テクスチャをビットマップ転送して、描画すべき３次元画像の背景画像として前記描画用のフレームバッファに書き込むことを特徴とするものである。
【００１５】
この本発明の描画方法によれば、背景画像を描画用のフレームバッファに描画する場合には、常にテクスチャバッファから描画用のフレームバッファにテクスチャをビットマップ転送するだけでよく、背景画像のテクスチャマッピングを完全に排除できることによって、背景画像の描画速度を飛躍的に向上させることができ、３次元描画全体の高速化を図ることができる。また、テクスチャのビットマップ転送による書き替えにより、描画用のフレームバッファに次の画像を描画する事前の消去処理が不要になることによって、画面の更新時間を短縮することもできる。また、背景画像のテクスチャマッピングを省けることで、テクスチャの縦横のサイズが２のべき乗の値をとらねばならないという制約からも解放されるという利点が奏せられる。
【００１６】
さらに、本発明の描画方法は、描画用のフレームバッファに書き込まれた背景画像の上に３次元物体を３次元描画し、テクスチャバッファに保持されたテクスチャをテクスチャマッピングにより３次元物体の面に貼り付けるようにしてもよい。これにより、背景画像の描画時と３次元物体の面の塗りつぶし時とで、それぞれにマッチしたテクスチャ処理を行うことができる。
【発明の効果】
【００１７】
本発明の３次元描画装置および描画方法によれば、背景画像の描画速度を飛躍的に向上し、３次元描画全体の高速化を図ることができる。また、テクスチャのビットマップ転送による書き替えにより、描画用のフレームバッファに次の画像を描画する事前の消去処理が不要になることによって、画面の更新時間を短縮することができる。さらに、テクスチャの縦横のサイズが２のべき乗の値をとらねばならないという制約が無くなる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面に基づき説明する。
【００１９】
図１は、本発明の一実施形態にかかる３次元描画装置の構成の一部を示すブロック図である。
【００２０】
同図に示すように、この３次元描画装置１００は、ＣＰＵ（Central Processing Unit）１、メインメモリ２、ディスプレイ３、ＶＲＡＭ(Video Random Access Memory)４上のフレームバッファへの３次元描画を行うＧＰＵ（Graphics Processing Unit）５、そして以上の各部を接続する伝送路であるバス６を備える。
【００２１】
ＣＰＵ１は、メインメモリ２に保持されたプログラムによって生成された３次元描画のための命令を解釈して３次元描画のための３次元座標計算（ジオメトリ演算）を行い、ＧＰＵ５に対して、ＶＲＡＭ４上のフレームバッファへの描画処理の命令を与える。ＧＰＵ５は、ＣＰＵ１より与えられた命令に従って、ＶＲＡＭ４のフレームバッファへの３次元描画計算（ラスタライズ）などを行う。また、ＧＰＵ５は、ＣＰＵ１より与えられたテクスチャの描画に関する命令に従って、ＶＲＡＭ４上のフレームバッファへのテクスチャのビットマップ転送、およびフレームバッファ上に３次元描画された板の上にテクスチャマッピングによりテクスチャの貼り付けのための演算を行う。
【００２２】
ＶＲＡＭ４の記憶領域には、ディスプレイ３に表示する描画内容を保持する表フレームバッファ４１、ＧＰＵ５による描画処理結果である画像データが書き込まれる裏フレームバッファ４２、３次元画像の背景画像や３次元物体の板の塗りつぶし画像として用いられる１つ以上のテクスチャが保持されるテクスチャバッファ４３が設けられている。これらの表フレームバッファ４１と裏フレームバッファ４２は描画とディスプレイ表示に交互に切り替えて使用される。表フレームバッファ４１に保持された画像データはビデオ信号としてディスプレイ３へ送出され、ディスプレイ３に視覚的な画像として出力される。表フレームバッファ４１の記憶されている描画内容がディスプレイ３に表示されている期間に、裏フレームバッファ４１への３次元描画が行われ、裏フレームバッファ４２への３次元描画が完了したら、表フレームバッファ４１と裏フレームバッファ４２との切り替えが行われる。
【００２３】
テクスチャバッファ４３には、ＣＰＵ１とＧＰＵ５による制御の下でメインメモリ２からバス７を通じて転送されたテクスチャデータが保持されるようになっている。
【００２４】
次に、この３次元描画装置１００により、図２に示す２次元の背景画像２１の上に３次元の物体を配置してその物体の視覚面２２にテクスチャを貼り付けた画像２０を描画する場合の動作を説明する。
【００２５】
ここで、図２の背景画像２１には図３に示すような２次元画像のテクスチャ３１が使用されており、また、３次元物体の視覚される面２２の塗りつぶしには、図４に示すような別の２次元画像であるテクスチャ３２が使用されている。これらのテクスチャ３１，３２は、３次元描画の前処理の段において、メインメモリ２からバス６を径由してＶＲＡＭ４のテクスチャバッファ４３に転送保持される。
【００２６】
図５は、フレームバッファへの描画とディスプレイ表示の流れを示すフローチャートである。
【００２７】
まず、ＧＰＵ５は、ＣＰＵ１より与えられた命令に従って、テクスチャバッファ４３に保持されている背景画像のためのテクスチャ３１を裏フレームバッファ４２の領域全体にビットマップ転送する（ステップ５０１）。この場合、裏フレームバッファ４２の消去処理は不要のため行わず、裏フレームバッファ４２にビットマップ転送によりテクスチャ３１を上書きする。
【００２８】
続いてＧＰＵ５は、ＣＰＵ１より与えられた命令に従って、裏フレームバッファ４２に書き込まれた背景画像上への３次元画像の描画を行う（ステップ５０２）。この３次元画像の描画において、ＧＰＵ５はＣＰＵ１より与えられた命令に従って、３次元描画された物体の視覚される面２２へのテクスチャ３２の貼り付けをテクスチャマッピングにより行う。テクスチャマッピングは、たとえば、テクスチャのビットマップデータを物体に貼り付けて３次元レンダリングをすることによって実現される。
【００２９】
３次元画像の描画が完了したら、次にＧＰＵ５は、ＣＰＵ１より与えられた命令に従って、表フレームバッファ４１と裏フレームバッファ４２とを切り替える（ステップ５０３）。すなわち、それまで表示用に使用されていた一方のフレームバッファ（表フレームバッファ４１）を描画用のフレームバッファ（裏フレームバッファ４２）に、それまで描画用に使用されていた他方のフレームバッファ（裏フレームバッファ４２）を表示用のフレームバッファ（表フレームバッファ４１）に切り替える。
【００３０】
表フレームバッファ４２の描画内容はディスプレイ３に表示され（ステップ５０４）、この間にＧＰＵ５は、裏フレームバッファ４１の描画内容を消去することなく、裏フレームバッファ４１に次の背景画像用のテクスチャをビットマップ転送する。
【００３１】
図６は、テクスチャに関する処理の流れを示すフローチャートである。このように、ＧＰＵ５は、ＣＰＵ１よりテクスチャのビットマップ転送命令を受けた場合には（ステップ６０１のＹＥＳ）、テクスチャバッファ４３から裏フレームバッファ４２にテクスチャをビットマップ転送して背景画像の書き込みを行い（ステップ６０３）、ＣＰＵ１よりテクスチャマッピングの命令を受けた場合には（ステップ６０２のＹＥＳ）、裏フレームバッファ４２に３次元描画された物体の視覚面へのテクスチャの貼り付けをテクスチャマッピングにより行う（ステップ６０４）。
【００３２】
このように、本実施形態では、背景画像を裏フレームバッファ４２に描画する場合には、常にテクスチャバッファ４３から裏フレームバッファ４２にテクスチャをビットマップ転送するだけでよく、背景画像のテクスチャマッピングを完全に排除できることによって、背景画像の描画速度を飛躍的に向上させることができ、３次元描画全体の高速化を図ることができる。また、裏フレームバッファ４２の消去処理が不要になることによって、画面の更新時間の短縮を実現できる。
【００３３】
また、背景画像のテクスチャマッピングを省けることで、テクスチャの縦横のサイズが２のべき乗の値をとらねばならないという制約からも解放されることとなり、テクスチャを簡便に用意できるようになる。また、テクスチャの縦横のサイズが２のべき乗の値にするための余計な情報を持たなくて済むようになり、テクスチャバッファ４３の記憶領域の利用効率が向上する。
【００３４】
なお、本発明の３次元描画装置および描画方法は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。たとえば、前記実施の形態では、３次元座標計算（ジオメトリ演算）をＣＰＵ１で行うようにしたが、３次元座標計算（ジオメトリ演算）からフレームバッファへの３次元描画計算（ラスタライズ）までの描画処理全体をＧＰＵ５が行うような構成を採ることも可能である。また、前記実施の形態では、３次元描画装置１００に構成にディスプレイ３が含まれているが、外部ディスプレイへの出力端子をもつ構成を採っても構わない。
【００３５】
本発明の３次元描画装置および描画方法は、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯電話、デジタルビデオカメラ、その他ディスプレイを有する様々な電子機器に適用することが可能である。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態にかかる３次元描画装置の構成の一部を示すブロック図である。
【図２】２次元の背景画像の上に３次元の物体を配置した画像の例を示す図である。
【図３】図２の背景画像の塗りつぶしに使用されるテクスチャを示す図である。
【図４】図２の３次元物体の視覚面の塗りつぶしに使用されるテクスチャを示す図である。
【図５】フレームバッファへの描画とディスプレイ表示の流れを示すフローチャートである。
【図６】テクスチャに関する処理の流れを示すフローチャートである。
【符号の説明】
【００３７】
１・・・ＣＰＵ
２・・・メインメモリ
３・・・ディスプレイ
４・・・ＶＲＡＭ
５・・・ＧＰＵ
６・・・バス
２１・・・背景画像
３１，３２・・・テクスチャ
４１・・・表フレームバッファ
４２・・・裏フレームバッファ
４３・・・テクスチャバッファ
１００・・・３次元描画装置
【図１】
2005063329.tif 000003
【図２】
2005063329.tif 000004
【図３】
2005063329.tif 000005
【図４】
2005063329.tif 000006
【図５】
2005063329.tif 000007
【図６】
2005063329.tif 000008