(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
電子ゲーム等における画像を描画する際、予め定められた描画順序に沿って複数の部分画像(画像パーツ)を重ね合わせた画像オブジェクトを複数組み合わせて一つの画像として描画する方法が採用されている。
【0003】
図7は、アルファブレンドにより複数の画像パーツを重ね合わせて一つの画像オブジェクトを表示させる例を示す。
図8に示すグラフノードで表わされる描画順序にしたがって、画像パーツA0からA3を予め定められた描画条件(アルファブレンド設定)に則って順に描画する処理を呼び出し(コール)することによって画像オブジェクトが描画される。さらに、
図9に示すように画像オブジェクト(左上から右下に向かって画像オブジェクトP0〜P24とする)を25個並べて表示させる画像を描画する場合、
図10に示すグラフノードで表わされる描画順序にしたがって、画像オブジェクトP0を構成する画像パーツA0からA3の描画処理を順に呼び出し(コール)した後、画像オブジェクトP1を構成する画像パーツB0からB3・・・と、画像オブジェクトP0からP24まで順番に描画処理が行われる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、画像が複雑になるにつれて、一つの画面を表示するための画像に含まれる画像オブジェクトの数及び各画像オブジェクトを構成する画像パーツの数も増加する。そのため、画像全体を描画するためのコール回数が増加し、その結果、描画処理に掛る時間が長くなる。特に、電子ゲーム等においてアニメーション効果を施した画像オブジェクトを同じタイミングで大量に表示させるような場合、描画処理のコール回数が増大し、描画が遅延してしまうことがある。
【0005】
本発明は、画像を描画する際の描画処理の呼び出し(コール)回数を低減することにより、画像の描画処理時間を短縮させることができる画像描画装置及び画像描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の1つの態様は、描画順序が定められた複数の画像パーツの重ね合わせによって表現される画像オブジェクトを複数組み合わせて画像を描画する画像描画装置であって、前記画像オブジェクトの各々において同一の描画順序であ
る画像パーツであって、かつ
、同一の描画処理によって描画が可能な
描画条件で描画される画像パーツを
、前記複数の画像オブジェクトに亘って纏め
て同一の描画処理によって描画することを特徴とする画像描画装置である。
【0007】
本発明の別の態様は、描画順序が定められた複数の画像パーツの重ね合わせによって表現される画像オブジェクトを複数組み合わせて画像を描画する画像描画プログラムであって、コンピュータを、前記画像オブジェクトの各々において同一の描画順序であ
る画像パーツであって、かつ
、同一の描画処理によって描画が可能な
描画条件で描画される画像パーツを
、前記複数の画像オブジェクトに亘って纏め
て同一の描画処理によって描画する画像描画手段として機能させることを特徴とする画像描画プログラムである。
【0008】
ここで、前記描画条件は、テクスチャの描画条件、アルファブレンドの描画条件、カラーブレンドの描画条件の少なくとも一つを含むことが好適である。
【0009】
また、前記複数の画像オブジェクトの各々に含まれる複数の画像パーツの描画順序が維持されるように前記画像を描画することが好適である。
【発明の効果】
【0010】
本発明によれば、画像を描画する際の描画処理の呼び出し(コール)回数を低減することにより、画像の描画処理時間を短縮させることができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施の形態における画像描画装置の構成を示す図である。
【
図2】本発明の実施の形態における画像のグラフノードの構成を示す図である。
【
図3】従来の描画処理に基づいて生成された順序リストの例を示す図である。
【
図4】本発明の実施の形態における画像描画処理のフローチャートである。
【
図5】本発明の画像描画処理の例1を説明する順序リストの例を示す図である。
【
図6】本発明の画像描画処理の例2を説明する順序リストの例を示す図である。
【
図7】画像オブジェクトの描画順序及び描画条件の例を示す図である。
【
図8】画像オブジェクトの描画順序を示すグラフノードの例を示す図である。
【
図9】複数の画像オブジェクトを組み合わせて構成された画像の例を示す図である。
【
図10】複数の画像オブジェクトを組み合わせて構成された画像の描画順序を示すグラフノードの例を示す図である。
【発明を実施するための形態】
【0012】
本発明の実施の形態における画像描画装置100は、
図1に示すように、処理部10、記憶部12、入力部14、出力部16及び通信部18を含んで構成される。画像描画装置100は、例えば、パーソナルコンピュータ(PC)のみならず、携帯電話、スマートフォン、タブレット端末等の通信可能な携帯端末で実現することができる。
【0013】
処理部10は、CPU等の演算処理を行う手段を含む。記憶部12は、半導体メモリやメモリカード等の記憶手段を含む。記憶部12は、処理部10とアクセス可能に接続され、アプリケーションプログラム、その処理に必要なデータ等の情報を記憶する。入力部14は、画像描画装置100に情報を入力する手段を含む。入力部14は、例えば、ユーザからの入力を受けるタッチパネルやボタン等を備える。出力部16は、ユーザから入力情報を受け付けるためのユーザインターフェース画面(UI)等や画像描画装置100での処理結果を出力する手段を含む。出力部16は、例えば、ユーザに対して画像を呈示するディスプレイを備える。通信部18は、情報通信網104を介して、他の情報通信機器と情報をやり取りするためのインターフェースを含んで構成される。通信部18による通信は有線及び無線を問わない。
【0014】
本実施の形態では、処理部10において電子ゲームプログラムを実行することにより、ユーザに電子ゲームを提供する。電子ゲームの進行に伴って出力部16に表示されるゲーム画面の表示が変更されるので、その際に画像描画プログラムを実行することによって画像描画処理を実現する。
【0015】
画像描画処理は、
図7に示したように、複数の画像パーツを重ね合わせて表現される画像オブジェクトを複数画面上の適切に配置して描画することによって行われる。本実施の形態における画像処理では、複数の画像オブジェクトにおいて同一の描画処理、すなわち一回の描画処理の呼び出し(コール)によって描画が可能な描画条件の組み合わせを満足する画像パーツを纏めて描画する。
【0016】
ここで、同一の描画処理によって描画が可能か否かを判断する際に考慮する描画条件にはテクスチャの描画条件、アルファブレンドの描画条件、カラーブレンドの描画条件の少なくとも一つを含むことが好適である。また、複数の画像オブジェクトの各々において、各画像オブジェクトに含まれる複数の画像パーツの描画順序が維持されるように画像を描画する。
【0017】
アルファブレンドとは、複数の画像パーツを係数(α値)に基づいて合成する処理である。アルファブレンドは、特に電子ゲームの画像描画において、別々に描かれた背景画像パーツとキャラクタ画像パーツとを合成する場合等で使われる。また、文字画像パーツ等のアンチエイリアスにも使われている。合成処理では、アルファチャンネルと呼ばれる透過したい画素情報を定義した補助データを用意し、それに基づいて重ね合わせた画像において透過したい領域の透過を行う。アルファチャンネルを透過したい画像の任意の1色とすることもある。
【0018】
テクスチャとは、表面の模様や質感等を表現するための画像パーツを他の画像パーツに貼り付ける処理である。表面の模様や質感等を表現するための画像パーツ自体をテクスチャと呼ぶ場合もある。テクスチャを他の画像パーツに貼り付けることをテクスチャ・マッピングと呼ぶ。
【0019】
カラーブレンドとは、重ね合わせた複数の画像パーツのカラーをブレンドすることである。カラーブレンドは、描画モードによりベースとなる画像パーツのカラー(ベースカラー)と重ね合わせられる画像パーツのカラー(ブレンドカラー)の相互作用を変更して描画を行う。例えば、標準カラーブレンドでは、ブレンドカラーとベースカラーとを相互作用させず、重ね合わせて描画される領域についてはベースカラーをブレンドカラーで塗り潰す。乗算カラーブレンドでは、ベースカラーとブレンドカラーとを掛け合わせて最終カラーとする。最終カラーは、ベースカラー及びブレンドカラーよりも暗い色になる。スクリーンカラーブレンドでは、ブレンドカラーとベースカラーの反転したカラーを掛け合わせる。最終カラーは、ベースカラー及びブレンドカラーより明るい色になる。
【0020】
ただし、考慮の対象となる描画条件はこれらに限定されるものではなく、その条件が一致していなければ同一の描画処理の呼び出し(コール)によって描画が可能とならない描画条件であればよい。
【0021】
図9に示すように画像オブジェクト(左上から右下に向かって画像オブジェクトP0〜P24とする)を25個並べて表示させる画像を描画する場合、その描画順序は
図2に示すグラフノードで表わされる。各画像オブジェクトP0〜P24においてそれを構成する画像パーツの描画順序及び描画条件は描画処理間前に定められている。
【0022】
ここで、グラフノードでは、画像オブジェクト毎においてルートノード(最背面に描画される画像パーツに対応するノード)からみて同一の描画順序で描画される画像パーツには同一の数字を付して示している。例えば、画像オブジェクトP0を構成する画像パーツA0と画像オブジェクトP1を構成する画像パーツB0はそれぞれの画像オブジェクトにおいて最初に描画されるので同一の「0」という数字が付される。画像オブジェクトP2の画像パーツC0等も同様である。また、画像オブジェクトP0を構成する画像パーツA1と画像オブジェクトP1を構成する画像パーツB1はそれぞれの画像オブジェクトにおいて2番目に描画されるので同一の「1」という数字が付される。画像オブジェクトP2の画像パーツC1等も同様である。このように、グラフノードには、各画像オブジェクトを構成する画像パーツの当該画像オブジェクトにおける描画順序が登録されている。
【0023】
従来の画像描画処理では、
図10に示したように、画像オブジェクトP0を構成する画像パーツA0からA3の描画処理を順に呼び出し(コール)した後、画像オブジェクトP1を構成する画像パーツB0からB3・・・と、画像オブジェクトP0からP24まで順番に描画処理が行われる。
図3は、画像パーツの描画順及び描画条件をシーケンスに表わした図である。
【0024】
ここで、各画像オブジェクトP0〜P24においてそれを構成する画像パーツの描画順序及び描画条件を変更すると画像の重ね合わせの順番やアルファブレンド、テクスチャ、カラーブレンド等の条件が変更され、結果として描画される画像が変更されてしまう。そこで、本実施の形態では、各画像オブジェクトP0〜P24においてそれを構成する画像パーツの描画順序及び描画条件は変更することなく、すなわち複数の画像オブジェクトP0〜P24の各々に含まれる複数の画像パーツの描画順序が維持されるように、画像オブジェクトP0〜P24間において各画像パーツの描画順序を変更することによって描画処理の呼び出し(コール)回数を減らす処理が行われる。
【0025】
描画順序の変更処理は、各画像パーツの描画条件(グループ)及び描画順序に基づいて行われる。以下、
図4のフローチャートを参照して、本実施の形態における画像描画処理について説明する。画像描画処理は、例えば、電子ゲームにおいてイベントが発生したタイミングで実行されたり、一定の周期で画面をリフレッシュするように実行されたりする。
【0026】
ステップS10では、処理部10は、描画処理の開始と共に、グラフノードを従来の描画処理における描画順序に沿った走査を開始する。当該走査によって、各画像パーツの描画処理の順序を示す順序リストが生成される。
【0027】
ステップS12では、現在走査の対象となっている画像パーツを含む画像オブジェクトにおける当該画像パーツの描画順序及び描画条件が抽出される。
【0028】
ステップS14では、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序及び描画条件が同じである画像パーツが属するグループがあるか否か、すなわち同じ描画条件であり一回の描画処理の呼び出し(コール)によって描画が可能な他の画像パーツが存在するか否かが判定される。二つの画像パーツが同一の描画処理によって描画が可能な描画条件の組み合わせを満足する場合にはステップS16に処理を移行させ、そうでない場合にはステップS18に処理を移行させる。また、現在走査の対象とされている画像パーツと描画順序が同じ画像パーツが過去に走査対象となっていない場合、すなわち現在走査の対象とされている画像パーツが同じ描画順序の画像パーツのうち最初に走査対象とされた場合にはステップS20に処理を移行させる。
【0029】
ステップS16では、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序が同じ画像パーツのうち同じグループに属する画像パーツと、現在走査の対象とされている画像パーツと、が同じ描画処理によって描画されるように順序リストに登録する。
【0030】
ステップS18では、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序が同じ画像パーツのうち最後に走査対象とされた画像パーツの次に現在走査の対象とされている画像パーツが別の新たなグループとして描画されるように順序リストに登録する。新たなグループの描画条件は、登録された画像パーツの描画条件とされる。すなわち、既に走査の対象とされた画像パーツのうち現在走査の対象とされている画像パーツと描画順序が同じ画像パーツのうち最後に走査対象とされた画像パーツと、現在走査の対象とされている画像パーツと、が異なる描画処理によって描画されるように順序リストに登録される。
【0031】
ステップS20では、現在走査の対象とされている画像パーツを最後に走査対象とされた画像パーツの次に描画されるように新たなグループとして順序リストに登録する。新たなグループの描画条件は、登録された画像パーツの描画条件とされる。
【0032】
ステップS22では、描画対象となっているすべての画像オブジェクトのすべての画像パーツについて走査が終了したか否かが判断される。走査が終了していればステップS24に処理を移行させ、そうでなければステップS10に処理を戻して、次の画像パーツから走査を続ける。
【0033】
ステップS24では、順序リストに沿って描画処理が行われる。処理部10は、ステップ22までに登録された順序リストにしたがって順に描画処理を呼び出し(コール)して各画像パーツを描画する。このとき、順序リストにおいて一つの描画処理によって複数の画像パーツを描画するように登録されている場合には、該当する画像パーツは一回の描画処理の呼び出し(コール)によって描画される。
【0034】
<画像描画処理の例1>
以下、
図2のグラフノードについて本実施の形態における画像描画処理を適用した例について説明する。
【0035】
まず、ステップS10において走査対象が画像オブジェクトP0の画像パーツA0とされる。ステップS12では、画像オブジェクトP0の画像パーツA0の描画順序「0」と描画条件「アルファブレンド乗算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツA0が同じ描画順序「0」の画像パーツのうち最初に走査対象とされているのでステップS20に処理が移行され、順序リストの最初に新たなグループ(コール1)として画像パーツA0が登録される。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツA1が走査対象とされる。ステップS12では、画像オブジェクトP0の画像パーツA1の描画順序「1」と描画条件「アルファブレンド加算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツA1が同じ描画順序「1」の画像パーツのうち最初に走査対象とされているのでステップS20に処理が移行され、順序リストの画像パーツA0の次に新たなグループ(コール2)として画像パーツA1が登録される。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツA2が走査対象とされる。ステップS12では、画像オブジェクトP0の画像パーツA2の描画順序「2」と描画条件「アルファブレンド乗算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツA2が同じ描画順序「2」の画像パーツのうち最初に走査対象とされているのでステップS20に処理が移行され、順序リストの画像パーツA1の次に新たなグループ(コール3)として画像パーツA2が登録される。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツA3が走査対象とされる。ステップS12では、画像オブジェクトP0の画像パーツA3の描画順序「3」と描画条件「アルファブレンド加算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツA3が同じ描画順序「3」の画像パーツのうち最初に走査対象とされているのでステップS20に処理が移行され、順序リストの画像パーツA2の次に新たなグループ(コール4)として画像パーツA3が登録される。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像オブジェクトP1の画像パーツA0が走査対象とされる。この時点において順序リストは
図5(a)のようになる。
【0036】
ステップS12では、画像オブジェクトP1の画像パーツB0の描画順序「0」と描画条件「アルファブレンド乗算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツB0と同じ描画順序「0」の画像パーツのうち画像パーツA0が属するグループ(コール1)と同じ描画条件であるのでステップS16に処理が移行される。ステップS16では、グループ(コール1)に属する画像パーツA0と、現在走査の対象とされている画像パーツB0と、が同じ描画処理によって描画されるように順序リストに登録される。この時点において順序リストは
図5(b)のようになる。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツB1が走査対象とされる。
【0037】
ステップS12では、画像オブジェクトP1の画像パーツB1の描画順序「1」と描画条件「アルファブレンド加算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツB1と同じ描画順序「1」の画像パーツのうち画像パーツA1が属するグループ(コール2)と同じ描画条件であるのでステップS16に処理が移行される。ステップS16では、グループ(コール2)に属する画像パーツA1と、現在走査の対象とされている画像パーツB1と、が同じ描画処理によって描画されるように順序リストに登録される。この時点において順序リストは
図5(c)のようになる。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツB2が走査対象とされる。
【0038】
以下、画像パーツB2以降についても同様に処理が行われ、順序リストは最終的に
図5(d)のように登録される。本画像描画処理では、各画像オブジェクトを構成する画像パーツの描画順序は維持されつつ、画像描画処理の呼び出し(コール)の回数が4回に減らされる。したがって、描画される画像全体の構成を大きく変更することなく、描画処理を高速化することができる。
【0039】
<画像描画処理の例2>
例えば、画像オブジェクトP2の画像パーツC1の描画条件「アルファブレンド加算」が描画条件「アルファブレンド乗算」に変更された場合について説明する。この場合、走査対象が画像オブジェクトP2の画像パーツC1となるまでの処理は上記例1と同様であるので説明を省略する。
【0040】
ステップS12では、画像オブジェクトP2の画像パーツC1の描画順序「1」と描画条件「アルファブレンド乗算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツC1と同じ描画順序「1」の画像パーツには同じ描画条件のグループが存在しないのでステップS18に処理が移行される。ステップS18では、現在走査の対象とされている画像パーツC1と描画順序「1」が同じ画像パーツのうち最後に走査対象とされた画像パーツB1のグループ2の次に現在走査の対象とされている画像パーツC1が新たなグループ2−2として描画されるように順序リストに登録される。この時点において順序リストは
図6(a)のようになる。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツC2が走査対象とされる。
【0041】
以下、画像オブジェクトP2の画像パーツC2から画像オブジェクトP3の画像パーツD0までは上記例1と同様に処理が行われる。この時点において順序リストは
図6(b)のようになる。
【0042】
画像オブジェクトP3の画像パーツD1が走査対象となったとき、ステップS12では、画像オブジェクトP3の画像パーツD1の描画順序「1」と描画条件「アルファブレンド加算」が抽出される。ステップS14では、現在走査の対象とされている画像パーツD1と同じ描画順序「1」の画像パーツのうち同じ描画条件のグループ2が存在するのでステップS16に処理が移行される。ステップS16では、現在走査の対象とされている画像パーツD1と描画順序「1」が同じ画像パーツのうち同じ描画条件のグループ2における描画処理で描画されるように順序リストに登録される。この時点において順序リストは
図6(c)のようになる。ステップS22では未だすべての画像パーツの走査が終了していないのでステップS10に処理が戻され、次の画像パーツD2が走査対象とされる。
【0043】
以下、画像オブジェクトP3の画像パーツD2以降について上記例1と同様に処理が行われる。最終的な順序リストは
図6(d)のようになる。
【解決手段】描画順序が定められた複数の画像パーツの重ね合わせによって表現される複数の画像オブジェクトを組み合わせて画像を描画する画像描画装置であって、複数の画像オブジェクトにおいて、同一の描画処理によって描画が可能な描画条件の組み合わせを満足する画像パーツを纏めて同一の描画処理によって描画する。