(57)【要約】  画像生成装置２００において、仮想空間生成部２５２は入力情報取得部２５０が取得した入力情報に従い、オブジェクトと仮想カメラを配置した仮想空間を生成する。中間画像生成部２５６は従来の手法により仮想空間を描画する。表示画像生成部２５８の曲面生成部２６４は、オブジェクトのポリゴンごとに、それに対応する曲面を生成する。画素変位取得部２６６は、平面のポリゴンで描画した画像と曲面化したときの画像における画素位置の対応関係を取得する。描画部２６８は当該対応関係に従い表示画像の画素のカラー値を、元の画像を参照して決定する。出力部２６２は、そのように生成された表示画像のデータを表示装置１２に出力する。
2019049457.tif 000002
【特許請求の範囲】
【請求項１】
３次元のオブジェクトを含む空間を表す画像を生成する画像生成装置であって、
前記オブジェクトを構成するポリゴンを平面に射影することにより中間画像を生成する中間画像生成部と、
３次元空間において前記ポリゴン上の位置座標を所定の規則で変位させることにより生じる、前記中間画像の位置座標の変位に係る情報を取得する画素変位取得部と、
前記変位に係る情報に基づき、表示画像の画素ごとに前記中間画像の対応する位置を特定し、当該位置におけるカラー値を前記表示画像の画素のカラー値として決定することにより表示画像を描画する描画部と、
前記表示画像のデータを出力する出力部と、
を備え、
前記画素変位取得部は、前記中間画像の位置座標の変位における変位後の位置座標を始点とし変位前の位置座標を終点とする参照ベクトルを、前記表示画像の画像平面における変位後の位置座標を含む画素ごとに表したベクトルマップを、前記変位に係る情報として生成することを特徴とする画像生成装置。
【請求項２】
前記画素変位取得部は、前記ベクトルマップにおける１つの画素領域に、前記中間画像における複数の位置からの変位後の位置が重複する場合、３次元空間における変位後の位置が、前記画像平面への射影において設定される仮想カメラの位置に、より近い変位を用いて、当該画素領域の前記参照ベクトルを決定することを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記ポリゴンを所定の規則で曲面に対応させる曲面生成部をさらに備え、
前記画素変位取得部は、前記ポリゴン上の位置座標に対応する、前記曲面上の位置座標を、前記画像平面に射影することにより、前記参照ベクトルを取得することを特徴とする請求項１または２に記載の画像生成装置。
【請求項４】
前記画素変位取得部は、前記ポリゴンの各頂点におけるオブジェクトの法線ベクトルを補間してなる法線の方向に位置する、前記曲面上の点からの距離を、前記ポリゴンにマッピングするテクスチャの画素ごとに保持する距離マップを参照することにより求め、前記参照ベクトルを補正することを特徴とする請求項３に記載の画像生成装置。
【請求項５】
前記画素変位取得部は、前記中間画像の位置座標の変位を、１つの画素領域より狭い間隔で取得し、それらの変位後の位置と前記ベクトルマップにおける画素領域との位置関係により、前記参照ベクトルを前記ベクトルマップの画素ごとに決定することを特徴とする請求項１から４のいずれかに記載の画像生成装置。
【請求項６】
前記画素変位取得部は、前記ポリゴンと前記画像平面との角度、または前記ポリゴンが前記平面に射影されるときの前記角度による縮小率の大きさによって、前記変位を取得する間隔を変化させることを特徴とする請求項５に記載の画像生成装置。
【請求項７】
前記画素変位取得部は、前記ベクトルマップにおける画素のうち、前記中間画像の位置座標からの変位先に該当しない画素に対し、周囲の参照ベクトルを用いた補間により、前記参照ベクトルを設定することを特徴とする請求項１から６のいずれかに記載の画像生成装置。
【請求項８】
前記曲面生成部は、前記ポリゴンに対応するパラメトリック曲面を生成し、
前記画素変位取得部は、前記ポリゴンの平面を対応するパラメトリック曲面にマッピングすることにより、前記ポリゴン上の位置と前記曲面上の位置との対応関係を取得することを特徴とする請求項３に記載の画像生成装置。
【請求項９】
前記中間画像生成部は、前記中間画像のカラー値または前記ポリゴンに係る情報を画素ごとに決定する処理において、当該画素に対応する前記ポリゴン上の相対的位置座標を取得し、
前記画素変位取得部は、前記ポリゴン上の相対的位置座標の変位後の位置座標の、前記画像平面への射影先を取得することで、前記参照ベクトルを前記画素ごとに取得することを特徴とする請求項１から８のいずれかに記載の画像生成装置。
【請求項１０】
前記画素変位取得部は、前記中間画像における複数の位置座標からの前記変位を並列に取得するとともに、変位先が同じ画素となる複数の変位について、３次元空間における変位後の位置と前記画像平面への射影において設定される仮想カメラの位置との距離を確認し、最も小さい距離値を当該変位先の画素に表した、射影方向をＺ軸とするＺバッファを、複数の前記ポリゴンを用いて生成し、
さらに前記変位を逆に辿るベクトルを並列に取得したうえ、前記Ｚバッファに距離値が表されている変位に対応するベクトルを、前記変位先の画素に表すことにより、前記ベクトルマップを生成することを特徴とする請求項１から９のいずれかに記載の画像生成装置。
【請求項１１】
前記画素変位取得部はさらに、前記中間画像からの視点の変化に対応する像の変位を、前記中間画像の位置座標の変位に含めることを特徴とする請求項１から１０のいずれかに記載の画像生成装置。
【請求項１２】
前記中間画像生成部は、前記表示画像の画像平面と独立に設定した平面に、前記ポリゴンを射影することを特徴とする請求項１から１１のいずれかに記載の画像生成装置。
【請求項１３】
前記中間画像生成部は、前記ポリゴンを射影してなる像の面積に基づき、前記中間画像を生成する平面を選択することを特徴とする請求項１２に記載の画像生成装置。
【請求項１４】
前記中間画像生成部は、前記ポリゴンによって異なる複数の平面に前記中間画像を生成し、
前記画素変位取得部は、前記表示画像の画素ごとに、対応するポリゴンが表された前記中間画像の識別情報を、前記参照ベクトルに対応づけて保存することを特徴とする請求項１２または１３に記載の画像生成装置。
【請求項１５】
３次元のオブジェクトを含む空間を表す画像を生成する画像生成方法であって、
前記オブジェクトを構成するポリゴンを平面に射影することにより中間画像を生成するステップと、
３次元空間において前記ポリゴン上の位置座標を所定の規則で変位させることにより生じる、前記中間画像の位置座標の変位に係る情報を取得するステップと、
前記変位に係る情報に基づき、表示画像の画素ごとに前記中間画像の対応する位置を特定し、当該位置におけるカラー値を前記表示画像の画素のカラー値として決定することにより表示画像を描画するステップと、
前記表示画像のデータを出力するステップと、
を含み、
前記変位に係る情報を取得するステップは、前記中間画像の位置座標の変位における変位後の位置座標を始点とし変位前の位置座標を終点とする参照ベクトルを、前記表示画像の画像平面における変位後の位置座標を含む画素ごとに表したベクトルマップを、前記変位に係る情報として生成することを特徴とする画像生成装置による画像生成方法。
【請求項１６】
３次元のオブジェクトを含む空間を表す画像を生成するコンピュータに、
前記オブジェクトを構成するポリゴンを平面に射影することにより中間画像を生成する機能と、
３次元空間において前記ポリゴン上の位置座標を所定の規則で変位させることにより生じる、前記中間画像の位置座標の変位に係る情報を取得する機能と、
前記変位に係る情報に基づき、表示画像の画素ごとに前記中間画像の対応する位置を特定し、当該位置におけるカラー値を前記表示画像の画素のカラー値として決定することにより表示画像を描画する機能と、
前記表示画像のデータを出力する機能と、
を実現させ、
前記変位に係る情報を取得する機能は、前記中間画像の位置座標の変位における変位後の位置座標を始点とし変位前の位置座標を終点とする参照ベクトルを、前記表示画像の画像平面における変位後の位置座標を含む画素ごとに表したベクトルマップを、前記変位に係る情報として生成することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトモデルを表す表示画像を生成する画像生成装置および画像生成方法に関する。
【背景技術】
【０００２】
３次元コンピュータグラフィクスは分野を問わず身近な技術となっている。近年では、ヘッドマウントディスプレイに仮想世界の画像を表示させ、ユーザの頭部の動きに応じて視野を変化させることにより仮想現実を実現する技術が普及しつつある。表示装置の種類によらず、ユーザ操作に応じて視野を変化させたり表示内容を進捗させたりする態様では特に、画像の品質と描画処理の速度を両立させることは常に重要な課題である。そのため、テクスチャマッピング、バンプマッピング、リフレクションマッピングなど、オブジェクト表面の加工手法を工夫することにより、簡易な処理でリアルな表現が可能になっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上述のようにオブジェクト表面で完結する加工の場合、拡大表示させたり角度を変えたりすると、本来デザインされたモデルの形状が表現しきれなかったり不自然に見えたりすることがある。このことは、上記のヘッドマウントディスプレイを用いて仮想世界を立体視させるような技術では特に問題となり得る。対策としてオブジェクトモデル自体をより詳細なデータとしたり、描画処理の段階で詳細な形状を作り出したりすることが考えられるが、処理コストが増大し高速化の妨げとなる。【０００４】
本発明はこうした課題に鑑みてなされたものであり、その目的は、処理コストを増大させずに高品質な画像を生成することのできる技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は画像生成装置に関する。この画像生成装置は、３次元のオブジェクトを含む空間を表す画像を生成する画像生成装置であって、オブジェクトを構成するポリゴン平面に射影することにより中間画像を生成する中間画像生成部と、３次元空間においてポリゴン上の位置座標を所定の規則で変位させることにより生じる、中間画像の位置座標の変位に係る情報を取得する画素変位取得部と、当該変位に係る情報に基づき、表示画像の画素ごとに中間画像の対応する位置を特定し、当該位置におけるカラー値を表示画像の画素のカラー値として決定することにより表示画像を描画する描画部と、表示画像のデータを出力する出力部と、を備え、画素変位取得部は、中間画像の位置座標の変位における変位後の位置座標を始点とし変位前の位置座標を終点とする参照ベクトルを、表示画像の画像平面における変位後の位置座標を含む画素ごとに表したベクトルマップを、変位に係る情報として生成することを特徴とすることを特徴とする。【０００６】
本発明の別の態様は画像生成方法に関する。この画像生成方法は、３次元のオブジェクトを含む空間を表す画像を生成する画像生成方法であって、オブジェクトを構成するポリゴンを平面に射影することにより中間画像を生成するステップと、３次元空間においてポリゴン上の位置座標を所定の規則で変位させることにより生じる、中間画像の位置座標の変位に係る情報を取得するステップと、当該変位に係る情報に基づき、表示画像の画素ごとに中間画像の対応する位置を特定し、当該位置におけるカラー値を表示画像の画素のカラー値として決定することにより表示画像を描画するステップと、表示画像のデータを出力するステップと、を含み、変位に係る情報を取得するステップは、中間画像の位置座標の変位における変位後の位置座標を始点とし変位前の位置座標を終点とする参照ベクトルを、表示画像の画像平面における変位後の位置座標を含む画素ごとに表したベクトルマップを、変位に係る情報として生成することを特徴とする。【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によると、処理コストを増大させずに高品質な画像を生成することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１における画像表示システムの構成の一例を示す図である。
【図２】実施の形態１態におけるオブジェクトと画像平面の関係を模式的に示す図である。
【図３】実施の形態１における画像生成装置の内部回路構成を示す図である。
【図４】実施の形態１における画像生成装置の機能ブロックを示す図である。
【図５】実施の形態１における画像生成装置が表示画像を生成する処理手順を示すフローチャートである。
【図６】実施の形態１における曲面生成部が、ポリゴンに対し曲面を生成する処理を説明するための図である。
【図７】実施の形態１における曲面生成部が、ポリゴンに対し曲面を生成する処理を説明するための図である。
【図８】図７で示した制御点により生成された曲面を模式的に示す図である。
【図９】実施の形態１においてポリゴン平面を曲面化したときの、画像平面上での位置座標の変位の様子を模式的に示す図である。
【図１０】実施の形態１において、ポリゴン平面を曲面化したときの画素の変位ベクトルと、表示画像の画素から中間画像上の位置を求めるベクトルとの関係を示す図である。
【図１１】実施の形態１における変位ベクトルと画素領域の関係を模式的に示す図である。
【図１２】実施の形態１において、画像参照ベクトルマップ上の各画素に対し画像参照ベクトルを決定する処理手順の概略を示すフローチャートである。
【図１３】実施の形態１において、１つのポリゴンに対し画像参照ベクトルが設定された画素を模式的に示す図である。
【図１４】実施の形態１における画像参照ベクトルの補間手法を説明するための図である。
【図１５】実施の形態１における描画部が表示画像を描画する際のカラー値のサンプリング手法を説明するための図である。
【図１６】実施の形態１において既存のグラフィックスパイプラインを利用した場合の各種データと処理主体の関係を示す図である。
【図１７】実施の形態１においてコンピュートシェーダーが画像参照ベクトルを生成するための、Ｚバッファへの書き込み処理の手順を示す図である。
【図１８】実施の形態１においてコンピュートシェーダーが画像参照ベクトルを書き込む処理の手順を示す図である。
【図１９】従来技術と実施の形態１を、実際に得られた画像で比較した図である。
【図２０】実施の形態１における中間画像と仮想カメラのスクリーンの関係を模式的に示す図である。
【図２１】実施の形態１における中間画像と仮想カメラのスクリーンの関係の別の例を模式的に示す図である。
【図２２】実施の形態２における中間画像と仮想カメラのスクリーンの関係を模式的に示す図である。
【図２３】実施の形態２において、中間画像生成部と表示画像生成部が中間画像と画像参照ベクトルマップを生成する処理手順を示すフローチャートである。
【図２４】実施の形態１、２の変形例においてステレオ画像を生成する際の、画像平面上での位置座標の変位の様子を説明するための図である。
【図２５】実施の形態１、２の画像参照ベクトルを導入して加工した画像を例示する図である。
【発明を実施するための形態】
【００１０】
実施の形態１
図１は、本実施の形態における画像表示システムの構成の一例を示す図である。この例の画像表示システムは、表示画像を生成する画像生成装置２００と、当該表示画像のデータを取得して表示する表示装置１２を含む。表示装置１２は、無線通信またはＵＳＢなどの周辺機器を接続するインタフェース１４で画像生成装置２００に接続される。画像生成装置２００は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを画像生成装置２００に提供してもよい。
【００１１】
画像表示システムの形態は図示するものに限らない。例えば画像生成装置２００と表示装置１２とを一体的に構成し携帯端末としてもよい。あるいは表示装置１２を、ユーザが頭部に装着することにより眼前に画像が表示されるヘッドマウントディスプレイとしてもよい。この場合、画面を左右に２分割してなる領域に、視差を有する左目用画像、右目用画像をそれぞれ表示させることで立体視を実現してもよい。
【００１２】
画像生成装置２００は、３次元オブジェクトを画像平面に描画することにより表示画像を生成する。その限りにおいて画像として表現される内容は特に限定されない。例えば画像生成装置２００はゲーム装置でもよく、ユーザ操作に従いゲームを進捗させ、そのゲーム画像を逐次生成、出力してもよい。この場合、画像表示システムにはさらに、ユーザ操作のための入力装置を含めてもよい。表示装置１２をヘッドマウントディスプレイとする場合は、内蔵するモーションセンサなどにより頭部の動きを取得し、それを入力情報として表示画像に反映させてもよい。その他、画像生成装置２００による画像生成の目的は様々に考えら得ることは当業者には理解されるところである。
【００１３】
３次元オブジェクトは一般に、ポリゴンなど所定形状の平面の連結により表される。表示画像への描画は、この平面を画像平面に射影したうえ、テクスチャマッピングなどにより画素ごとにカラー値を決定することにより実現される。図２は、オブジェクトと画像平面の関係を模式的に示している。同図はオブジェクト２０と画像平面３２を俯瞰した状態を示している。また、わかりやすさのため平行投影とし、点線は画像平面３２における画素の境界を３次元空間に伸張させたものである。
【００１４】
オブジェクト２０のモデルは上述のとおり、曲面であってもポリゴンの連結により近似される。図の網掛けで示した多角形２２はそのように近似されたポリゴンモデルを示している。このように近似すると、本来、オブジェクト２０の表面にあるべき点２４ａ、２４ｂは、ポリゴン上の点２６ａ、２６ｂとして表される。これを画像平面３２に射影すると、本来の像の点３０ａ、３０ｂからずれた点２８ａ、２８ｂに像が表れる。画像平面３２の位置を規定する仮想カメラがオブジェクト２０から離れている場合や、近くであってもオブジェクト２０の表面が画像平面と正対している場合、そのような点の位置ずれは視認されにくい。
【００１５】
一方、仮想カメラを近づけてオブジェクト２０を拡大する場合や、図示する点のように画像平面３２から見てオブジェクト２０の輪郭に近い部分においては、ポリゴンで近似したことによる位置のずれが視認されやすい。これによりオブジェクト２０本来のデザインを表現しきれなかったり、鑑賞者に違和感を与えたりすることが考えられる。そこで本実施の形態の画像生成装置２００は、ポリゴンを射影した画像における位置座標を、画像平面上で変位させることにより、本来のオブジェクト２０の像を疑似的に表現した画像を描画する。
【００１６】
例えばポリゴン上の点２６ａ、２６ｂが射影されてなる点２８ａ、２８ｂを、画像平面上で点３０ａ、３０ｂに変位させることにより、オブジェクト２０上の点２４ａ、２４ｂが射影される位置近傍にその色が表れるようにする。このため画像生成装置２００は、ポリゴンごとに、それに対応する曲面（例えば曲面３４）を生成する。この曲面は元のオブジェクト２０の形状を厳密に表すものでなくてよい。ただしポリゴンの頂点におけるオブジェクト２０の法線ベクトルを考慮することにより、より近い形状とすることができる。
【００１７】
そして元のポリゴンを、生成した曲面にマッピングすることにより、３次元空間での位置の対応を取得する。例えばポリゴン上の点２６ａを曲面上の点２４ａに対応づける。この処理には、テクスチャマッピングに用いられるＵＶＷ座標を利用できる。そしてマッピング後の位置を画像平面３２に射影することにより、画像平面３２上での変位先（例えば点３０ａ）を求めることができる。このようにすることで、ポリゴンの数が少なくてもオブジェクトの本来の形状に近い像を表現することができる。
【００１８】
なおこの処理は、仮想空間にある特定のオブジェクトに対してのみ行ってもよい。例えば曲面の部分が多いオブジェクトや、メインとなるオブジェクトのみに行ってもよい。またオブジェクトの拡大率が所定値以上となったときに当該処理を開始するようにしてもよい。
【００１９】
図３は画像生成装置２００の内部回路構成を示している。画像生成装置２００は、ＣＰＵ（Central Processing Unit）２２２、ＧＰＵ（Graphics Processing Unit)２２４、メインメモリ２２６を含む。これらの各部は、バス２３０を介して相互に接続されている。バス２３０にはさらに入出力インタフェース２２８が接続されている。
【００２０】
入出力インタフェース２２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インタフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部２３２、ハードディスクドライブや不揮発性メモリなどの記憶部２３４、表示装置１２へデータを出力する出力部２３６、図示しない入力装置などからデータを入力する入力部２３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部２４０が接続される。
【００２１】
ＣＰＵ２２２は、記憶部２３４に記憶されているオペレーティングシステムを実行することにより画像生成装置２００の全体を制御する。ＣＰＵ２２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２２６にロードされた、あるいは通信部２３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部２３６に出力する。メインメモリ２２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００２２】
図４は、本実施の形態における画像生成装置２００の機能ブロックを示している。なお図４で示した画像生成装置２００の機能のうち少なくとも一部を、表示装置１２に実装してもよい。あるいは、画像生成装置２００の機能のうち少なくとも一部を、ネットワークを介して画像生成装置２００に接続されたサーバに実装してもよい。また画像生成装置２００を、ゲーム機、携帯端末、パーソナルコンピュータなどの情報処理装置の一部としてもよい。
【００２３】
同図は画像生成装置２００が有する機能のうち、主に表示画像を生成する機能に着目したブロック図を描いている。これらの機能ブロックは、ハードウェア的には、図３に示したＣＰＵ、ＧＰＵ、各種メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２４】
画像生成装置２００は、ユーザ操作などの入力情報を取得する入力情報取得部２５０、それに応じてオブジェクトモデルを含む仮想空間を生成する仮想空間生成部２５２、オブジェクトモデルのデータを格納するモデルデータ格納部２５４、一般的な手法で仮想空間の画像を生成する中間画像生成部２５６、当該中間画像のデータを格納する中間画像格納部２６０を含む。画像生成装置２００はさらに、オブジェクトを構成するポリゴンを曲面としたときの画素の変位に基づき中間画像から表示画像を生成する表示画像生成部２５８、および当該表示画像のデータを表示装置１２に出力する出力部２６２を含む。
【００２５】
入力情報取得部２５０は、ユーザ操作などの入力情報を取得する。例えば仮想空間を表示させるゲームを実現する場合、ゲームに対する操作内容に係る信号を図示しないゲームコントローラから取得する。ただし仮想空間を定義するための入力情報であればユーザ操作に限らず、他の装置からの要求信号でもよい。仮想空間生成部２５２は、入力情報に従い、仮想空間にオブジェクトと仮想カメラを配置する。この処理は一般的な３次元コンピュータグラフィックスと同様である。仮想空間生成部２５２内で仮想空間を生成するためのプログラムなどが定義されている場合、入力情報は必須ではない。
【００２６】
モデルデータ格納部２５４は、オブジェクトのデータを格納する。当該データは、複数のプリミティブからなるポリゴンメッシュで構成される。中間画像生成部２５６は、仮想世界のオブジェクトを仮想カメラのスクリーンに射影することにより画像を生成する。この処理は一般的な処理と同様でよく、オブジェクトのポリゴンを仮想カメラのスクリーンに射影し、画素ごとに頂点情報を補間したりテクスチャを参照したりして画素値を決定する。この画像は上述のとおり表示画像の生成に用いられる中間データであるため、以後、「中間画像」と呼ぶ。
【００２７】
生成した中間画像のデータは中間画像格納部２６０に格納する。表示画像生成部２５８は、曲面生成部２６４、画素変位取得部２６６、および描画部２６８を含む。曲面生成部２６４はポリゴン平面に対応する曲面パッチを生成する。画素変位取得部２６６は、中間画像の画素中心に対応する曲面パッチ上の位置を特定し、それをスクリーンに射影したときの位置座標を取得する。そして元の画素中心との位置関係を取得する。
【００２８】
ここで画素変位取得部２６６は、各ポリゴンに対応する曲面上の位置座標を３次元空間で離散的に求め、それぞれをスクリーンに射影した位置に各画素の変位に関する情報を保存したマップを生成する。それが実現される限りにおいて、曲面生成部２６４は、連続した面として曲面を厳密に生成しなくてもよい。すなわち曲面生成部２６４が生成するデータは、ポリゴン上の離散的な位置座標と曲面上の対応する位置座標との関係を規定するものであればよく、曲面形状を直接定義するデータに限定されない。
【００２９】
また曲面生成部２６４が曲面パッチを生成する代わりに、ポリゴン平面の各画素から、ポリゴンの各頂点におけるオブジェクトの法線ベクトルを補間することで得られる該当画素の法線方向に位置する曲面パッチ上の点までの距離を導出する、一成分のパラメトリック補間を定義してもよい。この場合、画素変位取得部２６６は、中間画像の画素に対応するポリゴン上の位置から曲面パッチまでの距離値を、パラメトリック補間により取得する。
【００３０】
さらに、ポリゴンにマッピングするテクスチャとして、距離を乗じた法線の終点からの曲面の微小な変位を距離マップとして保存しておき、終点の位置を法線方向に移動させてもよい。オブジェクトの形状が変化し、ポリゴン同士のなす角度が変化しても、境界の接平面の不連続性は上述した距離のパラメトリック補間により補正されるため、自然な微小変位を持つ曲面が表示される。
【００３１】
描画部２６８は、当該位置関係に基づき、中間画像の位置座標を変位させることにより表示画像を描画する。この処理は実際には、表示画像の画素ごとに、ポリゴンの曲面化による画像平面での位置座標の変位を逆に辿ることにより、中間画像上の位置座標を特定し、当該位置座標をサンプリング点としてカラー値を取得することにより実現される。詳細は後述する。出力部２６２は、描画された表示画像のデータを適宜、ビデオ信号に変換して表示装置１２に出力する。
【００３２】
次に上記構成によって実現できる画像処理装置の動作について説明する。図５は、画像生成装置２００が表示画像を生成する処理手順を示すフローチャートである。まず仮想空間生成部２５２は、入力情報取得部２５０から入力情報を取得し（Ｓ１０）、それに応じてワールド座標系にオブジェクトと仮想カメラを配置する（Ｓ１２）。続いて表示画像生成部２５８の曲面生成部２６４は、オブジェクトを構成するポリゴンに対応する曲面を生成する（Ｓ１４）。
【００３３】
このとき上述のとおり、ポリゴンの頂点におけるオブジェクトの法線ベクトルを参照することにより、オブジェクトの表面形状に近い曲面をポリゴンごとに生成する。次に中間画像生成部２５６は、仮想カメラのスクリーンにオブジェクトを射影することにより中間画像を生成する（Ｓ１６）。この処理は、曲面にする前のポリゴンをスクリーンに射影し、テクスチャをマッピングする一般的なコンピュータグラフィクス描画である。
【００３４】
次に表示画像生成部２５８の画素変位取得部２６６は、ポリゴンを曲面化したときの画像平面上の位置座標の変位に係る情報を取得する（Ｓ１８）。この情報は上述のとおり、表示画像の画素を始点として当該変位を逆に辿り、中間画像上の位置を特定するための情報である。そのためまず中間画像の画素ごとに、対応するポリゴン上の位置の、曲面における変位先を求め、それをスクリーンに射影したときの変位先の位置座標を特定する。当該変位を表すベクトルの逆ベクトルを求めれば、表示画像の画素の位置から中間画像の参照先を取得できる。具体例については後述する。
【００３５】
描画部２６８は変位に係る情報を参照し、中間画像における参照先のカラー値に基づき表示画像の画素のカラー値を決定することにより、表示画像を描画して表示装置１２に出力する（Ｓ２０）。ユーザからの要求やコンテンツの終了などにより処理を終了させる必要がなければ（Ｓ２２のＮ）、次の画像フレームについてＳ１０〜Ｓ２０の処理を繰り返し、終了させる必要に応じて全処理を終了させる（Ｓ２２のＹ）。なお最初のフレーム以外のフレームでは、Ｓ１２の処理はＳ１０で取得した入力情報などに従い、仮想空間のオブジェクトや仮想カメラを変化させる処理となる。
【００３６】
図６および図７は、表示画像生成部２５８の曲面生成部２６４が、ポリゴンに対し曲面を生成する処理を説明するための図である。この例では三辺形ベジェ曲面を生成することを想定している。図６は、ポリゴンの辺に対するベジェ曲線の制御点の取得方法を示している。ポリゴン５０は頂点５２ａ、５２ｂ、５２ｃを有する。仮想空間にオブジェクトが配置されることにより、頂点５２ａ、５２ｂ、５２ｃはそれぞれ３次元位置座標Ｖ０、Ｖ１、Ｖ２を有する。さらに各頂点には、オブジェクト表面の法線ベクトルＮ０、Ｎ１、Ｎ２の情報が対応づけられている。
【００３７】
法線ベクトルの情報は、一般的なシェーディング技術であるフォンシェーディングにおいても頂点に対応づけられ利用される。本実施の形態でもそのデータ構造を利用できる。次にポリゴン５０の各辺を、それぞれの頂点における法線ベクトルに垂直な平面５４ａ、５４ｂ、５４ｃに射影したベクトル（例えば図示する射影ベクトルＥ０、Ｅ１）を生成する。例えば頂点５２ａの一方の射影ベクトルＥ０は次のように求められる。
頂点５２ａと５２ｂを結ぶエッジベクトル：Eg = V1 - V0
正規化エッジベクトル：En = normalize (Eg)
正規化従法線ベクトル：Tn = normalize (cross (N0, En))
単位射影ベクトル：E0 = normalize (cross (Tn, N0))
【００３８】
ここで関数ｎｏｒｍａｌｉｚｅはベクトルを長さで除算することによって正規化する関数、関数ｃｒｏｓｓは２つのベクトルの外積を求める関数である。上記の計算によりベジェ曲面の境界曲線の制御辺ベクトルの方向を求めることができるが、制御辺ベクトルの長さは決まらない。その長さを、例えば次のような方法で決定することができる。円弧を３次元のベジェ曲線で近似する場合、弧の長さが短くなり弦に近づくと、制御点が弦の３等分点に収束する。これを考慮し、辺の長さの１／３をベジェ曲線の制御辺の長さとする。つまり辺の長さＥｇｌｅｎ＝ｌｅｎｇｔｈ（Ｅｇ）として、制御点Ｐ０は次のように求められる。
P0 = V0 + 1/3 * Eglen * E0
【００３９】
その他の制御点についても同様に計算する。これにより辺に対応するベジェ曲線を生成できる。この計算では、弦の長さのみを用いて制御辺ベクトルの長さを決定したが、例えばさらに両端点の法線ベクトルの情報も加えて、曲面と曲面の間の曲率の変化が滑らかなベジェ曲線を生成することも可能である。この一手法として、例えば特開平１１−２９６６８６号公報には、法線を用い制御辺ベクトルの長さを設定する方法が記載されている。
【００４０】
図７はベジェ曲面を生成するための制御点を例示している。図６に示したように、ポリゴン５０の各頂点５２ａ、５２ｂ、５２ｃにおける法線と辺との関係から、６つの制御点Ｐ０２１、Ｐ０１２、Ｐ１０２、Ｐ２０１、Ｐ２１０、Ｐ１２０が定まる。さらに曲面の制御点として、ポリゴンの中心部に対応する制御点Ｐ１１１を生成する。制御点Ｐ１１１は、例えば辺に対する６つの制御点の平均位置として求められる。ただし制御点の生成規則をこれに限定する趣旨ではない。また生成する曲面はベジェ曲面に限らず、Ｂ−スプライン、カーディナル、ＮＵＲＢＳなど、一般的なグラフィックス処理で用いられるパラメトリック曲面のいずれでもよい。
【００４１】
また隣接するポリゴンに対応する曲面同士が接平面連続になるように曲面を定めてもよい。さらに、生成する曲面は一般的な３次元のパラメトリック曲面でなくてもよい。例えばポリゴン上の点から対応する曲面上の点への距離を１変数のパラメトリック補間の式で表現し、フォンシェーディングなどの手法で求めたポリゴン上のオブジェクトの法線ベクトルに沿って、該当する距離分変位させた点を曲面上の点とすることで曲面を求めてもよい。
【００４２】
図８は、図７で示した制御点により生成された曲面を模式的に示している。図示するようにポリゴン５０の各頂点５２ａ、５２ｂ、５２ｃを端点とする３曲線で囲まれた曲面パッチ５６が生成される。同図は曲面を正面から見た状態を示しているが、実際には曲面パッチ５６は図の垂直方向に湾曲している。このように生成した曲面パッチ５６の各周縁をｕ軸、ｖ軸、ｗ軸とし、曲面上の位置を元のポリゴン上に設定した２次元のパラメータ座標（ｕ，ｖ，ｗ）で表す。パラメータ座標はテクスチャ座標と同様に、各成分が０から１までの値をとり得、パースペクティブ補正された重心座標系の各係数値に一致する。またｗ＝１−ｕ−ｖである。
【００４３】
例えば図７で示した７つの制御点Ｐ０２１、Ｐ０１２、Ｐ１０２、Ｐ２０１、Ｐ２１０、Ｐ１２０、Ｐ１１１を用いると、曲面上の位置座標Ｓ（Ｓｘ，Ｓｙ，Ｓｚ）はパラメータ座標（ｕ，ｖ，ｗ）から次のように求められる。
【００４４】
【数１】
2019049457.tif 000003
【００４５】
ここでＶ０、Ｖ１、Ｖ２は、図６で示したポリゴンの頂点の位置座標である。図９は、ポリゴン平面を曲面化したときの、画像平面上での位置座標の変位の様子を模式的に示している。両者はポリゴン５０や曲面パッチ５６をスクリーンに射影した状態を示しており、複数のマス目（例えばマス目５８、６０）はそれぞれ画素領域を示している。（ａ）に示す平面のポリゴン５０の射影領域に含まれる、ある画素の中心点６２は、ポリゴンを曲面化することにより、（ｂ）に示す曲面パッチ５６の射影領域の別の点６４に変位する。
【００４６】
画素変位取得部２６６が、画素の中心点６２と曲面パッチ５６の射影領域上の点６４との位置関係を取得するには、一般的なグラフィックエンジンのテクスチャ座標補間機能を利用できる。すなわち中間画像を生成する際、ポリゴンの各頂点で上記パラメータ座標の各パラメータが０または１になるようなテクスチャパラメータを設定し、各画素の中心点６２に対応するポリゴン５０上のパラメータ座標を求めておく。そして曲面パッチ５６における同じパラメータ座標に対応するワールド座標系での位置座標Ｓ（Ｓｘ，Ｓｙ，Ｓｚ）を上式により求め、それをスクリーンに射影したときのスクリーン上の点６４を求める。
【００４７】
すなわち透視変換行列Ｍ＿ＩＰを用い、点６４の同次位置座標Ｑ（Ｑｘ，Ｑｙ，Ｑｚ，Ｑｗ）を次のように求める。
tQ = M_IP * tS   （tはベクトルの転置を表す）
これにより、ポリゴンの位置座標から対応する曲面上の点のスクリーン座標（ｓｘ、ｓｙ）が次式により得られる。
sx = Qx/Qw,  sy = Qy/Qw
この処理は、中間画像の画像平面における画素ごとに独立して行える。
【００４８】
ジオメトリシェーダーがポリゴンごとに一意に与えるプリミティブＩＤを、対応する全ての画素に紐付けておくことにより、ポリゴンと画素との対応関係はピクセルシェーダーに引き継がれる。すなわちプリミティブＩＤに対応づけて、対応する画素の情報と制御点の情報をピクセルシェーダーに入力することにより、各画素を独立に処理しても適切な曲面を生成して位置座標の変位を得ることができる。
【００４９】
なお曲面を正確に生成するには、制御点を得るときに想定した各ポリゴンの頂点の位置座標の順序を維持しておく必要がある。しかしジオメトリシェーダーからピクセルシェーダーにデータが供給される際、その順序が維持されているとは限らない。そこでこれを検知するため、ピクセルシェーダーは関数を用いて各頂点とパラメータとの関係を確認し、制御点生成時に想定した順序で頂点を配置したうえで、各画素に対応する曲面上の位置のパラメータ座標（ｕ，ｖ，ｗ）を取得する。
【００５０】
なおポリゴン平面上の点と曲面パッチ上の点の対応関係は、ベジェ曲面、Ｂ−スプライン、カーディナル、ＮＵＲＢＳなど、一般的なグラフィックス処理で用いられるパラメトリック曲面を用いずに取得することも可能である。例えばポリゴン平面上の各点は、その点のオブジェクトの法線方向にある曲面上の位置に対応するとしてもよい。この場合、平面上の位置座標からの距離を導出するパラメトリック曲面補間を定義する。そして中間画像の各画素に対応するポリゴン上のパラメータ座標位置から、その点の法線方向に、計算された距離だけ離れた曲面上の位置座標をワールド座標系で取得する。これをスクリーンに射影すれば、上述と同様に、画像平面での変位先の位置座標を取得できる。
【００５１】
図１０は、ポリゴン平面を曲面化しスクリーンに射影したときの中間画像上の画素の変位ベクトルと、表示画像の画素から中間画像上の位置を求めるベクトルとの関係を示している。同図に示すマス目は、画像平面における各画素領域を表す。（ａ）の矢印Ａは図９で示した画素の中心点６２から曲面パッチ５６の射影領域上の点６４への変位を表すベクトルである。すなわち画素６８は中間画像における画素を示している。以後、当該ベクトルを「変位ベクトル」と呼ぶ。一方、表示画像を描画する際は、（ｂ）の矢印Ｂに示すように、表示画像の画素７０を始点として中間画像上の位置を終点とする、変位ベクトルの逆ベクトルを生成しておく必要がある。
【００５２】
変位ベクトルの各成分を（ｄｘ，ｄｙ）とすると、逆ベクトルは（−ｄｘ，−ｄｙ）の成分を有する。以後当該逆ベクトルを「画像参照ベクトル」と呼び、画像参照ベクトルを画像平面に表したデータを「画像参照ベクトルマップ」と呼ぶ。画像参照ベクトルマップの画素は、基本的には表示画像の画素に対応する。（ｂ）に示すように画像参照ベクトルは、画像参照ベクトルマップの画素の中心に対して設定するため、変位ベクトルの終点と画素領域の関係を考慮して決定する必要がある。
【００５３】
図１１は、変位ベクトルと画素領域の関係を模式的に示している。ここで各画素を、領域の左上の位置座標を代表点として（ｉｘ，ｉｙ）＝（０，０）、（１，０）、（２，０）、・・といった整数値で表すとする。この場合、画素領域の中心の位置座標は（ｉｘ＋０．５，ｉｙ＋０．５）（ｉｘ，ｉｙ＝０，１，２，・・・）である。
【００５４】
なお曲面パッチ上の位置座標Ｓ（Ｓｘ，Ｓｙ，Ｓｚ）をスクリーンに射影したときの同次位置座標Ｑ（Ｑｘ，Ｑｙ，Ｑｚ，Ｑｗ）を上述のとおり求めると、変位ベクトル（ｄｘ，ｄｙ）は次のように求められる。
dx = Qx / Qw - ix
dy = Qy / Qw - iy
【００５５】
（ａ）に示すように中間画像における、ある画素６８の中心の位置座標（ｉｘ＋０．５，ｉｙ＋０．５）を、変位ベクトル（ｄｘ，ｄｙ）の分だけ変位させると、その終点の位置座標は多くの場合、変位先の画素７０の中心からずれる。このため例えば、終点の位置座標（ｉｘ＋０．５＋ｄｘ，ｉｙ＋０．５＋ｄｙ）＝（Ｑｘ／Ｑｗ＋０．５，Ｑｙ／Ｑｗ＋０．５）の小数点以下を四捨五入することで１つの画素を選択し、当該画素の中心を始点として（−ｄｘ，−ｄｙ）の成分を有するベクトルを画像参照ベクトルとしてもよい。
【００５６】
ただしこの場合、元の変位ベクトルの終点からのずれ量として、縦横双方向に最大０．５画素分の誤差が生じ得る。そこでサブピクセル単位で周囲の変位ベクトルを考慮する。具体的には（ｂ）に示すように、対象の画素６８の中心の位置座標（ｉｘ＋０．５，ｉｙ＋０．５）からの変位に加え、当該中心から右方向に半画素分、下方向に半画素、右および下方向にそれぞれ半画素分だけ離れた点７２ａ（ｉｘ＋１．０，ｉｙ＋０．５）、点７２ｂ（ｉｘ＋０．５，ｉｙ＋１．０）、点７２ｃ（ｉｘ＋１．０，ｉｙ＋１．０）からの変位を求める。
【００５７】
それらの点を始点とする変位ベクトルは、対象の画素６８の右、下、右下の画素７４ａ、７４ｂ、７４ｃに対して得られている変位ベクトルを読み出し、補間することによって求められる。そして各点の位置座標に変位ベクトルを加算することにより終点の位置座標を算出し、その小数点以下を切り捨てれば、変位先の画素を示す整数値がそれぞれ得られる。なお変位ベクトルを取得する間隔は半画素分の長さに限らず、画素領域の一辺の長さより小さければよい。また、隣接する画素の変位ベクトルの終点の分散が所定の基準より大きい場合に、変位ベクトルを取得する間隔を狭めるなど、適応的に切り替えてもよい。なおこの分散は、元のポリゴンが画像平面に対して大きく傾いている場合に大きくなる可能性が高いと考えられる。したがって、画像平面に対する元のポリゴンの傾き角を検出し、傾き角が大きいほど変位ベクトルを取得する間隔を狭めるようにしてもよい。
【００５８】
図示する例では、２つの変位ベクトルの終点が画素７０に重複している。この場合、仮想カメラからのオブジェクトの距離を表すＺ値を比較することにより、仮想カメラに近い方の変位ベクトルを選択する。Ｚ値も元の画素６８、７４ａ、７４ｂ、７４ｃに対し得られている値を補間することによって求められる。ただしここでいうＺ値は、ポリゴンの曲面化によって変位させた後の値であり、変位ベクトルの取得時に得られる。図１２は、画像参照ベクトルマップ上の各画素に対し画像参照ベクトルを決定する処理手順の概略を示すフローチャートである。まず中間画像の画像平面における画素のうち１つを基準画素として設定し（Ｓ１００）、その中心および近傍３点の合計４点について変位先を計算する（Ｓ１０２）。
【００５９】
変位先の画素が重複しているか否かを確認し（Ｓ１０４）、重複している場合はそれらのＺ値を比較する（Ｓ１０４のＹ、Ｓ１０６）。そしてより仮想カメラに近いＺ値を有する変位ベクトルの逆ベクトルを、当該変位先の画素の画像参照ベクトルとして書き込む（Ｓ１０８）。Ｓ１０４において変位先が重複していなければ、そのまま変位ベクトルの逆ベクトルを、当該変位先の画素の画像参照ベクトルとして書き込む（Ｓ１０４のＮ、Ｓ１０８）。なおＳ１０８における書き込み先は、以後の基準画素に対する計算で変位先の画素が重複した際、これもＺ比較によって上書きされることがあるため、画像参照ベクトルマップ用のバッファメモリとする。
【００６０】
対象オブジェクトに対応する全ての画素が基準画素とされていない間は（Ｓ１１０のＮ）、Ｓ１００からＳ１０８の処理を繰り替えし、全ての画素が基準画素として設定されたら処理を終了する（Ｓ１１０のＹ）。このようにサブピクセル単位で変位ベクトルを求め、それから画像参照ベクトルを選別すると、画素単位で変位ベクトルを求めそれを補間して画像参照ベクトルを決定するような手法と比較し精度が均一化する。上述のように０．５画素の距離にある変位ベクトルを確認する結果、画像参照ベクトルの参照先の位置の誤差は最大でも０．２５画素となり、精度も向上する。
【００６１】
図１３は、１つのポリゴンに対し画像参照ベクトルが設定された画素を模式的に示している。上述のとおり画像参照ベクトルは、中間画像上の画素中心とその近傍を始点として、ポリゴンの曲面化による変位先の画素を求めることによって得られる。そのような手順によれば、中間画像では近接した始点でも変位ベクトルの終点が離間した結果、画像参照ベクトルが設定されない画素（以後「穴」と呼ぶことがある）が生じることが考えられる。図の（ａ）では、画像参照ベクトルが設定された画素のみを網掛けの矩形で示している。
【００６２】
上述のように、画素より細かい単位で変位ベクトルを求め、画素数より多くの終点を作り出すことにより穴の発生を抑えられるが、そのようにしても終点に該当しない画素、ひいては穴が生じる可能性がある。そこで画素変位取得部２６６は、対象オブジェクトの全てのポリゴンに対する画像参照ベクトルを上述の手法で設定したあと、図の（ｂ）にグレーの矩形で示すように穴として残った画素について、周囲の画素を利用して画像参照ベクトルを補間する。
【００６３】
図１４は、画像参照ベクトルの補間手法を説明するための図である。同図に示す画素配列において、太線枠で囲まれた画素に画像参照ベクトルの穴があるとする。この場合、最も単純には、周囲の画素に設定されている画像参照ベクトルの平均値により補間することが考えられる。例えばターゲットとする太線枠の画素の上下左右の画素（画素Ｄ、Ｃ、Ａ、Ｂ）に、矢印で示すように画像参照ベクトルが与えられているとき、それら４つの画像参照ベクトルの平均ベクトルをターゲットの画像参照ベクトルとする。
【００６４】
あるいはターゲットの画素に対する位置に応じて重みを変化させて平均化してもよい。例えば周囲の８画素のうち上下左右の画素（画素Ｄ、Ｃ、Ａ、Ｂ）に２倍の重みをつけて、Ａ〜Ｈの８画素の画像参照ベクトルを加重平均する。あるいは画像参照ベクトルの方向性に応じて補間に用いる画素や重みを決定してもよい。例えば図示する例では、周囲の画素の画像参照ベクトルが全て水平に近くなっている。このことから当該部分は中間画像から水平方向に引き延ばされたものであり、穴はそれによって生じたことが推定される。
【００６５】
したがってこの場合、ターゲットの周囲の画素のうち、左右の画素Ａ、Ｂを用いて線形補間したり、それらの画素に、より大きい重みをつけて平均化したりすることにより、状況に応じた精度の高い補間を実現できる。例えばターゲットの画素の上下左右の４画素の画像参照ベクトルの平均ベクトルを求め、それと画像の水平方向（Ｘ軸方向）とのなす角度θが−３０°＜θ＜３０°または１５０°＜θ＜２１０°のとき、左右の画素Ａ、Ｂの画像参照ベクトルを平均してターゲットの画像参照ベクトルとする。
【００６６】
角度θが６０°＜θ＜１２０°または２４０°＜θ＜３００°のとき、上下の画素Ｄ、Ｃの画像参照ベクトルを平均してターゲットの画像参照ベクトルとする。角度θがそれ以外のときは上下左右の画素の画像参照ベクトルを平均してターゲットの画像参照ベクトルとする。なお上述のような角度のしきい値や、それによって補間に用いる画素を選択するか重みを変化させるか、といった態様の組み合わせは様々に考えられる。本実施の形態ではこのように局所的な伸張が生じても、ベクトルを補間対象とすることにより、方向性に基づいた計算式の選択が可能である。
【００６７】
また実際のカラー値に対する操作は、最終的に表示画像を描画する段階に限られるため、この補間処理が表示画像の品質に与える悪影響を抑えられる。例えば画像参照ベクトルを導入せず、直接カラー画像を補間する場合、このような方向性に基づく調整は行えない。すなわち一方向に引き延ばされた結果生じた穴であっても、カラー画像にはその情報がないため、引き延ばされた方向に関わらず同様の補間計算となる。その結果、余計な色が混じり、表示画像の品質にも悪影響を与え得る。
【００６８】
画像参照ベクトルはポリゴンの面の変形による画素の移動を表しているという特性上、図１４に示すように画素単位で大きな変化が生じるものではない。結果として、たとえ方向性に関わらずターゲットの周囲の画素を補間に利用しても大きな誤差にはなりにくく、混色による画質の劣化も防止できる。なお上述した補間手法は、変位ベクトル計算から導き出されたいわば正当な画像参照ベクトルが周囲の画素に与えられていることを前提としていた。一方、２画素以上が連続して穴となっている場合は、その周囲で補間でない画像参照ベクトルを探索し、当該ベクトルをそのまま補間に用いてもよい。
【００６９】
例えば図１４において、ターゲットの周囲の８つの画素に探索の優先順位を規則づけておく。一例として画素Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈといった順序が考えられる。そしてその順で探索し、最初に検出された補間でない画像参照ベクトルをターゲットのベクトルとして採用する。いずれの補間手法にしても、画像参照ベクトルの生成段階ではカラー値が確定してないため、最終的にはサブピクセルの位置精度でカラー値を決定することができる。なお上述のように変位ベクトルを生成する間隔を小さくするほど穴の発生を抑制できる。
【００７０】
定性的にはスクリーンに対するポリゴンの角度が大きいほど、穴が発生しやすくなるため、当該角度に応じて変位ベクトルを生成する間隔を狭めるようにすれば、画像参照ベクトルの補間が必要な画素を減らすことができる。当該角度は、ポリゴンを平面に射影するときの、ポリゴンの法線と仮想カメラへ向かう射影ベクトルとのなす角度による縮小率の変化を監視することによっても推定できる。この場合、角度による縮小率が大きいほど、変位ベクトルを生成する間隔を狭めればよい。
【００７１】
図１５は、図５のＳ２０で描画部２６８が表示画像を描画する際のカラー値のサンプリング手法を説明するための図である。図示するマス目は（ａ）が表示画像８２の画素領域、（ｂ）が中間画像８８の画素領域を示している。描画部２６８は、表示画像８２の画素ごとに、画像参照ベクトルマップを参照して当該画素に対応づけられた画像参照ベクトルを取得する。図示する例では画素８４に対し画像参照ベクトル８６が得られている。
【００７２】
次に中間画像のデータを中間画像格納部２６０から読み出し、当該画像参照ベクトル８６の終点に対応する位置座標９０を特定する。そして位置座標９０を含む所定範囲の画素のカラー値を用いてフィルタリングを行うことによりカラー値を決定する。当該カラー値を、元の表示画像の画素８４のカラー値とする。フィルタリングには例えば、図の（ｂ）に網掛けで示した２行２列の４画素を用いたバイリニアフィルタを用いることが考えられる。ただしカラー値のフィルタリングには様々な手法があり、それらのいずれを採用してもよい。このようにして、対象オブジェクトを構成するポリゴンに対応する全ての画素のカラー値を決定することにより、当該オブジェクトを高品質に表現できる。
【００７３】
図１６は、既存のグラフィックスパイプラインを利用した場合の各種データと処理主体の関係を示している。ピクセルシェーダー３００は、中間画像の画素単位で処理を実施し、コンピュートシェーダー３０４は中間画像の画素単位の情報から、表示画像の画素単位の情報を生成する。なお中間画像、画像参照ベクトルマップ、表示画像の各画像平面は独立して生成でき、それらの解像度は同じでも異なっていてもよい。
【００７４】
また、それらの処理で生成される中間データはグラフィックメモリ３０２に格納される。このときピクセルシェーダー３００は、中間画像の画素配列に対応する画像平面をＭＲＴ（Ｍｕｌｔｉｐｌｅ  Ｒｅｎｄｅｒ  Ｔａｒｇｅｔ）の機構により生成する。ＭＲＴは一度の描画処理に対し複数の画像データを生成する一般的な機構である。まずピクセルシェーダー３００は図４の中間画像生成部２５６の機能を実現し、平面のポリゴンにより構成されるオブジェクトを一般的な手順で描画した中間画像３０６のデータをＭＲＴ上の画像平面に格納する。
【００７５】
またピクセルシェーダー３００は、曲面生成部２６４、および画素変位取得部２６６の機能により、処理対象の画素に対応するポリゴン上、ひいては曲面パッチ上の座標（ｕ，ｖ，ｗ）を取得し、それをスクリーンに射影したときの２次元の位置座標を特定することにより変位ベクトルを得る。変位ベクトルをＭＲＴ上の画像平面に書き込むことにより変位ベクトルマップ３０８が生成される。これと同時にピクセルシェーダー３００は、曲面パッチ上の位置座標（ｕ，ｖ，ｗ）のＺ値を取得し、これもＭＲＴ上の画像平面に書き込むことにより、変位後Ｚ値マップ３１０を生成する。
【００７６】
コンピュートシェーダー３０４は画素変位取得部２６６の機能により、変位ベクトルマップ３０８と変位後Ｚ値マップ３１０を用いて、表示画像に対応する画像平面上に画像参照ベクトルマップ３１２を生成する。この処理は変位ベクトルマップの終点の画素に、その逆ベクトルのデータを書き込むことを基本とする。この際、同一画素を終点とする変位ベクトルが複数、存在する場合に、変位後Ｚ値マップ３１０を参照して、より仮想カメラに近い変位ベクトルの逆ベクトルを書き込む。
【００７７】
また図１１で示したように、変位ベクトルマップ３０８において画素ごとに得られている変位ベクトルを補間して、サブピクセル単位で終点の確認を行う。図１１で示した処理を、対象の画素を順次移動させて実施するため、コンピュートシェーダー３０４は、同じ画像平面上にＺ値を表したＺバッファ３１４も生成する必要がある。さらに図１３、１４で説明したように、画像参照ベクトルマップ３１２の穴を補間して、画像参照ベクトルマップ３１２を完成させる。
【００７８】
そしてコンピュートシェーダー３０４は描画部２６８の機能により、表示画像の各画素に対応する画像参照ベクトルを画像参照ベクトルマップ３１２から取得し、中間画像３０６のうちその終点の位置におけるカラー値、あるいはその周囲のカラー値をフィルタリングして得られるカラー値を、当該画素のカラー値として決定する。これにより表示画像３１６が生成される。なお画像参照ベクトルマップ３１２と表示画像の解像度を異ならせる場合は、表示画像の画素に対応する画像参照ベクトルも、マップ上の周囲の画像参照ベクトルを用いてフィルタリングにより求めてもよい。
【００７９】
また、表示画像と画像参照ベクトルマップの解像度を同じとし、かつ画像参照ベクトルマップにおける穴が無視できるレベルの僅かなものであった場合、画像参照ベクトルマップ３１２の生成処理を省略することもできる。すなわち表示画像の画素ごとに、それが終点となっている変位ベクトルを変位ベクトルマップ３０８から取得し、そのうち変位後のＺ値が最も仮想カメラに近いことを示す変位ベクトルの始点を求める。そして当該始点のカラー値を中間画像３０６から取得する。
【００８０】
コンピュートシェーダー３０４は、図１１で示した対象画素の中心とその近傍の３点の合計４点の変位ベクトルを並列処理し、終点の画素に逆のベクトルを書き込む。この処理を一単位とし、対象画素をずらしながらポリゴンに対応する画素の画像参照ベクトルを埋めていく。この際、並列になされた出力結果を同じ画素に同時に書き込むような状況が発生すると、本来書き込むべきＺ値を有するデータの書き込みを行えず、誤った画像参照ベクトルが書き込まれてしまうことがあり得る。そこでまず、整合性が保たれるようにＺバッファを完成させ、それを用いて画像参照ベクトルマップを生成する２段階の処理とする。
【００８１】
図１７は、コンピュートシェーダー３０４が画像参照ベクトルを生成するためのＺバッファへの書き込み処理の手順を示している。まず対象画素とその右、下、右下の画素における変位ベクトルおよびそのＺ値を示すデータ３７０を読み出し、それを用いて変位ベクトルを補間したうえ、始点の位置座標に加算することにより、終点を含む画素の位置とＺ値の対を取得する（Ｓ３２）。この処理は上述のとおり並列に行う。そして、先に出力された終点が後に出力された終点と同じ画素であるか否かを確認し、そのようであれば仮想カメラに近い順にソートしていく（Ｓ３４）。
【００８２】
変位先の画素が重複していなければそのままとする。そして全ての結果が揃ったら、Ｚバッファ３１４のうち終点の画素に、最も仮想カメラに近いＺ値を書き込む（Ｓ３６）。このとき不可分操作のうち「ＡｔｏｍｉｃＭｉｎ」命令を利用することにより、最も仮想カメラに近いＺ値を複数のシェーダーエンジンから同時に書き込むことができる。この処理を、対象の全画素に対し実行することにより、Ｚバッファ３１４を完成させる。図１１のように画素幅より小さい距離にある点の変位ベクトルは、その変位先の画素が重複する可能性が高い。そのためシェーダー内でＺ比較を行うことにより余分な画素情報を効率的に排除でき、Ｚバッファ３１４へのアクセス回数を軽減できる。
【００８３】
図１８は、コンピュートシェーダー３０４が画像参照ベクトルを書き込む処理の手順を示している。まず対象画素とその右、下、右下の画素における変位ベクトルおよびそのＺ値を示すデータ３７０を読み出し、それを用いて変位ベクトルを補間したうえ、始点の位置座標に加算することにより、終点を含む画素の位置、変位ベクトルの逆ベクトルである画像参照ベクトル、およびＺ値のセットを取得する（Ｓ４０）。そして図１７のＳ３４と同様、終点の画素が重複している場合はＺ値による結果のソートを行うことにより、終点の画素ごとに書き込み候補の画像参照ベクトルを決定する（Ｓ４２）。
【００８４】
さらに、生成済みのＺバッファ３１４における該当画素のＺ値と、書き込み候補の画像参照ベクトルに対するＺ値とを比較し（Ｓ４４）、書き込み候補の画像参照ベクトルのＺ値がＺバッファ３１４におけるＺ値と一致していれば、画像参照ベクトルマップ３１２の該当画素に当該画像参照ベクトルを書き込む（Ｓ４６）。このようにすることで、画像参照ベクトルの取得処理を並列化しても、出力順に関わらずＺ値に基づく適切な画像参照ベクトルを選択して書き込みを行える。
【００８５】
図１９は、従来技術と本実施の形態を、実際に得られた画像で比較している。（ａ）は従来どおり平面状のポリゴンを描画した画像、（ｂ）は本実施の形態によりポリゴンを曲面化して画素をずらして描画した画像である。白い点線で囲んだ部分などでは特に、（ａ）においては不連続に表されたオブジェクトの輪郭が、（ｂ）では滑らかな曲線となっている。また凸部分を斜めから見た状態としての形状が正確に表現されている。
【００８６】
なおこれまでの説明では、表示画像の画素ごとに画像参照ベクトルを設定した画像参照ベクトルマップをまず作成し、それに基づき中間画像のカラー値をサンプリングした。この構成により画像参照ベクトルの補間を可能とし、オブジェクトの像を表す全ての画素について画像参照ベクトルの設定を保証できる。一方、画像参照ベクトルの補間を必要としない場合は、画像参照ベクトルマップの生成を省略してもよい。
【００８７】
この場合、表示画像の各画素について、ポリゴンの曲面化による変位ベクトルに基づき画像参照ベクトルを上述と同様に求め、それを用いて中間画像のカラー値を直接サンプリングすればよい。画像参照ベクトルの補間を必要としない場合として、曲面化によっても「穴」が生じにくい角度や形状のオブジェクトを描画する場合や、サンプリング後のカラー値自体を補間しても劣化しにくい色や領域を描画する場合が考えられる。またこの場合、シェーダープログラムの処理としては、ピクセルシェーダープログラムにコンピュートシェーダープログラムの処理も包含し、実行することになる。
【００８８】
以上述べた本実施の形態によれば、３次元のオブジェクトを描画する際、オブジェクトを構成するポリゴンに対し曲面を生成し、ポリゴン上の位置と曲面上の位置の関係を取得する。そして、平面のポリゴンを用いて生成した画像を、当該位置関係に応じて変位させ表示画像を生成する。このようにすることで、平面のポリゴンにテクスチャを貼り付け、当該テクスチャ上で立体感を表現する技術と異なり、疑似的に形状自体を変化させられるため、細部にわたりより高品質な画像を生成できる。実質的に曲面形状が表されていることにより、オブジェクトを拡大することによって輪郭の不連続性が視認されるようなことが起こりにくい。
【００８９】
上記形状の変化はほぼ画像平面上での画素の移動によって達成されているため、３次元空間での頂点に対する計算処理を増大させることがない。したがってポリゴンを細分化して高精細な画像を描画する場合と比較し、頂点処理の負荷およびポリゴンのラスタライズ処理の負荷を格段に抑えることができる。つまり３次元のオブジェクトを構成するポリゴンの平面上の各点の変位を、新たに再分割したポリゴンを生成することなしに、高速に最終画像に反映させることが可能になる。また画素の変位を表すベクトルの逆ベクトルを画像参照ベクトルマップとして生成することにより、効率的に表示画像のカラー値を決定できる。画像参照ベクトルマップに対する補間操作では、カラー値を補間するより画素の変位の特性を考慮できるうえ、直接カラー値を加工しないため画像の加工で発生しがちな不必要な混色が生じにくい。
【００９０】
また変位ベクトルの計算、画像参照ベクトルマップの生成、表示画像の描画など、一連の処理を全て画素単位で行える。したがって従来、コンピュータグラフィクスに用いられてきたアーキテクチャをそのまま利用でき、導入障壁を少なく高速な描画処理を実現できる。
【００９１】
実施の形態２
実施の形態１では基本的に、仮想カメラのスクリーンと同一平面に中間画像を生成した。図２０は実施の形態１における中間画像と仮想カメラのスクリーンの関係を模式的に示している。この場合、中間画像生成部２５６は（ａ）に示すように、仮想カメラのスクリーンと同じ平面４００にオブジェクト４０２のポリゴンを射影する。図では１つのポリゴンを射影してなる像４０４を例示している。そしてテクスチャマッピングなどにより像を構成する画素のカラー値を決定することで、平面４００上に中間画像が生成される。
【００９２】
一方、表示画像生成部２５８は（ｂ）に示すように、ポリゴンの像４０４に含まれる各画素のパラメータ座標（ｕ，ｖ，ｗ）から、ワールド座標系における曲面パッチ上の位置座標Ｓ（Ｓｘ，Ｓｙ，Ｓｚ）を求め、それを再度、仮想カメラのスクリーン４０６に射影することで、ポリゴンを曲面化した像４０８を得る。なおこの際の元の画素からの変位を逆に辿るベクトルが画像参照ベクトルである。これを用いて変位前の中間画像のカラー値をサンプリングすることにより、ポリゴンを曲面化したオブジェクトの像が描画される。
【００９３】
図２１は実施の形態１における中間画像と仮想カメラのスクリーンの関係の別の例を模式的に示している。処理手順は図２０と同様であるが、（ａ）に示す平面４００における中間画像では、ポリゴンの像４１０の面積が著しく小さくなっている。このようにポリゴンの像の面積は、仮想カメラの視線がポリゴン平面に対し平行に近づくほど小さくなる。中間画像における像４１０の面積が小さいと、（ｂ）に示すようにポリゴンの曲面化により像４１２の領域が広がり、そのカラー値を画像参照ベクトルの補間により決定するとしても、サンプリング先の画素が限定される。その結果、視線の変化によって画質がばらついたり変化したりすることが考えられる。
【００９４】
そこで本実施の形態では、中間画像の平面を仮想カメラのスクリーンと独立に設定する。画像表示システムや画像生成装置の構成は実施の形態１で述べたのと同様でよいため、以後、実施の形態１と異なる点のみを説明する。図２２は、実施の形態２における中間画像と仮想カメラのスクリーンの関係を模式的に示している。この態様では中間画像生成部２５６は、中間画像を生成するための平面４２０を仮想カメラのスクリーン４２４と独立に設定し、当該平面４２０にオブジェクト４０２のポリゴンを射影する。図では１つのポリゴンを射影してなる像４２２を例示している。そしてテクスチャマッピングなどにより像を構成する画素のカラー値を決定することで中間画像を生成する。
【００９５】
表示画像生成部２５８は、中間画像におけるポリゴンの像４２２に含まれる各画素のパラメータ座標（ｕ，ｖ，ｗ）から、ワールド座標系における曲面パッチ上の位置座標Ｓ（Ｓｘ，Ｓｙ，Ｓｚ）を求め、それを仮想カメラのスクリーン４２４に射影することで、ポリゴンを曲面化した像４２６を得る。この場合、像４２６の各画素のカラー値を決定するためのサンプリング先は、別途設けた平面４２０上に生成された中間画像となる。すなわちスクリーン４２４における画素４２８ごとに、中間画像の平面４２０上のサンプリング先４３０までの画像参照ベクトルを取得する。画像参照ベクトル自体は２次元の情報でよいため、実施の形態１の図１２で示したのと同様の演算で画像参照ベクトルが求められる。
【００９６】
中間画像の平面４２０は１つでもよいし複数準備してもよい。例えばオブジェクト４０２、あるいは表示対象の空間を囲むように平面を準備しておき、ポリゴンごとに、その像の面積が最も大きくなる平面をサンプリング先として選択してもよい。また中間画像の平面の１つは仮想カメラのスクリーンと一致していてもよい。例えば実施の形態１と同様に、仮想カメラのスクリーンと同一平面で中間画像を生成し、そこでの像が所定値より小さい面積となるポリゴンのみを、像の面積が所定値以上となる別の角度や位置の平面に表し、中間画像としてもよい。
【００９７】
またポリゴンの曲面化前後における画素の位置関係がわかれば、中間画像の見た目は表示結果に影響を与えないことを利用し、中間画像を平行投影により生成してポリゴンの像をより大きく表してもよい。このように少なくとも１つの中間画像の平面４２０を、仮想カメラの位置や姿勢と独立に設定することにより、ポリゴンの像４２２の大きさを良好に保つことができる。結果として、視線の変化に対しより頑健性のある画像を描画できる。
【００９８】
図２３は、実施の形態２において中間画像生成部２５６と表示画像生成部２５８が中間画像と画像参照ベクトルマップを生成する処理手順を示すフローチャートである。この処理は、実施の形態１の図５に示したフローチャートにおけるＳ１６、Ｓ１８の代わりに実施される。まず中間画像生成部２５６は、角度および位置の少なくともいずれかが異なる複数の平面候補のうち、ポリゴンの面積が最も大きく表れる平面を、中間画像の平面として選択する（Ｓ１０）。
【００９９】
平面は全てあるいは複数のポリゴンで共通としてもよいし、ポリゴンごとに選択してもよい。前者の場合、複数のポリゴンの像の平均面積が最大となる平面などを選択してもよい。またあらかじめ設定した１つの平面で固定としてもよく、その場合はＳ２１０の処理は省略できる。
【０１００】
次に中間画像生成部２５６は、選択した平面上にポリゴンを射影して、一般的な手法でカラー値を決定することにより中間画像を描画する（Ｓ２１２）。ポリゴンによって異なる平面を選択した場合は当然、複数の中間画像が生成される。続いて表示画像生成部２５８の画素変位取得部２６６は、実施の形態１で説明したように、中間画像の各画素に対応するパラメータ座標（ｕ，ｖ，ｗ）から、ポリゴンを曲面化したときの曲面上の位置座標Ｓ（Ｓｘ，Ｓｙ，Ｓｚ）を取得する（Ｓ２１４）。
【０１０１】
実施の形態１の図１６で示したグラフィックスパイプラインを利用する場合、ピクセルシェーダー３００は変位ベクトルマップ３０８の代わりに、曲面パッチ上の位置座標Ｓを、中間画像の画素ごとに表したデータをＭＲＴに表す。またこの段階では、変位後Ｚ値マップ３１０は生成しない。次に画素変位取得部２６６は、曲面上の位置座標Ｓを仮想カメラのスクリーンに射影する（Ｓ２１６）。すなわち透視変換行列Ｍ＿ＦＰを用い、ワールド座標系の位置座標Ｓを次のようにスクリーン上の同次位置座標Ｑに変換する。
tQ = M_FP * tS
【０１０２】
なおこの際の透視変換行列Ｍ＿ＦＰは、中間画像への透視変換行列とは独立に、仮想カメラの位置と姿勢によって決定される。このとき、スクリーンから位置座標Ｓまでの距離を求め、中間画像平面に表しておく。すなわちこの段階で図１６の変位後Ｚ値マップ３１０が得られる。以上の処理により、中間画像の各画素からスクリーン上の位置への変位ベクトルが得られるため、以後は実施の形態１と同様に、スクリーンの各画素を始点とする逆ベクトルを画像参照ベクトルとして求める（Ｓ２１８）。これをスクリーン平面に表すことにより、画像参照ベクトルマップが生成される。
【０１０３】
この処理において、スクリーンの画素ごとに、画像参照ベクトルとともにその参照先である中間画像の識別情報も対応づけておく。これにより、描画部２６８が表示画像のカラー値を決定する際、適切な中間画像からサンプリングを行える。またＳ２１８の処理では実施の形態１で説明したのと同様、Ｚ値による画像参照ベクトルの選択や穴の補間を適宜行ってよい。また、補間の必要がなければ画像参照ベクトルマップを生成する処理を省略し、画像参照ベクトルを求めたあと、中間画像を直接参照するようにしてもよい。
【０１０４】
以上述べた本実施の形態によれば、３次元のオブジェクトを描画する際、オブジェクトを構成するポリゴンに対し曲面を生成し、ポリゴン上の位置と曲面上の位置の関係を取得する。そして、平面のポリゴンを用いて生成した画像を、当該位置関係に応じて変位させ表示画像を生成する。この際、変位前の画像の平面を、視点と独立に設定する。これにより、実施形態１で得られる効果に加え、変位前のポリゴンの像が視点に影響され潰れてしまい、それを参照した結果として生成される表示画像の画質が劣化するのを防ぐことができる。結果として、状況によらず高い頑健性で高品質な画像を描画し続けることができる。
【０１０５】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０６】
例えば実施の形態１、２では、よりリアルな形状を表現するためにオブジェクトモデルを構成するポリゴンを曲面とし、それによる画素の変位に基づく画像参照ベクトルを導入したが、処理の目的はそれに限らない。一例として、視差を有するステレオ画像を右目用および左目用に表示させ、オブジェクトを立体視させる技術への応用が考えられる。図２４はステレオ画像を生成する際の、画像平面上での位置座標の変位の様子を説明するための図である。同図は図９の（ｂ）に示したのと同様、曲面パッチ５６をスクリーンに射影した状態を示しており、複数のマス目（例えばマス目６０）はそれぞれ画素領域を示している。
【０１０７】
また図９で示したように、ある画素の中心点６２が、ポリゴンを曲面化することにより別の点６４に変位しているとする。ステレオ画像を生成する際は、このように変位させた点６４を、さらに画像平面上に水平方向に変位させる。図中、左方向の変位ベクトル９２ａは右目、右方向の変位ベクトル９２ｂは左目の、視差による変位ベクトルである。この例では、中間画像の視点は右目視点と左目視点の中点にあるとしているため、水平方向で逆向きに同じ長さの変位ベクトルを生成する。中間画像の視点を両眼の視点の一方とし、他方の視点の画像を生成するために一つの変位ベクトルを生成してもよい。
【０１０８】
いずれにしろ変位ベクトル９２ａ、９２ｂの長さは、オブジェクトのＺ値に反比例する。したがってＺ値から変位ベクトルの長さを求める関数をあらかじめ設定しておけば、図１６で示した変位後Ｚ値マップ３１０を用いて、視差による変位ベクトル９２ａ、９２ｂをそれぞれ求めることができる。
【０１０９】
そしてポリゴンを曲面化したことによる変位ベクトル９６に、視差による変位ベクトル９２ａ、９２ｂを加算することにより、右目用画像の変位ベクトルと左目用画像の変位ベクトルがそれぞれ求められる。この加算処理を、図１６で示した変位ベクトルマップ３０８の各画素に対して実施すれば、右目用と左目用の変位ベクトルマップを生成できる。それらのマップから、本実施の形態で説明したのと同様に画像参照ベクトルマップを生成し、それぞれに基づき表示画像のカラー値を決定すれば、右目用、左目用の表示画像を少ない演算量で生成できる。あるいはポリゴンの曲面化に基づく画像参照ベクトルと、視差に基づく画像参照ベクトルをそれぞれ求め、両者を合成することにより最終的な画像参照ベクトルを求めてもよい。
【０１１０】
ただしこのように、１つの中間画像からステレオ画像を生成すると、左右の視点の違いによる輝度の差までは表現できない。そこで当該輝度差を表した、右目用、左目用の中間画像を生成しておき、それぞれを参照先とする画像参照ベクトルマップにより、各視点の表示画像を生成してもよい。この場合、図２４で示したような視差に基づく大きな変位を計算する必要がない。すなわち左右の視点の微少な移動に対する視差補正分の変位ベクトルを、ポリゴンの曲面化による変位ベクトルに加えればすむため、一度の画像参照ベクトルの計算で曲面補正とステレオ画像の視差補正を同時に行うことができる。
【０１１１】
画像参照ベクトルを導入する別の例として、コンピュータグラフィクスや写真など様々な画像の加工処理に用いることが考えられる。図２５は、画像参照ベクトルを導入して加工した画像を例示している。（ａ）は加工前の画像、（ｂ）は凸レンズ効果を施した画像、（ｃ）は渦巻き効果を施した画像である。これらの処理は一般的にはフィルタを用いて元の画素を直接操作する。そのため比較的広範囲の領域を補間するなどにより上述のように混色が生じ、画質が低下することが考えられる。
【０１１２】
本実施の形態によれば、加工に伴う処理の多くをベクトル演算として理論上で行っておき、画素値の直接的な操作は最終段階での局所的な参照に限られるため、図示するように元の画像から品質が劣化しにくい。図示する加工例において、凸レンズ効果や渦巻き効果を生じさせるための、元の画像からの画素ごとの変位ベクトルは、それぞれに対応する幾何学計算から容易に求められる。したがって本実施の形態と同様に、変位ベクトルの分布から画像参照ベクトルを求め、必要に応じて穴の補間を行うことにより画像参照ベクトルマップを生成すれば、加工後の表示画像を容易に生成することができる。
【０１１３】
なおこのような加工処理の場合、同じ加工には同じ画像参照ベクトルマップを用いることができるため、記憶装置などに格納しておき必要に応じて読み出すようにすればよい。また図示する例に限らず、変位ベクトルの分布を定義できれば、その他の各種加工や変形についても、同様の処理で品質劣化の少ない表示画像を生成できる。
【０１１４】
また本実施の形態では、ポリゴンに対応する曲面上の位置をスクリーンに射影することで、当該スクリーン上で変位ベクトルを求め、その逆ベクトルを画像参照ベクトルとした。一方、「変位ベクトル」を、ポリゴン上の位置を始点とする３次元空間でのベクトルとしてもよい。この場合、当該変位ベクトルをスクリーンに射影すれば、本実施の形態と同様の手順で、その逆ベクトルを画像参照ベクトルとすることができる。ここで変位ベクトルの終点は、別途定義したベジェ曲面のような曲面パッチ上としてもよいし、曲面を定義することなく、ポリゴンの情報などを用いて変位ベクトル自体を所定の規則で生成してもよい。
【符号の説明】
【０１１５】
１２  表示装置、  ２００  画像生成装置、  ２２２  ＣＰＵ、  ２２４  ＧＰＵ、  ２２６  メインメモリ、  ２５０  入力情報取得部、  ２５２  仮想空間生成部、  ２５４  モデルデータ格納部、  ２５６  中間画像生成部、  ２５８  表示画像生成部、  ２６０  中間画像格納部、  ２６２  出力部、  ２６４  曲面生成部、  ２６６  画素変位取得部、  ２６８  描画部。
【産業上の利用可能性】
【０１１６】
以上のように本発明は、ゲーム装置、画像表示装置、携帯端末、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む情報処理システムなどに利用可能である。
【図１】
2019049457.tif 000004
【図２】
2019049457.tif 000005
【図３】
2019049457.tif 000006
【図４】
2019049457.tif 000007
【図５】
2019049457.tif 000008
【図６】
2019049457.tif 000009
【図７】
2019049457.tif 000010
【図８】
2019049457.tif 000011
【図９】
2019049457.tif 000012
【図１０】
2019049457.tif 000013
【図１１】
2019049457.tif 000014
【図１２】
2019049457.tif 000015
【図１３】
2019049457.tif 000016
【図１４】
2019049457.tif 000017
【図１５】
2019049457.tif 000018
【図１６】
2019049457.tif 000019
【図１７】
2019049457.tif 000020
【図１８】
2019049457.tif 000021
【図１９】
2019049457.tif 000022
【図２０】
2019049457.tif 000023
【図２１】
2019049457.tif 000024
【図２２】
2019049457.tif 000025
【図２３】
2019049457.tif 000026
【図２４】
2019049457.tif 000027
【図２５】
2019049457.tif 000028
【国際調査報告】
2019049457.tif 000029
2019049457.tif 000030