(57)【要約】【課題】３次元画像処理において、処理負荷の増大を防止しつつ、透明度の表現を向上させることにある。【解決手段】３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成し、第１のレンダリング画像を平面状モデル８０に貼り付けると共に、ポリゴン８１〜８４の各頂点Ｐ８１〜８６に透明度を設定してモデル８０上の各画素の透明度を設定し、各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングし、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデル８０を配置し、第１のカメラ位置の視線と垂直になるように平面状モデル８０を回転させて第１のレンダリング画像をレンダリングする画像処理プログラム。【選択図】図７
2007226581.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成する第１レンダリング手段と、
１又は複数のポリゴンから構成される平面状モデルを記憶手段から読み出すモデル読出手段と、
前記第１のレンダリング画像を前記平面状モデルに貼り付けると共に、前記１又は複数のポリゴンの少なくとも一部の頂点に透明度を設定して、該頂点の透明度に基づいて前記平面状モデル上の各画素の透明度を設定し、前記各画素に設定された透明度を前記第１のレンダリング画像の各画素に割り当ててレンダリングする第２レンダリング手段と、
前記第１のレンダリング画像に対応する前記３次元モデルの位置及び角度に合わせて前記平面状モデルを配置し、前記第１のカメラ位置の視線と垂直になるように前記平面状モデルを回転させて、前記平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする第３レンダリング手段と、
を備える画像処理プログラム。
【請求項２】
前記第１レンダリング手段は、前記３次元モデルの位置及び角度を変更することで、第１のカメラ位置で複数の第１のレンダリング画像を生成し、
前記モデル読出手段は、各第１のレンダリング画像にそれぞれ対応する複数の平面状モデルを読出し、
前記第２レンダリング手段は、各第１のレンダリング画像を各平面状モデルに貼り付けると共に、各第１のレンダリング画像に対応する平面状モデルを構成するポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて当該平面状モデル上の各画素の透明度を設定し、前記各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングする第２レンダリング手段と、
前記第３のレンダリング手段は、各第１のレンダリング画像に対応する前記３次元モデルの位置及び角度に合わせて各平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように各平面状モデルを回転させて、前記複数の平面状モデルに貼り付けられた第１のレンダリングデータをレンダリングする、
請求項１記載の画像処理プログラム。
【請求項３】
前記第２レンダリング手段は、前記平面状モデル上の各画素の透明度を、頂点に設定された透明度と、頂点からの各画素までの距離とに基づいて設定する、請求項１又は２記載の画像処理プログラム。
【請求項４】
前記第２レンダリング手段は、前記ポリゴンの少なくとも一部の頂点の位置を変更することで前記平面状モデルの形状を変更する、請求項３記載の画像処理プログラム。
【請求項５】
前記モデル読出手段は、予め記憶されている複数の形状の平面状モデルから１又は複数の平面状モデルを選択することで前記１又は複数の平面状モデルを設定する、請求項３記載の画像処理プログラム。
【請求項６】
前記第３レンダリング手段が、複数のレンダリング画像が連続的に配置されるように複数の平面状モデルを配置することで、オブジェクトの残像を表示制御する、請求項１乃至５何れか記載の画像処理プログラム。
【請求項７】
前記第３レンダリング手段は、複数の第１のレンダリング画像の一端が繋がるように前記複数の平面状モデルを配置する、請求項６記載の画像処理プログラム。
【請求項８】
前記第２レンダリング手段は、現在フレーム以前の何れかのフレームでレンダリングされた第１のレンダリング画像を、現在フレームの１又は複数の平面状モデルに貼り付ける、請求項１乃至７何れか記載の画像処理プログラム。
【請求項９】
前記第２レンダリング手段は、フレームごとに平面状モデルのポリゴンの頂点に設定する透明度を変化させる、請求項１乃至８何れか記載の画像処理プログラム。
【請求項１０】
第１レンダリング手段が、３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成するステップと、
モデル読出手段が、１又は複数のポリゴンから構成される平面状モデルを読み出すステップと、
第２レンダリング手段が、前記第１のレンダリング画像を前記平面状モデルに貼り付けると共に、前記１又は複数のポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて前記平面状モデル上の各画素の透明度を設定し、前記各画素に設定された透明度を前記第１のレンダリング画像の各画素に割り当ててレンダリングするステップと、
第３レンダリング手段が、前記第１のレンダリング画像に対応する前記３次元モデルの位置及び角度に合わせて前記平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように前記平面状モデルを回転させて、前記平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングするステップと、
を含む画像処理方法。
【請求項１１】
３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成する第１レンダリング手段と、
記憶手段から１または複数の平面状モデルを読み出すモデル読出手段と、
前記第１のレンダリング画像を前記平面状モデルに貼り付けると共に、前記１又は複数のポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて前記平面状モデル上の各画素の透明度を設定し、前記各画素に設定された透明度を前記第１のレンダリング画像の各画素に割り当ててレンダリングする第２レンダリング手段と、
前記第１のレンダリング画像に対応する前記３次元モデルの位置及び角度に合わせて前記平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように前記平面状モデルを回転させて、前記平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする第３レンダリング手段と、
を備える画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム、画像処理装置及び画像処理方法、特に、ポリゴンを用いた画像処理プログラム、画像処理及び画像処理方法に関する。
【背景技術】
【０００２】
従来、３次元画像において残像表現する場合には、ポリゴンからなる複数の３次元モデルを準備し、フレームごとに、複数の３次元モデルを２次元画像にレンダリングすると共に、各３次元モデルの透明度を変化させている。また、従来の３次元画像の残像表現では、ポリゴン単位でレンダリング画像に全体的に半透明の処理をしている。しかし、ポリゴン単位で透明度の処理を行う為、処理の負荷が大きい問題がある。また、テクスチャの透明度（アルファ値）をそのまま使用して表示画像の透明度を表現する方法もあるが、この場合には、表示画像の透明度の表現が乏しい問題がある。
【０００３】
従来の３次元画像処理は、例えば、特許文献１に記載されている。
【特許文献１】特開２００２−２９８１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、３次元画像処理において、処理負荷の増大を防止しつつ、透明度の表現を向上させることにある。
【課題を解決するための手段】
【０００５】
第１発明に係る画像処理プログラムは、３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成する第１レンダリング手段と、１又は複数のポリゴンから構成される平面状モデルを記憶手段から読み出すモデル読出手段と、第１のレンダリング画像を平面状モデルに貼り付けると共に、１又は複数のポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて平面状モデル上の各画素の透明度を設定し、各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングする第２レンダリング手段と、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように平面状モデルを回転させて、平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする第３レンダリング手段と、を備える。
【０００６】
ここで、３次元モデルは、例えば、複数のポリゴンからなる３次元のオブジェクトである。３次元のオブジェクトは、キャラクタオブジェクト、背景オブジェクトを含む。第１のレンダリング画像は、３次元モデルを第１のカメラ位置で２次元画像に変換した画像である。第１のカメラ位置は、現在表示対象としている１又は複数のフレームにおける表示画像を見る視線を定義する為の仮想的なカメラの位置である。フレームは、単位静止画面分の静止画像を意味する。言い換えれば、第１のカメラ位置は、第１レンダリング手段でレンダリングした画像を表示するフレームにおけるカメラ位置である。第１レンダリング手段で複数の画像をレンダリングして、各画像を複数のフレームで表示する場合には、第１のカメラ位置は当該複数のフレームに共通するカメラ位置である。
【０００７】
平面状モデルは、１又は複数のポリゴンから構成される。ポリゴンは、三角ポリゴン、矩形ポリゴン等何れの形状であっても良い。平面状モデルは、例えば、「日」の字形、即ち２つの矩形の領域が１つの辺を共通にして隣接する形状の平面状モデルで構成することが可能である。なお、平面状モデルは、２つの矩形の領域からなる場合に限らず、複数の矩形の領域が１方向に沿って隣接して配列された形状であっても良い。
「日」の字形の平面状モデルは、２つの領域を有しており、各領域が例えば矩形である。各領域は、１又は複数のポリゴンで構成され得る。また、平面状モデルは、例えば、「田」の字形、即ち４つの矩形の領域が１つの頂点を共通にして隣接する形状の平面状モデルで構成することが可能である。「田」の字形の平面状モデルは、４つの領域を有しており、各領域が例えば矩形である。なお、平面状モデルは、４つの矩形の領域からなる場合に限らず、複数の矩形の領域が２方向に沿って隣接して配列された形状であっても良い。各領域は、１又は複数のポリゴンで構成され得る。記憶手段は、ＣＤ−ＲＯＭ、フラッシュメモリ等の不揮発性記憶装置、ＲＡＭ等の揮発性記憶装置の何れであっても良い。
【０００８】
第２レンダリング手段は、第１のレンダリング画像を平面状モデルに貼り付ける。また、第２レンダリング手段は、平面状モデルに貼り付けられた第１のレンダリング画像の各画素にテクスチャデータを割り当てても良い。テクスチャデータは、例えば色データである。テクスチャデータは、３次元モデルを構成するポリゴンの各画素に割り当てられて予め記憶しておくことが可能である。第１のレンダリング画像の各画素には、それぞれ対応する３次元モデルの画素が存在する。第１のレンダリング画像の各画素には、対応する３次元モデルの画素の色データが割り当てられる。
【０００９】
また、第２レンダリング手段は、平面状モデルを構成する１又は複数のポリゴンの頂点のうち、少なくとも一部の頂点に透明度を設定する。透明度は、画像が仮想光源からの光を透過させる割合を示す尺度であり、例えば、アルファ値によって設定される。アルファ値は、例えば、０以上１００以下の値をとるように設定することが可能である。例えば、アルファ値＝０である場合には光を全く透過させない不透明とし、アルファ値＝１００である場合には光を完全に透過させる透明とし、アルファ値が０と１００の間の値ではその値に応じた半透明とすることが可能である。
【００１０】
第２レンダリング手段は、ポリゴンの頂点に設定された透明度に基づいて、平面状モデルの各画素の透明度を設定する。平面状モデルの各画素の透明度は、平面状モデルの画素とポリゴンの頂点との間の距離、頂点に設定された透明度に応じて決定される。例を挙げると、第１の頂点に第１のアルファ値、第２の頂点に第２のアルファ値が設定され、第１の画素のアルファ値を決定する場合には、第１の画素と第１の頂点との間の距離ｄ１、第１の頂点のアルファ値（第１のアルファ値α１）、第１の画素と第２の頂点との間の距離ｄ２、第２の頂点のアルファ値（第２のアルファ値α２）とを考慮して決定することが可能である。例えば、各画素のアルファ値は、頂点のアルファ値を距離に応じて加重平均して算出する。ｄ１＋ｄ２＝ｄとすると、以下の式（１）で算出することが可能である。
【００１１】
α１×（ｄ１／ｄ）＋α２×（ｄ２／ｄ）・・・（１）
また、第２レンダリング手段は、平面状モデルの各画素の透明度を、対応する第１のレンダリング画像の各画素に割り当てる。平面状モデルの各画素の透明度は、例えば、式（１）で算出される透明度である。
【００１２】
第３のレンダリング手段は、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデルを配置する。言い換えれば、第３のレンダリング手段は、第１レンダリング手段が３次元モデルをレンダリングした際の、当該３次元モデルの位置及び角度に合わせて、平面状モデルを配置する。また、第３のレンダリング手段は、配置された平面状モデルが第１のカメラ位置の視線と垂直になるように、当該平面状モデルを回転させる。その後、第３のレンダリング手段は、当該平面状モデルに貼り付けられた第１のレンダリング画像を、第１のカメラ位置でレンダリングする。
【００１３】
上記視線と平面状モデルは、垂直であることが望ましいが、完全に垂直である必要はなく、平面状モデルに貼り付けられた第１のレンダリング画像が適切に表示される範囲であれば、上記視線と平面状モデルとの間の角度は垂直からずれても良い。例えば、第１のレンダリング画像が、紙の上に書かれた絵を横から見て薄っぺらく見えるような状況が避けられる範囲であれば、上記視線と平面状モデルとの間の角度は垂直からずれても良い。すなわち、平面状モデルは、レンダリング後の画像を考慮して、上記視線に略垂直な範囲で配置することが可能である。
【００１４】
なお、第３のレンダリング手段によるレンダリング画像を出力する出力手段をさらに備えることが可能である。出力手段は、例えば、第３のレンダリング手段によるレンダリング画像を表示する表示手段とすることができる。また、本プログラムが実行される画像処理装置があり、第３のレンダリング手段によるレンダリング画像が外部の装置に転送される場合には、外部装置と通信する為の通信部とすることが可能である。
【００１５】
第１発明によれば、３次元モデルのレンダリングデータを平面状モデルに貼り付けて、第１のカメラ位置の視線と平面状モデルとが垂直になるように配置して、仮想的な３次元画像を表現するので、処理負荷を抑制して仮想３次元画像を表現することが可能である。
【００１６】
また、平面状モデルを構成するポリゴンの少なくとも一部の頂点に透明度を設定して、頂点に設定された透明度に基づいて平面状モデルの各画素の透明度を算出、設定するので、頂点に設定する透明度を変更することにより、又は、ポリゴンの頂点の座標を変更してポリゴンを変形することにより、各画素の透明度を簡易に変更可能となる。また、各画素の透明度は、頂点に設定された透明度と、頂点からの距離に応じて変更されるので、、一様に透明度を変化させる場合に比較して、画像の透明度を多様に変化させることが可能である。言い換えれば、各画素の透明度は、頂点に設定された透明度と、頂点からの距離に応じて変更されるので、一様に透明度を変化させる場合に比較して、画像の透明度をより細かく即ち、より高精度に変化させることが可能である。
【００１７】
第２発明に係る画像処理プログラムは、第１発明に係る画像処理プログラムにおいて、第１レンダリング手段は、３次元モデルの位置及び角度を変更することで、第１のカメラ位置で複数の第１のレンダリング画像を生成する。モデル読出手段は、各第１のレンダリング画像にそれぞれ対応する複数の平面状モデルを読出す。第２レンダリング手段は、各第１のレンダリング画像を各平面状モデルに貼り付けると共に、各第１のレンダリング画像に対応する平面状モデルを構成するポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて当該平面状モデル上の各画素の透明度を設定し、各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングする。第３のレンダリング手段は、各第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて各平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように各平面状モデルを回転させて、複数の平面状モデルに貼り付けられた第１のレンダリングデータをレンダリングする。
【００１８】
第１レンダリング手段は、複数の第１のレンダリング画像を生成する。第２のレンダリング手段は、各第１のレンダリング画像をそれぞれ別々の平面状モデルに貼り付ける。また、第２レンダリング手段は、各第１のレンダリング画像が貼り付けられた各平面状モデルごとに、ポリゴンの各頂点に透明度を設定し、各頂点の透明度に基づいて各画素の透明度を設定する。また、第２レンダリング手段は、各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングする。第３のレンダリング手段は、各平面状モデルを、対応する３次元モデルの位置及び角度に合わせて配置し、各平面状モデルを現在フレームのカメラの視線と垂直になるように回転させてレンダリングする。
【００１９】
第２発明によれば、第１のレンダリング画像ごとに別々の平面状モデルに貼り付けてレンダリングすることにより、多様な画像を処理負荷の増大を抑制しつつ表示することが可能である。言い換えれば、第１のレンダリング画像ごとに別々の平面状モデルに貼り付けてレンダリングすることにより、第１レンダリング画像ごとに透明度を細かく即ち高精度に設定することができ、処理負荷の増大を抑制しつつ表示することが可能である。
【００２０】
また、１フレームに複数の第１のレンダリング画像を表示し、各第１のレンダリング画像ごとに透明度を容易に変更できるので、複数の第１のレンダリング画像のうちの１つを実像として他の第１のレンダリング画像を残像として表現することが可能である。複数の第１のレンダリング画像のうち実像として表現する第１のレンダリング画像を順次変化させれば、同一フレーム周波数でオブジェクトの速い動きを表現することができる。
【００２１】
第３発明に係る画像処理プログラムは、第１又は２発明の何れかに係る画像処理プログラムにおいて、第２レンダリング手段は、平面状モデル上の各画素の透明度を、頂点に設定された透明度と、頂点からの各画素までの距離とに基づいて設定する。
【００２２】
第３発明によれば、平面状モデルを構成するポリゴンの各頂点の透明度に基づいて、平面状モデル上の各画素の透明度を簡易にかつ多様に変更することが可能である。例えば、上述した式（１）による加重平均計算によって算出することが可能である。言い換えれば、平面状モデルを構成するポリゴンの各頂点の透明度に基づいて、平面状モデル上の各画素の透明度を簡易にかつより細かく即ち、より高精度に変更することが可能である。例えば、上述した式（１）による加重平均計算によって算出することが可能である。
【００２３】
第４発明に係る画像処理プログラムは、第３発明に係る画像処理プログラムにおいて、第２レンダリング手段は、ポリゴンの少なくとも一部の頂点の位置を変更することで平面状モデルの形状を変更する。
【００２４】
平面状モデルを構成するポリゴンの頂点の位置を変更することにより平面状モデルを変形する。これにより、各頂点に同様の透明度を設定したとしても、平面状モデルの各画素と頂点との間の距離が変化するので、各画素の透明度を変化させることが可能である。結果、第１のレンダリング画像の透明度を多様に変化させることが可能である。言い換えれば、第１のレンダリング画像の透明度をより細かく即ち、より高精度に変化させることが可能である。また、平面状モデルの形状が変化すれば、平面状モデルの各画素と、第１のレンダリング画像の各画素との対応関係が変わり得るので、これによっても第１のレンダリング画像の透明度を多様に変化させることが可能である。言い換えれば、平面状モデルの形状が変化すれば、平面状モデルの各画素と、第１のレンダリング画像の各画素との対応関係が変わり得るので、これによっても第１のレンダリング画像の透明度をより細かく即ち、より高精度に変化させることが可能である。
【００２５】
第５発明に係る画像処理プログラムは、第３発明に係る画像処理プログラムにおいて、モデル読出手段は、予め記憶されている複数の形状のモデルから１又は複数の平面状モデルを選択することで１又は複数の平面状モデルを設定する。
【００２６】
予め記憶された複数の形状の平面状モデルを選択して読み出して、第１のレンダリング画像を貼り付ける平面状モデルを変えることによって、平面状モデルを変形させる場合同様に、第１のレンダリング画像の透明度を多様に変化させることが可能である。言い換えれば、予め記憶された複数の形状の平面状モデルを選択して読み出して、第１のレンダリング画像を貼り付ける平面状モデルを変えることによって、平面状モデルを変形させる場合同様に、第１のレンダリング画像の透明度をより細かく即ち、より高精度に変化させることが可能である。
【００２７】
第６発明に係る画像処理プログラムは、第１乃至５発明何れかに係る画像処理プログラムにおいて、第３レンダリング手段が、複数のレンダリング画像が連続的に配置されるように複数の平面状モデルを配置することで、オブジェクトの残像を表示制御する。
【００２８】
第２レンダリング手段が、複数の第１のレンダリング画像を別々の平面状モデルに貼り付けて、第３レンダリング手段が、複数の第１のレンダリング画像が連続的に配置されるように、かつ各第１のレンダリング画像の透明度を変化させて各平面状モデルを配置することにより、第１のレンダリング画像で表現されるオブジェクトが移動する際の残像を表現することが可能である。透明度の変化は、例えば、後のフレームの第１のレンダリング画像よりも、前のフレームの第１のレンダリング画像ほど透明度を大きくする。ここで、後のフレームとは、複数のフレームからなるフレーム群のうち相対的に遅い時刻に表示されるフレームであり、前のフレームとは、複数のフレームからなるフレーム群のうち相対的に早い時刻に表示されるフレームである。例えば、第１乃至第３フレームからなるフレーム群において、第１フレーム、第２フレーム、第３フレームの順番に表示される場合には、第１フレームは第２フレームの前のフレームであり、第２フレームは第１フレームの後のフレームであり、第２フレームは第３フレームの前のフレームであり、第３フレームは第２フレームの後のフレームである。即ち、第１フレームが最も前のフレームであり、第３フレームが最も後のフレームである。又は、最も後のフレームから１又は複数のフレームの第１のレンダリング画像の透明度を小さくし、他の第１のレンダリング画像の透明度を大きくする。これによれば、オブジェクトが既に通過した地点では透明に近く、残像として視認させることが可能になる。
【００２９】
第７発明に係る画像処理プログラムは、第６発明に係る画像処理プログラムにおいて、第３レンダリング手段は、複数の第１のレンダリング画像の一端が繋がるように複数の平面状モデルを配置する。
【００３０】
複数の第１のレンダリング画像の一端が繋がるようにすれば、各第１のレンダリング画像の接続箇所を関節として複数の関節からなるオブジェクトの動作を簡易かつ多様に表現することが可能となる。例えば、鎖がうねる様子を簡易に表現することが可能である。言い換えれば、複数の第１のレンダリング画像の一端が繋がるようにすれば、各第１のレンダリング画像の接続箇所を関節として複数の関節からなるオブジェクトの動作を簡易かつ高精度に表現することが可能となる。例えば、鎖がうねる様子を簡易に表現することが可能である。
【００３１】
第８発明に係る画像処理プログラムは、第１乃至７発明何れかに係る画像処理プログラムにおいて、第２レンダリング手段は、現在フレーム以前の何れかのフレームでレンダリングされた第１のレンダリング画像を、現在フレームの１又は複数の平面状モデルに貼り付ける。
【００３２】
現在フレームでの表示に用いる平面状モデルに、以前のフレームで既にレンダリングされた第１のレンダリング画像を貼り付ける。残像表現の場合には、複数のフレームにわたって、同一のレンダリング画像が何度も繰り返し表示される場合がある。このような場合に、以前にレンダリングした第１のレンダリング画像を再度使用して残像表現を実行することで、処理負荷を低減することができる。同一の第１のレンダリング画像を用いる場合であっても、平面状モデルの各画素の透明度の変更は前記同様に行うことができ、第１のレンダリング画像の透明度を多様に、かつ柔軟に変更することが可能である。言い換えれば、同一の第１のレンダリング画像を用いる場合であっても、平面状モデルの各画素の透明度の変更は前記同様に行うことができ、第１のレンダリング画像の透明度をより細かく即ち、より高精度に、かつ柔軟に変更することが可能である。
【００３３】
第９発明に係る画像処理プログラムは、第１乃至８発明何れかに係る画像処理プログラムにおいて、第２レンダリング手段は、フレームごとに平面状モデルの頂点に設定する透明度を変化させる。
【００３４】
フレームごとに平面状モデルの頂点に設定する透明度を変更することで、残像表現をよりリアルに行うことができる。例えば、前のフレームほど透明度を大きくして、オブジェクトが段々不透明になっていくように表現すれば、残像表現をよりリアルに行うことができる。１フレームに複数の第１のレンダリング画像を表示する場合には、何れかの第１のレンダリング画像を実像として他の第１のレンダリング画像を徐々に薄くするようにし、実像として表示する第１のレンダリング画像をフレームごとに変更する。これにより、同一のフレーム周波数で処理負荷を抑制しつつより多くの残像を表示することが可能となる。
【００３５】
第１０発明に係る画像処理方法は、第１レンダリング手段が、３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成するステップと、モデル読出手段が、１又は複数のポリゴンから構成される平面状の平面状モデルを読み出すステップと、第２レンダリング手段が、第１のレンダリング画像を前記平面状モデルに貼り付けると共に、１又は複数のポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて平面状モデル上の各画素の透明度を設定し、各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングするステップと、第３レンダリング手段が、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように平面状モデルを回転させて、平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングするステップと、を含む。
【００３６】
第１０発明に係る画像処理方法によれば、第１発明と同様の作用効果を奏する。
【００３７】
第１１発明に係る画像処理装置は、３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成する第１レンダリング手段と、記憶手段から１または複数のポリゴンから構成される平面状モデルを読み出すモデル読出手段と、第１のレンダリング画像を平面状モデルに貼り付けると共に、１又は複数のポリゴンの少なくとも一部の頂点に透明度を設定して、頂点の透明度に基づいて平面状モデル上の各画素の透明度を設定し、各画素に設定された透明度を第１のレンダリング画像の各画素に割り当ててレンダリングする第２レンダリング手段と、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように平面状モデルを回転させて、平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする第３レンダリング手段と、を備える。記憶手段は、当該画像処理装置に設けられても良いし、当該画像処理装置に着脱自在の記憶媒体であっても良い。また、記憶手段は、当該画像処理装置とは別の装置に設けられても良い。この場合、モデル読出手段は、通信回線を介して別の装置の記憶手段から平面状モデルを読み出す。
【００３８】
第１１発明に係る画像処理装置によれば、第１発明と同様の作用効果を奏する。
【発明の効果】
【００３９】
本発明によれば、３次元画像処理において、処理負荷の増大を防止しつつ、透明度の表現を向上させることが可能である。
【発明を実施するための最良の形態】
【００４０】
（１）第１実施形態
図１は、本発明の一実施形態に係る画像処理装置１の概略構成図である。
【００４１】
この画像処理装置１は、制御部１０と、記憶部２０と、画像表示部３０と、音声出力部４０と、操作入力部５０と、通信部６０と、バス７０と、を備えている。
【００４２】
制御部１０は、画像処理装置１全体の動作を制御する構成である。制御部１０は、バス７０を介して、記憶部２０、画像表示部３０、音声出力部４０、操作入力部５０、通信部６０と信号を送受信して、各部２０，３０，４０，５０，６０を制御する。
【００４３】
制御部１０は、例えば、ＣＰＵ１１と、信号処理プロセッサ１２と、画像処理プロセッサ１３と、から構成することが可能である。
【００４４】
ＣＰＵ１１は、バス７０を介して、記憶部２０、画像表示部３０、音声出力部４０、操作入力部５０、通信部６０と信号を送受信して、各部２０，３０，４０，５０，６０を直接制御すると共に、信号処理プロセッサ１２及び画像処理プロセッサ１３を制御することで、画像及び音声の少なくとも一方を生成し、生成した画像を画像表示部３０に出力させる。ＣＰＵ１１は、後述する画像処理プログラムを実行することで、第１レンダリング手段２３０３’、モデル読出手段２３０４’、第２レンダリング手段２３０５’、第３レンダリング手段２３０６’（図示せず）として機能する。ＣＰＵ１１は、適宜、信号処理プロセッサ１２、画像処理プロセッサ１３に制御信号を出力して、信号処理プロセッサ１２、画像処理プロセッサ１３に処理を実行させることで、第１レンダリング手段２３０３’、モデル読出手段２３０４’、第２レンダリング手段２３０５’、第３レンダリング手段２３０６’として機能する。
【００４５】
信号処理プロセッサ１２は、主に３次元空間上における計算、３次元空間上での位置から疑似３次元空間上での位置への変換の為の計算、光源計算処理、並びに音声データの生成、加工処理を行う。信号処理プロセッサ１２は、第１レンダリング手段２３０３’、モデル読出手段２３０４’、第２レンダリング手段２３０５’、第３レンダリング手段２３０６’の一部を構成し得る。
【００４６】
画像処理プロセッサ１３は、信号処理プロセッサ１２における計算結果に基づいて、記憶部２０のＲＡＭ２１（後述）の表示エリアに対して描画すべき画像データの書き込み処理、例えば、ポリゴンで指定されるＲＡＭ２１のエリアに対するテクスチャデータの書き込み処理を行う。画像処理プロセッサ１３は、第１レンダリング手段２３０３’、モデル読出手段２３０４’、第２レンダリング手段２３０５’、第３レンダリング手段２３０６’の一部を構成し得る。
【００４７】
記憶部２０は、画像処理プログラムを記憶する記憶手段として機能すると共に、画像処理プログラムを実行する際に制御部１０の作業領域として機能する。画像処理プログラムは、図２を参照して後述するように、画像処理制御プログラム２３０１と、画像処理用データ部２３０２とを含む。画像処理制御プログラム２３０１及び画像処理用データ部２３０２の詳細については後述する。記憶部２０には、制御部１０が画像処理プログラムを実行する際に、計算結果や、中間的なレンダリング画像が記憶される。また、記憶部２０には、制御部１０によって計算された最終的なレンダリング画像、すなわち画像表示部３０に出力するレンダリング画像が記憶される。
【００４８】
記憶部２０は、例えば、ＲＡＭ２１と、インターフェース部２２と、記憶媒体２３と、から構成することが可能である。
【００４９】
ＲＡＭ２１は、ランダム・アクセス・メモリ(Random Access Memory）である。ＲＡＭ２１は、例えば、半導体素子を利用した揮発性記憶装置であり、制御部１０のメインメモリ（主記憶装置）として機能する。ＲＡＭ２１は、画像処理プログラムを実行する際に制御部１０の作業領域として機能する。ＲＡＭ２１には、制御部１０が画像処理プログラムを実行する際に、計算結果や、中間的なレンダリング画像が記憶される。また、ＲＡＭ２１には、制御部１０によって計算された最終的なレンダリング画像、すなわち画像表示部３０に出力するレンダリング画像が記憶される。主記憶装置としては、ＲＡＭのような揮発性記憶装置の変わりに、不揮発性記憶装置を使用することができる。主記憶装置は、揮発性記憶装置または不揮発性記憶装置の何れであっても、本実施形態に係る３次元画像処理を適切に実行するのに必要な動作速度を有することが好ましい。
【００５０】
記憶媒体２３は、画像処理装置１に着脱自在な記憶媒体である。記憶媒体２３は、例えば、ＣＤ−ＲＯＭ等の光学的に読取可能な記憶媒体、ＲＯＭ、フラッシュメモリ等の半導体素子を利用した記憶媒体の何れであっても良い。記憶媒体２３は、後述する画像処理プログラムを記憶しておく為に、不揮発性の記憶装置であることが好ましい。
【００５１】
インターフェース部２２は、記憶媒体２３とバス７０との間の信号の送受信をインターフェースする。インターフェース部２２は、記憶媒体２３から読み出した信号をバス７０が受信可能な信号に変換してバス７０に出力すると共に、バス７０から受信した信号を記憶媒体２３が受信可能な信号に変換を施して記憶媒体２３に出力する。制御部１０は、インターフェース部２２を介して、記憶媒体２３から画像処理プログラムを読み出して、ＲＡＭ２１に記憶する。実際には、ＣＰＵ１１が、ＤＭＡＣ(Direct Memory Access Controller)等を制御して、ＤＭＡＣによって記憶媒体２３とＲＡＭ２１との間のデータの送受信を制御することが可能である。
【００５２】
表示制御部３０は、画像処理プログラムを実行することにより制御部１０が画像処理した結果のレンダリング画像を表示する。表示制御部３０は、フレームメモリとして機能するＲＡＭ２１の表示エリアに書き込まれた最終的なレンダリング画像を受け取って表示する。
【００５３】
表示制御部３０は、例えば、モニタ３１と、インターフェース部３２と、から構成することが可能である。
【００５４】
モニタ３１は、ブラウン管（ＣＲＴ）、液晶表示パネル（ＬＣＤ）等のフラットパネルの何れで構成しても良い。モニタ３１は、画像処理プログラムを実行することにより制御部１０が画像処理した結果のレンダリング画像を表示する。モニタ３１は、フレームメモリとして機能するＲＡＭ２１の表示エリアに書き込まれた最終的なレンダリング画像を受け取って記憶させる。モニタ３１にアナログ信号で表現される信号を表示する場合には、モニタ３１とインターフェース部３２との間にデジタル／アナログ換部を設けることが好ましい。インターフェース部３２は、モニタ３１とバス７０との間の信号の送受信をインターフェースする。インターフェース部３２は、ＲＡＭ２１から読み出した信号をバス７０が受信可能な信号に変換してバス７０に出力すると共に、バス７０から受信した信号をモニタ３１が受信可能な信号に変換してモニタ３１に出力すると共に、モニタ３１からの信号に所定の変換を施してバス７０に出力する。
【００５５】
音声出力部４０は、制御部１０の処理によって生成された音声データをバス７０を介して受け取り、或いは、制御部１０の処理によって生成されてＲＡＭ２１に一時的に記憶されている音声データを読み出して、デジタル／アナログ変換処理、増幅処理を施した後、音声に変換して出力する。音声出力部４０は、例えば、インターフェース部４１と、デジタル／アナログ変換部４２と、アンプ４３と、スピーカ４４と、から構成されることができる。
【００５６】
インターフェース部４１は、デジタル／アナログ変換部４２とバス７０との間の信号の送受信をインターフェースする。インターフェース部４１は、バス７０を介して受け取った音声データ（デジタル信号）をデジタル／アナログ変換部４２が受信可能なデジタル信号に変換して、デジタル／アナログ変換部４２に出力する。
【００５７】
デジタル／アナログ変換部４２は、インターフェース部４１を介して受信した音声データ（デジタル信号）をアナログ信号に変換して、アンプ４３に出力する。
【００５８】
アンプ４３は、デジタル／アナログ変換部４２でアナログ信号に変換された音声データを増幅して、スピーカ４４に出力する。
【００５９】
スピーカ４４は、アンプ４３で増幅された音声データを音声に変換して出力する。
【００６０】
操作入力部５０は、ユーザからの操作の入力を受け付け、操作に対応した操作信号をバス７０を介して制御部１０に出力する。操作入力部５０は、例えば、インターフェース部５１と、操作部５２と、から構成することが可能である。インターフェース部５１は、バス７０と操作部５２との間の信号の送受信を制御する。インターフェース部５１は、操作部５２から出力される操作信号を、バス７０が受信可能な操作信号に変換して、バス７０に出力する。操作部５２は、ユーザからの操作を受け付ける押釦、レバー等の操作対象部を含んで構成される。操作対象部は、ユーザからの操作を操作信号として出力できる構成であれば、各種タッチパッド、音声認識手段等如何なる構成であっても良い。
【００６１】
通信部６０は、画像処理装置１と通信回線との通信を制御する構成である。通信部６０は、外部機器から受信した信号をバス７０に出力する。通信回線は、有線または無線の何れであっても良い。通信部６０は、例えば、画像処理プログラムを通信回線から受信し、画像処理プログラムをＲＡＭ２１に記憶させることが可能である。
【００６２】
図２は、画像処理プログラムの構成例を示す図である。
【００６３】
この画像処理プログラム２３００は、例えば、記憶媒体２３に記憶しておき、制御部１０によって記憶部２３から読み出されてＲＡＭ２１に記憶される。また、画像処理プログラムは、制御部１０によってＲＡＭ２１から読み出されて実行されることが可能である。また、画像処理プログラムは、通信部６０を介して受信してＲＡＭ２１に記憶され、制御部１０によってＲＡＭ２１から読み出されて実行されることが可能である。
【００６４】
この画像処理プログラム２３００は、３次元モデルの位置及び角度を決定して第１のカメラ位置でレンダリングして、第１のレンダリング画像を生成する。第１のカメラ位置は、現在表示対象としている１又は複数のフレームにおける表示画像を見る視線を定義する為の仮想的なカメラの位置である。フレームは、単位静止画面分の静止画像を意味する。言い換えれば、第１のカメラ位置は、第１レンダリング手段でレンダリングした画像を表示するフレームにおけるカメラ位置である。第１レンダリング手段で複数の画像をレンダリングして、各画像を複数のフレームで表示する場合には、第１のカメラ位置は当該複数のフレームに共通するカメラ位置である。
【００６５】
また、画像処理プログラム２３００は、１又は複数のポリゴンから構成される平面状モデルを記憶手段（記憶媒体２３又はＲＡＭ２１）から読み出す。
【００６６】
また、画像処理プログラム２３００は、第１のレンダリング画像を前記平面状モデルに貼り付けると共に、１又は複数のポリゴンの各頂点に透明度を設定して、各頂点の透明度に基づいて前記平面状モデル上の各画素の透明度を設定し、前記各画素に設定された透明度を前記第１のレンダリング画像の各画素に割り当ててレンダリングする。
【００６７】
また、画像処理プログラム２３００は、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて前記平面状モデルを配置し、第１のカメラ位置の視線と垂直になるように前記平面状モデルを回転させて、前記平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする。
【００６８】
画像処理プログラム２３００は、画像処理制御プログラム２３０１と、画像処理用データ部２３０２とを含むことが可能である。
【００６９】
画像処理制御プログラム２３０１は、画像処理用データ部２３０２に記憶されたデータを用いて、上述した画像処理を実行する。画像処理プログラム２３０１は、第１レンダリング手段２３０３と、モデル読出手段２３０４と、第２レンダリング手段２３０５と、第３レンダリング手段２３０６とを備えている。第１レンダリング手段２３０３は、制御部１０を第１レンダリング部として機能させる。モデル読出手段２３０４は、制御部１０をモデル読出部として機能させる。第２レンダリング手段２３０５は、制御部１０を第２レンダリング部として機能させる。第３レンダリング手段２３０６は、制御部１０を第３レンダリング部として機能させる。
【００７０】
画像処理用データ部２３０２は、画像処理プログラム２３０１が画像処理を実行する際に使用するデータである。画像処理用データ部２３０２は、３次元モデルデータ部２３０７と、平面状モデルデータ部２３０８と、テクスチャデータ部２３０９と、を備えている。３次元モデルデータ部２３０７は、複数種類の３次元のモデルデータを含んでいる。平面状モデルデータ部２３０８は、１又は複数のポリゴンからなる平面状のモデルを指定するデータを含んでいる。テクスチャデータ部２３０９は、テクスチャデータを記憶している。３次元モデルデータ部２３０７、平面状モデルデータ部２３０８、テクスチャデータ部２３０９について以下詳細に説明する。
【００７１】
３次元モデルデータ部２３０７は、複数種類の３次元のモデルデータを含んでいる。
【００７２】
図３は、３次元モデルデータ部２３０７に含まれる３次元モデルデータの一例である。図３（ａ）及び（ｂ）は、人間の腕を複数の状態で表現した３次元モデル１００１、１００２である。３次元モデル１００１、１００２特定する３次元モデルデータは、３次元モデル１００１、１００２に含まれる複数のポリゴンの頂点を指定する座標データから構成される。３次元モデル１００１は腕を伸ばした状態の３次元モデルであり、３次元モデル１００２は腕を曲げた状態の３次元モデルである。
【００７３】
平面状モデルデータ部２３０８は、１又は複数のポリゴンからなる平面状のモデルを指定するデータを含んでいる。
【００７４】
図４乃至図６は、平面状モデルデータ部２３０８に含まれる平面状モデルの具体例を示す図面である。
【００７５】
図４（ａ）は、平面状モデルの第１の例としての平面状モデル８０を示す。
【００７６】
この平面状モデル８０は、４つの三角形のポリゴン８１〜８４から構成される。ポリゴン８１は、頂点Ｐ８１、Ｐ８３、Ｐ８４を含む。ポリゴン８２は、頂点Ｐ８１，Ｐ８２，Ｐ８４を含む。ポリゴン８３は、頂点Ｐ８３，Ｐ８５，Ｐ８６を含む。ポリゴン８４は、頂点Ｐ８３，Ｐ８４，Ｐ８６を含む。
【００７７】
この平面状モデル８０は、ポリゴン８１とポリゴン８２とからなる矩形の第１領域と、ポリゴン８３とポリゴン８４とからなる矩形の第２領域とを含む。第１領域と第２領域とは、辺ｅ８２によって区画されている。また、第１領域は辺ｅ８２と対向する端部としての辺ｅ８１を含んでおり、第２領域は辺ｅ８２と対向する端部としての辺ｅ８３を含んでいる。平面状モデル８０は、第１領域と第２領域とからなる「日」の字形、即ち２つの矩形の領域が１つの辺を共通にして隣接する形状の平面状モデルである。なお、平面状モデル８０は、２つの矩形の領域からなる場合に限らず、複数の矩形の領域が１方向に沿って隣接して配列された形状であっても良い。
【００７８】
平面状モデル８０を指定する平面状モデルデータは、各ポリゴン８１〜８４の各頂点の座標を指定する座標データから構成される。平面状モデル８０に含まれるポリゴンの頂点Ｐ８１，Ｐ８２，Ｐ８３，Ｐ８４，Ｐ８５，Ｐ８６の少なくとも一部には、後述するように透明度としてのアルファ値が割り当てられる。
【００７９】
図７は、頂点Ｐ８１，Ｐ８２，Ｐ８３，Ｐ８４，Ｐ８５，Ｐ８６にアルファ値を割り当てた場合の具体例を示す。本実施形態では、アルファ値は、０以上１００以下の値をとる。アルファ値＝０である場合には光を全く透過させない不透明であり、アルファ値＝１００である場合には光を完全に透過させる透明、アルファ値が０と１００の間の値ではその値に応じた半透明である。
【００８０】
図７中の平面状モデル８０に示したように、この例では、頂点Ｐ８１，Ｐ８２，Ｐ８３，Ｐ８４にアルファ値＝０を割り当て、頂点Ｐ８５，Ｐ８６にアルファ値＝１００を割り当てている。
【００８１】
同図中に記載したグラフは、平面状モデル８０の各画素に設定されるアルファ値の変化を辺ｅ８１からｅ８３に向かって表したものである。各画素のアルファ値は、各頂点からの距離と、各頂点に割り当てられたアルファ値とに基づいて計算される。図７の例では、頂点Ｐ８１と頂点Ｐ８２とに割り当てられるアルファ値が同一であり、頂点Ｐ８３と頂点Ｐ８４とに割り当てられるアルファ値が同一であり、かつ、頂点Ｐ８５と頂点Ｐ８６とに割り当てられるアルファ値が同一であるので、辺ｅ８１、ｅ８２、ｅ８３に沿った方向では、各画素のアルファ値が変化しない。従って、辺ｅ８１からｅ８３に向かう方向で図７（ｂ）に示すようにアルファ値が変化する。図７（ｂ）に示すように、アルファ値は、辺ｅ８１からｅ８２の間の第１領域においてアルファ値＝０であり、辺ｅ８２から辺ｅ８３に向かってアルファ値＝１００まで増加する。辺ｅ８２から辺ｅ８３の間でのアルファ値の増加は、直線（１）のように一定の増加率で変化しても良いし、曲線（２）に示すように下に凸の曲線で変化しても良く、曲線（３）に示すように上に凸の曲線で変化しても良い。
【００８２】
図４（ｂ）は、図４（ａ）に示す平面状モデル８０を変形した平面状モデルの例としての平面状モデル８０’である。
【００８３】
平面状モデル８０’は、当該平面状モデル８０’を構成するポリゴンの各頂点Ｐ８１’〜Ｐ８６’の少なくとも一部の頂点の座標が、図４（ａ）の平面状モデル８０のポリゴンの対応する頂点の座標とは異なる。各頂点Ｐ８１’〜Ｐ８６’のうち１つの頂点のみが平面状モデル８０の頂点の座標と異なっても良いし、全ての頂点が平面状モデル８０の頂点の座標と異なっても良い。
【００８４】
少なくとも一部の頂点の座標が異なる平面状モデル８０と平面状モデル８０’とでは、各頂点に同一のアルファ値を設定したとしても、各平面状モデルにおいて各画素と頂点との間の距離が異なるので、各画素のアルファ値を変化させることが可能である。結果、第１のレンダリング画像のアルファ値を多様に変化させることが可能である。言い換えれば、第１のレンダリング画像のアルファ値をより細かく即ち、より高精度に変化させることが可能である。また、後述するように、各平面状モデル上に第１のレンダリング画像を貼り付ける場合には、平面状モデルの形状が変化すれば、平面状モデルの各画素と、第１のレンダリング画像の各画素との対応関係が変わり得る。これによっても第１のレンダリング画像のアルファ値を多様に変化させることが可能である。言い換えれば、第１のレンダリング画像のアルファ値をより細かく即ち、より高精度に変化させることが可能である。従って、平面状モデル８０を平面状モデル８０’に変形するように、平面状モデルを構成するポリゴンの各頂点の座標を変更して平面状モデルを変形することにより、平面状モデルに貼り付けられる第１のレンダリング画像のアルファ値を多様に変化させることが可能である。言い換えれば、平面状モデル８０を平面状モデル８０’に変形するように、平面状モデルを構成するポリゴンの各頂点の座標を変更して平面状モデルを変形することにより、平面状モデルに貼り付けられる第１のレンダリング画像のアルファ値をより細かく即ち、より高精度に変化させることが可能である。その結果、画像の透明度を多様に表現することが可能である。言い換えれば、画像の透明度をより細かく即ち、より高精度に表現することが可能である。
【００８５】
図５（ａ）は、平面状モデルの第２の例としての平面状モデル９０を示す。
【００８６】
平面状モデル９０は、２つの矩形のポリゴン９１、９２から構成される。ポリゴン９１は、頂点Ｐ９１、Ｐ９２、Ｐ９３、Ｐ９４を含む。ポリゴン９２は、頂点Ｐ９３、Ｐ９４、Ｐ９５、Ｐ９６を含む。平面状モデル９０は、ポリゴン９１、９２からなる「日」の字形のポリゴンである。
【００８７】
平面状モデル９０を指定する平面状モデルデータは、各ポリゴン９１、９２の各頂点Ｐ９１、Ｐ９２、Ｐ９３、Ｐ９４、Ｐ９５、Ｐ９６の座標を指定する座標データから構成される。平面状モデル９０に含まれるポリゴンの頂点Ｐ９１、Ｐ９２、Ｐ９３、Ｐ９４、Ｐ９５、Ｐ９６の少なくとも一部には、透明度としてのアルファ値が割り当てられる。
【００８８】
図５（ｂ）は、平面状モデルの第３の例としての平面状モデル１１０を示す。
【００８９】
平面状モデルは、１つの矩形のポリゴン１１１から構成される。ポリゴン１１１は、頂点Ｐ１１１、Ｐ１１２、Ｐ１１３、Ｐ１１４を含む。
【００９０】
平面状モデル１１０を指定する平面状モデルデータは、各ポリゴン１１１の各頂点Ｐ１１１、Ｐ１１２、Ｐ１１３、Ｐ１１４を指定する座標データから構成される。平面状モデル１１０に含まれるポリゴンの頂点Ｐ１１１、Ｐ１１２、Ｐ１１３、Ｐ１１４には、透明度としてのアルファ値が割り当てられる。
【００９１】
図６（ａ）は、平面状モデルの第４の例としての平面状モデル１２０を示す。
【００９２】
この平面状モデル１２０は、４つの矩形状のポリゴンからなる「田」の字形、即ち４つの矩形の領域が１つの頂点を共通にして隣接する形状の平面状モデルである。４つの矩形状のポリゴンは、ポリゴン１２１、ポリゴン１２２、ポリゴン１２３、ポリゴン１２４である。各ポリゴン１２１〜１２４は、それぞれが１又は複数のポリゴンから構成されても良い。平面状モデル１２０を特定する平面状モデルデータは、ポリゴン１２１、１２２の各ポリゴンの頂点の座標を指定する座標データによって構成される。なお、平面状モデル８０は、４つの矩形の領域からなる場合に限らず、複数の矩形の領域が２方向に沿って隣接して配列された形状であっても良い。
【００９３】
ポリゴン１２１は、頂点Ｐ１２０、Ｐ１２１、Ｐ１２３、Ｐ１２４を含む。ポリゴン１２２は、頂点Ｐ１２１、Ｐ１２２、Ｐ１２４、Ｐ１２５を含む。ポリゴン１２３は、頂点１２３、Ｐ１２４、Ｐ１２６、Ｐ１２７を含む。ポリゴン１２４は、頂点Ｐ１２４、Ｐ１２５、Ｐ１２７、Ｐ１２８を含む。各頂点Ｐ１２１〜Ｐ１２８には、アルファ値が設定される。例えば、ポリゴン１２１に含まれる各画素のアルファ値は、ポリゴン１２１の各頂点Ｐ１２１、Ｐ１２２、Ｐ１２４、Ｐ１２５に設定されたアルファ値を用いて算出される。
【００９４】
平面状モデル１２０の各画素のアルファ値は、頂点Ｐ１２０〜Ｐ１２８の９つの頂点のアルファ値に基づいて設定される。一方、前述した平面状モデル８０の各画素のアルファ値は、頂点Ｐ８１〜Ｐ８６の６つの頂点のアルファ値に基づいて設定される。従って、平面状モデル１２０の各画素のアルファ値は、平面状モデル８０の場合よりもより多くの頂点のアルファ値に基づいて設定される為、平面状モデル１２０の方がより多様なアルファ値を変化させることができる。言い換えれば、平面状モデル１２０の各画素のアルファ値は、平面状モデル８０の場合よりもより多くの頂点のアルファ値に基づいて設定される為、平面状モデル１２０の方がよりアルファ値をより細かく即ち、より高精度に変化させることができる。また、平面状モデル１２０の頂点Ｐ１２４は、平面状モデル１２０の端部ではなく内部にある為、端部のみに頂点がある場合よりも、各画素のアルファ値をより詳細に設定することが可能である。その結果、画像の透明度を多様に表現することが可能である。言い換えれば、画像の透明度をより細かく即ち、より高精度に表現することが可能である。
【００９５】
図６（ｂ）は、平面状モデル１２０を形した平面状モデル１２０’である。
【００９６】
平面状モデル１２０’は、当該平面状モデル１２０’を構成するポリゴンの各頂点Ｐ１２１’〜Ｐ１２８’の少なくとも一部の頂点の座標が、平面状モデル１２０のポリゴンの頂点の座標とは異なる。各頂点Ｐ１２１’〜Ｐ１２８’のうち１つの頂点のみが平面状モデル１２０の頂点の座標と異なっても良いし、全ての頂点が平面状モデル１２０の頂点の座標と異なっても良い。
【００９７】
少なくとも一部の頂点の座標が異なる平面状モデル１２０と平面状モデル１２０’とでは、各頂点に同一のアルファ値を設定したとしても、各平面状モデルにおいて各画素と頂点との間の距離が異なるので、各画素のアルファ値を変化させることが可能である。結果、第１のレンダリング画像のアルファ値を多様に変化させることが可能である。言い換えれば、第１のレンダリング画像のアルファ値をより細かく即ち、より高精度に変化させることが可能である。また、後述するように、各平面状モデル上に第１のレンダリング画像を貼り付ける場合には、平面状モデルの形状が変化すれば、平面状モデルの各画素と、第１のレンダリング画像の各画素との対応関係が変わり得る。これによっても第１のレンダリング画像のアルファ値を多様に変化させることが可能である。言い換えれば、第１のレンダリング画像のアルファ値をより細かく即ち、より高精度に変化させることが可能である。従って、平面状モデル１２０を平面状モデル１２０’に変形するように、平面状モデルを構成するポリゴンの各頂点の座標を変更して平面状モデルを変形することにより、平面状モデルに貼り付けられる第１のレンダリング画像のアルファ値を多様に変化させることが可能である。言い換えれば、平面状モデル１２０を平面状モデル１２０’に変形するように、平面状モデルを構成するポリゴンの各頂点の座標を変更して平面状モデルを変形することにより、平面状モデルに貼り付けられる第１のレンダリング画像のアルファ値をより細かく即ち、より高精度に変化させることが可能である。その結果、画像の透明度を多様に変化させることが可能である。言い換えれば、画像の透明度をより細かく即ち、より高精度に変化させることが可能である。
【００９８】
図２において、テクスチャデータ部２３０９は、テクスチャデータを記憶している。テクスチャデータは、例えば、色データである。色データは、３次元モデルデータを構成するポリゴンの各画素に割り当てられる。色データは、３次元モデルデータを構成するポリゴンの各画素の座標に対応付けて記憶されている。
【００９９】
上述した３次元モデルデータ部２３０７、平面状モデルデータ部２３０８、テクスチャデータ部２３０９に含まれるデータは、記憶媒体２３に記憶された状態で読み出されても良いし、ＲＡＭ２１に一旦読み出されて記憶された後、ＲＡＭ２１から読み出されても良い。
【０１００】
次に、画像処理制御プログラム２３０１の各構成について説明する。
【０１０１】
第１レンダリング手段２３０３は、３次元モデルの位置及び角度を決定して第１ののカメラ位置でレンダリングして、第１のレンダリング画像を生成する。
【０１０２】
第１レンダリング手段２３０３は、図３に示すような３次元モデル１００１及び１００２を第１のカメラ位置でレンダリングする。このレンダリングの結果得られるレンダリング画像を第１のレンダリング画像とする。
【０１０３】
例えば、第１レンダリング手段２３０３は、３次元モデル１００２を特定する３次元モデルデータを３次元モデルデータ部２３０７から読み出して、図８（ａ）に示すように、手の平が現在のカメラ位置を向くように配置し、現在のカメラ位置でレンダリングして、３次元モデル１００２に対応する第１のレンダリング画像１００２ａを出力する。第１レンダリング手段２３０３は、例えば、第１のレンダリング画像１００２ａをＲＡＭ２１に記憶する。第１レンダリング手段２３０３は、３次元モデル１００１を特定する３次元モデルデータを３次元モデルデータ部２３０７から読み出して、図８（ｂ）に示すように、手の平が現在のカメラ位置を向くように配置し、現在のカメラ位置でレンダリングして、３次元モデル１００２に対応する第１のレンダリング画像１００１ｂを出力する。第１レンダリング手段２３０３は、例えば、第１のレンダリング画像１００１ｂをＲＡＭ２１に記憶する。第１レンダリング手段２３０３は、３次元モデル１００２を特定する３次元モデルデータを３次元モデルデータ部２３０７から読み出して、図８（ｃ）に示すように、手の甲が現在のカメラ位置を向くように配置し、現在のカメラ位置でレンダリングして、３次元モデル１００２に対応する第１のレンダリング画像１００２ｃを出力する。第１レンダリング手段２３０３は、例えば、第１のレンダリング画像１００２ｃをＲＡＭ２１に記憶する。
【０１０４】
モデル読出手段２３０４は、平面状モデルデータ部２３０８から、１又は複数のポリゴンから構成される平面状モデルデータを読み出す。モデル読出手段２３０４は、記憶媒体２３から平面状モデルデータを読み出すことが可能である。また、モデル読出手段２３０４は、ＲＡＭ２１に読み出されて記憶されている平面状モデルデータを読み出しても良い。平面状モデルデータは、前述したように、平面状モデル８０、９０、１１０、１２０等の平面状モデルを特定するデータである。平面状モデル８０を変形した平面状モデルのデータ（例えば、平面状モデル８０’、平面状モデル１２０’）も、平面状モデルデータ部２３０８に予め記憶しておくことが可能である。例えば、平面状モデルデータ部２３０８は、平面状モデル８０の頂点の座標を変更した複数の形状の平面状モデルを含むことが可能である。
【０１０５】
第２レンダリング手段２３０５は、第１のレンダリング画像を平面状モデルに貼り付ける。具体的には、第２レンダリング手段２３０５は、第１のレンダリング画像の各画素を平面状モデルの各画素に割り当てる。
【０１０６】
例えば、第２レンダリング手段２３０５は、３次元モデル１００２をレンダリングした第１のレンダリング画像１００２ａを、平面状モデル８０の各画素に割り当てる。また、第２レンダリング手段２３０５は、第１のレンダリング画像１００２ａの各画素が割り当てられた平面状モデル８０の各画素にテクスチャデータを割り当てる。
【０１０７】
また、第２のレンダリング手段２３０５は、１又は複数のポリゴンの各頂点にアルファ値を設定して、頂点のアルファ値に基づいて平面状モデル上の各画素のアルファ値を設定する。例えば、第２レンダリング手段２３０５は、図７に示すように、平面状モデル８０を構成する各ポリゴン８１〜８４の各頂点Ｐ８１〜Ｐ８６にアルファ値を設定する。また、第２レンダリング手段２３０５は、各頂点Ｐ８１〜Ｐ８６のアルファ値と、各画素と各頂点Ｐ８１〜Ｐ８６との距離に基づいて、各画素のアルファ値を算出し、設定する。図７の例では、ポリゴン８１に含まれる各画素は、各画素から頂点Ｐ８１〜Ｐ８４までの距離と、各頂点Ｐ８１〜Ｐ８４のアルファ値とに基づいて算出される。ある画素から各頂点Ｐ８１〜Ｐ８４までの距離がそれぞれｄ８１〜ｄ８４、ｄ８１〜ｄ８４の合計をｄ、各頂点Ｐ８１〜Ｐ８４の各アルファ値をα１〜α４とすると、当該画素のアルファ値を式（２）で計算する。
【０１０８】
α１×（ｄ１／ｄ）＋α２×（ｄ２／ｄ）＋α３×（ｄ３／ｄ）＋α４×（ｄ４／ｄ）
・・・（２）
また、ポリゴン８２に含まれる各画素のアルファ値も同様に算出される。
【０１０９】
また、第２レンダリング手段２３０５は、例えば式（２）によって算出され各画素に設定されたアルファ値を第１のレンダリング画像の各画素に割り当てる。
【０１１０】
この結果、第２レンダリング手段２３０５により、平面状モデル８０には、第１のレンダリング画像１００１ａの各画素が割り当てられ、それらの画素にはテクスチャデータ及びアルファ値が割り当てられる。第２レンダリング手段２３０５は、平面状モデル８０を構成するポリゴンの各頂点の座標と、平面状モデル８０の各画素の座標に対応付けられたテクスチャデータ及びアルファ値をＲＡＭ２１に記憶させる。
【０１１１】
第３レンダリング手段２３０６は、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデルを配置し、現在のカメラ位置の視線と垂直になるように平面状モデルを回転させて、平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする。
【０１１２】
第３レンダリング手段２３０６は、第１レンダリング手段２３０３でレンダリングした際の３次元モデル１００２の位置及び角度（手の平側がカメラを向く位置及び角度）に合わせて、第１のレンダリング画像１００２ａがレンダリングされた平面状モデル８０を配置する。また、第３レンダリング手段２３０６は、第１レンダリング手段２３０３でレンダリングした際の３次元モデル１００１の位置及び角度（手の平側がカメラを向く位置及び角度）に合わせて、第１のレンダリング画像１００１ｂがレンダリングされた平面状モデル８０を配置する。また、第３レンダリング手段２３０６は、第１レンダリング手段２３０３でレンダリングした際の３次元モデル１００１の位置及び角度（手の甲側がカメラを向く位置及び角度）に合わせて、第１のレンダリング画像１００２ｃがレンダリングされた平面状モデル８０を配置する。
【０１１３】
また、第３レンダリング手段２３０６は、処理の結果得られるレンダリング画像をＲＡＭ２１に記憶する。
【０１１４】
図１０は、本実施形態に係る画像処理のフローチャートである。
【０１１５】
ステップＳ１０１では、第１レンダリング手段２３０３が、第１のカメラ位置（以下、現在カメラ位置と称す）を設定する。第１のカメラ位置は、現在表示対象としている１又は複数のフレームにおける表示画像を見る視線を定義する為の仮想的なカメラの位置である。フレームは、単位静止画面分の静止画像を意味する。言い換えれば、第１のカメラ位置は、第１レンダリング手段でレンダリングした画像を表示するフレームにおけるカメラ位置である。第１レンダリング手段で複数の画像をレンダリングして、各画像を複数のフレームで表示する場合には、第１のカメラ位置は当該複数のフレームに共通するカメラ位置である。
【０１１６】
ステップＳ１０２では、第１レンダリング手段２３０３が、ステップＳ１０１で設定された第１のカメラ位置で、図３（ａ）及び（ｂ）に示す３次元モデル１００１及び１００２をレンダリングする。
【０１１７】
第１レンダリング手段２３０３は、３次元モデル１００２を手の平側が現在のカメラ位置の方向を向くように配置して（図８（ａ）に対応）、３次元モデル１００２をレンダリングすることで、第１のレンダリング画像１００２ａを生成する。
【０１１８】
また、第１レンダリング手段２３０３は、３次元モデル１００１を手の平側が現在のカメラ位置の方向を向くように配置して（図８（ｂ）に対応）、３次元モデル１００１をレンダリングすることで、第１のレンダリング画像１００１ｂを生成する。
【０１１９】
また、第１レンダリング手段２３０３は、３次元モデル１００１を手の甲側が現在のカメラ位置の方向を向くように配置して（図８（ｃ）に対応）、３次元モデル１００２をレンダリングすることで、第１のレンダリング画像１００２ｃを生成する。
【０１２０】
ステップＳ１０３では、モデル読出手段２３０４が、３次元モデルデータ部２３０７から平面状モデルを読み出す。
【０１２１】
ここでは、モデル読出手段２３０４は、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃのそれぞれを貼り付ける為の平面状モデル８０を読み出す。モデル読出手段２３０４は、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃのそれぞれに対して、異なるタイプ、若しくは同一タイプで異なる形状の平面状モデルを読み出しても良い。ここでは、モデル読出手段２３０４は、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃのそれぞれに対して、同一の平面状モデル８０を読み出す。また、モデル読出手段２３０４は、第１のレンダリング画像１００２ａに対して読み出した平面状モデル８０を８０１とし、第１のレンダリング画像１００１ｂに対して読み出した平面状モデル８０を８０２とし、第１のレンダリング画像１００２ｃに対して読み出した平面状モデル８０を８０３とする。
【０１２２】
ステップＳ１０４では、第２レンダリング手段２３０５が第１レンダリング画像を平面状モデルに貼り付ける。
【０１２３】
図８（ａ）に示すように、第２レンダリング手段２３０５が、平面状モデル８０１に第１のレンダリング画像１００２ａを貼り付ける。第２レンダリング手段２３０５は、第１のレンダリング画像１００２ａの各画素を平面状モデル８０１の各画素に割り当てる。また、第２レンダリング手段２３０５は、第１のレンダリング画像１００２ａの各画素の色データをテクスチャデータ部２３０９から読み出して、平面状モデル８０１の画素のうち、第１のレンダリング画像１００２ａの各画素が割り当てられた画素に色データを割り当てる。
【０１２４】
図８（ｂ）に示すように、第２レンダリング手段２３０５が、平面状モデル８０２に第１のレンダリング画像１００１ｂを貼り付ける。第２レンダリング手段２３０５は、第１のレンダリング画像１００１ｂの各画素を平面状モデル８０２の各画素に割り当てる。また、第２レンダリング手段２３０５は、第１のレンダリング画像１００１ｂの各画素の色データをテクスチャデータ部２３０９から読み出して、平面状モデル８０２の画素のうち、第１のレンダリング画像１００２ｂの各画素が割り当てられた画素に色データを割り当てる。
【０１２５】
図８（ｃ）に示すように、第２レンダリング手段２３０５が、平面状モデル８０３に第１のレンダリング画像１００２ｃを貼り付ける。第２レンダリング手段２３０５は、第１のレンダリング画像１００２ｃの各画素を平面状モデル８０３の各画素に割り当てる。また、第２レンダリング手段２３０５は、第１のレンダリング画像１００２ｃの各画素の色データをテクスチャデータ部２３０９から読み出して、平面状モデル８０３の画素のうち、第１のレンダリング画像１００２ｃの各画素が割り当てられた画素に色データを割り当てる。
【０１２６】
図８（ａ）〜（ｃ）において、オブジェクト８２０は肩関節８２０を示す。この例では、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃが、肩関節８２０側の端部を枢軸として枢回運動する動きを表現する。
【０１２７】
ステップＳ１０５では、第２レンダリング手段２３０５が、平面状モデルを構成するポリゴンの少なくとも一部の頂点にアルファ値を設定し、頂点のアルファ値に基づいて平面状モデルの各画素のアルファ値を設定する。
【０１２８】
例えば、第２レンダリング手段２３０５は、各平面状モデル８０１、８０２、８０３を構成する各ポリゴン（図４（ａ）に示すポリゴン８１〜８４）の各頂点にアルファ値を設定する。また、第２レンダリング手段２３０５が、各平面状モデル８０１、８０２、８０３上の各画素のアルファ値を、前述したように、各画素から頂点までの距離と、頂点に設定されたアルファ値とに基づいて算出する。
【０１２９】
第２レンダリング手段２３０５は、平面状モデル８０１を構成する各ポリゴンの頂点にアルファ値を設定し、頂点に設定されたアルファ値と、頂点から各画素までの距離とに基づいて各画素のアルファ値を算出し、設定する。
【０１３０】
また、第２レンダリング手段２３０５は、平面状モデル８０２を構成する各ポリゴンの頂点にアルファ値を設定し、頂点に設定されたアルファ値と、頂点から各画素までの距離とに基づいて各画素のアルファ値を算出し、設定する。
【０１３１】
また、第２レンダリング手段２３０５は、平面状モデル８０３を構成する各ポリゴンの頂点にアルファ値を設定し、頂点に設定されたアルファ値と、頂点から各画素までの距離とに基づいて各画素のアルファ値を算出し、設定する。
【０１３２】
ここでは、平面状モデル８０１から８０３の順番に第１のレンダリング画像が移動しているとして、移動先の第１のレンダリング画像ほど、即ち後のフレームの第１レンダリング画像ほどアルファ値が小さく（不透明に近づく）、移動元の第１のレンダリング画像ほど、即ち前のフレームの第１レンダリング画像ほどアルファ値が大きく（透明に近づく）なるように設定する。第１〜第３フレームでは、平面状モデル８０３の第１のレンダリング画像１００２ｃを実像として、平面状モデル８０１のアルファ値＞平面状モデル８０２のアルファ値＞平面状モデル８０３のアルファ値とする。
【０１３３】
（第１フレームの画像の生成）
ステップＳ１０６では、第３レンダリング手段２３０６は、第１のレンダリング画像に対応する３次元モデルの位置及び角度に合わせて平面状モデルを配置する。第３レンダリング手段２３０６は、ステップＳ１０２でレンダリングした際の３次元モデル１００２の位置及び角度に合わせて、第１のレンダリング画像１００２ａが貼り付けられた平面状モデル８０１を配置する。次に、第３レンダリング手段２３０６は、平面状モデル８０１を現在のカメラ位置の視線と垂直になるように回転させる。このように配置された平面状モデル８０１を図８（ａ）に示す。
【０１３４】
ステップＳ１０７では、第３レンダリング手段２３０６は、第１のカメラ位置の視線と垂直になるように平面状モデルを回転させて、平面状モデルに貼り付けられた第１のレンダリング画像をレンダリングする。第３レンダリング手段２３０６は、平面状モデル８０１に貼り付けられた第１のレンダリング画像１００２ａをレンダリングする。そして、第３レンダリング手段２３０６は、第１のレンダリング画像１００２ａをレンダリングした最終画像を第１フレームの画像としてＲＡＭ２１に記憶させる。
【０１３５】
（第２フレームの画像の生成）
再び、ステップＳ１０６に戻り、第２フレームの画像を生成する。
【０１３６】
ステップＳ１０６では、第３レンダリング手段２３０６は、ステップＳ１０２でレンダリングした際の３次元モデル１００２の位置及び角度に合わせて、第１のレンダリング画像１００１ｂが貼り付けられた平面状モデル８０２を配置する。次に、第３レンダリング手段２３０６は、平面状モデル８０２を現在のカメラ位置の視線と垂直になるように回転させる。このように配置された平面状モデル８０２を図８（ｂ）に示す。
【０１３７】
ステップＳ１０７では、第３レンダリング手段２３０６は、平面状モデル８０２に貼り付けられた第１のレンダリング画像１００２ｂをレンダリングする。そして、第３レンダリング手段２３０６は、第１のレンダリング画像１００２ｂをレンダリングした最終画像を第２フレームの画像としてＲＡＭ２１に記憶させる。
【０１３８】
（第３フレームの画像の生成）
再び、ステップＳ１０６に戻り、第３フレームの画像を生成する。
【０１３９】
ステップＳ１０６では、第３レンダリング手段２３０６は、ステップＳ１０２でレンダリングした際の３次元モデル１００１の位置及び角度に合わせて、第１のレンダリング画像１００２ｃが貼り付けられた平面状モデル８０３を配置する。次に、第３レンダリング手段２３０６は、平面状モデル８０３を現在のカメラ位置の視線と垂直になるように回転させる。このように配置された平面状モデル８０３を図８（ｃ）に示す。
【０１４０】
ステップＳ１０７では、第３レンダリング手段２３０６は、平面状モデル８０３に貼り付けられた第１のレンダリング画像１００２ｃをレンダリングする。そして、第３レンダリング手段２３０６は、第１のレンダリング画像１００２ｃをレンダリングした最終画像を第３フレームの画像としてＲＡＭ２１に記憶させる。
【０１４１】
以上のように、ステップＳ１０１で設定した第１のカメラ位置でレンダリングした第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃを、それぞれ第１〜第３フレームで表示する。従って、第１〜第３フレームにおけるカメラ位置は、第１のカメラ位置とする。
【０１４２】
ＲＡＭ２１に記憶された第１フレームから第３フレームの画像は、所定周期で画像表示部３０に出力されて表示される。
【０１４３】
図９は、第１フレームから第３フレームの画像を画像表示部３０に表示させた場合に、視認される画面の状態を示している。このように、第１フレームから第３フレームを連続して表示させると、各フレームの画像によってアニメーションを表現することができる。この場合、ステップＳ１０５で設定する平面状モデルのアルファ値を前のフレームのものほど大きく設定する、すなわち、平面状モデル８０１のアルファ値＞平面状モデル８０２のアルファ値＞平面状モデル８０３のアルファ値と設定すれば、第１フレームから第３フレームの画像によって腕が残像を残しながら移動する様子を表現できる。即ち、本実施形態に係る３次元画像処理によれば、簡易な処理によって、多様なアルファ値を変化させることにより、結果、簡易な処理でリアルな残像表現をすることが可能となる。言い換えれば、簡易な処理によって、アルファ値をより細かく即ち、より高精度に変化させることにより、結果、簡易な処理でリアルな残像表現をすることが可能となる。
【０１４４】
ステップＳ１０５で説明したように、本実施形態では、テクスチャデータに割り当てられたアルファ値をそのまま用いるのではなく、また、テクスチャを貼り付けるモデルのアルファ値を全体的に変更するのではなく、平面状モデルに含まれる複数の頂点にアルファ値を設定し、頂点のアルファ値を用いて平面状モデルの各画素のアルファ値を算出する。従って、簡易な計算で多様なアルファ値を変化させることが可能である。言い換えれば、簡易な計算でアルファ値をより細かく即ち、より高精度に変化させることが可能である。その結果、画像の透明度を多様に表現することが可能である。言い換えれば、画像の透明度をより細かく即ち、より高精度に表現することが可能である。また、平面状モデルに貼り付けたテクスチャを繰り返し用いれば、処理負荷を抑制しながら、アルファ値を多様に変化させることができ、結果、リアルな残像表現をすることが可能となる。言い換えれば、平面状モデルに貼り付けたテクスチャを繰り返し用いれば、処理負荷を抑制しながら、アルファ値をより細かく即ち、より高精度に変化させることができ、結果、リアルな残像表現をすることが可能となる。
【０１４５】
＜第４フレーム以降の表示＞
その後、第４フレーム以降の画像を表示させる場合には、例えば、第４フレームで平面状モデル８０２、第５フレームで平面状モデル８０３、第６フレームで平面状モデル８０１を表示する。すなわち、平面状モデル８０１〜８０３を繰り返し用いて画像を表示する。３フレーム単位で同一画像を繰り返し用いて、３次元モデルの動きを表現する。第４〜ステップＳ１０１で設定した第１のカメラ位置とする。
【０１４６】
この場合、平面状モデル「８０１（残像）、８０２（残像）、８０３（実像）」、「８０１（残像）、８０３（残像）、８０２（実像）」、「８０３（残像）、８０２（残像）、８０１（実像）」、・・・のように、３フレームごとに、最も後のフレームの平面状モデル（実像が貼り付けられたモデル）を１つずつずらし、かつ、３フレームごとに、後のフレームの平面状モデルほどアルファ値を小さくする（不透明に近づける）。具体的には、第１〜第３フレームでは平面状モデル８０３が最も後のモデルでありアルファ値が最小（不透明に最も近い）であり、第４〜第６フレームでは平面状モデル８０２が最も後のフレームのモデルでありアルファ値が最小（不透明に最も近い）であり、第７〜第９フレームでは平面状モデル８０１が最も後のフレームのモデルでありアルファ値が最小（不透明に最も近い）であるようにする。
【０１４７】
第４〜第６フレームを表示する場合には、第１〜第３フレームの処理で平面状モデル８０１〜８０３に貼り付けられた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃをそのまま用いる。
【０１４８】
但し、第４〜第６フレームでは、平面状モデル８０２が最も後のフレームの平面状モデルであって実像であるので、平面状モデル８０１のアルファ値＞平面状モデル８０３のアルファ値＞平面状モデル８０２のアルファ値となるように、ステップＳ１０５にて、平面状モデル８０１〜８０３のアルファ値を設定し直す。
【０１４９】
その後、第１〜第３フレームの場合と同様にして、ステップＳ１０６及びＳ１０７を実行し、第４〜第６フレームを表示する。
【０１５０】
第７〜第９フレームを表示する場合には、第４〜第６フレームの処理で平面状モデル８０１〜８０３に貼り付けられた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃをそのまま用いる。第７〜第９フレームのカメラ位置は、ステップＳ１０１で設定した第１のカメラ位置とする。
【０１５１】
但し、第７〜第９フレームでは、平面状モデル８０１が最も後のフレームの平面状モデルであり実像であるので、平面状モデル８０３のアルファ値＞平面状モデル８０２のアルファ値＞平面状モデル８０１のアルファ値となるように、ステップＳ１０５にて、平面状モデル８０１〜８０３のアルファ値を設定し直す。その後、第１〜第３フレームの場合と同様にして、ステップＳ１０６及びＳ１０７を実行し、第７〜第９フレームを表示する。
【０１５２】
以上のように、第１〜第９フレームを表示すれば、３次元モデルの実像が第１のレンダリング画像１００２ｃ（平面状モデル８０３）、第１のレンダリング画像１００１ｂ（平面状モデル８０２）、第１のレンダリング画像１００２ａ（平面状モデル８０１）の順番に、残像を伴いながら、変化する様子を表現することができる。
【０１５３】
更に、第１０〜第１２フレームにおいて平面状モデル８０２を実像として、第１３〜第１５フレームにおいて平面状モデル８０３を実像として表示すれば、腕を振り下ろし（第１〜第３フレーム）、腕を振り上げ（第４〜第６フレーム、第７〜第９フレーム）、腕を振り下ろす（第１０〜第１２フレーム）、という一連の動きを残像と共に表現することが可能である。即ち、実像とする平面状モデルを８０１、８０２、８０３、８０２、８０１の順番に繰り返し表示すれば、腕を上下に振る動作を残像と共に表現することが可能である。第１０〜第１２フレームのカメラ位置は、ステップＳ１０１で設定した第１のカメラ位置とする。
【０１５４】
また、第２レンダリング手段２３０５は、現在フレーム以前の何れかのフレームでレンダリングされた第１のレンダリング画像を、現在フレームの平面状モデルに貼り付ける。或いは、以前のフレームの第１のレンダリング画像が貼り付けられた平面状モデルをそのまま用いることができる。
【０１５５】
例えば、第４フレームで第１のレンダリング画像１００１ｂを表示する場合には、第２フレームで３次元モデル１００２をレンダリングした第１のレンダリング画像１００２ｂをそのまま平面状モデル８０２に貼り付ける。又は、第１のレンダリング画像１００２ｂが貼り付けられた平面状モデル８０２をそのまま用いる。但し、この場合でも、アルファ値の計算を行う。従って、以前のフレームでレンダリングした画像を再度利用して、処理負荷を低減しつつ、リアルな残像表現を行うことが可能である。
【０１５６】
また、３フレームごとに、各平面状モデルに設定するアルファ値を変更することで、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃのアルファ値を柔軟に変更することが可能である。これにより、処理負荷を抑制しつつ、アルファ値を多様に変化させることができ、リアルな残像表現が可能となる。言い換えれば、処理負荷を抑制しつつ、アルファ値をより細かく即ち、より高精度に変化させることができ、リアルな残像表現が可能となる。
【０１５７】
また、３フレームの単位では、実像として表示される最も後のフレームの第１のレンダリング画像のアルファ値を最も小さく（不透明に近く）、前のフレームのアルファ値ほど大きく（透明に近く）する。言い換えれば、実像が表示されるフレームに対して、以前のフレームほどアルファ値を大きく（透明に近く）する。これによって、残像表現をリアルにすることが可能である。
【０１５８】
＜平面状モデルの変形によるアルファ値の変更＞
平面状モデルを変形する方法としては、例えば平面状モデル８０を変形した複数の形状の平面状モデルを、記憶部２３に予め記憶しておく。そして、図１０のステップＳ１０３で平面状モデルを読み出す際に、適宜、異なる形状の平面状モデル８０を読み出す。変形した平面状モデルとは、基準となる平面状モデルを構成するポリゴンの頂点の座標を変更することで、形状が変更された、形状の異なる平面状モデルである。そして、異なる形状の平面状モデル８０にステップＳ１０４、Ｓ１０５を実行することで、変形前の平面状モデル８０にアルファ値を設定する場合と比較して、第１のレンダリング画像に設定されるアルファ値を変更することが可能である。
【０１５９】
また、平面状モデルを変形する他の方法としては、ステップＳ１０３とステップＳ１０４の間に、第２レンダリング手段２３０５が平面状モデル８０を変形するステップＳ１０４１を追加して、平面状モデルを変形する方法がある。この場合、ステップＳ１０４１において、ステップＳ１０３で読み出した平面状モデルを構成するポリゴンの頂点の座標を変更することで、平面状モデル８０を変形する。変形後の平面状モデル８０にステップＳ１０４、Ｓ１０５を実行することで、変形前の平面状モデル８０にアルファ値を設定する場合と比較して、第１のレンダリング画像に設定されるアルファ値を変更することが可能である。
【０１６０】
＜１フレームに複数の平面状モデルをレンダリングする場合＞
上記では、第３レンダリング手段２３０６が、フレームごとに、平面状モデル８０１、８０２、８０３の最終画像の１つを生成した。一方、第３レンダリング手段２３０６が、１フレームで２以上の平面状モデルの最終画像を生成しても良い。
【０１６１】
例えば、第３レンダリング手段２３０６が、平面状モデル８０１、８０２、８０３の３つの平面状モデルを１フレームでレンダリングし、１フレームで３つの平面状モデルを表示させるようにしても良い。この処理は、例えば、以下のようになる。
【０１６２】
（第１フレームの画像の生成）
図１０のフローチャートにおいて、ステップＳ１０１〜Ｓ１０３を前記同様に処理した後、ステップＳ１０４に移行する。
【０１６３】
ステップＳ１０４において、図８（ａ）に示すように、第２レンダリング手段２３０５が、平面状モデル８０１、８０２、８０３に、それぞれ、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃを貼り付ける。第２レンダリング手段２３０５は、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃの各画素を平面状モデル８０１、８０２、８０３の各画素に割り当てる。また、第２レンダリング手段２３０５は、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃの各画素の色データをテクスチャデータ部２３０９から読み出して、平面状モデル８０１、８０２、８０３の画素のうち、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃの各画素が割り当てられた画素に色データを割り当てる。
【０１６４】
ステップＳ１０５において、第２レンダリング手段２３０５が、各平面状モデル８０１、８０２、８０３を構成する各ポリゴン（図４（ａ）に示すポリゴン８１〜８４）の少なくとも一部の頂点にアルファ値を設定する。また、第２レンダリング手段２３０５が、各平面状モデル８０１、８０２、８０３上の各画素のアルファ値を、各画素から少なくとも一部の頂点までの距離と、当該頂点に設定されたアルファ値とに基づいて算出する。
【０１６５】
ここでは、平面状モデル８０１から８０３の順番に第１のレンダリング画像が移動しているとして、移動先の第１のレンダリング画像ほど、即ち後のフレームの第１レンダリング画像ほどアルファ値が小さく、移動元の第１のレンダリング画像ほど、即ち前のフレームの第１レンダリング画像ほどアルファ値が大きくなるように設定する。具体的には、平面状モデル８０１のアルファ値＞平面状モデル８０２のアルファ値＞平面状モデル８０３のアルファ値とする。
【０１６６】
ステップＳ１０６では、図９に示すように、第３レンダリング手段２３０６は、第１のレンダリング画像１００２ａ、１００２ｂ、１００１ｃに対応する３次元モデルの位置及び角度に合わせて平面状モデル８０１、８０２、８０３を配置する。
【０１６７】
ステップＳ１０７では、第３レンダリング手段２３０６は、現在のカメラ位置の視線と垂直になるように平面状モデル８０１、８０２、８０３を回転させて、平面状モデル８０１、８０２、８０３に貼り付けられた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃをレンダリングする。そして、第３レンダリング手段２３０６は、第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃをレンダリングした最終画像を第１フレームの画像としてＲＡＭ２１に記憶させる。
【０１６８】
（第２フレームの画像の生成）
ステップＳ１０４に戻り、平面状モデル８０１、８０２、８０３に第１フレームの処理で用いた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃを貼り付ける。第２フレームのカメラ位置は、ステップＳ１０１で設定した第１のカメラ位置とする。
【０１６９】
ステップＳ１０５では、平面状モデル８０１、８０２、８０３のそれぞれにおいて、当該平面状モデルを構成するポリゴンの頂点にアルファ値を設定し、頂点のアルファ値と、頂点から各画素までの距離とに基づいて、平面状モデル上の各画素のアルファ値を算出し、設定する。
【０１７０】
第２フレームでは、最も後のフレームの平面状モデル、即ち実像の平面状モデルを平面状モデル８０２とし、平面状モデル８０１のアルファ値＞平面状モデル８０３のアルファ値＞平面状モデル８０２のアルファ値とする。
【０１７１】
その後、ステップＳ１０６及びＳ１０７において前記同様に処理して、平面状モデル８０１〜８０３に貼り付けられた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃのレンダリング画像を第２フレームとしてＲＡＭ２１に記憶させる。
【０１７２】
（第３フレームの画像の生成）
ステップＳ１０４に戻り、平面状モデル８０１、８０２、８０３に第１フレームの処理で用いた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃを貼り付ける。第３フレームのカメラ位置は、ステップＳ１０１で設定した第１のカメラ位置とする。
【０１７３】
ステップＳ１０５では、平面状モデル８０１、８０２、８０３のそれぞれにおいて、当該平面状モデルを構成するポリゴンの頂点にアルファ値を設定し、頂点のアルファ値と、頂点から各画素までの距離とに基づいて、平面状モデル上の各画素のアルファ値を算出し、設定する。
【０１７４】
第３フレームでは、最も後のフレームの平面状モデル、即ち実像の平面状モデルを平面状モデル８０１とし、平面状モデル８０３のアルファ値＞平面状モデル８０２のアルファ値＞平面状モデル８０１のアルファ値とする。
【０１７５】
その後、ステップＳ１０６及びＳ１０７において前記同様に処理して、平面状モデル８０１〜８０３に貼り付けられた第１のレンダリング画像１００２ａ、１００１ｂ、１００２ｃのレンダリング画像を第２フレームとしてＲＡＭ２１に記憶させる。
【０１７６】
ＲＡＭ２１に記憶された第１フレームから第３フレームの画像は、所定周期で画像表示部３０に出力されて表示される。このとき、実像は、第１フレーム、第２フレーム、第３フレームの順番に、平面状モデル８０３、平面状モデル８０２、平面状モデル８０１と変化するので、残像を伴いながら実像が変化する様子を処理負荷を抑制しつつ表現することができる。
【０１７７】
平面状モデル８０１、８０２、８０３を１フレームごとに表示した場合には、実像が３フレームごとに移動するが、平面状モデル８０１、８０２、８０３のアルファ値を変更しながら３つの平面状モデルを１フレームで表現する場合には、１フレームごとに実像が移動する。従って、同一フレーム周期において実像の移動速度を速くすることが可能である。特に、残像の数が多くなる程、残像表現に伴う処理負荷が大きくなるが、このようにアルファ値を変更しながら複数の平面状モデルを表示させることで、処理負荷を抑制することが可能である。
【０１７８】
図８及び図９に示した例では、複数の第１のレンダリング画像の一端、即ち腕の付け根の部分が繋がるように表示処理したが、複数の第１のレンダリング画像の一端は必ずしも繋がる必要はない。
【０１７９】
図１１は、腕の形状をした物体が、同図中の矢印Ａで示す方向に飛行する様子を表現する場合を例に挙げて、複数の第１のレンダリング画像が繋がらずに連続的に配置される処理を説明する図である。
【０１８０】
同図では、平面状モデル８０４、８０５、８０６上にそれぞれ、第１のレンダリング画像１００３、１００４、１００５が貼り付けられている。また、同図中の矢印Ｂで示すように、前のフレームの平面状モデルのアルファ値ほど大きく設定されている。即ち、平面状モデル８０４のアルファ値＞平面状モデル８０５のアルファ値＞平面状モデル８０６のアルファ値と設定されている。また、図１０のステップＳ１０１〜Ｓ１０７の処理により平面状モデル８０４の第１のレンダリング画像１００３、平面状モデル８０５の第１のレンダリング画像１００４、平面状モデル８０６の第１のレンダリング画像１００５を１フレームごとに表示する。これにより、第１のレンダリング画像１００３から第１のレンダリング画像１００５に向かって腕の形状をした物体が飛行する場合の残像表現を、前記同様に簡易な処理で行うことができる。
【０１８１】
図１２は、複数の第１のレンダリング画像の一端が繋がる場合の他の例である。図１２は、複数の輪が繋がった鎖がうねる様子を表現する処理を説明する図である。
【０１８２】
同図（ａ）は第１フレームの画像を示し、同図（ｂ）は第２フレームの画像を示す。同図（ａ）では、輪を表す第１のレンダリング画像１１０１ａ、１１０２ａ、・・・がそれぞれ平面状モデル９０１ａ、９０２ａ、・・・・に貼り付けられている。同図（ｂ）では、輪を表す第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・がそれぞれ平面状モデル９０１ｂ、９０２ｂ、・・・に貼り付けられている。
【０１８３】
同図（ａ）の複数の輪に対応する３次元モデルをレンダリングすることで、第１のレンダリング画像１１０１ａ、１１０２ａ、・・・を得る。また、第１のレンダリング画像１１０１ａ、１１０２ａ、・・・を、平面状モデル９０１ａ、９０２ａ、・・・に貼り付けると共に、平面状モデル９０１ａ、９０２ａ、・・・の各画素のアルファ値を設定し、各画素のアルファ値を第１のレンダリング画像１１０１ａ、１１０２ａ、・・・の各画素に割り当てることで、第１のレンダリング画像１１０１ａ、１１０２ａ、・・・を、平面状モデル９０１ａ、９０２ａ、・・・にレンダリングする。その後、平面状モデル９０１ａ、９０２ａ、・・・を、第１のレンダリング画像１１０１ａ、１１０２ａ、・・・に対応する３次元モデルをレンダリングした際の位置及び角度に配置し、現在のカメラ位置の視線と垂直になるように平面状モデル９０１ａ、９０２ａ、・・・を回転させた後、第１のレンダリング画像１１０１ａ、１１０２ｂ、・・・をレンダリングすることで、最終的なレンダリング画像を第１フレームの画像として得る。
【０１８４】
同図（ｂ）の複数の輪に対応する３次元モデルをレンダリングすることで、第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・を得る。また、第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・を、平面状モデル９０１ｂ、９０２ｂ、・・・に貼り付けると共に、平面状モデル９０１ｂ、９０２ｂ、・・・の各画素のアルファ値を設定し、各画素のアルファ値を第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・の各画素に割り当てることで、第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・を、平面状モデル９０１ｂ、９０２ｂ、・・・にレンダリングする。ここで、平面状モデル９０１ｂ、９０２ｂ、・・・の各画素のアルファ値は、平面状モデル９０１ａ、９０２ａ、・・・の各画素のアルファ値よりも小さくなるようにする。その後、平面状モデル９０１ｂ、９０２ｂ、・・・を、第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・に対応する３次元モデルをレンダリングした際の位置及び角度に配置し、第１のカメラ位置の視線と垂直になるように平面状モデル９０１ｂ、９０２ｂ、・・・を回転させた後、第１のレンダリング画像１１０１ｂ、１１０２ｂ、・・・をレンダリングすることで、最終的なレンダリング画像を第２フレームの画像として得る。
【０１８５】
第１フレーム、第２フレームを連続して表示すると、第２フレームのアルファ値が第１フレームのアルファ値よりも小さいので、第２フレームの画像が実像として第１フレームの画像が残像として視認されるように表示制御することが可能である。
【０１８６】
また、第３フレーム以降のフレームでも、第１フレーム及び第２フレームのレンダリング画像を繰り返し用いながら、図１２（ａ）及び（ｂ）の画像のアルファ値の大小関係を入れ替えながら、２フレームごとに図１２（ａ）及び（ｂ）の画像を表示すれば、図１２（ａ）と図１２（ｂ）とで交互に実像と残像が入れ替わりながら、鎖がうねる様子を表現することが可能である。
【０１８７】
ここでは、図１２（ａ）、図１２（ｂ）の２つのパターンの画像を用いたが、３つ以上のパターンの画像を用いて、パターンの数と同数のフレームごとに繰り返し各パターンの画像を表示すれば、鎖のうねる様子をよりリアルに表現することができる。
【図面の簡単な説明】
【０１８８】
【図１】本発明の一実施形態に係る画像処理装置の概略構成図。
【図２】画像処理プログラムの構成例。
【図３】３次元モデルの具体例。
【図４】平面状モデルの具体例。
【図５】平面状モデルの具体例。
【図６】平面状モデルの具体例。
【図７】平面状モデルを構成するポリゴンの頂点へのアルファ値の設定例（ａ）、及び、平面状ポリゴンの各画素のアルファ値の設定例（ｂ）。
【図８】第１のレンダリング画像を平面状モデルにレンダリングする処理を説明する図。
【図９】第１のレンダリング画像が貼り付けられた平面状モデルを配置、又は、表示した図。
【図１０】画像処理のフローチャート。
【図１１】複数の第１のレンダリング画像が繋がらずに連続的に配置される処理を説明する図。
【図１２】複数の第１のレンダリング画像の一端が繋がって連続的に配置される処理を説明する図。
【符号の説明】
【０１８９】
１  画像処理装置
１０  制御部
１１  ＣＰＵ
１２  信号処理プロセッサ
１３  画像処理プロセッサ
２０  記憶部
２１  ＲＡＭ
２２  インターフェース部
２３  記憶媒体
３０  画像表示部
３１  モニタ
３２  インターフェース部
４０  音声出力部
４１  インターフェース部
４２  デジタル／アナログ変換部
４３  アンプ
４４  スピーカ
５０  操作入力部
５１  インターフェース部
５２  操作部
６０  通信部
７０  バス
８０，９０，１１０，１２０  平面状モデル
８１〜８４，９１〜９２，１１１，１２１〜１２４  ポリゴン
８０１〜８０３  平面状モデル
８２０  基準オブジェクト
１００１，１００２  ３次元モデル
【図１】
2007226581.tif 000003
【図２】
2007226581.tif 000004
【図３】
2007226581.tif 000005
【図４】
2007226581.tif 000006
【図５】
2007226581.tif 000007
【図６】
2007226581.tif 000008
【図７】
2007226581.tif 000009
【図８】
2007226581.tif 000010
【図９】
2007226581.tif 000011
【図１０】
2007226581.tif 000012
【図１１】
2007226581.tif 000013
【図１２】
2007226581.tif 000014