(57)【特許請求の範囲】
【請求項１】
描画順序が定められた複数の画像パーツの重ね合わせによって表現される画像オブジェクトを複数組み合わせて画像を描画する画像描画装置であって、
前記画像オブジェクトの各々において同一の描画順序である画像パーツであって、かつ、同一の描画処理によって描画が可能な描画条件で描画される画像パーツを、前記複数の画像オブジェクトに亘って纏めて同一の描画処理によって描画することを特徴とする画像描画装置。
【請求項２】
請求項１に記載の画像描画装置であって、
前記描画条件は、テクスチャの描画条件、アルファブレンドの描画条件、カラーブレンドの描画条件の少なくとも一つを含むことを特徴とする画像描画装置。
【請求項３】
請求項２に記載の画像描画装置であって、
前記複数の画像オブジェクトの各々に含まれる複数の画像パーツの描画順序が維持されるように前記画像を描画することを特徴とする画像描画装置。
【請求項４】
描画順序が定められた複数の画像パーツの重ね合わせによって表現される画像オブジェクトを複数組み合わせて画像を描画する画像描画プログラムであって、
コンピュータを、
前記画像オブジェクトの各々において同一の描画順序である画像パーツであって、かつ、同一の描画処理によって描画が可能な描画条件で描画される画像パーツを、前記複数の画像オブジェクトに亘って纏めて同一の描画処理によって描画する画像描画手段として機能させることを特徴とする画像描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像描画装置及び画像描画プログラムに関する。
【背景技術】
【０００２】
電子ゲーム等における画像を描画する際、予め定められた描画順序に沿って複数の部分画像（画像パーツ）を重ね合わせた画像オブジェクトを複数組み合わせて一つの画像として描画する方法が採用されている。
【０００３】
図７は、アルファブレンドにより複数の画像パーツを重ね合わせて一つの画像オブジェクトを表示させる例を示す。図８に示すグラフノードで表わされる描画順序にしたがって、画像パーツＡ０からＡ３を予め定められた描画条件（アルファブレンド設定）に則って順に描画する処理を呼び出し（コール）することによって画像オブジェクトが描画される。さらに、図９に示すように画像オブジェクト（左上から右下に向かって画像オブジェクトＰ０〜Ｐ２４とする）を２５個並べて表示させる画像を描画する場合、図１０に示すグラフノードで表わされる描画順序にしたがって、画像オブジェクトＰ０を構成する画像パーツＡ０からＡ３の描画処理を順に呼び出し（コール）した後、画像オブジェクトＰ１を構成する画像パーツＢ０からＢ３・・・と、画像オブジェクトＰ０からＰ２４まで順番に描画処理が行われる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、画像が複雑になるにつれて、一つの画面を表示するための画像に含まれる画像オブジェクトの数及び各画像オブジェクトを構成する画像パーツの数も増加する。そのため、画像全体を描画するためのコール回数が増加し、その結果、描画処理に掛る時間が長くなる。特に、電子ゲーム等においてアニメーション効果を施した画像オブジェクトを同じタイミングで大量に表示させるような場合、描画処理のコール回数が増大し、描画が遅延してしまうことがある。
【０００５】
本発明は、画像を描画する際の描画処理の呼び出し（コール）回数を低減することにより、画像の描画処理時間を短縮させることができる画像描画装置及び画像描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の１つの態様は、描画順序が定められた複数の画像パーツの重ね合わせによって表現される画像オブジェクトを複数組み合わせて画像を描画する画像描画装置であって、前記画像オブジェクトの各々において同一の描画順序である画像パーツであって、かつ、同一の描画処理によって描画が可能な描画条件で描画される画像パーツを、前記複数の画像オブジェクトに亘って纏めて同一の描画処理によって描画することを特徴とする画像描画装置である。
【０００７】
本発明の別の態様は、描画順序が定められた複数の画像パーツの重ね合わせによって表現される画像オブジェクトを複数組み合わせて画像を描画する画像描画プログラムであって、コンピュータを、前記画像オブジェクトの各々において同一の描画順序である画像パーツであって、かつ、同一の描画処理によって描画が可能な描画条件で描画される画像パーツを、前記複数の画像オブジェクトに亘って纏めて同一の描画処理によって描画する画像描画手段として機能させることを特徴とする画像描画プログラムである。
【０００８】
ここで、前記描画条件は、テクスチャの描画条件、アルファブレンドの描画条件、カラーブレンドの描画条件の少なくとも一つを含むことが好適である。
【０００９】
また、前記複数の画像オブジェクトの各々に含まれる複数の画像パーツの描画順序が維持されるように前記画像を描画することが好適である。
【発明の効果】
【００１０】
本発明によれば、画像を描画する際の描画処理の呼び出し（コール）回数を低減することにより、画像の描画処理時間を短縮させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における画像描画装置の構成を示す図である。
【図２】本発明の実施の形態における画像のグラフノードの構成を示す図である。
【図３】従来の描画処理に基づいて生成された順序リストの例を示す図である。
【図４】本発明の実施の形態における画像描画処理のフローチャートである。
【図５】本発明の画像描画処理の例１を説明する順序リストの例を示す図である。
【図６】本発明の画像描画処理の例２を説明する順序リストの例を示す図である。
【図７】画像オブジェクトの描画順序及び描画条件の例を示す図である。
【図８】画像オブジェクトの描画順序を示すグラフノードの例を示す図である。
【図９】複数の画像オブジェクトを組み合わせて構成された画像の例を示す図である。
【図１０】複数の画像オブジェクトを組み合わせて構成された画像の描画順序を示すグラフノードの例を示す図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態における画像描画装置１００は、図１に示すように、処理部１０、記憶部１２、入力部１４、出力部１６及び通信部１８を含んで構成される。画像描画装置１００は、例えば、パーソナルコンピュータ（ＰＣ）のみならず、携帯電話、スマートフォン、タブレット端末等の通信可能な携帯端末で実現することができる。
【００１３】
処理部１０は、ＣＰＵ等の演算処理を行う手段を含む。記憶部１２は、半導体メモリやメモリカード等の記憶手段を含む。記憶部１２は、処理部１０とアクセス可能に接続され、アプリケーションプログラム、その処理に必要なデータ等の情報を記憶する。入力部１４は、画像描画装置１００に情報を入力する手段を含む。入力部１４は、例えば、ユーザからの入力を受けるタッチパネルやボタン等を備える。出力部１６は、ユーザから入力情報を受け付けるためのユーザインターフェース画面（ＵＩ）等や画像描画装置１００での処理結果を出力する手段を含む。出力部１６は、例えば、ユーザに対して画像を呈示するディスプレイを備える。通信部１８は、情報通信網１０４を介して、他の情報通信機器と情報をやり取りするためのインターフェースを含んで構成される。通信部１８による通信は有線及び無線を問わない。
【００１４】
本実施の形態では、処理部１０において電子ゲームプログラムを実行することにより、ユーザに電子ゲームを提供する。電子ゲームの進行に伴って出力部１６に表示されるゲーム画面の表示が変更されるので、その際に画像描画プログラムを実行することによって画像描画処理を実現する。
【００１５】
画像描画処理は、図７に示したように、複数の画像パーツを重ね合わせて表現される画像オブジェクトを複数画面上の適切に配置して描画することによって行われる。本実施の形態における画像処理では、複数の画像オブジェクトにおいて同一の描画処理、すなわち一回の描画処理の呼び出し（コール）によって描画が可能な描画条件の組み合わせを満足する画像パーツを纏めて描画する。
【００１６】
ここで、同一の描画処理によって描画が可能か否かを判断する際に考慮する描画条件にはテクスチャの描画条件、アルファブレンドの描画条件、カラーブレンドの描画条件の少なくとも一つを含むことが好適である。また、複数の画像オブジェクトの各々において、各画像オブジェクトに含まれる複数の画像パーツの描画順序が維持されるように画像を描画する。
【００１７】
アルファブレンドとは、複数の画像パーツを係数（α値）に基づいて合成する処理である。アルファブレンドは、特に電子ゲームの画像描画において、別々に描かれた背景画像パーツとキャラクタ画像パーツとを合成する場合等で使われる。また、文字画像パーツ等のアンチエイリアスにも使われている。合成処理では、アルファチャンネルと呼ばれる透過したい画素情報を定義した補助データを用意し、それに基づいて重ね合わせた画像において透過したい領域の透過を行う。アルファチャンネルを透過したい画像の任意の１色とすることもある。
【００１８】
テクスチャとは、表面の模様や質感等を表現するための画像パーツを他の画像パーツに貼り付ける処理である。表面の模様や質感等を表現するための画像パーツ自体をテクスチャと呼ぶ場合もある。テクスチャを他の画像パーツに貼り付けることをテクスチャ・マッピングと呼ぶ。
【００１９】
カラーブレンドとは、重ね合わせた複数の画像パーツのカラーをブレンドすることである。カラーブレンドは、描画モードによりベースとなる画像パーツのカラー（ベースカラー）と重ね合わせられる画像パーツのカラー（ブレンドカラー）の相互作用を変更して描画を行う。例えば、標準カラーブレンドでは、ブレンドカラーとベースカラーとを相互作用させず、重ね合わせて描画される領域についてはベースカラーをブレンドカラーで塗り潰す。乗算カラーブレンドでは、ベースカラーとブレンドカラーとを掛け合わせて最終カラーとする。最終カラーは、ベースカラー及びブレンドカラーよりも暗い色になる。スクリーンカラーブレンドでは、ブレンドカラーとベースカラーの反転したカラーを掛け合わせる。最終カラーは、ベースカラー及びブレンドカラーより明るい色になる。
【００２０】
ただし、考慮の対象となる描画条件はこれらに限定されるものではなく、その条件が一致していなければ同一の描画処理の呼び出し（コール）によって描画が可能とならない描画条件であればよい。
【００２１】
図９に示すように画像オブジェクト（左上から右下に向かって画像オブジェクトＰ０〜Ｐ２４とする）を２５個並べて表示させる画像を描画する場合、その描画順序は図２に示すグラフノードで表わされる。各画像オブジェクトＰ０〜Ｐ２４においてそれを構成する画像パーツの描画順序及び描画条件は描画処理間前に定められている。
【００２２】
ここで、グラフノードでは、画像オブジェクト毎においてルートノード（最背面に描画される画像パーツに対応するノード）からみて同一の描画順序で描画される画像パーツには同一の数字を付して示している。例えば、画像オブジェクトＰ０を構成する画像パーツＡ０と画像オブジェクトＰ１を構成する画像パーツＢ０はそれぞれの画像オブジェクトにおいて最初に描画されるので同一の「０」という数字が付される。画像オブジェクトＰ２の画像パーツＣ０等も同様である。また、画像オブジェクトＰ０を構成する画像パーツＡ１と画像オブジェクトＰ１を構成する画像パーツＢ１はそれぞれの画像オブジェクトにおいて２番目に描画されるので同一の「１」という数字が付される。画像オブジェクトＰ２の画像パーツＣ１等も同様である。このように、グラフノードには、各画像オブジェクトを構成する画像パーツの当該画像オブジェクトにおける描画順序が登録されている。
【００２３】
従来の画像描画処理では、図１０に示したように、画像オブジェクトＰ０を構成する画像パーツＡ０からＡ３の描画処理を順に呼び出し（コール）した後、画像オブジェクトＰ１を構成する画像パーツＢ０からＢ３・・・と、画像オブジェクトＰ０からＰ２４まで順番に描画処理が行われる。図３は、画像パーツの描画順及び描画条件をシーケンスに表わした図である。
【００２４】
ここで、各画像オブジェクトＰ０〜Ｐ２４においてそれを構成する画像パーツの描画順序及び描画条件を変更すると画像の重ね合わせの順番やアルファブレンド、テクスチャ、カラーブレンド等の条件が変更され、結果として描画される画像が変更されてしまう。そこで、本実施の形態では、各画像オブジェクトＰ０〜Ｐ２４においてそれを構成する画像パーツの描画順序及び描画条件は変更することなく、すなわち複数の画像オブジェクトＰ０〜Ｐ２４の各々に含まれる複数の画像パーツの描画順序が維持されるように、画像オブジェクトＰ０〜Ｐ２４間において各画像パーツの描画順序を変更することによって描画処理の呼び出し（コール）回数を減らす処理が行われる。
【００２５】
描画順序の変更処理は、各画像パーツの描画条件（グループ）及び描画順序に基づいて行われる。以下、図４のフローチャートを参照して、本実施の形態における画像描画処理について説明する。画像描画処理は、例えば、電子ゲームにおいてイベントが発生したタイミングで実行されたり、一定の周期で画面をリフレッシュするように実行されたりする。
【００２６】
ステップＳ１０では、処理部１０は、描画処理の開始と共に、グラフノードを従来の描画処理における描画順序に沿った走査を開始する。当該走査によって、各画像パーツの描画処理の順序を示す順序リストが生成される。
【００２７】
ステップＳ１２では、現在走査の対象となっている画像パーツを含む画像オブジェクトにおける当該画像パーツの描画順序及び描画条件が抽出される。
【００２８】
ステップＳ１４では、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序及び描画条件が同じである画像パーツが属するグループがあるか否か、すなわち同じ描画条件であり一回の描画処理の呼び出し（コール）によって描画が可能な他の画像パーツが存在するか否かが判定される。二つの画像パーツが同一の描画処理によって描画が可能な描画条件の組み合わせを満足する場合にはステップＳ１６に処理を移行させ、そうでない場合にはステップＳ１８に処理を移行させる。また、現在走査の対象とされている画像パーツと描画順序が同じ画像パーツが過去に走査対象となっていない場合、すなわち現在走査の対象とされている画像パーツが同じ描画順序の画像パーツのうち最初に走査対象とされた場合にはステップＳ２０に処理を移行させる。
【００２９】
ステップＳ１６では、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序が同じ画像パーツのうち同じグループに属する画像パーツと、現在走査の対象とされている画像パーツと、が同じ描画処理によって描画されるように順序リストに登録する。
【００３０】
ステップＳ１８では、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序が同じ画像パーツのうち最後に走査対象とされた画像パーツの次に現在走査の対象とされている画像パーツが別の新たなグループとして描画されるように順序リストに登録する。新たなグループの描画条件は、登録された画像パーツの描画条件とされる。すなわち、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序が同じ画像パーツのうち最後に走査対象とされた画像パーツと、現在走査の対象とされている画像パーツと、が異なる描画処理によって描画されるように順序リストに登録される。
【００３１】
ステップＳ２０では、現在走査の対象とされている画像パーツを最後に走査対象とされた画像パーツの次に描画されるように新たなグループとして順序リストに登録する。新たなグループの描画条件は、登録された画像パーツの描画条件とされる。
【００３２】
ステップＳ２２では、描画対象となっているすべての画像オブジェクトのすべての画像パーツについて走査が終了したか否かが判断される。走査が終了していればステップＳ２４に処理を移行させ、そうでなければステップＳ１０に処理を戻して、次の画像パーツから走査を続ける。
【００３３】
ステップＳ２４では、順序リストに沿って描画処理が行われる。処理部１０は、ステップ２２までに登録された順序リストにしたがって順に描画処理を呼び出し（コール）して各画像パーツを描画する。このとき、順序リストにおいて一つの描画処理によって複数の画像パーツを描画するように登録されている場合には、該当する画像パーツは一回の描画処理の呼び出し（コール）によって描画される。
【００３４】
＜画像描画処理の例１＞
以下、図２のグラフノードについて本実施の形態における画像描画処理を適用した例について説明する。
【００３５】
まず、ステップＳ１０において走査対象が画像オブジェクトＰ０の画像パーツＡ０とされる。ステップＳ１２では、画像オブジェクトＰ０の画像パーツＡ０の描画順序「０」と描画条件「アルファブレンド乗算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＡ０が同じ描画順序「０」の画像パーツのうち最初に走査対象とされているのでステップＳ２０に処理が移行され、順序リストの最初に新たなグループ（コール１）として画像パーツＡ０が登録される。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＡ１が走査対象とされる。ステップＳ１２では、画像オブジェクトＰ０の画像パーツＡ１の描画順序「１」と描画条件「アルファブレンド加算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＡ１が同じ描画順序「１」の画像パーツのうち最初に走査対象とされているのでステップＳ２０に処理が移行され、順序リストの画像パーツＡ０の次に新たなグループ（コール２）として画像パーツＡ１が登録される。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＡ２が走査対象とされる。ステップＳ１２では、画像オブジェクトＰ０の画像パーツＡ２の描画順序「２」と描画条件「アルファブレンド乗算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＡ２が同じ描画順序「２」の画像パーツのうち最初に走査対象とされているのでステップＳ２０に処理が移行され、順序リストの画像パーツＡ１の次に新たなグループ（コール３）として画像パーツＡ２が登録される。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＡ３が走査対象とされる。ステップＳ１２では、画像オブジェクトＰ０の画像パーツＡ３の描画順序「３」と描画条件「アルファブレンド加算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＡ３が同じ描画順序「３」の画像パーツのうち最初に走査対象とされているのでステップＳ２０に処理が移行され、順序リストの画像パーツＡ２の次に新たなグループ（コール４）として画像パーツＡ３が登録される。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像オブジェクトＰ１の画像パーツＡ０が走査対象とされる。この時点において順序リストは図５（ａ）のようになる。
【００３６】
ステップＳ１２では、画像オブジェクトＰ１の画像パーツＢ０の描画順序「０」と描画条件「アルファブレンド乗算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＢ０と同じ描画順序「０」の画像パーツのうち画像パーツＡ０が属するグループ（コール１）と同じ描画条件であるのでステップＳ１６に処理が移行される。ステップＳ１６では、グループ（コール１）に属する画像パーツＡ０と、現在走査の対象とされている画像パーツＢ０と、が同じ描画処理によって描画されるように順序リストに登録される。この時点において順序リストは図５（ｂ）のようになる。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＢ１が走査対象とされる。
【００３７】
ステップＳ１２では、画像オブジェクトＰ１の画像パーツＢ１の描画順序「１」と描画条件「アルファブレンド加算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＢ１と同じ描画順序「１」の画像パーツのうち画像パーツＡ１が属するグループ（コール２）と同じ描画条件であるのでステップＳ１６に処理が移行される。ステップＳ１６では、グループ（コール２）に属する画像パーツＡ１と、現在走査の対象とされている画像パーツＢ１と、が同じ描画処理によって描画されるように順序リストに登録される。この時点において順序リストは図５（ｃ）のようになる。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＢ２が走査対象とされる。
【００３８】
以下、画像パーツＢ２以降についても同様に処理が行われ、順序リストは最終的に図５（ｄ）のように登録される。本画像描画処理では、各画像オブジェクトを構成する画像パーツの描画順序は維持されつつ、画像描画処理の呼び出し（コール）の回数が４回に減らされる。したがって、描画される画像全体の構成を大きく変更することなく、描画処理を高速化することができる。
【００３９】
＜画像描画処理の例２＞
例えば、画像オブジェクトＰ２の画像パーツＣ１の描画条件「アルファブレンド加算」が描画条件「アルファブレンド乗算」に変更された場合について説明する。この場合、走査対象が画像オブジェクトＰ２の画像パーツＣ１となるまでの処理は上記例１と同様であるので説明を省略する。
【００４０】
ステップＳ１２では、画像オブジェクトＰ２の画像パーツＣ１の描画順序「１」と描画条件「アルファブレンド乗算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＣ１と同じ描画順序「１」の画像パーツには同じ描画条件のグループが存在しないのでステップＳ１８に処理が移行される。ステップＳ１８では、現在走査の対象とされている画像パーツＣ１と描画順序「１」が同じ画像パーツのうち最後に走査対象とされた画像パーツＢ１のグループ２の次に現在走査の対象とされている画像パーツＣ１が新たなグループ２−２として描画されるように順序リストに登録される。この時点において順序リストは図６（ａ）のようになる。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＣ２が走査対象とされる。
【００４１】
以下、画像オブジェクトＰ２の画像パーツＣ２から画像オブジェクトＰ３の画像パーツＤ０までは上記例１と同様に処理が行われる。この時点において順序リストは図６（ｂ）のようになる。
【００４２】
画像オブジェクトＰ３の画像パーツＤ１が走査対象となったとき、ステップＳ１２では、画像オブジェクトＰ３の画像パーツＤ１の描画順序「１」と描画条件「アルファブレンド加算」が抽出される。ステップＳ１４では、現在走査の対象とされている画像パーツＤ１と同じ描画順序「１」の画像パーツのうち同じ描画条件のグループ２が存在するのでステップＳ１６に処理が移行される。ステップＳ１６では、現在走査の対象とされている画像パーツＤ１と描画順序「１」が同じ画像パーツのうち同じ描画条件のグループ２における描画処理で描画されるように順序リストに登録される。この時点において順序リストは図６（ｃ）のようになる。ステップＳ２２では未だすべての画像パーツの走査が終了していないのでステップＳ１０に処理が戻され、次の画像パーツＤ２が走査対象とされる。
【００４３】
以下、画像オブジェクトＰ３の画像パーツＤ２以降について上記例１と同様に処理が行われる。最終的な順序リストは図６（ｄ）のようになる。
【符号の説明】
【００４４】
１０  処理部、１２  記憶部、１４  入力部、１６  出力部、１８  通信部、１００  画像描画装置。
【要約】
【課題】画像を描画する際の描画処理の呼び出し（コール）回数を低減することにより、画像の描画処理時間を短縮させる。
【解決手段】描画順序が定められた複数の画像パーツの重ね合わせによって表現される複数の画像オブジェクトを組み合わせて画像を描画する画像描画装置であって、複数の画像オブジェクトにおいて、同一の描画処理によって描画が可能な描画条件の組み合わせを満足する画像パーツを纏めて同一の描画処理によって描画する。
【選択図】図４【図１】
0005759605.tif 000002
【図２】
0005759605.tif 000003
【図３】
0005759605.tif 000004
【図４】
0005759605.tif 000005
【図５】
0005759605.tif 000006
【図６】
0005759605.tif 000007
【図７】
0005759605.tif 000008
【図８】
0005759605.tif 000009
【図９】
0005759605.tif 000010
【図１０】
0005759605.tif 000011