(57)【要約】【課題】フォーカシングされた画像をよりリアルに生成する。【解決手段】情報処理装置のコンピュータは、基準画像の各画素の奥行き値（Ｚ値）に応じて各画素のα値を設定する。α値は、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるように設定される。次に、コンピュータは、α値の差が所定値以上である隣接する２つの画素のうちのα値が小さい方の画素に設定されたα値を増加する。さらに、コンピュータは、基準画像と当該基準画像に対応するぼかし画像とを、増加処理後の各画素に設定されるα値に基づいて合成する。【選択図】図１２
2008225767.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
画素毎に奥行き値を有する基準画像の各画素の奥行き値に応じて各画素のα値を設定するα値設定ステップと、
隣接する２つの画素のうちでα値が小さい方の画素に設定されたα値を増加する増加ステップと、
前記基準画像と当該基準画像に対応するぼかし画像とを、前記増加ステップによる処理後の各画素に設定されるα値に基づいて合成する合成ステップとを、前記コンピュータに実行させる画像処理プログラム。
【請求項２】
前記増加ステップにおいて、前記コンピュータは、α値の差が所定値以上である隣接する２つの画素についてのみ、α値が小さい方の画素に設定されたα値を増加する、請求項１に記載の画像処理プログラム。
【請求項３】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が所定の基準値に近い画素ほど前記基準画像の合成割合が高くなるようにα値を設定する、請求項１に記載の画像処理プログラム。
【請求項４】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記基準値よりも小さい画素については２次元ベクトルの第１成分にα値を設定するとともに、奥行き値が前記基準値よりも大きい画素については２次元ベクトルの第２成分にα値を設定することによって画素毎に２次元ベクトルを設定し、
前記増加ステップは、
各画素に設定される２次元ベクトルの第１成分の値を平滑化する平滑化ステップと、
２次元ベクトルの第１成分と第２成分とを加算した値をα値とする処理を各画素について行う加算ステップとを含み、
前記合成ステップにおいて、前記コンピュータは、前記基準画像と前記ぼかし画像とを、前記加算ステップによる処理後の各画素に設定されるα値に基づいて合成する、請求項３に記載の画像処理プログラム。
【請求項５】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記基準値よりも小さい画素については２次元ベクトルの第２成分の値を０に設定するとともに、奥行き値が前記基準値よりも大きい画素については２次元ベクトルの第１成分の値を０に設定する、請求項４に記載の画像処理プログラム。
【請求項６】
前記増加ステップにおいて、前記コンピュータは、所定値以下の奥行き値を有する画素のみを処理対象とする、請求項１に記載の画像処理プログラム。
【請求項７】
前記増加ステップにおいて、前記コンピュータは、各画素のα値を平滑化する、請求項１に記載の画像処理プログラム。
【請求項８】
前記増加ステップにおいて、前記コンピュータは、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出し、選出された画素のα値を増加させる、請求項１に記載の画像処理プログラム。
【請求項９】
前記増加ステップにおいて、前記コンピュータは、隣接する画素よりもα値が小さく、かつ、α値が所定値以下である画素を選出し、選出された画素のα値を増加させる、請求項１に記載の画像処理プログラム。
【請求項１０】
前記基準画像の各画素の色値を平滑化することによって前記ぼかし画像を生成するぼかし画像生成ステップを前記コンピュータにさらに実行させる、請求項１に記載の画像処理プログラム。
【請求項１１】
画像を生成する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
画素毎に奥行き値を有する基準画像内で隣接する２つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する奥行き値補正ステップと、
前記奥行き値補正ステップにおける処理後の各画素の奥行き値に応じて各画素のα値を設定するα値設定ステップと、
前記基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する合成ステップとを、前記コンピュータに実行させる画像処理プログラム。
【請求項１２】
前記奥行き値補正ステップにおいて、前記コンピュータは、奥行き値の差が所定値以上である隣接する２つの画素についてのみ、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する、請求項１１に記載の画像処理プログラム。
【請求項１３】
前記α値設定ステップにおいて、前記コンピュータは、奥行き値が前記所定の基準値に近い画素ほど前記基準画像の合成割合が高くなるようにα値を設定する、請求項１１に記載の画像処理プログラム。
【請求項１４】
前記奥行き値補正ステップにおいて、前記コンピュータは、前記基準値以下の奥行き値を有する画素のみを補正対象とする、請求項１１に記載の画像処理プログラム。
【請求項１５】
画像を生成する画像処理装置であって、
画素毎に奥行き値を有する基準画像の各画素の奥行き値に応じて各画素のα値を設定するα値設定手段と、
隣接する２つの画素のうちでα値が小さい方の画素に設定されたα値を増加する増加手段と、
前記基準画像と当該基準画像に対応するぼかし画像とを、前記増加手段による処理後の各画素に設定されるα値に基づいて合成する合成手段とを備える、画像処理装置。
【請求項１６】
画像を生成する画像処理装置であって、
画素毎に奥行き値を有する基準画像内で隣接する２つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する奥行き値補正手段と、
前記奥行き値補正手段による処理後の各画素の奥行き値に応じて各画素のα値を設定するα値設定手段と、
前記基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する合成手段とを備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、視点からの距離に応じてフォーカシングされた画像を生成する画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
従来、仮想世界の画像を生成する際に、視点からの距離（奥行き）に応じてフォーカシングされた画像を生成する技術がある。なお、「視点からの距離に応じてフォーカシングされた画像」とは、奥行き方向（視線方向）に関して仮想カメラの焦点に近い位置にあるオブジェクトについては輪郭が明確であり、奥行き方向に関して仮想カメラの焦点から離れた位置にあるオブジェクトについては輪郭がぼやけているような画像を言う。このような画像によって、遠近感をよりリアルに表現することができる。
【０００３】
特許文献１には、上記のような、フォーカシングされた画像を生成する画像生成システムが記載されている。この画像生成システムは、元画像とぼかし画像とを生成し、元画像とぼかし画像とを、画素毎に設定されるα値に基づいて合成することによって、フォーカシングされた画像を生成する。なお、α値は、０≦α≦１の範囲をとり、元画像とぼかし画像との合成比率を表す。上記画像生成システムでは、α値は、元画像の各画素の奥行き値に応じて設定される。これによれば、元画像と元画像のぼかし画像との合成比率（α値）が各画素の奥行き値に応じて変化するので、視点からの距離に応じてフォーカシングされた画像を生成することができる。
【０００４】
図２３は、従来の方法によって生成された、フォーカシングされた画像の例を示す図である。図２３においては、円板形状のオブジェクト９１〜９３が仮想空間に配置されており、仮想カメラの視点に対してオブジェクト９１が最も手前に位置し、オブジェクト９３が最も奥手に位置している。図２３では、仮想カメラの焦点はオブジェクト９２の位置であるとする。このとき、焦点の位置にあるオブジェクト９２の画素については、α値が０に設定されるので、元画像が反映され、ピントの合っている画像（輪郭が明瞭な）画像となる。一方、焦点から遠い位置にあるオブジェクト９１およびオブジェクト９３についてはα値が１に近い値に設定されるので、ぼかし画像が大きく反映され、ピントの合っていない（輪郭がぼけた）画像となる。
【特許文献１】特開２００１−１７５８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１の方法では、焦点の位置にあるオブジェクト９２の画素についてはα値が０に設定される。つまり、重なって見える２つのオブジェクト９１および９２の境界Ｌ付近においてもオブジェクト９２の画素についてはα値が“０”に設定され、元画像が反映される。そのため、図２３に示されるように、境界Ｌにおいてはオブジェクト９１の輪郭がぼけずに明確になってしまう。本来は、この境界Ｌ付近についてもオブジェクト９１の輪郭がぼけている方がリアルであるにもかかわらず、境界Ｌの部分についてはオブジェクト９１の輪郭がはっきりと表れる不自然な画像になっていた。
【０００６】
このように、特許文献１の方法では、単に各画素の奥行き値に応じてα値を設定しているために、奥行き値が大きく異なる画素が隣接する場合には、ピントの合っている画素とピントの合っていない画素との境界がはっきりと表示されてしまい、フォーカシングされた画像が不自然になっていた。
【０００７】
それ故、本発明の目的は、よりリアルな画像を生成することができる画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、画像を生成する画像処理装置（ゲーム装置３）のコンピュータ（ＣＰＵ１０および／またはＧＰＵ１１ｂ）に実行させる画像処理プログラム（ゲームプログラム６０）である。画像処理プログラムは、α値設定ステップ（Ｓ４）と、増加ステップ（Ｓ５，Ｓ６）と、合成ステップ（Ｓ７）とを、コンピュータに実行させる。α値設定ステップにおいて、コンピュータは、画素毎に奥行き値を有する基準画像（図８）の各画素の奥行き値（Ｚ値）に応じて各画素のα値（α情報）を設定する。増加ステップにおいて、コンピュータは、隣接する２つの画素のうちでα値が小さい方の画素に設定されたα値を増加する（図１６または図２１）。合成ステップにおいて、コンピュータは、基準画像と当該基準画像に対応するぼかし画像（図９）とを、増加ステップによる処理後の各画素に設定されるα値に基づいて合成する。
【００１０】
第２の発明においては、増加ステップにおいて、α値の差が所定値以上である隣接する２つの画素についてのみ、α値が小さい方の画素に設定されたα値を増加するようにしてもよい。
【００１１】
第３の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるようにα値を設定してもよい。
【００１２】
第４の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が基準値よりも小さい画素については２次元ベクトルの第１成分（ｎ成分）にα値を設定するとともに、奥行き値が基準値よりも大きい画素については２次元ベクトルの第２成分（ｆ成分）にα値を設定することによって画素毎に２次元ベクトルを設定してもよい（図１４）。このとき、増加ステップは、平滑化ステップ（Ｓ５）と、加算ステップ（Ｓ６）とを含む。平滑化ステップにおいて、コンピュータは、各画素に設定される２次元ベクトルの第１成分の値を平滑化する。加算ステップにおいて、コンピュータは、２次元ベクトルの第１成分と第２成分とを加算した値をα値とする処理を各画素について行う。合成ステップにおいて、コンピュータは、基準画像とぼかし画像とを、加算ステップによる処理後の各画素に設定されるα値に基づいて合成する。
【００１３】
第５の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が基準値よりも小さい画素については２次元ベクトルの第２成分の値を０に設定するとともに、奥行き値が基準値よりも大きい画素については２次元ベクトルの第１成分の値を０に設定してもよい。
【００１４】
第６の発明においては、増加ステップにおいて、コンピュータは、所定値以下の奥行き値を有する画素のみを処理対象としてもよい。
【００１５】
第７の発明においては、増加ステップにおいて、コンピュータは、各画素のα値を平滑化してもよい。
【００１６】
第８の発明は、増加ステップにおいて、コンピュータは、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出し、選出された画素のα値を増加させてもよい。
【００１７】
第９の発明においては、増加ステップにおいて、コンピュータは、隣接する画素よりもα値が小さく、かつ、α値が前記所定値以下である画素を選出し、選出された画素のα値を増加させてもよい。
【００１８】
第１０の発明においては、画像処理プログラムは、基準画像の各画素の色値を平滑化することによってぼかし画像を生成するぼかし画像生成ステップ（Ｓ３）をコンピュータにさらに実行させてもよい。
【００１９】
第１１の発明は、画像を生成する画像処理装置（ゲーム装置３）のコンピュータ（ＣＰＵ１０および／またはＧＰＵ１１ｂ）に実行させる画像処理プログラム（ゲームプログラム６０）である。画像処理プログラムは、奥行き値補正ステップ（Ｓ１１）、α値設定ステップ（Ｓ１２）と、合成ステップ（Ｓ７）とを、コンピュータに実行させる。奥行き値補正ステップにおいて、コンピュータは、画素毎に奥行き値を有する基準画像（図８）内で隣接する２つの画素のうち、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正する。α値設定ステップにおいて、コンピュータは、奥行き値補正ステップにおける処理後の各画素の奥行き値に応じて各画素のα値を設定する。合成ステップにおいて、コンピュータは、基準画像と当該基準画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成する。
【００２０】
第１２の発明においては、奥行き値補正ステップにおいて、コンピュータは、奥行き値の差が所定値以上である隣接する２つの画素についてのみ、奥行き値が所定の基準値に近い方の画素について、奥行き値を他方の画素の奥行き値に近づける方向に補正するようにてもよい。
【００２１】
第１３の発明においては、α値設定ステップにおいて、コンピュータは、奥行き値が所定の基準値に近い画素ほど基準画像の合成割合が高くなるようにα値を設定してもよい。
【００２２】
第１４の発明においては、奥行き値補正ステップにおいて、コンピュータは、基準値以下の奥行き値を有する画素のみを補正対象としてもよい。
【００２３】
また、本発明は、上記第１〜第１４の発明における各ステップを実行する情報処理装置と同等の機能を有する情報処理装置の形態で提供されてもよい。
【発明の効果】
【００２４】
第１の発明によれば、α値の差が所定値以上である隣接する２つの画素のうちで、α値が小さい方の画素については、奥行き値に応じて設定されたα値が増加される。これによれば、当該２つの画素の境界部分の輪郭をぼかして画像を生成することができる。したがって、オブジェクトの輪郭の一部のみがはっきりしているような不自然な画像が生成されることを防止することができ、よりリアルな画像を生成することができる。
【００２５】
第２の発明によれば、α値の差が所定値以上である場合にのみα値の補正（増加）を行うことにより、補正の必要な画素について確実に補正を行うことができる。
【００２６】
第３の発明によれば、奥行き値が基準値に近い画素に対応するオブジェクトについては輪郭が明確に表れ、奥行き値が基準値から離れている画素に対応するオブジェクトについては輪郭がぼかして表されるので、リアルにフォーカシングされた画像を生成することができる。
【００２７】
第４の発明によれば、奥行き値が基準値よりも小さい画素については少なくとも、α値の補正（増加）処理の対象となる。したがって、従来の技術で問題であった、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界がはっきりと表れてしまう問題を解消することができる。
【００２８】
第５の発明によれば、奥行き値が基準値よりも小さい画素のみが、α値の補正（増加）処理の対象となり、奥行き値が基準値よりも大きい画素は当該処理の対象とならない。したがって、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像（図１０参照）を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【００２９】
第６の発明によれば、奥行き値が所定値よりも小さい画素のみが、α値の補正（増加）処理の対象となり、奥行き値が所定値よりも大きい画素は当該処理の対象とならない。したがって、例えば所定値を上記基準値とすることにより、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像（図１０参照）を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【００３０】
第７の発明によれば、各画素のα値を平滑化することによって、α値を増加すべき画素（すなわち、α値の差が所定値以上である隣接する２つの画素のうちのα値が小さい方の画素）のα値を容易に増加させることができる。
【００３１】
第８の発明によれば、隣接する画素よりもα値が小さく、かつ、隣接する画素とのα値の差が所定値以上である画素を選出することによって、α値を増加すべき画素を確実に特定することができる。それ故、リアルにフォーカシングされた画像を確実に生成することができる。
【００３２】
第９の発明によれば、隣接する画素よりもα値が小さく、かつ、α値が所定値以下である画素を選出することによって、α値を増加すべき画素を確実に特定することができる。それ故、リアルにフォーカシングされた画像を確実に生成することができる。
【００３３】
第１０の発明によれば、基準画像からぼかし画像を容易に作成することができる。
【００３４】
第１１の発明によれば、奥行き値の差が所定値以上である隣接する２つの画素のうちで、奥行き値が所定の基準値に近い方の画素については、奥行き値が当該２つの画素の他方の画素の奥行き値に近づける方向に補正される。そして、補正後の奥行き値に応じて各画素のα値が設定されるので、α値を補正する上記第１の発明と同様の効果を得ることができる。つまり、当該２つの画素の境界部分の輪郭をぼかして画像を生成することができ、よりリアルな画像を生成することができる。
【００３５】
第１２の発明によれば、奥行き値の差が所定値以上である場合にのみ奥行き値の補正を行うことにより、補正の必要な画素について確実に補正を行うことができる。
【００３６】
第１３の発明によれば、奥行き値が基準値に近い画素に対応するオブジェクトについては輪郭が明確に表れ、奥行き値が基準値から離れている画素に対応するオブジェクトについては輪郭がぼかして表されるので、リアルにフォーカシングされた画像を生成することができる。
【００３７】
第１４の発明によれば、奥行き値が基準値以下の画素のみが、奥行き値の補正処理の対象となり、奥行き値が基準値よりも大きい画素は当該処理の対象とならない。したがって、例えば所定値を上記基準値とすることにより、ピントが合っているオブジェクトとその手前に配置されるオブジェクトとの境界はぼかし、ピントが合っているオブジェクトとその奥に配置されるオブジェクトとの境界ははっきりと表される画像（図１０参照）を生成することができ、フォーカシングされた画像をよりリアルに生成することができる。
【発明を実施するための最良の形態】
【００３８】
（ゲームシステムの全体構成）
図１を参照して、本発明の一実施形態に係る画像処理装置の一例として、ゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、コントローラ５、およびマーカ部６を含む。本システムは、コントローラ５を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００３９】
本発明に係る画像処理装置の一例であるゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００４０】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００４１】
コントローラ５は、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与える入力装置である。コントローラ５とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは有線で接続されてもよい。
【００４２】
（ゲーム装置３の内部構成）
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００４３】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成について後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００４４】
また、システムＬＳＩ１１には、入出力プロセッサ１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００４５】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００４６】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００４７】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００４８】
入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４９】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００５０】
また、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５１】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５２】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５３】
（コントローラ５の構成）
次に、図３〜図６を参照して、コントローラ５について説明する。図３および図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図であり、図４は、コントローラ５を下側前方から見た斜視図である。
【００５４】
図３および図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ５を用いることによって、それに設けられたボタンを押下すること、および、コントローラ５自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【００５５】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字キー３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、および電源ボタン３２ｈが設けられる。一方、図４に示すように、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。ホームボタン３２ｆおよび電源３２ｈは、その上面がハウジング３１の上面に埋没している。これによって、プレイヤがホームボタン３２ｆまたは電源３２ｈを誤って押下することを防止することができる。
【００５６】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、他のコントローラ）を接続するために利用される。
【００５７】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のメインコントローラと区別するためにコントローラ種別（番号）が付与される。各ＬＥＤ３４ａ〜３４ｄは、コントローラ５に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ５の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ５を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のＬＥＤ３４ａ〜３４ｄのいずれか１つが点灯する。
【００５８】
また、コントローラ５は撮像情報演算部３５（図５Ｂ）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒおよび６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００５９】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカ４９（図５Ａ）からの音を外部に放出するための音抜き孔３１ａが形成されている。
【００６０】
次に、図５Ａおよび図５Ｂを参照して、コントローラ５の内部構造について説明する。図５Ａおよび図５Ｂは、コントローラ５の内部構造を示す図である。なお、図５Ａは、コントローラ５の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図５Ｂは、コントローラ５の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図５Ｂに示す斜視図は、図５Ａに示す基板３０を裏面から見た斜視図となっている。
【００６１】
図５Ａにおいて、ハウジング３１の内部には基板３０が固設されており、当該基板３０の上主面上に各操作ボタン３２ａ〜３２ｈ、各ＬＥＤ３４ａ〜３４ｄ、加速度センサ３７、アンテナ４５、およびスピーカ４９等が設けられる。これらは、基板３０等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図５Ｂ参照）に接続される。本実施形態では、加速度センサ３７は、Ｘ軸方向に関してコントローラ５の中心からずれた位置に配置されている。これによって、コントローラ５をＺ軸回りに回転させたときのコントローラ５の動きが算出しやすくなる。また、加速度センサ３７は、長手方向（Ｚ軸方向）に関してコントローラ５の中心よりも前方に配置されている。また、無線モジュール４４（図６）およびアンテナ４５によって、コントローラ５がワイヤレスコントローラとして機能する。
【００６２】
一方、図５Ｂにおいて、基板３０の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ５の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を備えている。これらの部材３８〜４１はそれぞれ基板３０の下主面に取り付けられる。
【００６３】
さらに、基板３０の下主面上には、上記マイコン４２およびバイブレータ４８が設けられている。バイブレータ４８は、例えば振動モータやソレノイドであり、基板３０等に形成された配線によってマイコン４２と接続される。マイコン４２の指示によりバイブレータ４８が作動することによってコントローラ５に振動が発生する。これによって、コントローラ５を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ４８は、ハウジング３１のやや前方寄りに配置される。つまり、バイブレータ４８がコントローラ５の中心よりも端側に配置することによって、バイブレータ４８の振動によりコントローラ５全体を大きく振動させることができる。また、コネクタ３３は、基板３０の下主面上の後端縁に取り付けられる。なお、図５Ａおよび図５Ｂに示す他、コントローラ５は、マイコン４２の基本クロックを生成する水晶振動子、スピーカ４９に音声信号を出力するアンプ等を備えている。
【００６４】
なお、図３〜図５Ａ、図５Ｂに示したコントローラ５の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はＺ軸方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ５における撮像情報演算部３５の位置（撮像情報演算部３５の光入射面３５ａ）は、ハウジング３１の前面でなくてもよく、ハウジング３１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【００６５】
図６は、コントローラ５の構成を示すブロック図である。コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、コネクタ３３、撮像情報演算部３５、通信部３６、および加速度センサ３７を備えている。コントローラ５は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置３へ送信するものである。
【００６６】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示すデータを通信部３６のマイコン４２へ出力する。
【００６７】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ５の動きでも追跡して解析することができる。
【００６８】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、テレビ２の表示画面近傍に配置されるマーカ部６のマーカ６Ｒおよび６Ｌは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、マーカ６Ｒおよび６Ｌの画像をより正確に撮像することができる。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象（マーカ６Ｒおよび６Ｌ）の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（姿勢）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００６９】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する、すなわち、コントローラ５に加わる力（重力を含む）を検出する。加速度センサ３７は、当該加速度センサ３７の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、３軸または２軸の加速度センサは、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能である種類のものでもよい。なお、加速度センサ３７は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００７０】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ３７からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ５を基準に設定されるＸＹＺ座標系における３次元のベクトルとして表される。
【００７１】
加速度センサ３７が検出した加速度を示すデータ（加速度データ）は、通信部３６へ出力される。なお、加速度センサ３７が検出した加速度は、コントローラ５自体の向き（姿勢）や動きに対応して変化するので、ゲーム装置３は加速度データを用いてコントローラ５の向きや動きを算出することができる。つまり、ゲーム装置３は、加速度データと、上記マーカ座標データとに基づいてコントローラ５の姿勢および動きを算出する。
【００７２】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。
【００７３】
操作部３２、撮像情報演算部３５、および加速度センサ３７からマイコン４２へ出力されたデータは、一時的にメモリ４３に格納される。これらのデータは、上記操作データとしてゲーム装置３へ送信される。すなわち、マイコン４２は、ゲーム装置３無線コントローラモジュール１９への送信タイミングが到来すると、メモリ４３に格納されている操作データを無線モジュール４４へ出力する。無線モジュール４４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ４５から放射する。つまり、操作データは、無線モジュール４４で微弱電波信号に変調されてコントローラ５から送信される。微弱電波信号はゲーム装置３側の無線コントローラモジュール１９で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置３は操作データを取得することができる。そして、ゲーム装置３のＣＰＵ１０は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部３６から無線コントローラモジュール１９への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ５の通信部３６は、例えば１／２００秒に１回の割合で各操作データをゲーム装置３の無線コントローラモジュール１９へ出力する。
【００７４】
上記コントローラ５を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ５によって画面上の任意の位置を指示する操作、および、コントローラ５自体を動かす操作を行うことができる。図７は、コントローラ５を用いてゲーム操作を行うときの様子を示す図解図である。本実施形態では、プレイヤは、図７に示すように、コントローラ５によってテレビ２の画面上の位置Ｐを指し示すゲーム操作、および、コントローラ５を動かすゲーム操作を行うことができる。
【００７５】
なお、本実施形態では、上記コントローラ５を入力装置として用いるゲーム装置を例として説明するが、本発明に係る情報処理装置は、上記ゲーム装置に限らず、仮想世界の画像を生成し、接続される表示装置に画像を表示することが可能な装置であればどのようなものであってもよい。また、入力装置はキーボードやマウス等、どのようなものであってもよく、情報処理装置は入力装置を備えていない構成であってもよい。
【００７６】
（画像生成処理の概要）
以下、図８〜図１０を参照して、本実施形態における画像生成処理の概要を説明する。本実施形態では、ゲーム装置３は、３次元の仮想空間のフォーカシングされた画像を生成する。本実施形態では、フォーカシングされた画像を生成する方法として、輪郭が明確な画像（基準画像。元画像とも言う。）と、基準画像の輪郭がぼかされた画像（ぼかし画像）とを用意し、基準画像とぼかし画像とを合成する方法を用いる。
【００７７】
図８は、基準画像の一例を示す図であり、図９は、ぼかし画像の一例を示す図である。以下では、図８および図９に示す３つの円板形状のオブジェクト５１〜５３が配置された３次元の仮想空間の、フォーカシングされた画像を生成する場合を例として説明する。なお、３つのオブジェクト５１〜５３のうち、第１オブジェクト５１が最も手前（仮想カメラの視点に最も近い位置）に配置され、第３オブジェクト５３が最も奥（視点から最も遠い位置）に配置され、第２オブジェクト５２は第１オブジェクト５１と第３オブジェクト５３との間に配置されている。また、以下では、仮想カメラの焦点（ピント）が第２オブジェクト５２に合っている画像を生成する場合を例として説明する。
【００７８】
基準画像は、３次元仮想空間に対して仮想カメラの位置を基準として透視変換を行うことによって得られる。図８に示すように、基準画像においては、各オブジェクト５１〜５３の輪郭は明確に表れている。一方、図９に示すように、ぼかし画像は、基準画像の輪郭がぼけた画像である。なお、図９では、各オブジェクト５１〜５３の輪郭を複数の点線によって表すことによって輪郭がぼけている様を表現している。ぼかし画像は、典型的には、基準画像に対して周知のぼかし処理を行うことによって生成される。ぼかし処理は、例えば、隣接する画素との平均を算出したり、または、ガウスフィルタを用いたりすることによって基準画像の各画素の色値（ＲＧＢ値）を平滑化する処理である。また、ぼかし処理は、基準画像の各オブジェクトを拡大した後で縮小する（輪郭を粗くする）処理でもよい。更に、ぼかし処理は、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことによりぼかし画像を生成してもよい。
【００７９】
ゲーム装置３は、基準画像およびぼかし画像を生成するとともに、基準画像の各画素についてα値をそれぞれ設定する。α値は、基準画像とぼかし画像とを合成する際におけるぼかし画像の合成比率（ブレンド率とも言う）を表す。具体的には、α値は、０≦α≦１の範囲であり、α＝０の場合には合成後の画像はぼかし画像の割合が０％（基準画像の割合が１００％）となり、α＝１の場合には合成後の画像はぼかし画像の割合が１００％となる（後述する式（７）参照）。
【００８０】
本実施形態では、α値は、各画素のオブジェクトの奥行き値（すなわち、Ｚ値）に応じて仮設定される。具体的には、仮想カメラの視点から焦点までの距離（ここでは、焦点距離と呼ぶ。）に等しいＺ値が設定される画素についてはα＝０に設定され、Ｚ値と焦点距離との差が大きい画素ほどα値が大きくなるように設定される。このように設定されたα値を用いて合成を行うことにより、奥行きが焦点距離に近いオブジェクトの輪郭は明確になるとともに、奥行きが焦点距離から離れたオブジェクトの輪郭はぼけた画像を生成することができる。つまり、奥行きが焦点距離に近いオブジェクトにピントが合っているとともに、奥行きが焦点距離から離れているオブジェクトについてはピントが合っていない画像を生成することができる。
【００８１】
ただし、各画素のＺ値に応じて設定されたα値をそのまま用いて合成を行うと、図２３に示したように、ピントが合っているオブジェクトと、ピントが合っていないオブジェクトとの境界がはっきりと表れてしまう。つまり、ピントが合っていないオブジェクトについては上記境界部分のみ輪郭が明確に表れてしまい、リアルな画像を生成することができない。そこで、本実施形態では、各画素のＺ値に応じて仮設定されたα値に対して、後述する補正処理（図１２に示すステップＳ５）を行う。この補正処理によって、上記境界付近においてα値が小さく設定されている画素のα値を増加する。本実施形態では、このように補正されたα値を用いて、基準画像とぼかし画像とを合成する（αブレンドを行う）ことによって、フォーカシングされた画像を生成される。これによって、ピントが合っていないオブジェクトについては上記境界付近においても輪郭がぼやけた画像を生成することができる。
【００８２】
図１０は、本実施形態の画像生成処理によって生成される画像の一例を示す図である。図１０に示す画像においては、第１オブジェクト５１と第２オブジェクト５２との境界Ｌ１の付近において、第１オブジェクト５１の輪郭がぼやけている。第１オブジェクト５１の輪郭は全部分についてぼやけているので、本実施形態によれば、一部の輪郭のみが明確になっている画像（図２３）における不自然さが解消されていることがわかる。なお、詳細は後述するが、本実施形態では、ピントが合っている第２オブジェクト５２とその奥に配置される第３オブジェクト５３との境界Ｌ２においては、第３オブジェクト５３のぼけた輪郭が第２オブジェクト５２の画像に重畳されないように上記補正処理が行われる。つまり、ピントが合っている第２オブジェクト５２の手前に配置される第１オブジェクト５１のぼけた輪郭は、第２オブジェクト５２の画像に重畳されるのに対して、ピントが合っている第２オブジェクト５２の奥に配置される第３オブジェクト５３のぼけた輪郭は、第２オブジェクト５２の画像に重畳されない。これによって、フォーカシングされた画像をよりリアルに生成することができる。
【００８３】
（画像生成処理の詳細）
以下、図１１〜図１８を参照して、本実施形態における画像生成処理の詳細について説明する。図１１は、ゲーム装置３のメインメモリ（外部メインメモリ１２または内部メインメモリ１１ｅ）に記憶される主なデータを示す図である。図１１に示すように、メインメモリには、ゲームプログラム６０、画像処理用データ６１等が記憶される。なお、メインメモリには、図１１に示すデータの他、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
【００８４】
ゲームプログラム６０は、本実施形態に係る画像処理プログラムの一例であり、ゲーム装置３に電源が投入された後の適宜のタイミングで光ディスク４からその一部または全部が読み込まれてメインメモリに記憶される。ゲームプログラム６０には、図１２に示す画像生成処理をＣＰＵ１０に実行させるプログラムの他、所定のゲーム処理をＣＰＵ１０に実行させるプログラムが含まれている。
【００８５】
画像処理用データ６１は、後述する画像生成処理（図１２）において用いられるデータである。画像処理用データ６１は、基準画像データ６２、ぼかし画像データ６３、α情報データ６４、補正α情報データ６５、およびα値データ６６を含む。
【００８６】
基準画像データ６２は、上記基準画像を表すデータである。具体的には、基準画像データ６２は、基準画像の各画素の色値およびＺ値を示す。また、ぼかし画像データ６３は、上記ぼかし画像のデータである。具体的には、ぼかし画像データ６３は、ぼかし画像の各画素の色値を示す。なお、基準画像データ６２およびぼかし画像データ６３は、ＶＲＡＭ１１ｄに設けられるフレームバッファに記憶されてもよい。
【００８７】
α情報データ６４は、基準画像の各画素にそれぞれ設定されるα情報を示すデータである。α情報とは、最終的なα値を算出するために仮設定されるα値を示し、本実施形態では、２次元のベクトルで表現される。具体的には、この２次元ベクトルはｎ成分とｆ成分とを有し、（ｎ，ｆ）と表される。詳細は後述するが、本実施形態では、画素のＺ値が上記焦点距離よりも小さいか大きいかによって、ｎ成分およびｆ成分のいずれか一方の成分にα値が設定され、他方の成分には“０”が設定される。また、補正α情報データ６５は、上記α情報データ６４により示されるα情報を補正処理によって補正した後のα情報を示す。補正処理の詳細は後述する。
【００８８】
α値データ６６は、各画素にそれぞれ設定されるα値を示す。このα値は、上記補正α情報データ６５により示されるα情報に基づいて算出される。
【００８９】
次に、ゲーム装置３において行われる画像生成処理の詳細を、図１２〜図１８を用いて説明する。図１２は、ゲーム装置３において実行される処理の流れを示すメインフローチャートである。ゲーム装置３の電源が投入され、ゲームプログラムが記憶された光ディスク４がゲーム装置３に挿入されると、ゲーム装置３のＣＰＵ１０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。図１２に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、図１２に示す処理は、ＣＰＵ１０およびＧＰＵ１１ｂの協調動作として行われる。
【００９０】
図１２に示すステップＳ１において、まずＣＰＵ１０は、３次元の仮想空間における各種設定を行う。具体的には、仮想空間内にオブジェクト（各オブジェクト５１〜５３）を配置するとともに、仮想カメラの位置および向きを設定する。ＣＰＵ１０がゲーム処理を実行する場合であれば、プレイヤによるコントローラ５を用いたゲーム操作に応じてオブジェクトの位置を決定したり、仮想カメラの位置および向きを決定したりする。
【００９１】
続くステップＳ２において、ＣＰＵ１０は、ステップＳ１で設定された内容に応じて基準画像を生成する。基準画像は、仮想カメラの位置から仮想カメラの向きに仮想空間を見たときの画像が生成されるように透視変換を行うことによって生成される。つまり、当該画像の各画素の色値およびＺ値が算出される。ステップＳ２の処理によって生成された基準画像を示すデータ（すなわち、画素毎の色値およびＺ値を示すデータ）は、基準画像データ６２としてメインメモリに記憶される。
【００９２】
続くステップＳ３において、ＣＰＵ１０は、基準画像からぼかし画像を生成する。本実施形態において、ぼかし画像は、メインメモリに記憶されている基準画像データ６２により示される基準画像の各画素の色値を平滑化することによって生成される。以下、図１３を参照してぼかし画像の生成方法の詳細を説明する。
【００９３】
図１３は、基準画像の各画素の一部を示す図である。なお、以下では、図１３に示す画素Ｘ（ＸはＡ〜Ｍのいずれか）の基準画像における色値を“ＰＸ”、ぼかし画像における色値を“ＰＸ’”と示す。例えば画素Ａにおけるぼかし画像の色値“ＰＡ’”は、当該画素Ａの基準画像の色値“ＰＡ”と、当該画素Ａに隣接する４つの画素Ｂ〜画素Ｅの色値“ＰＢ”〜“ＰＥ”との平均値として算出される。具体的には、ＣＰＵ１０は、次の式（１）に従って上記色値“ＰＡ’”を算出する。
ＰＡ’＝（ＰＡ＋ＰＢ＋ＰＣ＋ＰＤ＋ＰＥ）／５  …（１）
ＣＰＵ１０は、上式（１）に従ってぼかし画像の色値を算出する処理を基準画像の各画素について行うことによって、ぼかし画像の各画素の色値を得る。これによって得られたぼかし画像を示すデータ（すなわち、画素毎の色値を示すデータ）は、ぼかし画像データ６３としてメインメモリに記憶される。
【００９４】
なお、他の実施形態においては、上式（１）に代えて、次の式（２）、（３）または（４）を用いてぼかし画像の各画素の色値を算出するようにしてもよい。
ＰＡ’＝（ＰＡ＋ＰＦ＋ＰＧ＋ＰＨ＋ＰＩ）／５  …（２）
ＰＡ’＝（ＰＡ＋ＰＢ＋ＰＣ＋ＰＤ＋ＰＥ＋ＰＦ＋ＰＧ＋ＰＨ＋ＰＩ）／９  …（３）
ＰＡ’＝（ＰＡ＋ＰＢ＋ＰＣ＋ＰＤ＋ＰＥ＋ＰＪ＋ＰＫ＋ＰＬ＋ＰＭ）／９  …（４）
上式（２）は、処理対象の画素Ａのぼかし画像の色値を、当該画素Ａの基準画像の色値“ＰＡ”と、画素Ａから上下左右に２画素分離れた画素Ｆ〜画素Ｉの基準画像の色値“ＰＦ”〜“ＰＩ”との平均値とすることを表す。式（２）を用いることにより、式（１）に比べて、よりぼかし具合を強める事ができる。また、上式（３）は、処理対象の画素Ａのぼかし画像の色値を、当該画素Ａの基準画像の色値“ＰＡ”と、当該画素Ａから上下左右に２画素分以内に存在する画素Ｂ〜画素Ｉの基準画像の色値“ＰＢ”〜“ＰＩ”との平均値とすることを表す。式（３）を用いることにより、式（１）に比べて、よりぼかし具合を強める事ができる。また、上式（４）は、処理対象の画素Ａのぼかし画像の色値を、当該画素Ａの基準画像の色値“ＰＡ”と、当該画素Ａから上下左右斜めに１画素分以内に存在する画素Ｂ〜画素Ｅ、画素Ｊ〜画素Ｍの基準画像の色値“ＰＢ”〜“ＰＥ”、“ＰＪ”〜“ＰＭ”との平均値とすることを表す。式（４）を用いることにより、式（１）に比べて、より綺麗なぼかし画像を得る事ができる。
【００９５】
また、上述したように、ぼかし画像を生成する方法はどのような方法であってもよく、ＣＰＵ１０は、ガウスフィルタを用いて基準画像の色値を平滑化することによってぼかし画像を生成してもよいし、基準画像を一端拡大した後で縮小することによって輪郭を粗くする方法でぼかし画像を生成してもよいし、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことによりぼかし画像を生成してもよい。
【００９６】
図１２の説明に戻り、ステップＳ３の次のステップＳ４において、ＣＰＵ１０は、基準画像の各画素に対してそれぞれα情報を設定する。各画素のα情報は、その画素に対応するオブジェクトの奥行き、すなわち、その画素に設定されるＺ値に応じて決められる。以下、図１４を参照して、α情報の設定方法の詳細について説明する。
【００９７】
図１４は、画素のＺ値と当該画素に設定されるα情報との関係を示す図である。図１４に示す横軸はＺ値を示し、縦軸はα値を示している。ステップＳ４において、ＣＰＵ１０はまず、Ｚ値に応じたα値を算出する。図１４に示されるように、α値は、Ｚ値が上記焦点距離Ｚ１である場合にα＝０となり、α＝１を上限として、Ｚ値と焦点距離Ｚ１との差分が大きくなるほど値が大きくなるように算出される。なお、図１４は、上記差分とα値とが比例関係にある場合を示しているが、上記差分が大きくなるにつれてα値が大きくなる関係であればよい。また、焦点距離Ｚ１は、予め定められた値であってもよいし、ユーザによって指定された値でもよいし、所定のアルゴリズムに従って自動的に算出された値でもよい。
【００９８】
α値を算出すると、ＣＰＵ１０は、Ｚ値と焦点距離Ｚ１との大小関係に基づいて、算出されたα値をｎ成分とするかｆ成分とするかを決定する。具体的には、Ｚ値が焦点距離Ｚ１よりも小さい場合、算出されたα値はｎ成分とされる。つまり、ｎ成分の値がα値となり、ｆ成分の値が“０”となる２次元ベクトルが算出される。一方、Ｚ値が焦点距離Ｚ１よりも大きい場合、算出されたα値はｆ成分とされる。つまり、ｎ成分の値が“０”となり、ｆ成分の値がα値となる２次元ベクトルが算出される。つまり、本実施形態では、視点からの距離が焦点距離よりも近い位置にあるオブジェクトに対応する画素については、（α，０）（αはα値の値を示す）となる２次元ベクトルが設定され、視点からの距離が焦点距離よりも遠い位置にあるオブジェクトに対応する画素については、（０，α）となる２次元ベクトルが設定される。本実施形態では、以上のように算出された２次元ベクトルがα情報となる。各画素のα情報を示すデータは、α情報データ６４としてメインメモリに記憶される。
【００９９】
図１２の説明に戻り、ステップＳ４の次のステップＳ５において、ＣＰＵ１０は、各画素に設定されたα情報のｎ成分をそれぞれ補正する。本実施形態においては、この補正処理は、各画素のｎ成分の値（以下、ｎ成分値と示す）を平滑化することによって行われる。以下、図１３を参照して補正処理の詳細を説明する。なお、以下では、図１３に示す画素Ｘ（ＸはＡ〜Ｍのいずれか）の補正前のｎ成分値を“αＸ” 、補正後のｎ成分値を“αＸ’”と示す。例えば画素Ａにおける補正後のｎ成分値“αＡ’”は、当該画素Ａの補正前のｎ成分値“αＡ”と、当該画素Ａに隣接する４つの画素Ｂ〜画素Ｅの補正前のｎ成分値“αＢ”〜“αＥ”との平均値を所定数（Ｇ）倍した値として算出することができる。具体的には、補正後のｎ成分値αＡ’は、次の式（５）に従って算出することができる。
αＡ’＝（αＡ＋αＢ＋αＣ＋αＤ＋αＥ）／５×Ｇ  …（５）
上式（５）において、Ｇは定数であり、好ましくは１以上の値に設定される。ＣＰＵ１０は、基準画像の各画素に設定された各α情報について上式（５）を用いて補正処理を行う。補正後の各α情報を示すデータは、補正α情報データ６５としてメインメモリに記憶される。
【０１００】
なお、他の実施形態においては、ステップＳ５におけるｎ成分値の平滑化は、上式（５）に代えて、次の式（６）、（７）または（８）を用いて行われてもよい。
αＡ’＝（αＡ＋αＦ＋αＧ＋αＨ＋αＩ）／５×Ｇ  …（６）
αＡ’＝（αＡ＋αＢ＋αＣ＋αＤ＋αＥ＋αＦ＋αＧ＋αＨ＋αＩ）／９×Ｇ  …（７）
αＡ’＝（αＡ＋αＢ＋αＣ＋αＤ＋αＥ＋αＪ＋αＫ＋αＬ＋αＭ）／９×Ｇ  …（８）
上式（６）を用いる場合、処理対象の画素Ａの補正後のｎ成分値“αＡ’は、当該画素Ａの補正前のｎ成分値“αＡ”と、画素Ａから上下左右に２画素分離れた画素Ｆ〜画素Ｉのｎ成分値“αＦ”〜“αＩ”との平均値を所定数（Ｇ）倍した値となる。また、上式（７）を用いる場合、画素Ａの補正後のｎ成分値“αＡ’”は、当該画素Ａの補正前のｎ成分値“αＡ”と、当該画素Ａを中心として上下左右へ２画素分の範囲内に存在する画素Ｂ〜画素Ｉの基準画像のｎ成分値“αＢ”〜“αＩ”の平均値を所定数（Ｇ）倍した値となる。また、上式（８）を用いる場合、画素Ａの補正後のｎ成分値“αＡ’”は、当該画素Ａの補正前のｎ成分値“αＡ”と、当該画素Ａを中心として上下左右斜めへ１画素分の範囲内に存在する画素Ｂ〜画素Ｅ、画素Ｊ〜画素Ｍの基準画像のｎ成分値“αＢ”〜“αＥ”、“αＪ”〜“αＭ”の平均値を所定数（Ｇ）倍した値となる。また、ｎ成分値の平滑化は、ガウスフィルタを用いて行われてもよいし、バイリニアフィルタリングやトライリニアフィルタリングを用いて行われてもよい。
【０１０１】
以下、図１５〜図１８を参照して、上記ステップＳ５の補正処理によるα情報の変化について説明する。図１５は、補正処理が行われる前における、一列に並んだ各画素に設定されるｎ成分値を示す図である。図１６は、補正処理を行った後における、各画素に設定されるｎ成分値を示す図である。なお、図１５および図１６における横軸は、１列に並ぶ画素Ｐ１〜Ｐ７を示し、縦軸は、当該各画素Ｐ１〜Ｐ７におけるｎ成分値を示している。画素Ｐ１〜Ｐ３は、図８に示す第１オブジェクト５１に対応し、画素Ｐ４〜Ｐ７は、図８に示す第２オブジェクト５２に対応する。したがって、画素Ｐ３と画素Ｐ４との間が、第１オブジェクト５１と第２オブジェクト５２との境界Ｌ１である。なお、ここでは、上記ステップＳ４の処理によって、画素Ｐ１〜Ｐ３についてはｎ成分値が“１”に設定され、画素Ｐ４〜Ｐ７についてはｎ成分値が“０”に設定されたものとする。
【０１０２】
図１５に示す各画素Ｐ１〜Ｐ７に対してステップＳ５における補正処理が行われると、各画素Ｐ１〜Ｐ７におけるｎ成分値は図１６に示すようになる。なお、図１６は、上式（４）を用いて補正（平滑化）処理を行った後のｎ成分値を示している。図１６に示されるように、補正前においてｎ成分値が“１”であった画素Ｐ３に隣接する画素Ｐ４は、補正前において“０”であったｎ成分値が、平滑化を行ったことによって増加して正の値になる。このように、補正処理によって、隣接する画素よりもｎ成分値（α値）が小さい画素については、ｎ成分値が増加される。
【０１０３】
なお、補正処理によってｎ成分値が増加される画素の範囲は、補正処理の内容によって異なる。図１６は、上式（５）を用いて補正処理を行った場合の例であるので、α値（ｎ成分値）に差がある隣接する２つの画素（画素Ｐ３および画素Ｐ４）のうちの小さい方の画素（画素Ｐ４）のみが、α値が増加する対象となった。例えば、上式（６）または（７）を用いて補正処理を行う場合には、α値に差がある隣接する２つの画素（画素Ｐ３および画素Ｐ４）の間を境界とすると、当該境界から画素２つ分以内の距離にある画素（画素Ｐ４および画素Ｐ５）が、α値が増加する対象となる。
【０１０４】
図１７は、図８に示す基準画像の各画素に設定された補正前のα情報の分布を示す図である。また、図１８は、図８に示す基準画像の各画素に設定された補正後のα情報の分布を示す図である。図１７および図１８に示す領域７１は、ｎ成分値が正の値となる画素の領域である。また、図１７に示す領域７２は、ｎ成分値およびｆ成分値がともに“０”となる領域である。なお、領域７１および７２以外の領域は、ｆ成分値が正の値となり、ｎ成分値が“０”となる領域である。図８に示す基準画像においては、上述したように、焦点距離よりも近い位置に存在するオブジェクトは第１オブジェクト５１のみである。そのため、ステップＳ４においては、第１オブジェクト５１に対応する画素についてｎ成分値が正の値（０でない値）となる２次元ベクトルが設定される。したがって図１７に示すように、補正処理前においては、ｎ成分値が正の値となる領域７１は、第１オブジェクト５１に対応する画素領域のみである。なお、ｎ成分値およびｆ成分値がともに“０”となる領域７２は、焦点距離の位置にある第２オブジェクト５２に対応する。
【０１０５】
ここで、上記ステップＳ５の補正処理によれば、図１５に示したように、ｎ成分値が正である画素に隣接する画素に設定されるｎ成分値が正の値となる。その結果、補正処理後においては、ｎ成分値が正の値となる領域７１は、図１８に示されるように、補正前に比べて拡張される。また、領域７１が拡張されることに伴い、ｎ成分値およびｆ成分値がともに“０”となる領域７２は、縮小される。換言すれば、第１オブジェクト５１と第２オブジェクト５２との境界Ｌ１付近の画素（少なくとも、境界Ｌ１に隣接する画素）は、領域７２から外れ領域７１に含まれることになる。このように、補正処理後においては、第２オブジェクト５２に対応する画素領域のうち、境界Ｌ１付近の一部については、ｎ成分値が正の値となる。なお、上式（５）〜（８）に示した定数Ｇを１よりも小さい値とすると、第１オブジェクト５１に対応する画素のうちの境界Ｌ１付近の画素のα値が平滑化によって小さくなることがある。このとき、表示画像におけるぼかし画像の割合が低くなり、その結果、第１オブジェクトが基準画像に比べて縮小して見えるおそれがある。そのため、定数Ｇは１以上に設定されることが好ましく、例えばＧ＝３〜４に設定される。
【０１０６】
図１２の説明に戻り、ステップＳ５の次のステップＳ６において、ＣＰＵ１０は、各画素に設定されたα情報に基づいて各画素のα値を算出する。具体的には、各画素のα値は、その画素に設定されたα情報（２次元ベクトル）のｎ成分値とｆ成分値とに基づいて算出される。より具体的には、ＣＰＵ１０は、メインメモリに記憶されている補正α情報データ６５を参照し、補正α情報データ６５により示されるｎ成分値およびｆ成分値を加算し、加算結果をα値とする。なお、本実施形態では、２次元ベクトルの少なくとも一方の成分の値は“０”であるので、ｎ成分値とｆ成分値とを加算した結果をα値とすることは、ｎ成分値およびｆ成分値のうちで大きい方の値をα値とすることと同じ意味である。ステップＳ６で算出された各画素のα値を示すデータは、α値データ６６としてメインメモリに記憶される。
【０１０７】
上記ステップＳ６の処理によって、各画素に対して最終的なα値が設定される。その結果、図１８に示す領域７２内の画素についてはα値は“０”となる。一方、領域７２外の画素については、α値は“０”でない値となる。つまり、第１オブジェクト５１と第２オブジェクト５２との境界Ｌ１付近の画素については、“０”でないα値が設定される。
【０１０８】
ステップＳ７において、ＣＰＵ１０は、基準画像とぼかし画像とをα値に基づいて合成する。具体的には、ＣＰＵ１０は、基準画像データ６２、ぼかし画像データ６３およびα値データ６６を参照して、次の式（９）に従って表示画像の各画素の色値Ｃを算出する。
Ｃ＝Ｃ１×（１−α）＋Ｃ２×α  …（９）
上式（９）において、変数Ｃ１は基準画像の色値を示し、変数Ｃ２はぼかし画像の色値を示す。表示画像の各画素について上式（９）を用いて色値を算出する処理を行うことによって、表示画像のデータが得られる。
【０１０９】
ここで、図１８に示した領域７２については、α値は“０”であるので、表示画像においては基準画像がそのまま反映される。一方、領域７２以外の領域については、α値が“０”でないので、表示画像はぼかし画像が反映された画像になる。したがって、第１オブジェクト５１と第２オブジェクト５２との境界Ｌ１付近では、ぼかし画像が反映されて表示画像が生成されるので、表示画像では境界Ｌ１がぼけて表現されることになる。すなわち、本実施形態によれば、図１０に示すような、境界Ｌ１がぼけた表示画像を得ることができる。
【０１１０】
続くステップＳ８において、ＣＰＵ１０は、ステップＳ７において合成された表示画像を描画する。すなわち、ステップＳ７の処理で得られた表示画像のデータを、ＶＲＡＭ１１ｄに設けられるフレームバッファに書き込む。これによって、表示画像がテレビ２に表示される。
【０１１１】
続くステップＳ９において、ＣＰＵ１０は、画像生成処理を終了するか否かを判定する。この判定処理は、例えば、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップＳ９の判定結果が否定である場合、ステップＳ１の処理が再度実行される。以降、ステップＳ９で画像生成処理を終了すると判定されるまで、ステップＳ１〜Ｓ９の処理が繰り返し実行される。一方、ステップＳ９の判定結果が肯定である場合、ＣＰＵ１０は、図１２に示す画像生成処理を終了する。以上で、画像生成処理の説明を終了する。
【０１１２】
以上のように、本実施形態によれば、基準画像の各画素のＺ値に応じて各画素のα値を仮設定した後、仮設定された各α値を補正（平滑化）する。これによって、ピントが合っているオブジェクト（第２オブジェクト５２）と、ピントが合っていないオブジェクト（第１オブジェクト５１）との境界部分において、第１オブジェクト５１の輪郭が明確に表れることを防止することができる（図１０）。したがって、ゲーム装置３は、よりリアルにフォーカシングされた画像を生成することができる。
【０１１３】
また、本実施形態では、仮設定されるα値（α情報）を２次元ベクトルを用いて表現することによって、Ｚ値が焦点距離よりも小さい画素のみを処理対象として、α値の補正処理（ステップＳ５）を行うようにした。つまり、Ｚ値が焦点距離よりも大きい画素についてはα値の補正処理が行われないので、図１０に示すように、第２オブジェクト５２と第３オブジェクト５３との境界Ｌ２付近については、第２オブジェクト５２の輪郭が明確に表れる。したがって、焦点距離に位置する第２オブジェクト５２よりも手前に位置する第１オブジェクト５１については、ぼけた輪郭が第２オブジェクト５２側に重畳するように表現されるとともに、第２オブジェクトよりも奥に位置する第３オブジェクト５３については、ぼけた輪郭が第２オブジェクト５２側に重畳しないように表現される。すなわち、基準となるオブジェクトよりも手前側に位置するオブジェクトと、奥側に位置するオブジェクトとのそれぞれについて、ぼけた輪郭を自然に表現することができ、よりリアルが画像を生成することができる。
【０１１４】
（α情報の変形例（１））
なお、他の実施形態においては、α情報を２次元ベクトルとせずに、１つの値（スカラー値）として取り扱うようにしてもよい。すなわち、ステップＳ４においては、Ｚ値に応じて算出されるα値の値をそのままα情報としてもよい。このとき、ステップＳ５の補正処理は全ての画素を処理対象として行われる。これによれば、α情報のデータ量を削減することができるとともに、２次元ベクトルからα値を算出する処理（ステップＳ６）が不要となるので、画像生成処理を簡易化することができる。なお、図１９は、全ての画素を処理対象として補正処理を行った場合に生成される表示画像を示す図である。この場合、図１９に示すように、第２オブジェクト５２と第３オブジェクト５３との境界Ｌ２についても第３オブジェクト５３の輪郭がぼかして表現される。したがって、この境界Ｌ２を明確に表現することを目的とする場合には、上記実施形態に示したように、Ｚ値が焦点距離よりも小さい画素のみを処理対象として補正処理を行うようにする必要がある。
【０１１５】
（α情報の変形例（２））
また、他の実施形態においては、正負の符号を付したα値をα情報として用いてもよい。図２０は、本実施形態の変形例において用いられる、画素のＺ値と当該画素に設定されるα情報との関係を示す図である。図２０に示す横軸はＺ値を示し、縦軸はα値を示している。図２０に示すように、α値は、Ｚ値が上記焦点距離Ｚ１である場合にα＝０となり、−１≦α≦１の範囲で、焦点距離Ｚ１からＺ値を引いた差分が大きくなるほど値が大きくなるように算出される。これによれば、Ｚ値が焦点距離Ｚ１よりも小さい画素についてはα値が負の数となり、Ｚ値が焦点距離Ｚ１よりも大きい画素についてはα値が正の数となるので、Ｚ値が焦点距離Ｚ１よりも小さい場合と大きい場合とを区別することができる。なお、正負の符号を付したα値をα情報として用いる場合、ＣＰＵ１０は、α値が負である画素のみを処理対象として上記ステップＳ５の補正処理を行う。そして、上記ステップＳ６においては、α値の絶対値を算出して最終的なα値とする。これによれば、ゲーム装置３は、上記実施形態と同様の表示画像（図１０）を得ることができる。なお、本変形例の場合、ステップＳ５においてはα値が負の値となる画素を抽出する処理が必要となるので、２次元ベクトルを用いる方がステップＳ５の処理を簡易化することができる。
【０１１６】
（α情報の変形例（３））
上記実施形態では、α情報として２次元ベクトルを用い、２次元ベクトルは、少なくとも一方の成分が“０”となるように設定された（ステップＳ４）。具体的には、Ｚ値が焦点距離Ｚ１よりも大きい場合には、ｎ成分が“０”に設定され、ｆ成分にα値が設定された。ここで、他の実施形態では、Ｚ値が焦点距離よりも大きい場合であっても、ｎ成分に“０”でない所定の値を設定する（ｆ成分にはα値を設定する）ようにしてもよい。このとき、ステップＳ５において、ＣＰＵ１０は、Ｚ値が焦点距離よりも小さい画素だけでなく、ｎ成分に“０”でない値が設定された画素をも処理対象として補正処理を行うことになる。これによれば、補正処理の対象とする画素を設計者が容易に指定することができる。例えば、上記所定の値としてｆ成分の値に応じた値（例えばｆ成分のｘ％の値）を設定するようにすれば、図１０に示す第２オブジェクト５２と第３オブジェクト５３との境界Ｌ２を若干ぼかして表現することができる。また、各画素のうちで、Ｚ値が所定値（焦点距離よりも大きい値でもよい）よりも小さい画素については、ｎ成分にα値を設定するようにしてもよい。このように、α情報として２次元ベクトルを用いることによって、補正処理の対象となる画素を容易に指定することができる。
【０１１７】
（補正処理の変形例）
上記実施形態においては、ＣＰＵ１０は、ステップＳ５の補正処理においては、各画素のｎ成分値を平滑化することによってα値を補正した。ここで、ステップＳ５の補正処理は、α値の差が所定値以上である隣接する２つの画素のうちのα値が小さい方の画素についてα値を増加することができればよく、補正の具体的な処理は平滑化処理に限定されない。図２１は、補正処理の変形例を説明するための図である。補正処理において、ＣＰＵ１０は、図１６に示す処理に代えて図２１に示す処理を行うようにしてもよい。具体的には、補正処理において、ＣＰＵ１０は、α値の差が所定値以上である隣接する２つの画素Ｐ３およびＰ４のうち、α値が小さい方の画素Ｐ４について、α値を増加する（具体的には、画素Ｐ３のα値と同じ値とする）ようにしてもよい。また、画素Ｐ４とともにそれに隣接する画素Ｐ５のα値をも増加するようにしてもよい。これによっても、上記実施形態と同様の表示画像（図１０）を生成することができる。
【０１１８】
具体的には、ステップＳ５において、ＣＰＵ１０は、まず、基準画像の各画素のうちから、補正対象画素を選出する。ＣＰＵ１０は、例えば、隣接するいずれかの画素よりもα値が小さく、かつ、当該隣接する画素とのα値の差が所定値以上であることを条件として各画素のうちから補正対象画素を選出する。なお、上記条件に加えて、α値が所定値以下であることをさらなる条件としてもよい。また、他の実施形態では、隣接するいずれかの画素よりもα値が小さく、かつ、α値が所定値以下であることを条件としてもよい。次に、ＣＰＵ１０は、選出された補正対象画素のα値を増加させるように補正を行う。具体的には、補正前の値に予め定められた定数を加えるようにα値を補正してもよいし、隣接する画素のα値と等しい値となるようにα値を補正してもよい。
【０１１９】
（画像生成処理フローの変形例）
上記実施形態においては、ゲーム装置３は、基準画像の各画素に設定されたＺ値に応じたα値を仮設定し、仮設定されたα値を補正することによって最終的なα値を得た。ここで、他の実施形態においては、基準画像の各画素に設定されたＺ値を補正し、補正したＺ値に応じたα値を算出するようにしてもよい。図２２は、本実施形態の変形例における画像生成処理の流れを示すフローチャートである。なお、図２２においては、図１２と同じ処理ステップについては同じステップ番号を付し、詳細な説明を省略する。
【０１２０】
図２２に示す変形例においては、ステップＳ３の次のステップＳ１１において、ＣＰＵ１０は、基準画像の各画素に設定されたＺ値を補正する。ステップＳ１１の補正処理では、Ｚ値の差が所定値以上である隣接する２つの画素のうち、Ｚ値が上記焦点距離に近い方の画素のＺ値が、当該２つの画素の他方の画素のＺ値に近づける方向に変化するように補正される。
【０１２１】
上記補正処理の具体的な方法としては、各画素のＺ値に対して平滑化処理を行う方法が考えられる。さらにこのとき、Ｚ値が焦点距離以下である画素を対象として平滑化処理を行うことによって、上記実施形態と同様の表示画像（図１０）を生成することができる。具体的には、ＣＰＵ１０は、Ｚ値が焦点距離以下の画素については、第１成分を当該Ｚ値とするとともに第２成分を“０”とする２次元ベクトルを設定し、Ｚ値が焦点距離よりも大きい画素については、第１成分を“０”とするとともに第２成分を当該Ｚ値とする２次元ベクトルを設定するようにしてもよい。このとき、ＣＰＵ１０は、算出された２次元ベクトルの第１成分について平滑化を行い、平滑化を行った後の２次元ベクトルの第１成分と第２成分とを加算することによって補正後のＺ値を得ることができる。
【０１２２】
また、上記補正処理の他の方法としては、基準画像の各画素のうちから補正対象画素を選出し、選出された画素のＺ値を補正する方法が考えられる。具体的には、ＣＰＵ１０は、上記焦点距離を含む所定範囲内の値をとるＺ値（例えば、上記焦点距離との差が所定値以内となるＺ値）が設定される画素であって、隣接する画素のＺ値との差が所定値以上となる画素を補正対象画素として選出する。そして、選出された補正対象画素のＺ値を、例えば、予め定められた所定値だけ増加する、または、隣接する画素のＺ値と同じ値にすることによって、補正後のＺ値を得ることができる。
【０１２３】
ステップＳ１１の次のステップＳ１２において、ＣＰＵ１０は、上記ステップＳ１１における処理後のＺ値に応じて各画素のα値を設定する。具体的には、α値は、Ｚ値が上記焦点距離である場合にα＝０となり、α＝１を上限として、Ｚ値と焦点距離との差分が大きくなるほど値が大きくなるように算出される。本変形例においては、ステップＳ１２の後、ステップＳ７〜Ｓ９の処理が実行される。以上に説明した変形例によっても、上記実施形態と同様の表示画像（図１０）を生成することができる。
【０１２４】
なお、上記実施形態においては、フォーカシングされた画像を生成する画像生成処理がゲーム装置３におけるゲーム処理中に実行される場合を例として説明したが、本発明は、ゲーム用途に用いられる場合に限定されず、３次元の仮想空間の画像を生成する種々の画像処理装置に適用することが可能である。
【産業上の利用可能性】
【０１２５】
本発明は、フォーカシングされた画像をよりリアルに生成すること等を目的として、例えばゲーム装置やゲームプログラム等に利用することが可能である。
【図面の簡単な説明】
【０１２６】
【図１】ゲームシステム１の外観図
【図２】ゲーム装置３の機能ブロック図
【図３】コントローラ５の外観構成を示す斜視図
【図４】コントローラ５の外観構成を示す斜視図
【図５Ａ】コントローラ５の内部構造を示す図
【図５Ｂ】コントローラ５の内部構造を示す図
【図６】コントローラ５の構成を示すブロック図
【図７】コントローラ５を用いてゲーム操作を行うときの様子を示す図解図
【図８】基準画像の一例を示す図
【図９】ぼかし画像の一例を示す図
【図１０】本実施形態の画像生成処理によって生成される画像の一例を示す図
【図１１】ゲーム装置３のメインメモリに記憶される主なデータを示す図
【図１２】ゲーム装置３において実行される処理の流れを示すメインフローチャート
【図１３】基準画像の各画素の一部を示す図
【図１４】画素のＺ値と当該画素に設定されるα情報との関係を示す図
【図１５】補正処理が行われる前における、一列に並んだ各画素に設定されるｎ成分値を示す図
【図１６】補正処理を行った後における、各画素に設定されるｎ成分値を示す図
【図１７】図８に示す基準画像の各画素に設定された補正前のα情報の分布を示す図
【図１８】図８に示す基準画像の各画素に設定された補正後のα情報の分布を示す図
【図１９】全ての画素を処理対象として補正処理を行った場合に生成される表示画像を示す図
【図２０】本実施形態の変形例において用いられる、画素のＺ値と当該画素に設定されるα情報との関係を示す図
【図２１】補正処理の変形例を説明するための図
【図２２】本実施形態の変形例における画像生成処理の流れを示すフローチャート
【図２３】従来の方法によって生成された、フォーカシングされた画像の例を示す図
【符号の説明】
【０１２７】
１    ゲームシステム
２    テレビ
３    ゲーム装置
４    光ディスク
５    コントローラ
６    マーカ部
１０    ＣＰＵ
１１ｃ  ＧＰＵ
１１ｅ  内部メインメモリ
１２    外部メインメモリ
５１〜５３  オブジェクト
【図１】
2008225767.tif 000003
【図２】
2008225767.tif 000004
【図３】
2008225767.tif 000005
【図４】
2008225767.tif 000006
【図５Ａ】
2008225767.tif 000007
【図５Ｂ】
2008225767.tif 000008
【図６】
2008225767.tif 000009
【図７】
2008225767.tif 000010
【図８】
2008225767.tif 000011
【図９】
2008225767.tif 000012
【図１０】
2008225767.tif 000013
【図１１】
2008225767.tif 000014
【図１２】
2008225767.tif 000015
【図１３】
2008225767.tif 000016
【図１４】
2008225767.tif 000017
【図１５】
2008225767.tif 000018
【図１６】
2008225767.tif 000019
【図１７】
2008225767.tif 000020
【図１８】
2008225767.tif 000021
【図１９】
2008225767.tif 000022
【図２０】
2008225767.tif 000023
【図２１】
2008225767.tif 000024
【図２２】
2008225767.tif 000025
【図２３】
2008225767.tif 000026