(57)【要約】【課題】三次元的一貫性のないシーンを効率よく表現し、かつその上で簡易で柔軟なシミュレーションを行うことが可能な画像処理装置を提供する。【解決手段】シーン画像の１のピクセルに存在する物体の奥行き方向の位置を相対Ｚ値としてピクセル毎に算出し、１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値としてピクセル毎に算出し、相対Ｚ値およびオフセットＺ値をシーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成部と、相対Ｚ値およびオフセットＺ値に基づいて物体の形状および位置関係を認識することにより、シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算部と、シミュレーション結果がシーン画像に表現された画像を生成するシミュレーション画像生成部と、を備える画像処理装置である。【選択図】図１
2010152870.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出し、前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出し、前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成部と、
前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算部と、
前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成部と、
を備える画像処理装置。
【請求項２】
前記シーン画像は、所定の三次元形状の物体を含む三次元データを所定の方向からキャプチャした画像であり、
前記シミュレーション用データ生成部は、前記三次元データに基づいて前記相対Ｚ値および前記オフセットＺ値を算出する、請求項１に記載の画像処理装置。
【請求項３】
前記シミュレーション用データ生成部は、前記シーン画像の所定の１のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置からの相対距離を前記相対Ｚ値として算出し、前記シーン画像の所定の１のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置との差を前記オフセットＺ値として算出する、請求項２に記載の画像処理装置。
【請求項４】
前記シミュレーション結果演算部は、前記シーン画像の所定の第１ピクセルおよび該第１ピクセルと隣接しない少なくとも１以上の第２ピクセルに同一物体が存在する場合において、前記第１ピクセルと前記第２ピクセルとの間に存在する物体の最短経路のピクセルに設定されている前記オフセットＺ値を辿っていくことにより、前記第１ピクセルにおける物体と前記第２ピクセルにおける物体との位置関係を算出する、請求項３に記載の画像処理装置。
【請求項５】
前記第１ピクセルに存在する物体の奥行き方向の位置と、前記第２ピクセルに存在する物体の奥行き方向の位置との差がユーザにより任意に設定された場合、該差を修正オフセットＺ値として前記シミュレーション用データに記録するシミュレーション用データ修正部をさらに備え、
前記シミュレーション結果演算部は、前記第１ピクセルに存在する物体と前記第２ピクセルにおける物体との位置関係を、優先的に前記修正オフセット値に基づいて算出する、請求項４に記載の画像処理装置。
【請求項６】
前記シミュレーション結果演算部は、少なくともシーン画像上に設定されたパーティクルの発生位置、該発生位置からのパーティクルの初速度の大きさ、および重力方向と該重力の大きさに基づいて、前記発生位置からのパーティクルの流れを第１のパーティクル軌道として算出し、前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記第１のパーティクル軌道を前記物体との接触位置で少なくとも１回以上反射させた第２のパーティクル軌道を算出し、
前記シミュレーション画像生成部は、前記シミュレーション結果演算部によって算出された第２のパーティクル軌道に基づいて、前記シーン画像にパーティクルが表現された画像を生成する請求項５に記載の画像処理装置。
【請求項７】
前記シミュレーション結果演算部は、シーン画像においてパーティクルが発生する領域が設定された場合、該領域内の発生位置から発生するパーティクル毎に前記第２のパーティクル軌道を算出する、請求項６に記載の画像処理装置。
【請求項８】
前記シミュレーション結果演算部は、ユーザによりシーン画像に存在する物体の少なくとも１以上の領域が反射領域として設定された場合、前記三次元データに基づいて前記反射領域の物体の法線情報を算出し、前記反射領域で前記第２のパーティクル軌道のパーティクルをさらに反射させた第３のパーティクル軌道を算出する、請求項７に記載の画像処理装置。
【請求項９】
前記シミュレーション結果演算部は、前記少なくとも１以上の反射領域の中から任意の反射位置を選択し、該反射位置で前記第２のパーティクル軌道のパーティクルを反射させて前記第３のパーティクル軌道を算出する、請求項８に記載の画像処理装置。
【請求項１０】
前記シミュレーション結果演算部は、前記第２のパーティクルの軌道がユーザによって設定された前記反射位置へ到達するように、パーティクルの軌道を修正して前記第３のパーティクル軌道を算出する、請求項９に記載の画像処理装置。
【請求項１１】
前記シミュレーション結果演算部は、前記第２のパーティクル軌道の所定位置における時間をｔ０、前記第２のパーティクル軌道がユーザによって設定された前記反射位置に到達する時間をｔ１、該反射位置をＸ１と定義し、
前記第２のパーティクル軌道で前記Ｘ１に最も近い位置Ｘ’を算出し、
前記ｔ０〜ｔ１の各時間ステップで下記式（１）により算出された値を加算することにより前記第２のパーティクル記号がユーザによって設定された前記反射位置へ到達するように前記第２のパーティクル軌道を修正して、該修正された第２のパーティクル軌道のパーティクルを反射させて前記第３のパーティクル軌道を算出する、請求項１０に記載の画像処理装置。
【数１０】
2010152870.tif 000012
【請求項１２】
シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出する相対Ｚ値算出ステップと、
前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出するオフセットＺ値算出ステップと、
前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成ステップと、
前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算ステップと、
前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成ステップと、
を備える画像処理方法。
【請求項１３】
シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出する相対Ｚ値算出処理と、
前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出するオフセットＺ値算出処理と、
前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成処理と、
前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算処理と、
前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成処理と、
をコンピュータに実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータグラフィックス（ＣＧ：Ｃｏｍｕｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）やバーチャルリアリティ（ＶＲ：Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）に関する技術力の向上に伴い、特にデザイナーや研究者等によって様々なシミュレーションが行われている。例えば、所定のシーン画像において擬似的に水、炎、煙等の動きを表現させるパーティクルシミュレーションや、視点からの仮想光線とシーン内の物体との交点等を算出することによりレンダリングを行うレイトレーシングなどが広く知られている。
【０００３】
ここで、ある物体（被写体）の三次元データに基づくシーン画像において三次元的一貫性のあるシミュレーションを行う場合、三次元データに基づく演算処理により比較的容易にシミュレーションを行うことができる。ここでいう三次元的一貫性とは、形状の座標や接続関係に破綻がないことであり、直感的には、現実世界に存在可能な形状と考えてもよい。
【０００４】
また、シミュレーションに利用するデータ構造として、非特許文献１〜２に記載のように、ポイントベースグラフィックスと呼ばれる、シーンを点集合で表現する手法が知られている。さらにこれを一歩進め、非特許文献３〜４に記載のように、この点集合を、レンダリングする際のピクセルの位置に整列したデータ構造も提案されている。このようなデータ構造は、ＬＤＩ（Ｌａｙｅｒｅｄ  Ｄｅｐｔｈ  Ｉｍａｇｅ）とも言われている。
【０００５】
このＬＤＩは、シーンを構成する点集合を、レンダリング時のピクセル位置に整列したものであり、各点は視点からその点までの距離を保持している。そのため、このデータ構造は、距離付き画像(デプスマップ)を多層にしたものと考えることもできる。既存の距離つき画像では視点から最も近い点の情報のみが格納されていたのに対し、ＬＤＩではシーンを構成する全ての形状情報を持っているのが特徴である。したがって、被写体の形状や距離等が三次元データ等に基づいて正確に求めることができる場合には、ＬＤＩに基づいて、三次元的一貫性のあるシーンのシミュレーションを比較的容易に行うこともできる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ＰＦＩＳＴＥＲ  Ｈ．、ＺＷＩＣＫＥＲ  Ｍ．、ＶＡＮ  ＢＡＲＲ  Ｊ．、ＡＮＤ  ＧＲＯＳＳ  Ｍ．２０００．Ｓｕｒｆｅｌｓ：ｓｕｒｆａｃｅ  ｅｌｅｍｅｎｔｓ  ａｓ  ｒｅｎｄｅｒｉｎｇ  ｐｒｉｍｉｔｉｖｅｓ．Ｉｎ  Ｐｒｏｃ．Ｓｉｇｇｒａｐｈ‘００、ＡＣＭ、３３５−３４２．
【非特許文献２】ＡＬＥＸＡ  Ｍ．、ＧＲＯＳＳ  Ｍ．、ＰＡＵＬＹ  Ｍ．、ＰＦＩＳＴＥＲ  Ｈ．、ＳＴＡＭＭＩＮＧＥＲ  Ｍ．、ＡＮＤ  ＺＷＩＣＫＥＲ  Ｍ．２００４．Ｐｏｉｎｔ−ｂａｓｅｄ  ｃｏｍｐｕｔｅｒ  ｇｒａｐｈｉｃｓ．Ｉｎ  ＳＩＧＧＲＡＰＨ‘０４  Ｃｏｕｒｓｅ  Ｎｏｔｅｓ、ＡＣＭ，Ａｒｔｉｃｌｅ  Ｎｏ．７．
【非特許文献３】ＳＨＡＤＥ Ｊ．、ＧＯＲＴＬＥＲ Ｓ．、ＨＥＬ.、ＡＮＤ  ＳＺＥＬＩＳＫＩ Ｒ．１９９８．Ｌａｙｅｒｅｄ  Ｄｅｐｔｈ  Ｉｍａｇｅｓ．Ｉｎ  Ｐｒｏｃ．Ｓｉｇｇｒａｐｈ‘９８、ＡＣＭ、２３１−２４２．
【非特許文献４】ＮＡＭＢＯＯＲＩ Ｒ．、ＴＥＨ Ｈ．Ｃ．、ＡＮＤ  ＨＵＡＮＧＺ．２００４．Ａｎ  ａｄａｐｔｉｖｅ  ｓａｍｐｌｉｎｇ  ｍｅｔｈｏｄ  ｆｏｒ  ｌａｙｅｒｅｄ  ｄｅｐｔｈ  ｉｍａｇｅ．  Ｉｎ  ＣＧＩ‘０４：Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ、ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ、Ｗａｓｈｉｎｇｔｏｎ，ＤＣ、ＵＳＡ、２０６−２１３．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、三次元的一貫性のないシミュレーションを行いたい場合、すなわち、局所的には三次元的な立体構造を持っていても、シーン全体の形状が一意に再構成できない(現実世界にその形状を作り出すことができない)場合も多い。例えば、ＣＧによる映像、ポスター、トリックアートなどにおいては、三次元的な一貫性を持たないシーンがデザイナーによって着想され、かつそのようなシーンの上でＣＧを用いてシミュレーションを行なうような演出が必要な場合も非常に多い。なぜなら、人間は映像に関して、局所的な一貫性には大きな注意を払うが、大域的な非一貫性には鈍感であり、これを利用した映像には独特の魅力があるからである。
【０００８】
このような場合、従来は、シーンを複数の(一貫性のある)三次元データに分割して構築したり、特殊なシミュレーションの設定により見かけ上意図する効果を得ようとしたりする必要があった。したがって、シーンの一貫性の有無にかかわらず、シーンの再構成やシミュレーションの場当たり的設定を必要とすることなく、直感的なシミュレーションを簡易かつ柔軟に行えるような方法が所望されている。
【０００９】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、三次元的一貫性のないシーンを効率よく表現し、かつその上で簡易で柔軟なシミュレーションを行うことが可能な、新規かつ改良された画像処理装置、画像処理方法および画像処理プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある観点によれば、シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出し、前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出し、前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成部と、前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算部と、前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成部と、を備える画像処理装置が提供される。
【００１１】
係る構成により、画像処理装置のシミュレーション用データ生成部は、シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出することができる。また、シミュレーション用データ生成部は、前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出することができる。これによりシミュレーション用データ生成部は、前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成することができる。また、画像処理装置のシミュレーション結果演算部は、前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算することができる。さらに、画像処理装置の画像生成部は、前記シミュレーション結果が前記シーン画像に表現された画像を生成することができる。
【００１２】
また、前記シーン画像は、所定の三次元形状の物体を含む三次元データを所定の方向からキャプチャした画像であり、前記シミュレーション用データ生成部は、前記三次元データに基づいて前記相対Ｚ値および前記オフセットＺ値を算出することもできる。
【００１３】
また、前記シミュレーション用データ生成部は、前記シーン画像の所定の１のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置からの相対距離を前記相対Ｚ値として算出し、前記シーン画像の所定の１のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置との差を前記オフセットＺ値として算出することもできる。
【００１４】
また、前記シミュレーション結果演算部は、前記シーン画像の所定の第１ピクセルおよび該第１ピクセルと隣接しない少なくとも１以上の第２ピクセルに同一物体が存在する場合において、前記第１ピクセルと前記第２ピクセルとの間に存在する物体の最短経路のピクセルに設定されている前記オフセットＺ値を辿っていくことにより、前記第１ピクセルにおける物体と前記第２ピクセルにおける物体との位置関係を算出することもできる。
【００１５】
また、前記第１ピクセルに存在する物体の奥行き方向の位置と、前記第２ピクセルに存在する物体の奥行き方向の位置との差がユーザにより任意に設定された場合、該差を修正オフセットＺ値として前記シミュレーション用データに記録するシミュレーション用データ修正部をさらに備えてもよい。この場合、前記シミュレーション結果演算部は、前記第１ピクセルに存在する物体と前記第２ピクセルにおける物体との位置関係を、優先的に前記修正オフセット値に基づいて算出することもできる。
【００１６】
また、前記シミュレーション結果演算部は、少なくともシーン画像上に設定されたパーティクルの発生位置、該発生位置からのパーティクルの初速度の大きさ、および重力方向と該重力の大きさに基づいて、前記発生位置からのパーティクルの流れを第１のパーティクル軌道として算出し、前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記第１のパーティクル軌道を前記物体との接触位置で少なくとも１回以上反射させた第２のパーティクル軌道を算出してもよい。この場合、シミュレーション画像生成部は、前記シミュレーション結果演算部によって算出された第２のパーティクル軌道に基づいて、前記シーン画像にパーティクルが表現された画像を生成することもできる。
【００１７】
また、前記シミュレーション結果演算部は、シーン画像においてパーティクルが発生する領域が設定された場合、該領域内の発生位置から発生するパーティクル毎に前記第２のパーティクル軌道を算出することもできる。
【００１８】
また、前記シミュレーション結果演算部は、ユーザによりシーン画像に存在する物体の少なくとも１以上の領域が反射領域として設定された場合、前記三次元データに基づいて前記反射領域の物体の法線情報を算出し、前記反射領域で前記第２のパーティクル軌道のパーティクルをさらに反射させた第３のパーティクル軌道を算出することもできる。
【００１９】
また、前記シミュレーション結果演算部は、前記少なくとも１以上の反射領域の中から任意の反射位置を選択し、該反射位置で前記第２のパーティクル軌道のパーティクルを反射させて前記第３のパーティクル軌道を算出することもできる。
【００２０】
また、前記シミュレーション結果演算部は、前記第２のパーティクルの軌道がユーザによって設定された前記反射位置へ到達するように、パーティクルの軌道を修正して前記第３のパーティクル軌道を算出することもできる。
【００２１】
また、前記シミュレーション結果演算部は、前記第２のパーティクル軌道の所定位置における時間をｔ０、前記第２のパーティクル軌道がユーザによって設定された前記反射位置に到達する時間をｔ１、該反射位置をＸ１と定義し、前記第２のパーティクル軌道で前記Ｘ１に最も近い位置Ｘ’を算出し、前記ｔ０〜ｔ１の各時間ステップで下記式（１）により算出された値を加算することにより前記第２のパーティクル記号がユーザによって設定された前記反射位置へ到達するように前記第２のパーティクル軌道を修正して、該修正された第２のパーティクル軌道のパーティクルを反射させて前記第３のパーティクル軌道を算出することもできる。
【数１】
2010152870.tif 000003
【００２２】
また、上記課題を解決するために、本発明の別の観点によれば、シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出する相対Ｚ値算出ステップと、前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出するオフセットＺ値算出ステップと、前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成ステップと、前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算ステップと、前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成ステップと、を備える画像処理方法が提供される。
【００２３】
また、上記課題を解決するために、本発明の別の観点によれば、シミュレーションを行う二次元のシーン画像の所定の１のピクセルに存在する物体の少なくとも１以上の奥行き方向の位置を相対Ｚ値として前記シーン画像を構成するピクセル毎に算出する相対Ｚ値算出処理と、前記シーン画像の所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットＺ値として、前記シーン画像を構成するピクセル毎に算出するオフセットＺ値算出処理と、前記相対Ｚ値および前記オフセットＺ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成処理と、前記シミュレーション用データに含まれる前記相対Ｚ値および前記オフセットＺ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算処理と、前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成処理と、をコンピュータに実行させる画像処理プログラム。
【発明の効果】
【００２４】
以上説明したように本発明によれば、三次元的一貫性のないシーンを効率よく表現し、かつその上で簡易で柔軟なシミュレーションを行うことが可能な、新規かつ改良された画像処理装置、画像処理方法および画像処理プログラムが提供される。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１実施形態に係る画像処理装置１００の機能構成を示すブロック図である。
【図２】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す説明図である。
【図３】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す別の説明図である。
【図４】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す別の説明図である。
【図５】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す別の説明図である。
【図６】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す別の説明図である。
【図７】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す別の説明図である。
【図８】第１実施形態において、相対Ｚ値およびオフセットＺ値の概念を示す別の説明図である。
【図９】第１実施形態において、画像処理装置１００によるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。
【図１０】第１実施形態において、画像処理装置１００の表示部１０４に表示されるシーン画像の表示例である。
【図１１】第１実施形態において、重力情報の設定画面の一例を示す説明図である。
【図１２】第１実施形態において、重力情報の設定画面の一例を示す説明図である。
【図１３】第１実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。
【図１４】第１実施形態において、任意の隣接しないピクセル間のオフセットＺ値を算出する方法の概念を示す説明図である。
【図１５】第１実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図１６】第１実施形態において、隣接していないピクセル間の奥行き情報を設定する概念を示す説明図である。
【図１７】第１実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図１８】第１実施形態において、ＯＬＤＩを利用した光線追跡の概念を示す説明図である。
【図１９】第１実施形態において、ＯＬＤＩを利用した光線追跡の概念を示す別の説明図である。
【図２０】第１実施形態において、ＯＬＤＩを利用した光線追跡の概念を示す別の説明図である。
【図２１】第１実施形態において、オフセットＺ値の一貫性を保つ方法の概念を示す説明図である。
【図２２】本発明の第２実施形態に係る情報処理装置６００の機能構成を示すブロック図である。
【図２３】第２実施形態に係る情報処理装置６００によるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。
【図２４】第２実施形態において、情報処理装置６００の表示部１０４に表示される色画像の一例を示す説明図である。
【図２５】第２実施形態において、法線情報の設定画面の一例を示す説明図である。
【図２６】第２実施形態において、法線情報の設定画面の一例を示す説明図である。
【図２７】第２実施形態において、法線情報の設定画面の一例を示す説明図である。
【図２８】第２実施形態において、法線情報の設定画面の一例を示す説明図である。
【図２９】第２実施形態において、球体状の法線情報の設定方法の概念を示す説明図である。
【図３０】第２実施形態において、重力方向と該重力の大きさの設定方法の概念を示す説明図である。
【図３１】第２実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。
【図３２】第２実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。
【図３３】第２実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。
【図３４】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図３５】第２実施形態において、パーティクル反射領域の設定画面の一例を示す説明図である。
【図３６】第２実施形態において、パーティクル反射領域の設定画面の一例を示す説明図である。
【図３７】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図３８】第２実施形態において、パーティクルシの軌道修正の概念を示す説明図である。
【図３９】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図４０】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図４１】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図４２】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図４３】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図４４】第２実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。
【図４５】画像処理装置１００、６００のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２７】
なお、説明は以下の順序で行うものとする。
１．本発明の実施形態の概要
２．第１実施形態（ＯＬＤＩを利用したパーティクルシミュレーション）
２−１．第１実施形態に係る画像処理装置１００の機能構成
２−２．奥行き情報の算出処理
２−３．画像処理装置１００によるシミュレーションの処理フロー
２−４．変形例１（ＯＬＤＩを利用した種々のシミュレーション）
２−５．変形例２（オフセットＺ値の一貫性を保つ応用用法）
３．第２実施形態（法線情報を利用したパーティクルシミュレーション）
３−１．第２実施形態に係る画像処理装置６００の機能構成
３−２．画像処理装置６００によるパーティクルシミュレーションの処理フロー
３−３．パーティクルの軌道修正処理
３−４．画像処理装置６００によるパーティクルシミュレーションの実施例
４．画像処理装置１００、６００のハードウェア構成
５．まとめ
【００２８】
＜１．本発明の実施形態の概要＞
本発明の詳細を説明するにあたり、まず本発明の各種実施形態の概要について説明する。
【００２９】
通常、三次元的に一貫的なシーンにおいて、水、炎、煙等の流れを表現するパーティクルシミュレーションを行う場合、シーン内に存在する物体の三次元形状に基づいてパーティクルの反射位置や軌道が計算され、三次元的一貫性のあるシミュレーション結果が得られる。しかしながら、上述したように、デザイナーや研究者等は、デザイン上の欲求、あるいは絵画や脳内映像の実験のために、シーン内において、三次元的に一貫性のないシミュレーションを実行したい場合も多い。そのため、シーン内の物体の実際の三次元形状や位置関係を局所的にのみ定義した形状表現に変換した上で、パーティクルの反射位置や軌道を局所的に計算したいことも多い。なぜなら、人間は映像に関して、局所的な一貫性には大きな注意を払うが、大域的な非一貫性には鈍感であるからである。例えば、ＣＧによる映像、ポスター、トリックアートなどの分野では特にこのようなシミュレーションが強く要望されている。
【００３０】
しかしながら、そのようなシミュレーションを行うには、場当たり的にシーンを一貫性のあるパーツに分解したり、シミュレーションも発見的かつ非直感的なセットアップを行って期待する結果を得るようにしたりしなければならない。したがって、直感的でない三次元形状を作成する困難さや、処理負担の増加、シミュレーション処理の複雑化を招いてしまうという問題があった。また、そもそもシーン内にうまく物体を表現できない場合も多く、このような場合に簡易的かつ柔軟性のあるシミュレーションを行うことができないという問題もあった。
【００３１】
本発明の各実施形態に係る画像処理装置は、このような問題点を解消することができる。具体的には、本発明の第１実施形態に係る画像処理装置１００は、シミュレーションに利用するデータ構造としてＯＬＤＩ（Ｏｆｆｓｅｔ  Ｌａｙｅｒｅｄ  Ｄｅｐｔｈ  Ｉｍａｇｅ）を利用することにより、三次元的一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができる。ここで、ＯＬＤＩとは、シミュレーションを行うシーン画像を構成するピクセル毎に、物体の奥行き方向の相対位置を示す「相対Ｚ値」と、隣接するピクセルに存在する物体の奥行き方向の位置との差異を示す「オフセットＺ値」とが設定されたデータ構造である。
【００３２】
画像処理装置１００は、シミュレーションを行う際に、ＯＬＤＩに含まれる相対Ｚ値およびオフセットＺ値を利用することにより、シーン内の物体の形状や位置関係を認識することができる。また、隣接しないピクセル間のオフセットＺ値を任意に変更することにより、三次元データを再構築等することなく、シーン内における物体の局所的な形状や位置関係を容易に変更して、全体として三次元的一貫性のないシミュレーションを簡易かつ柔軟に行うことができる。
【００３３】
また、本発明の第２実施形態に係る画像処理装置６００は、シミュレーションするシーンの二次元画像の各ピクセルに、ＲＧＢの色情報に加えてその点の三次元の面の方向（法線）に関する情報を付加して法線マップとして表現することもできる。画像処理装置６００は、法線情報から三次元シーンを構築することなく、法線情報を直接シミュレーションに利用することにより、ユーザが意図するシミュレーションを実行することができる。この結果、画像処理装置６００は、三次元的な一貫性の有無に捉われることなく、ユーザが所望するシーンを簡易にシミュレーションすることができる。すなわち、画像処理装置６００は、三次元的な一貫性のないシーンにおける複雑なシミュレーションをする場合においても、全体として三次元形状を構築することなく、二次元画像に付加された法線情報を用いてユーザが意図するシミュレーションを実行することができる。
【００３４】
以下、このような特徴を有する本発明の各実施形態の詳細について説明する。
【００３５】
＜２．第１実施形態＞
まず、本発明の第１実施形態に係る画像処理装置１００について説明する。画像処理装置１００は、シーン画像を構成するピクセル毎に対象物体の奥行き情報が設定されたＯＬＤＩ（Ｏｆｆｓｅｔ  Ｌａｙｅｒｅｄ  Ｄｅｐｔｈ  Ｉｍａｇｅ）を利用することにより、簡易的なシミュレーションを可能とすることができる。ここで、「奥行き情報」とは、シミュレーションの対象となるシーン画像を構成する各ピクセルに存在する対象物体の奥行き方向の位置情報を含む情報であり、詳細は図２を参照に後述する。また、「ＯＬＤＩ」とは上記「奥行き情報」を含むシミュレーション用の画像データであり、詳細は後述する。
【００３６】
＜２−１．第１実施形態に係る画像処理装置１００の機能構成＞
図１は、第１実施形態に係る画像処理装置１００の機能構成の一例を示す機能ブロック図である。
【００３７】
図１に示すように、画像処理装置１００は主に、操作入力部１０６と、画像入力部１０８と、ＯＬＤＩ生成部１１０と、パーティクル湧き出し口設定部１１２と、重力情報設定部１１４と、ＯＬＤＩ修正部１１６と、データ記憶部１１８と、パーティクル演算部１２０と、画像生成部１２２と、を含んで構成される。また、画像処理装置１００は、ユーザによる操作を受け付ける操作部１０２と、シミュレーション結果を表示する表示部１０４と、を備えている。
【００３８】
画像処理装置１００を構成するこれらの各機能部は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって制御されることにより各種機能を実行する。また、図１に示した画像処理装置１００の機能構成は、本実施形態を説明する上での一例であり、本発明はこれらに限定されるものではない。すなわち、画像処理装置１００は、図１に示した機能構成以外にも、例えば、撮影機能、通信機能、音声入出力機能、外部入出力機能などの各種機能をさらに備えることも当然に可能である。なお、以下の説明においては、本実施形態の特徴である、ＯＬＤＩを利用したシミュレーションの代表例として、パーティクルシミュレーションに関する処理を中心に、図１に示した機能について説明する。
【００３９】
（操作部１０２）
操作部１０２は、例えば、タッチパネル、キーボード、マウス、ボタン、スイッチ、レバー、ダイヤルなどで構成される。ユーザは、操作部１０２を操作して、画像処理装置１００に対してシミュレーションに必要な処理（画像入力、奥行き情報の算出処理、ＯＬＤＩの生成、シミュレーション処理等）を指示することができる。
【００４０】
なお、操作部１０２は、必ずしも画像処理装置１００に備えられている必要はない。すなわち、操作部１０２は、画像処理装置１００の一部として構成されてもよく、有線・無線を問わず画像処理装置１００と接続されていてもよい。
【００４１】
（操作入力部１０６）
操作入力部１０６は、ユーザからの指示入力を受けて、受け付けた指示内容をデコードし、各種命令を画像入力部１０８、ＯＬＤＩ生成部１１０、パーティクル湧き出し口設定部１１２、重力情報設定部１１４、ＯＬＤＩ修正部１１６などへ転送する。操作入力部１０６は、上記操作部１０２をユーザが操作した際に、操作内容に応じた処理を実行するために、当該処理の実効命令を各種機能構成部へ転送する。
【００４２】
（画像入力部１０８）
画像入力部１０８は、各種シミュレーションに利用する画像データを、ユーザからの指示に応じてデータ記憶部１１８へ転送する。ここで、画像データとは、各種シミュレーションを実行する対象となるシーンイメージである。すなわち、所定の三次元形状の物体を含んで構成される三次元画像データや、該三次元画像データを所定の方向からピクチャしたシミュレーションのシーンとなる二次元画像データ（以下、シーン画像ともいう）等である。ユーザは、上記操作部１０２を操作することにより、画像処理装置１００の画像記憶部（図示せず）などに記録されている画像データを選択したり、外部メディアに記録されている画像データを選択したりすることができる。ユーザは、例えば、所定の三次元形状の物体を含む三次元画像データをシミュレーションの対象として選択し、該三次元形状を所定の方向からキャプチャした二次元画像データを、シミュレーションを行うシーン画像として選択することができる。画像入力部１０８は、操作入力部１０６からの指示に応じて、ユーザが選択した三次元画像データやシーン画像データをシミュレーションに利用する画像データとして後述するデータ記憶部１１８へ転送する。
【００４３】
（ＯＬＤＩ生成部１１０）
ＯＬＤＩ生成部１１０は、シミュレーションのシーンとなるシーン画像データを構成する各ピクセルの奥行き情報を算出し、算出結果に基づいてシミュレーション用データ（以下「ＯＬＤＩ：Ｏｆｆｓｅｔ  Ｌａｙｅｒｄ  Ｄｅｐｔｈ  Ｉｍａｇｅ」という）をデータ記憶部１１８に記録する。なお、ＯＬＤＩ生成部１１０は、本発明のシミュレーション用データ生成部として機能する。
【００４４】
ここで、奥行き情報とは、シーン画像データを構成する各ピクセルに存在する物体の奥行き方向の位置情報であり、相対Ｚ値およびオフセットＺ値を含む情報である。
【００４５】
相対Ｚ値とは、シーン画像の所定の１のピクセルに存在する物体の奥行き方向の相対的な位置関係を示す値である。ＯＬＤＩ生成部１１０は、例えば、三次元画像データに基づいて、シーン画像データの奥行き方向に存在する物体の位置関係を認識し、ピクセル毎に相対Ｚ値を算出する。
【００４６】
オフセットＺ値とは、所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接するピクセルに存在する所定の物体の奥行き方向の位置と、の差異を示す値である。ＯＬＤＩ生成部１１０は、例えば、三次元画像データに基づいて、シーン画像データの奥行き方向に存在する物体の位置関係を認識し、ピクセル毎にオフセットＺ値を算出することができる。
【００４７】
ＯＬＤＩ生成部１１０は、シーン画像に算出した相対Ｚ値およびオフセットＺ値を含めて、シミュレーション用データ（ＯＬＤＩ）として、データ記憶部１１８に記録する。
【００４８】
なお、相対Ｚ値データおよびオフセットＺ値データの詳細については、図２を参照に後述する。
【００４９】
（パーティクル湧き出し口設定部１１２）
パーティクル湧き出し口設定部１１２は、パーティクルシミュレーションに利用する湧き出し口データをデータ記憶部１１８へ転送する。ここで、湧き出し口データとは、パーティクルシミュレーションを実行する際に、パーティクルが発生する始点に関する情報であり、例えば、シーン画像におけるパーティクルの発生場所、パーティクルの初速度の方向および大きさなどが含まれる。上述したように、パーティクルシミュレーションでは、水、炎、煙などの動きを擬似的に表現することができる。したがって、ユーザは、パーティクルシミュレーションを実行するに際して、操作部１０２を操作して、パーティクルが発生する始点（以下、湧き出し口という）を指定し、パーティクルの初速度の方向や大きさなどを設定する。パーティクル湧き出し口設定部１１２は、操作部１０２からの指示に応じて、ユーザが指定した湧き出し口に関する情報を認識し、パーティクルシミュレーションに利用する湧き出し口データとして後述するデータ記憶部１１８へ転送する。
【００５０】
なお、パーティクルシミュレーションにおいては、パーティクルを、必ずしもシーン画像における所定の１のピクセルから発生させる必要はない。例えば、水が満たされている立方体領域から水を放出させるようなシミュレーションを行う場合、ユーザは、当該立方体領域をパーティクルの発生領域として指定してもよい。この場合、パーティクル湧き出し口設定部１１２は、ユーザが指定したパーティクルの発生領域に関する情報を認識し、パーティクルシミュレーションに利用する湧き出し口データとして後述するデータ記憶部１１８へ転送する。
【００５１】
（重力情報設定部１１４）
重力情報設定部１１４は、パーティクルシミュレーションに利用する重力データをデータ記憶部１１８へ転送する。ここで、重力データとは、シーンにおける三次元的な重力の方向および大きさに関する情報である。パーティクルシミュレーションでは、設定したパーティクルの進行方向、初速度、重力方向と該重力の大きさなどに基づいて、湧き出し口からのパーティクルの軌道を算出することにより、水、炎、煙などの動きを擬似的に表現することができる。したがって、ユーザは、パーティクルシミュレーションを実行するに際して、操作部１０２を操作して、シーン画像における三次元的な重力方向と該重力の大きさを設定する。重力情報設定部１１４は、操作入力部１０６からの指示に応じて、ユーザが設定した重力方向と該重力の大きさに関する情報を認識し、パーティクルシミュレーションに利用する重力データとして後述するデータ記憶部１１８へ転送する。
【００５２】
（ＯＬＤＩ修正部１１６）
ＯＬＤＩ修正部１１６は、上記ＯＬＤＩ生成部１１０によって算出された奥行き情報を、ユーザによって任意に設定された値に修正し、データ記憶部１１８に記録されているＯＬＤＩを更新する。上記ＯＬＤＩ生成部１１０によって生成されたＯＬＤＩに基づいてシミュレーションを行った場合、実際の三次元形状に基づいた一貫性のあるシーンにおけるシミュレーションを容易に行うことができる。しかしながら、しかしながら、三次元的な一貫性のないシーンを所望し、その上でシミュレーションを行うには、上記ＯＬＤＩ生成部１１０によって算出された奥行き情報を修正する必要がある。そこで、ユーザは、操作部１０２を操作することにより、シミュレーション行うシーンにおける局所的な形状部分を構成するピクセルの奥行き情報を任意に変更し、所望するシミュレーション結果を実現させることができる。ＯＬＤＩ修正部１１６は、ユーザによる奥行き情報の修正結果に応じて、データ記憶部１１８に記録されているＯＬＤＩに含まれる奥行き情報を更新する。これにより、本実施形態に係る画像処理装置１００は、一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができる。なお、ＯＬＤＩ修正部１１６は、本発明のシミュレーション用データ修正部として機能する。
【００５３】
（データ記憶部１１８）
データ記憶部１１８は、ＯＬＤＩを利用したシミュレーションの実行に必要となる各種データを記憶する記憶部である。すなわち、データ記憶部１１８は、画像データ、ＯＬＤＩ、湧き出し口データ、重力データなどを記憶することができる。また、データ記憶部１１８は、後述するパーティクル演算部１２０による算出処理結果なども記憶することができる。
【００５４】
（パーティクル演算部１２０）
パーティクル演算部１２０は、データ記憶部１１８に記録されている各種データに基づいてパーティクルシミュレーションに必要な算出処理を実行する。パーティクル演算部１２０は、例えば、データ記憶部１１８に記録されている湧き出し口データおよび重力データに基づいて、シーン画像におけるパーティクルの軌道を算出することができる。また、パーティクル演算部１２０は、例えば、データ記憶部１１８に記録されているＯＬＤＩに含まれる相対Ｚ値およびオフセットＺ値に基づいて、上記パーティクルの軌道における物体の有無を認識し、パーティクルの反射位置を算出することもできる。このとき、パーティクル演算部１２０は、例えば、三次元画像データから反射位置における物体の法線情報を利用して反射方向を算出したり、反射により損失されるエネルギなどを考慮して反射後のパーティクルの軌道を算出したりすることもできる。
【００５５】
また、上述したように、本実施形態に係る画像処理装置１００は、奥行き情報を修正することにより、本来のパーティクルの軌道を修正して、局所的な形状構造のみに基づくシミュレーションを実行することができる。したがって、パーティクル演算部１２０は、記ＯＬＤＩ修正部１１６によって更新されたＯＬＤＩに含まれる修正後の奥行き情報に基づいて、パーティクルの軌道を修正することもできる。なお、パーティクル演算部１２０によるパーティクルの軌道修正処理の詳細については、後述する処理フローにおいて説明する。
【００５６】
パーティクル演算部によって算出された各種情報はデータ記憶部１１８および画像生成部１２２へ転送される。なお、パーティクル演算部１２０によって行われる処理は上記処理に限定されるものではなく、シミュレーションに必要となる各種処理を追加的に行うことも当然に可能である。また、パーティクル演算部１２０は、本発明のシミュレーション結果演算部として機能する。
【００５７】
（画像生成部１２２）
画像生成部１２２は、表示部１０４に表示させる画像データを生成し、表示部１０４の表示切替を制御する。例えば、画像生成部１２２は、操作入力部１０６からの指示に応じて、ユーザによる表示切替の指示を認識し、表示部１０４の表示を切り替える。画像生成部１２２は、例えば、ユーザが選択した所定の三次元画像データやシーン画像データをデータ記憶部１１８から抽出して表示部１０４に表示させることができる。また、画像生成部１２２は、例えば、パーティクル演算部１２０による算出結果に基づいて、シーン画像にパーティクルが表現された画像を生成して表示部１０４に表示させることができる。もちろん、画像生成部１２２によって生成される画像データや、表示部１０４の表示切替処理は上記例に限定されるものではない。
【００５８】
（表示部１０４）
表示部１０４は、画像生成部１２２による指示に応じて所定の画像データを表示する。表示部１０４は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、液晶ディスプレイ（ＬＣＤ）、有機ＥＬディスプレイ（Ｏｒｇａｎｉｃ  ＥｌｅｃｔｒｏＬｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）などからなる表示装置である。
【００５９】
なお、表示部１０４は、必ずしも画像処理装置１００に備えられている必要はない。すなわち、表示部１０４は、画像処理装置１００の一部として構成されてもよく、外部ディスプレイなどとして画像処理装置１００と接続されていてもよい。
【００６０】
以上、本実施形態に係る画像処理装置１００の機能構成について説明した。なお、図１に示した画像処理装置１００の機能構成は、本実施形態を説明する上での一例であり、上記説明においては、本実施形態の特徴の１つであるＯＬＤＩを利用したパーティクルシミュレーションに関する機能を中心に説明した。
【００６１】
＜２−２．奥行き情報の算出処理＞
次に、上記ＯＬＤＩ生成部１１０による奥行き情報の算出処理の概念について説明する。上述したように、ＯＬＤＩ生成部１１０は、シーン画像を構成する各ピクセルに存在する物体の奥行き方向の位置に関する情報を算出し、ＯＬＤＩとしてデータ記憶部１１８に記録する。具体的には、ＯＬＤＩ生成部１１０は、ピクセル毎に、同一ピクセルに存在する物体の奥行き方向の相対的な位置関係を示す相対Ｚ値を算出する。さらに、ＯＬＤＩ生成部１１０は、１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接するピクセルに存在する物体の奥行き方向の位置との差を示すオフセットＺ値も算出する。その後、シーン画像を構成するすべてのピクセル毎に算出した相対Ｚ値およびオフセットＺ値を、シーン画像に含めたシミュレーション用データ（ＯＬＤＩ）をデータ記憶部１１８に記録する。以下、ＯＬＤＩ生成部１１０によって算出される相対Ｚ値およびオフセットＺ値の概念について、図２を参照にして説明する。
【００６２】
図２は、スクリーン２００に表示される所定の画像データを所定の視点２０２から見た場合において、シーン画像を構成する所定の隣接ピクセルＡおよびＢに関する相対Ｚ値およびオフセットＺ値の概念を示す説明図である。
【００６３】
図２に示すように、ピクセルＡにおいては、Ｐ０、Ｐ１、Ｐ２、Ｐ３の４つの位置において物体が存在している。相対Ｚ値とは、スクリーンから直近に存在する物体の位置Ｐ０を基準とした各物体の奥行き方向の相対位置を意味する。すなわち、Ｐ０とＰ１との奥行き方向の距離が相対Ｚ（Ｐ１）値（図２のｒｅｌＺ（Ｐ１））、Ｐ０とＰ２との奥行き方向の距離が相対Ｚ（Ｐ２）値（図２のｒｅｌＺ（Ｐ２））、Ｐ０とＰ３との奥行き方向の距離が相対Ｚ（Ｐ３）値（図２のｒｅｌ（ＺＰ３））として表される。
【００６４】
ＯＬＤＩ生成部１１０は、データ記憶部１１８に記録されている三次元データに基づいて、視点２０２からシーン画像データの所定のピクセルの奥行き方向に存在する物体を認識し、上記相対Ｚ値を算出することができる。また、ＯＬＤＩ生成部１１０は、同様の三次元データに基づいて、奥行き方向に存在する物体の法線情報（図２の各点Ｐ０、Ｐ１、Ｐ２、Ｐ３における矢印方向）も併せて算出しておいてもよい。
【００６５】
次に、オフセットＺ値とは、シーン画像を構成する所定の１のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接するピクセルに存在する物体の奥行き方向の位置との差異を意味する。すなわち、図２の例では、ピクセルＡにおいてスクリーンの直近に存在する物体の奥行き方向の位置Ｐ０と、ピクセルＢにおいてスクリーンの直近に存在する物体の奥行き方向の位置Ｐ１０と、の差異がオフセットＺ値（図２のｏｆｆｓ（Ａ、Ｂ））として算出される。
【００６６】
ＯＬＤＩ生成部１１０は、データ記憶部１１８に記録されている三次元データに基づいて、シーン画像を構成する所定のピクセルの奥行き方向に存在する物体を認識し、上記オフセットＺ値を算出することができる。通常、１のピクセルと隣接するピクセルは８個存在するため、ＯＬＤＩ生成部１１０は、ピクセル毎に８個のオフセットＺ値を算出する。ここで、隣接するピクセルＡおよびＢの互いのオフセットＺ値であるｏｆｆｓ（Ａ、Ｂ）およびｏｆｆｓ（Ｂ、Ａ）は下記式（２）の関係で表される。
【００６７】
【数２】
2010152870.tif 000004
【００６８】
したがって、ＯＬＤＩ生成部１１０は通常、ピクセル毎に４個のオフセットＺ値を算出することにより、すべての隣接するピクセルとのオフセットＺ値を算出することができ、オフセットＺ値の算出処理の効率化を図ることもできる。
【００６９】
次に、図３〜図８を参照にして、上記相対Ｚ値およびオフセットＺ値について詳細に説明する。図３は、所定の三次元形状の物体３００を所定の視点２０２から見たときの概念を示す説明図である。表示部１０４として機能するスクリーン２００には、物体３００を視点２０２からキャプチャしたシーン画像が表示される。
【００７０】
図４は、図３に示したスクリーン２００の所定位置のＹＺ断面図である。また、図５は、図４に示すＹＺ断面図において、Ｙ方向に配列されたピクセルの境界線が表現された断面図である。すなわち、図５においてＹ方向に一定間隔で配置されている実線は、スクリーン２００に表示されるシーン画像を構成するピクセルの境界線を示している。図５を参照すると、物体３００の奥行き方向（Ｚ方向）の位置は、ピクセル毎に異なっていることがわかる。また、あるピクセルにおいては、同一ピクセル内に物体３００が複数回存在していることもわかる。
【００７１】
ここで、図６を参照に、オフセットＺ値の算出概念について説明する。まず、ＯＬＤＩ生成部１１０は、ピクセルＡにおける物体３００のＺ値と、ピクセルＢにおける物体３００のＺ値との差異をオフセットＺ値（ｏｆｆｓ（Ａ、Ｂ））として算出する。同様にＯＬＤＩ生成部１１０は、ピクセル毎に隣接するピクセルに関するオフセットＺ値を算出していく。
【００７２】
次に、相対Ｚ値の算出概念について、図７および８を参照に説明する。図７に示すように、ＯＬＤＩ生成部１１０は、スクリーン２００から最も近い物体３００の奥行き方向の位置がすべてのピクセルで同一となるように、物体３００を所定位置までスライドさせる（図７の物体３０２）。その後、図８に示すように、ＯＬＤＩ生成部１１０は、スクリーン２００から最も近い位置に存在する物体３００からの相対的な位置を算出する。例えば、図８に示す例では、ピクセルＦでは相対Ｚ値（ｒｅｌＺ（Ｆ））＝４、ピクセルＧでは相対Ｚ値（ｒｅｌＺ（Ｇ））＝２、として算出される。また、例えば、同一ピクセル内に３回以上物体３００が存在する場合も同様に、ＯＬＤＩ生成部１１０は、スクリーン２００から最も近い位置に存在する物体３００からの相対的な位置に基づいて相対Ｚ値を算出する。
【００７３】
このように、ＯＬＤＩ生成部１１０は、スクリーン２００に表示されるシーン画像を構成するピクセル毎に、相対Ｚ値およびオフセットＺ値を算出していく。ＯＬＤＩ生成部１１０は、シーン画像を構成するすべてのピクセルの相対Ｚ値およびオフセットＺ値を算出した後、シーン画像に算出した相対Ｚ値およびオフセットＺ値を含めたＯＤＬＩをデータ記憶部１１８に記録する。なお、図３〜図８に示した説明図は、あくまで絶対Ｚ値およびオフセットＺ値の算出概念を説明する上での概念図であり、実際にＯＬＤＩ生成部１１０は、ピクセル毎に物体３００をスライドさせた物体３０２のデータを作成しているわけではないことは言うまでもない。
【００７４】
このようにして算出される相対Ｚ値およびオフセットＺ値を含むＯＬＤＩがデータ記憶部１１８に記録されることにより、画像処理装置１００は、シミュレーションを行う際に、シーン内に含まれる物体の三次元形状や位置関係を容易に認識することができる。すなわち、画像処理装置１００は、オフセットＺ値に基づいて、隣接するピクセルに存在する物体３００の奥行き方向の位置を認識することができる。また、画像処理装置１００は、相対Ｚ値に基づいて、同一ピクセルに存在する複数の物体３００の奥行き方向の位置も認識することができる。
【００７５】
この結果、画像処理装置１００は、例えば、パーティクルシミュレーションを行う際に、ある所定の位置から発生したパーティクルが物体３００に接触する位置を認識することができる。また、上述したように、三次元データに基づいて算出される法線情報に基づいて、物体３００と接触した後のパーティクルの反射軌道を認識することもできる。
【００７６】
＜２−３．画像処理装置１００によるシミュレーションの処理フロー＞
次に、上述した機能構成を備える画像処理装置１００によって実行される、ＯＬＤＩを利用したパーティクルシミュレーションの処理の流れについてフロー図を参照にして説明する。
【００７７】
図９は、本実施形態に係る画像処理装置１００により実行されるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。
【００７８】
図９に示すように、ステップ２００において、画像入力部１０８は、パーティクルシミュレーションに利用する画像データをデータ記憶部１１８に記録する。ユーザは、例えば、三次元データに含まれる任意の三次元形状の物体を回転させて、所定の方向から見た三次元形状の物体をキャプチャすることにより、パーティクルシミュレーションを行う二次元のシーン画像データを選択することができる。これを受けて画像入力部１０８は、ユーザによって選択された三次元画像データおよびシーン画像データをデータ記憶部１１８に転送する。このとき、画像生成部１２２は、ユーザによる操作部１０２の操作に応じて三次元画像データを表示部１０４で回転表示させたり、ユーザによってキャプチャされたシーン画像データを表示部１０４に表示させたりすることができる。
【００７９】
図１０は、ステップ２００により表示部１０４に表示される二次元画像データの一例を示す説明図である。図１０に示す例では、手前のバー４０６および奥のバー４０４を含むコの字型のブロックから、垂直方向にバー４０２を含むＬ字型のブロックが突出した三次元形状の物体４００を所定の方向からキャプチャしたシーン画像データが表示されている。
【００８０】
次に、ステップ２０２において、ＯＬＤＩ生成部１１０は、ユーザによって選択されたシーン画像の奥行き情報を算出し、ＯＬＤＩをデータ記憶部１１８に記録する。すなわち、ＯＬＤＩ生成部１１０は、シーン画像を構成するピクセル毎に算出した相対Ｚ値およびオフセットＺ値をシーン画像に含めたＯＬＤＩを生成し、データ記憶部１１８に記録する。
【００８１】
次に、ステップ２０４において、重力情報設定部１１４は、パーティクルシミュレーションに利用する重力データをデータ記憶部１１８に記録する。ユーザは、例えば、ステップ２００により表示部１０４に表示されたシーンにおける三次元的な重力方向と該重力の大きさを任意に設定することができる。重力情報設定部１１４は、ユーザによって設定された三次元的な重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部１１８に記録する。
【００８２】
図１１は、ユーザが重力方向と該重力の大きさを設定する際の表示部１０４の表示例を示す説明図である。図１１に示すように、表示部１０４にはシーン画像に重ねて重力方向と該重力の大きさを示す矢印が表示される。ユーザは、例えば、操作部１０２を操作することにより、表示部１０４に表示された重力方向と該重力の大きさを示す矢印を任意の方向に設定することができる。すなわち、ユーザは、パーティクルシミュレーションを行うシーンの重力方向と該重力の大きさを任意に設定することができる。
【００８３】
図１２は、パーティクルシミュレーションを行うシーンにおける三次元的な重力方向を設定する別の方法を示す概念図である。図１２に示すように、ユーザは、例えば、シーンにおける任意の領域の法線方向と逆方向を重力方向として設定することもできる。図１２（ａ）に示す例では、重力方向は二次元画像に追いおいて下方向に設定されている。ここで、ユーザが、操作部１０２などを操作することにより、任意の領域（例えば、図１２（ａ）におけるハッチング領域）を選択した場合、図１２（ｂ）に示すように、選択した領域の法線方向と逆方向に重力方向を自動で設定することができる。これは例えば、パーティクルシミュレーションを行うシーン内に水平面として設定したい領域が存在する場合などに、三次元的な重力方向を容易に設定することができるという利点がある。
【００８４】
重力情報設定部１１４は、このようにしてユーザによって任意に設定された重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部１１８に記録する。また、画像生成部１２２は、データ記憶部１１８に記録された重力データに基づいて、ユーザにより設定された重力方向が表現された画像を生成して表示部１０４に表示させることができる。
【００８５】
次に、ステップ２０６において、パーティクル湧き出し口設定部１１２は、パーティクルシミュレーションに利用する湧き出し口データをデータ記憶部１１８に記録する。ユーザは、例えば、ステップ２００により表示部１０４に表示されたシーンにおける所定位置をパーティクルが発生する湧き出し口として設定することができる。また、ユーザは、設定した湧き出し口から発生するパーティクルの初速度の方向及び大きさも任意に設定することができる。
【００８６】
図１３は、パーティクルの湧き出し口に関する情報を設定する際の表示部１０４の表示例を示す説明図である。ユーザは、例えば、操作部１０２を操作することにより、表示部１０４に表示されているシーンの任意の位置（または領域）をパーティクルの湧き出し口として指定することができる。また、ユーザは、例えば、操作部１０２を操作することにより、パーティクルの初速度の方向や大きさ等もあわせて設定することができる。
【００８７】
パーティクル湧き出し口設定部１１２は、このようにしてユーザによって任意に設定されたパーティクルの湧き出し口、初速度および大きさに関する情報を、パーティクルの湧き出し口データとしてデータ記憶部１１８に記録する。
【００８８】
次に、ステップ２０８において、画像処理装置１００は、レンダリング処理を行う。ここで、レンダリングとは、数値データとして与えられた物体や図形に関する情報を計算によって画像化することを意味する。
【００８９】
パーティクル演算部１２０は、データ記憶部１１８に記録されている各種データに基づいて、パーティクルの軌道を算出する。まず、パーティクル演算部１２０は、データ記憶部１１８に記録されている湧き出し口データに基づいて湧き出し口からのパーティクルの軌道を算出する。
【００９０】
次に、パーティクル演算部１２０は、データ記憶部１１８に記録されているＯＬＤＩに基づいて、算出したパーティクルの軌道と物体との接触位置を算出する。ここで、パーティクル演算部１２０は、ＯＬＤＩに含まれる相対Ｚ値およびオフセットＺ値に基づいて、パーティクルの軌道と物体との接触位置を算出することができる。
【００９１】
パーティクル演算部１２０は、パーティクルの軌道における物体の有無を判断するにあたり、相対Ｚ値およびオフセットＺ値を利用する。しかしながら、必ずしも隣接するすべてのピクセルに物体が存在するとは限らない。このような場合、パーティクル演算部１２０は、ある１のピクセルから目的となるピクセルまでに存在する物体の最短経路を辿っていくことにより、より簡易的に所定のピクセル間のオフセットＺ値を算出することができる。
【００９２】
図１４は、任意のピクセル間のオフセットＺ値を算出する際に、ピクセル間に存在する物体の最短距離を辿っていく概念を示す説明図である。図１４の例では、パーティクルの軌道が、あるピクセルＡからピクセルＢに向かう場合において、ピクセルＡとピクセルＢとの間に物体が存在しない領域２５０（図のドット領域）が存在している。すなわち、物体が存在しないにおいてオフセットＺ値は存在しないため、図１４の矢印を辿ってｏｆｆｓ（Ａ、Ｂ）を算出することはできない。このような場合、パーティクル演算部１２０は、物体が存在する領域でピクセルＡからピクセルＢまでの最短経路２５２（図の破線）を辿っていくことにより、ｏｆｆｓ（Ａ、Ｂ）をより簡易的に算出することができる。なお、最短距離の算出アルゴリズムとしては、フロイド・ワーシャル法などが例として挙げられるが、特定のアルゴリズムに限定されるものではない。
【００９３】
次に、パーティクル演算部１２０は、パーティクルが物体と接触した後の反射軌道を算出する。パーティクル演算部１２０は、例えば、データ記憶部１１８に記録されている三次元画像データに基づいて、パーティクルと物体との接触位置における物体の法線情報を利用してパーティクルの反射後の速度ベクトル等を算出することができる。例えば、モーメントと摩擦を考慮しないシミュレーションでは、反射（衝突）により向きを変更する運動量は反射面の法線方向のみに働くこととなる。なお、反射後のパーティクルの軌道を算出するにあたって用いられる計算式やパラメータなどは、シミュレーションの精度や目的などに応じて任意に設定・変更することができるものであり、特定の算出方法に限定されるものではない。
【００９４】
その後、ステップ２１０において、画像生成部１２２は、パーティクル演算部１２０によって算出されたパーティクルの軌道に基づいて、シミュレーションのシーン画像上にパーティクルの軌道を重ねた画像を生成して、表示部１０４に表示させる。図１５は、ステップ２１０により表示部１０４に表示されるパーティクルシミュレーションの結果の一例を示す説明図である。図１４に示すように、物体４００の最上部のバー４０２の湧き出し口４０８を始点としたパーティクルの軌道が、その後最下部手前のバー４０６で反射していることがわかる。これは、パーティクル演算部１２０によって算出されたパーティクルの軌道が、相対Ｚ値およびオフセットＺ値に基づいて、最下部手前のバー４０６で物体４００に接触すると判断されたためである。
【００９５】
このように、画像処理装置１００は、相対Ｚ値およびオフセットＺ値がピクセル毎に設定されたＯＬＤＩを利用することにより、シーンにおける一貫性のあるパーティクルの軌道表現の簡易性および柔軟性を向上させることができる。
【００９６】
しかしながら、デザイナーや研究者等が要求するシミュレーションは、必ずしも一貫性のあるシーンにおけるシミュレーションのみではない。例えば、図１５に示した例では、湧き出し口４０８から放出されたパーティクルを、最下部奥のバー４０４で反射させた後に、最下部手前のバー４０６で反射させた場合のシミュレーションを行いたい場合などが例として挙げられる。しかしながら、従来、図１５に示した物体４００の三次元構造において、そのような一貫性のないシミュレーションを行うには、データの再構築、各種パラメータの詳細設定の調整等が必要であった。これに対して本実施形態に係る画像処理装置１００は、シーン全体の三次元構造の整合性を考慮することなく、局所的にのみ一貫性を持つようなシーンを想定したシミュレーションを容易に実現することも可能である。
【００９７】
上述したように、画像処理装置１００は、ＯＬＤＩを利用することにより、パーティクルの軌道と物体の接触位置を判断することができる。したがって、ＯＬＤＩに含まれている相対Ｚ値やオフセットＺ値を任意に修正することにより、他の部分を破壊することなく、パーティクルと物体の接触位置や軌道を任意に修正することができる。
【００９８】
上述したように、通常隣接していないピクセル間のオフセットＺ値は、物体が存在する範囲の最短距離を辿っていくことにより算出される。しかしながら、隣接していないピクセル間のオフセットＺ値を任意に設定・変更することにより、最短距離を辿って算出されるオフセットＺ値とは異なるオフセットＺ値に基づいてシミュレーションを行うこともできる。これにより、実際の三次元形状とは一貫性のないシーンを想定したパーティクルの軌道表現を実現することができる。
【００９９】
ＯＬＤＩ修正部１１６は、図９のステップ２１２において、ユーザによって指定された任意の隣接していないピクセル間のオフセットＺ値を更新する。これにより、隣接していないピクセル間で仮想のピクセル接続（以下ＶＰＣともいう：Ｖｉｒｔｕａｌ  Ｐｉｘｅｌ  Ｃｏｎｎｅｃｔｉｏｎ）を確立することができる。上述したように、パーティクル演算部１２０は、ピクセル間に存在する物体の範囲の最短距離を辿っていくことにより、パーティクルの軌道と物体との接触位置を判断する。しかしながら、ＶＰＣを確立することにより、隣接していないピクセル間の奥行き関係情報がＯＬＤＩに含まれることとなる。したがって、パーティクル演算部１２０は、隣接していないピクセル間に存在する物体とパーティクルとの接触を判断する際に、ＯＬＤＩ修正部１１６によって設定されたＶＰＣに関する情報が含まれるＯＬＤＩを利用することができる。すなわち、ユーザは、任意に隣接していないピクセル間でＶＰＣを設定することにより、隣接していないピクセル間の奥行き情報を任意に設定・変更でき、パーティクルの軌道と物体との接触関係を自由に変更することができる。
【０１００】
以下、図１６を参照に具体的例を説明する。図１６は、隣接していないピクセル間のオフセットＺ値を任意に修正する概念を示す説明図である。図１６に示す例では、ユーザは、隣接していない任意のピクセル、例えば、物体４００の最上部のバー４０２のピクセルおよび最下部奥のバー４０４のピクセルの奥行き情報を修正して、ＶＰＣ１を確立している。同様に、物体４００の最下部奥のバー４０４のピクセルおよび最下部手前のバー４０６のピクセルの奥行き情報を任意に修正して、ＶＰＣ２を確立している。すなわち、ＶＰＣ１の確立により、バー４０２よりもバー４０４が手前に存在しているように奥行き情報が修正され、ＶＰＣ２の確立により、バー４０４よりもバー４０６が手前に存在しているように奥行き情報が修正されている。ＯＬＤＩ修正部１１６は、このように確立されたＶＰＣに関する情報（修正オフセットＺ値）を、データ記憶部１１８に記録されているＯＬＤＩに記録する。
【０１０１】
その後、ステップ２１４において、パーティクル演算部１２０は、ＯＬＤＩ修正部１１６によって更新されたＯＬＤＩに基づいて、再度レンダリング処理を行う。さらに、ステップ２１６において、画像生成部１２２は、パーティクル演算部１２０によって算出されたパーティクルの軌道に基づいて、シミュレーション結果を表示部１０４に表示させる。
【０１０２】
図１７は、ステップ２１６により表示部１０４に表示されるパーティクルシミュレーションの結果の一例を示す説明図である。パーティクル演算部１２０は、最上部のバー４０２と最下部奥のバー４０４との間に確立されたＶＰＣ１に基づいてパーティクルの軌道との接触を判断するため、吹き出し口４０８から発生したパーティクルは、バー４０４で反射していることがわかる。さらに、パーティクル演算部１２０は、最下部奥のバー４０４と最下部手前のバー４０６との間に確立されたＶＰＣ２に基づいてパーティクルの軌道との接触を判断するため、バー４０４で反射したパーティクルは、バー４０６で再度反射している。
【０１０３】
このようなパーティクルの軌道は、物体４００に示すような、現実に存在可能な三次元構造からは実現不可能であり、シミュレーションを実現するには、データの再構築、各種パラメータの詳細設定等の煩雑な処理が必要となっていた。しかしながら、本実施形態に係る画像処理装置１００では、ＯＬＤＩに含まれる奥行き情報を任意に修正することにより、一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができる。
【０１０４】
＜変形例１＞
上述したように、本実施形態に係る画像処理装置１００は、パーティクルシミュレーションに限らず、ＯＬＤＩを利用することにより種々のシミュレーションの簡易性および柔軟性を向上させることができる。例えば、広くシミュレーションとして利用されている、レイトレーシング（Ｒａｙ  Ｔｒａｃｉｎｇ）、シェーディング（Ｓｈａｄｉｎｇ）等にも適用することは当然に可能である。
【０１０５】
例えば、レイトレーシングでＯＬＤＩを利用する場合、視線方向と平行に各ピクセルに入射した光線と、シーンにおける物体との接触点をＯＬＤＩに含まれる奥行き情報に基づいて容易に判断することができる。
【０１０６】
光線などの進路と物体の接触判断も上述した方法と同様に行うことができる。図１８〜２０は、ある光線をトレースする場合の概念を示す説明図である。図１８に示すように、直線状の光線３６０が所定の物体３００に向かって放射されている場合も、上述した方法と同様に、シーン画像における光線をトレースすることができる。すなわち、図１９に示すように、シーン画像を構成する各ピクセルにおける相対Ｚ値およびオフセットＺ値に基づいて光の進路３６０をトレースしていき、物体３００との接触点を判断することができる。
【０１０７】
図２０は、ある光線の入射光３７０が、物体表面３７８との接触点３７６で反射光３７４および屈折光３７２に分離されるイメージを示した説明図である。上述したように、ＯＯＤＩを利用することにより、入射光３７０と物体表面３７８との接触点３７６を判断することができる。また、反射光３７４や屈折光３７２の進行方向に関しては、物体表面３７８の法線情報や、一般的に知られているスネルの法則、フレネルの法則等を利用することで算出することができる。
【０１０８】
通常、レイトレーシングによりレンダリングする場合、奥行き方向の位置が遠すぎるとピクセルの色に大きく影響してしまい、一貫性のないシーンが表現されてしまうことがある。しかしながら、上述したようにＯＬＤＩを利用することにより、光線の接触位置の奥行き方向に関する情報を任意に修正し、ユーザが所望するシーンを表現することができる。
【０１０９】
このように、本実施形態に係る画像処理装置１００は、シーン画像を構成するピクセル毎に相対Ｚ値およびオフセットＺ値が設定されたＯＬＤＩを利用することにより、種々のシミュレーションの簡易性および柔軟性を向上させることができる。
【０１１０】
＜変形例２＞
上述したように、本実施形態に係る画像処理装置１００は、隣接していないピクセル間のオフセットＺ値を任意に設定することにより、シミュレーションの簡易性および柔軟性を向上させている。このように、オフセットＺ値を変更した場合、局所的なデータの一貫性が保たれなくなることが想定される。例えば、隣接していないが近くに存在する二つのピクセルＰとＱのオフセットＺ値が変更された場合には、非一貫的になったデータを一貫したデータに変換することが望ましい。そこで、以下のような方法により、局所的な一貫性を保つこともできる。
【０１１１】
ある所定のピクセルの奥行きを定め、それを隣接ピクセルに伝播させていくことにより、局所的に三次元形状を再構築することができる。しかしながら、局所的な一貫性を保つには、伝播順序に関わらないことが必要である。すなわち、隣接ピクセルの間の奥行きの差が、伝播経路の選択によって影響されないことが必要である。
【０１１２】
例えば、図２１に示す例では、以下の式（３）〜（６）に示す関係がすべてのピクセルＡ、Ｂ、Ｃ、Ｄにおいて成立している。ここで、ｏｆｆｓ（Ｘ、Ｙ）は、ピクセルＸとＹとのオフセットＺ値を意味する。
【０１１３】
【数３】
2010152870.tif 000005
【０１１４】
ここで、上述した式（２）の対称性と、式（３）、（４）および（５）を用いれば、式（６）の関係は算出可能であるため、拘束条件の数は、１つのピクセルあたり３つとなる。これらの式（３）、（４）および（５）の右辺を左辺に移項し、すべてのピクセルに対する関係式を一つの行列で表すと、以下の式（７）のように表すことができる。この式が局所的一貫性を見たすための連立方程式である。
【０１１５】
【数４】
2010152870.tif 000006
【０１１６】
ここで、ｘは、これから計算するオフセットＺ値を一列にまとめたものである。また、Ｍは定数の行列を意味し、各値は０、１または−１である。
【０１１７】
式（７）は、変数の数（Ｍの列の数）よりも式の数（Ｍの行の数）の方が少ないので、局所的一貫性は必ず満たされる。そこで、残った自由度を用いてさらに、最初に与えられたオフセットＺ値と、最終的に計算されるオフセットＺ値の差が可能な限り小さくなるような拘束条件を加えることを検討する。まず、Ｍの零空間（ＮｕｌｌｓｐａｃｅまたはＫｅｒｎｅｌとも呼ばれる）を求める。零空間は、その空間内のすべての点ｙでＭｙ＝０となるような空間であり、基底ベクトルの集合で表される。この基底ベクトルの集合を縦ベクトルとして行列にしたものをＮＭとする。次に、以下の式（８）を満足するようなｙを決定する。
【０１１８】
【数５】
2010152870.tif 000007
貫性を含んでいる。また、ｙは、零空間の基底ベクトルそれぞれに対する係数であり、これから計算するものである。このｙは、擬似逆行列を用いて以下の式（９）により容易に計算することができる。
【０１１９】
【数６】
2010152870.tif 000008
【０１２０】
このようにして求められたｙに行列ｂｆＮＭを掛けることによって、上記式（３）〜（６）を満足し、かつ入力されたオフセットＺ値との差の二乗和が最小になるオフセット集合を計算することができる。
【０１２１】
【数７】
2010152870.tif 000009
【０１２２】
上記のような計算は、ユーザが編集した所定の小範囲の領域のみを対象として行ってもよいし、画像全体に対して行ってもよい。
【０１２３】
＜３．第２実施形態（法線情報を利用したパーティクルシミュレーション）＞
近年、コンピュータグラフィックス（ＣＧ：Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）の技術進展に伴い、画像編集、シミュレーションなどといった様々な画像処理技術が注目されている。ここで、ＣＧにおいては、形状の三次元的な位置情報よりも微分情報などが重要となることが多い。例えば、人間は、シーン内の奥行きを二次元ディスプレイから知覚することはできないが、面の方向情報であれば、陰影や変形などから簡単に知覚することができる。したがって、ＣＧにおいては、陰影付けや形状変形のために法線やラプラシアンなどの微分情報が利用されることがある。例えば、Ｍａｋｏｔｏ  Ｏｋａｂｅ、Ｔａｋｅｏ  Ｉｇａｒａｓｈｉ、Ｇａｎｇ  Ｚｅｎｇ、Ｌｏｎｇ  Ｑｕａｎ、Ｙａｓｕｙｕｋｉ  Ｍａｔｓｕｓｈｉｔａ、Ｈｅｕｎｇ−Ｙｅｕｎｇ  Ｓｈｕｍ：Ｓｉｎｇｌｅ−Ｖｉｅｗ  Ｒｅｌｉｇｈｔｉｎｇ  ｗｉｔｈ  Ｎｏｒｍａｌ  Ｍａｐ  Ｐａｉｎｔｉｎｇ：Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｐａｃｉｆｉｃ  Ｇｒａｐｈｉｃｓ  ２００６，Ｔａｉｐｅｉ，Ｔａｉｗａｎ，Ｏｃｔｏｂｅｒ  １１−１３，２００６，ｐｐ．２７−３４に記載のように、二次元画像に法線情報を付加し、当該法線情報に基づいて画像の照明条件を調整することによりリライティング処理を行い、擬似的な三次元効果を付加する方法が知られている。
【０１２４】
しかし、エッシャーの「Ｗａｔｅｒｆａｌｌ」という作品などに見られるように、二次元で表現することは容易だが、三次元的な構造に一貫性がなく、矛盾したようなシーンにおいてパーティクルシミュレーションを利用する場合、非直感的な三次元形状を構築し、ユーザが意図した位置でパーティクルが反射するように各種パラメータを初期情報としてシミュレータに提供しなければならない。したがって、直感的でない三次元形状を作成する困難さや、処理負担の増加、シミュレーション処理の複雑化を招いてしまうという問題があった。
【０１２５】
ここで、二次元画像に何らかの手法により付加された法線情報を積分することにより三次元形状を再構築して用いることも考えられる。しかしながら、法線情報をユーザが直接に与える場合には、そこから算出される三次元形状は、一般に一通りには定まらない。すなわち、三次元的に矛盾した法線情報を容易に与えることが可能なため、法線情報を積分することにより、一貫性のある三次元形状を再構築できるケースは限られている。したがって、三次元形状の再構築において法線情報を利用する場合には制約が大きく、様々な工夫が必要となってしまい、処理負担の増加、シミュレーション処理の複雑化などといった問題が生じてしまう。
【０１２６】
上記第１実施形態に係る画像処理装置１００では、三次元画像データからＯＬＤＩを生成することにより、一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができた。しかしながら、シミュレーションを実行するシーンの三次元データが必ずしも構築されているとは限らない。したがって、三次元的な一貫性のないシーンにおけるシミュレーションを実行する場合、三次元形状を構築したり、ユーザが意図したようにパーティクルが反射するように各種パラメータ等を初期情報としてシミュレータに提供したりする必要があった。この結果、処理負担の増加、シミュレーション処理の複雑化を招いてしまうという問題があった。
【０１２７】
本発明の第２実施形態に係る画像処理装置６００はこのような問題を解決することができ、三次元の構造的に一貫性がなく、矛盾したような法線マップを有するシーンにおいても、三次元形状を構築することなくパーティクルを用いた簡易シミュレーションを実行することを可能とする。具体的には、画像処理装置６００は、二次元画像の各ピクセルに定義された法線情報を直接用いて、あたかも三次元空間でパーティクルが反射しているかのようなシミュレーションを簡易に実行することを可能とする。
【０１２８】
より詳細には、画像処理装置６００は、シミュレーションするシーンの二次元画像の各ピクセルに、ＲＧＢの色情報に加えてその点の三次元の面の方向（法線）に関する情報を付加して法線マップとして表現する。法線マップは、二次元表現のフレキシブルさと、三次元的効果のリアリティと、を兼ね備えた一般的なシーン表現である。
【０１２９】
しかしながら、法線情報を積分することにより実際に三次元形状を一意に再構築できるシーンは限られているため、シミュレーションなどの処理を組み込むことが難しいという問題があった。これに対して、画像処理装置６００は、法線情報から三次元シーンを構築することなく、法線情報を直接シミュレーションに利用することにより、ユーザが意図するシミュレーションを実行することができる。この結果、画像処理装置６００は、三次元的な一貫性に捉われることなく、ユーザが所望するシーンを簡易にシミュレーションすることができる。すなわち、画像処理装置６００は、三次元的な一貫性のないシーンにおける複雑なシミュレーションをする場合においても、三次元形状を構築することなく、二次元画像に付加された法線情報を用いてユーザが意図するシミュレーションを実行することができる。
【０１３０】
以下、このような特徴を有する画像処理装置６００の詳細について説明する。
【０１３１】
＜３−１．第２実施形態に係る画像処理装置６００の機能構成＞
まず、本発明の第２実施形態に係る画像処理装置６００の機能構成について説明する。図２２は、本実施形態に係る画像処理装置６００の機能構成の一例を示すブロック図である。
【０１３２】
図２２に示すように、画像処理装置６００は主に、操作入力部１０６と、色画像入力部６０８と、法線画像入力部６１０と、パーティクル湧き出し口設定部１１２と、重力情報設定部１１４と、パーティクル反射領域設定部６１６と、データ記憶部６１８と、パーティクル演算部６２０と、画像生成部６２２と、を含んで構成される。また、画像処理装置６００は、ユーザによる操作を受け付ける操作部１０２と、シミュレーション結果を表示する表示部１０４と、を備えている。
【０１３３】
画像処理装置６００を構成するこれらの各機能部は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって制御されることにより各種機能を実行する。また、図２２に示した画像処理装置６００の機能構成は、本実施形態を説明する上での一例であり、本発明はこれらに限定されるものではない。すなわち、画像処理装置６００は、図２２に示した機能構成以外にも、例えば、撮影機能、通信機能、音声入出力機能、外部入出力機能などの各種機能をさらに備えることも当然に可能である。なお、操作部１０２、操作入力部１０６、パーティクル湧き出し口設定部１１２、重力情報設定部１１４および表示部１０４は、上記第１実施形態に係る画像処理装置１００と同様のため、以下の説明においては省略する。また、以下の説明においては、本実施形態の特徴である、パーティクルシミュレーションに関する処理を中心に、図２２に示した各機能構成部の詳細について説明する。
【０１３４】
（色画像入力部６０８）
色画像入力部６０８は、パーティクルシミュレーションに利用する二次元画像を、ユーザからの指示に応じてデータ記憶部６１８へ転送する。ここで、二次元画像とは、各ピクセルがＲＧＢの色情報を有する色画像データである。ユーザは、上記操作部１０２を操作することにより、パーティクルシミュレーションに利用する二次元画像を選択することができる。ユーザは、例えば、画像処理装置６００の画像記憶部（図示せず）などに記録されている二次元画像を選択したり、外部メディアに記録されている二次元画像を選択したりすることができる。色画像入力部６０８は、操作入力部１０６からの指示に応じて、ユーザが選択した二次元画像を認識し、当該二次元画像をパーティクルシミュレーションに利用する色画像データとして後述するデータ記憶部６１８へ転送する。
【０１３５】
（法線画像入力部６１０）
法線画像入力部６１０は、ユーザや解析プログラムなどによって二次元画像に付加された法線情報に基づいてパーティクルシミュレーションに利用する法線画像を生成し、データ記憶部６１８へ転送する。ここで、法線情報とは、二次元画像の各ピクセルにおける三次元の面の方向（法線）を示す情報である。ユーザは、上記操作部１０２を操作することにより、パーティクルシミュレーションに利用する二次元画像を構成する所定のピクセルにおける法線情報を付加することができる。また、ユーザは、例えば、パーティクルシミュレーションに利用する二次元画像に対して所定の解析プログラムを利用することにより自動で各ピクセルにおける法線情報を付加することもできる。なお、解析プログラムとしては、例えば、二次元画像を構成するピクセルの明るさなどに基づいて擬似的な三次元空間を構築して自動で法線情報を付加する方法などが挙げられるが、特定の解析方法に限定されるものではない。
【０１３６】
法線画像入力部６１０は、ユーザによって付加された法線情報や、解析プログラムなどによって自動で付加された法線情報と、データ記憶部６１８に保存されている色画像データと、に基づいて法線マップを生成する。法線画像入力部６１０は、例えば、二次元画像を構成する所定のピクセルの法線情報を、あらかじめ設定されたＲＧＢの色情報に変換して管理することもできる。法線画像入力部６１０は、このようにして生成した法線マップを、パーティクルシミュレーションに利用する法線画像として後述するデータ記憶部６１８へ転送する。
（パーティクル反射領域設定部６１６）
パーティクル反射領域設定部６１６は、パーティクルシミュレーションに利用する反射領域データをデータ記憶部６１８へ転送する。ここで、反射領域データとは、パーティクルシミュレーションにおいて、パーティクルの軌道を反射させる領域に関する情報であり、例えば、反射領域となる二次元画像上のピクセル（位置）、当該ピクセルの法線情報などが含まれる。
【０１３７】
上述したように、パーティクルシミュレーションでは、設定したパーティクルの進行方向、初速度、重力方向と該重力の大きさなどに基づいて、湧き出し口からのパーティクルの軌道を算出することにより、水、炎、煙などの動きを擬似的に表現することができる。ここで、本実施形態に係る画像処理装置６００は、例えば、二次元画像における任意の領域を反射領域として指定した場合、湧き出し口から流動するパーティクルを当該反射領域で反射させることができる。すなわち、湧き出し口から流動するパーティクルは、反射領域に到達した後、当該反射領域の法線方向に向かって反射されることとなる。従来、このようなパーティクルの反射を、矛盾した三次元シーンに関してシミュレーションする場合、反射領域の三次元シーンを矛盾のない範囲内において局所的に構築し、構築された三次元シーンに基づいて反射するパーティクルの軌道を算出する必要があった。これに対して、本実施形態に係る画像処理装置６００は、反射領域に設定された法線情報のみに基づいてパーティクルの反射を実現することができる。
【０１３８】
したがって、ユーザは、パーティクルシミュレーションを実行するに際して、操作部１０２を操作して、二次元画像上の任意の領域を反射領域として指定し、当該反射領域の法線情報を設定する。パーティクル反射領域設定部６１６は、操作入力部１０６からの指示に応じて、ユーザが設定した反射領域および法線情報などを認識し、パーティクルシミュレーションに利用する反射領域データとして後述するデータ記憶部６１８へ転送する。
【０１３９】
（データ記憶部６１８）
データ記憶部６１８は、上述したパーティクルシミュレーションの実行に必要となる各種データを記憶する記憶部である。すなわち、データ記憶部６１８は、色画像データ、法線画像データ、湧き出し口データ、重力データ、反射領域データなどを記憶することができる。また、データ記憶部６１８は、後述するパーティクル演算部６２０による演算処理結果なども記憶することができる。
【０１４０】
（パーティクル演算部６２０）
パーティクル演算部６２０は、データ記憶部６１８に記録されている各種データに基づいてパーティクルシミュレーションに必要な演算処理を実行する。パーティクル演算部６２０は、例えば、データ記憶部６１８に記録されている湧き出し口データおよび重力データに基づいて、二次元画像上におけるパーティクルの軌道を算出することができる。また、パーティクル演算部６２０は、例えば、データ記憶部６１８に記録されている反射領域データに基づいて、反射領域で反射した後のパーティクルの軌道を算出することができる。このとき、パーティクル演算部６２０は、例えば、反射により損失されるエネルギなどを考慮して反射後のパーティクルの軌道を算出してもよい。
【０１４１】
また、本実施形態に係る画像処理装置６００は、本来のパーティクルの軌道から外れる二次元画像上の領域が反射領域として指定された場合にも、パーティクルの軌道を修正して簡易的にパーティクルシミュレーションを実行することができる。したがって、パーティクル演算部６２０は、パーティクルが反射領域に向かうようにパーティクルの軌道を修正する。なお、パーティクル演算部６２０は、本発明のシミュレーション結果演算部として機能する。また、パーティクル演算部６２０によるパーティクルの軌道修正処理の詳細については、後述する処理フローにおいて説明する。
【０１４２】
また、上述したように、パーティクルの湧き出し口として二次元画像上の所定領域が設定されるような場合もある。このような場合、パーティクル演算部は、設定された領域を構成する複数のピクセルをパーティクルの発生位置として、各パーティクル発生位置から発生する複数のパーティクルの軌道を算出することができる。これにより、例えば、水が満たされている立方体領域がパーティクルの発生領域として設定された場合、当該領域を構成する複数のピクセルからパーティクルを発生させることにより、水が立方体領域から放出されているようなシミュレーションを行うこともできる。
【０１４３】
パーティクル演算部によって算出された各種情報はデータ記憶部６１８および画像生成部１２２へ転送される。なお、パーティクル演算部６２０によって行われる処理は上記処理に限定されるものではなく、シミュレーションに必要となる各種処理を追加的に行うことも当然に可能である。
【０１４４】
（画像生成部６２２）
画像生成部６２２は、表示部１０４に表示させる画像データを生成し、表示部１０４の表示切替を制御する。例えば、画像生成部６２２は、操作入力部１０６からの指示に応じて、ユーザによる表示切替の指示を認識し、表示部１０４の表示を切り替える。画像生成部６２２は、例えば、ユーザが所定の二次元画像を選択した場合、当該二次元画像に対応する色画像データをデータ記憶部６１８から抽出して表示部１０４に表示させることができる。また、画像生成部６２２は、例えば、ユーザが法線情報の設定を指示した場合、法線情報の設定画面を表示部１０４に表示させることができる。また、画像生成部６２２は、パーティクル演算部６２０による算出結果に基づいて、二次元画像にパーティクルが表現された画像を生成して表示部１０４に表示させることができる。もちろん、画像生成部６２２によって生成される画像データや、表示部１０４の表示切替処理は上記例に限定されるものではない。
【０１４５】
以上、本実施形態に係る画像処理装置６００の機能構成について説明した。なお、図２２に示した画像処理装置６００の機能構成は、本実施形態を説明する上での一例であり、上記説明においては、本実施形態の特徴の１つであるパーティクルシミュレーションに関する機能を中心に説明した。
【０１４６】
＜３−２．画像処理装置６００によるパーティクルシミュレーションの処理フロー＞
次に、上述した機能構成を備える画像処理装置６００によって実行されるパーティクルシミュレーションの処理の流れについてフロー図を参照にして説明する。
【０１４７】
図２３は、本実施形態に係る画像処理装置６００により実行されるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。
【０１４８】
図２３に示すように、ステップ７００において、色画像入力部６０８は、パーティクルシミュレーションに利用する色画像データをデータ記憶部６１８に記録する。ユーザは、例えば、シミュレーションを行いたい二次元画像を、操作部１０２を操作することにより選択することができる。これを受けて色画像入力部６０８は、ユーザによって選択された二次元画像を色画像データとしてデータ記憶部６１８に転送する。このとき、画像生成部６２２は、データ記憶部６１８に格納された色画像データを表示部１０４に表示させることができる。
【０１４９】
図２４は、ステップ７００により表示部１０４に表示される色画像データの一例を示す説明図である。ユーザは、図２４に示した色画像に基づいて、パーティクルシミュレーションを行う二次元画像を認識することができる。
【０１５０】
次に、ステップ７０２において、法線画像入力部６１０は、パーティクルシミュレーションに利用する法線画像データをデータ記憶部６１８に記録する。ユーザは、例えば、ステップ７００により表示部１０４に表示された色画像の所定領域を構成するピクセルに対して所定の法線情報を設定することができる。法線画像入力部６１０は、このようにして二次元画像の所定のピクセルに対して法線情報が付加された画像を、法線画像データとしてデータ記憶部６１８に転送する。このとき、画像生成部６２２は、データ記憶部６１８に格納された法線画像データを表示部１０４に表示させることができる。
【０１５１】
ユーザは、例えば、操作部１０２を操作することにより、法線情報を付加させるモードへの移行を画像処理装置６００に指示することができる。画像生成部６２２は、操作入力部１０６からの指示に応じて、法線情報を付加するモードに表示部１０４の表示を切り替えることができる。
【０１５２】
図２５〜２８は、ユーザが二次元画像に対して所定の法線情報を付加させる際の表示部１０４の表示例を示す説明図である。図２４に示すように、表示部１０４にはステップ７００により表示された色画像に重ねて法線情報を設定するための画面が表示されている。ユーザは、図２５に示す画面を参照しながら、二次元画像における所定の領域を構成するピクセルに対して法線情報を付加することができる。
【０１５３】
まず、ユーザは、図２６に示すように、法線情報を付加する領域を選択する。ユーザは、例えば、マウス、キーボードなどで構成される操作部１０２を操作したり、表示部１０４が備えるタッチパネル機能を利用したりすることにより、二次元画像における所定領域を、法線情報を付加する領域として選択することができる。
【０１５４】
次に、ユーザは、図２７に示すように、選択した領域の法線情報を設定する。ユーザは、例えば、マウス、キーボードなどで構成される操作部１０２を操作したり、表示部１０４が備えるタッチパネル機能を利用したりすることにより、選択領域を構成する各ピクセルに対して任意の三次元的な法線方向を設定することができる。このとき、画像生成部６２２は、ユーザによって設定された法線方向に応じて選択領域の表示色を変更させて表示部１０４に表示させてもよい。図２７に示す例では、説明の便宜上選択領域にハッチング処理が施されているが、画像生成部６２２は、ユーザによって設定された法線方向に対応するＲＧＢの値を所定の計算式に基づいて算出し、選択領域を算出された色で表示させることができる。
【０１５５】
ユーザによって選択領域の法線方向が変更された場合、図２８に示すように、法線方向を示す矢印の向きが変更され、選択領域の色（図２８においてはハッチング）が変更される。
【０１５６】
また、法線方向の設定は上記例に限定されるものではなく、画像処理装置６００は、他の方法により法線情報を設定することもできる。例えば、ユーザによって二次元画像における所定範囲の円領域が選択された場合、画像処理装置６００は、当該円領域において球形状の法線方向を自動で設定することもできる。図２９は、当手法による法線方向の設定の概念を示す説明図である。図２９（ａ）に示すように、二次元画像において円形状の領域が指定された場合、画像処理装置６００は、図２９（ｂ）に示すように、球体状の法線方向を自動で設定する。このとき、画像生成部６２２は、円領域の各ピクセルに付加された法線方向に対応するＲＧＢの値を所定の計算式に基づいて算出し、選択された円領域を算出された色で表示させることもできる。なお、この法線方向の設定に際して生成されるのは法線だけであって、実際に対応する三次元の球を生成しているわけではない。
【０１５７】
また、法線情報は必ずしもユーザによる操作によって設定されなければならないわけではなく、例えば、自動解析プログラムなどを利用することにより、二次元画像に自動で法線情報を付加してもよい。二次元画像に対して自動で法線情報を付加する方法としては、二次元画像を構成する明るさなどを利用する手法などが考えられるが、本実施形態では特定の手法に限定されるものではない。
【０１５８】
このようにして、ユーザは、表示部１０４に表示される画像を参照して、二次元画像上で選択した所定領域の三次元的な法線情報を任意に設定することができる。
【０１５９】
法線画像入力部６１０は、以上のような方法によって設定された法線情報を含む画像を、法線画像データとしてデータ記憶部６１８に記録する。
【０１６０】
再度図２３のフロー図を参照すると、ステップ７０４において、画像処理装置６００は、ステップ７０２によって設定された法線情報に対して、画像処理フィルタリングを施す。すなわち、ユーザは、上述した方法で設定した法線情報を、画像フィルタによって任意に加工することができる。ユーザは、例えば、平滑化フィルタリングや多数決フィルタリングなどを利用することにより、設定した法線情報を任意に加工することができる。なお、ステップ７０４は、ユーザの選択により任意に行われる処理であって必ずしも実行される必要はない。また、法線情報の加工に利用される画像処理フィルタもユーザまたは画像処理装置６００によって適宜選択されるものであり、特定のフィルタリング処理に限定されるものではない。
【０１６１】
次に、ステップ７０６において、重力情報設定部１１４は、パーティクルシミュレーションに利用する重力データをデータ記憶部６１８に記録する。ユーザは、例えば、ステップ７００により表示部１０４に表示された色画像における三次元的な重力方向と該重力の大きさを任意に設定することができる。重力情報設定部１１４は、ユーザによって設定された二次元画像における三次元的な重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部６１８に転送する。
【０１６２】
図３０は、ユーザが重力方向と該重力の大きさを設定する際の表示部１０４の表示例を示す説明図である。図３０に示すように、表示部１０４には二次元画像に重ねて重力方向と該重力の大きさを示す矢印が表示される。ユーザは、例えば、操作部１０２を操作することにより、表示部１０４に表示された重力方向と該重力の大きさを示す矢印を任意の方向に設定することができる。すなわち、ユーザは、パーティクルシミュレーションをするシーンの重力方向と該重力の大きさを任意に設定することができる。
【０１６３】
重力情報設定部１１４は、このようにしてユーザによって任意に設定された重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部６１８に記録する。また、画像生成部６２２は、データ記憶部６１８に記録された重力データに基づいて、二次元画像にユーザにより設定された重力方向が表現された画像を生成して表示部１０４に表示させることができる。
【０１６４】
次に、ステップ７０８において、パーティクル湧き出し口設定部１１２は、パーティクルシミュレーションに利用する湧き出し口データをデータ記憶部６１８に記録する。ユーザは、例えば、ステップ７００により表示部１０４に表示された色画像の所定位置をパーティクルが発生する湧き出し口として設定することができる。また、ユーザは、設定した湧き出し口から発生するパーティクルの初速度の方向および大きさも任意に設定することができる。
【０１６５】
図３１〜図３３は、ユーザによってパーティクルの湧き出し口、初速度の方向および大きさが設定された際の表示部１０４の表示例を示す説明図である。ユーザによってパーティクルの湧き出し口、パーティクルの初速度の方向および大きさが設定されると、パーティクル演算部６２０は、設定された情報や重力データなどに基づいて、湧き出し口から発生するパーティクルの軌道を算出する。その後、画像生成部６２２は、図３１〜図３３に示すように、パーティクル演算部６２０によって算出されたパーティクルの軌道が表現された画像を生成して、表示部１０４に表示させる。これにより、ユーザは、操作部１０２を操作することにより、設定したパーティクルの湧き出し口、パーティクルの初速度の方向および大きさを任意に変更し、パーティクルの軌道を修正することができる。図３１〜図３３を参照すると、パーティクルの湧き出し口は固定されているが、パーティクルの初速度方向がユーザによって変更されることにより、パーティクルの軌道が変更されていることがわかる。
【０１６６】
ここで、ユーザが操作部１０２などを介してパーティクルシミュレーションの開始を選択した場合、画像処理装置６００は、パーティクルシミュレーションを実行する。すなわち、画像生成部６２２は、パーティクル演算部６２０によって算出されたパーティクルの軌道に基づいて、二次元画像上においてパーティクルが流動する画像を生成して、表示部１０４に表示させる。
【０１６７】
図３４は、パーティクルシミュレーション実行時における表示部１０４の表示例を示す説明図である。図３４に示すように、表示部１０４には、図３３に示したパーティクルの軌道に基づいて、複数のパーティクルにより水の流れが表現されている。
【０１６８】
次に、ステップ７１０において、パーティクル反射領域設定部６１６は、パーティクルシミュレーションに利用する反射領域データをデータ記憶部６１８に記録する。ユーザは、例えば、操作部１０２を操作することにより、表示部１０４に表示された二次元画像の任意の領域をパーティクルの反射領域として設定することができる。パーティクル反射領域設定部６１６は、ユーザによって設定されたパーティクルの反射領域に関する情報を、反射領域データとしてデータ記憶部６１８に転送する。
【０１６９】
図３５は、パーティクルの反射領域を設定する際の表示部１０４の表示例を示す説明図である。図３５に示すように、表示部１０４にはユーザが設定したパーティクルの反射領域が表示される。ユーザは、例えば、マウスやキーボードなどで構成される操作部１０２を操作したり、タッチパネル機能を備える表示部１０４を利用したりすることにより、二次元画像における任意の領域を反射領域として設定することができる。
【０１７０】
このようにしてユーザによりパーティクルの反射領域が設定された場合、パーティクル反射領域設定部６１６は、設定された反射領域に関する情報を、反射領域データとしてデータ記憶部６１８に転送する。
【０１７１】
次に、ステップ７１２において、画像処理装置６００は、レンダリング処理を行う。ここで、レンダリングとは、数値データとして与えられた物体や図形に関する情報を計算によって画像化することを意味する。
【０１７２】
まず、パーティクル演算部６２０は、データ記憶部６１８に記録されている反射領域データなどに基づいて反射後のパーティクルの軌道を算出する。
【０１７３】
ここで、パーティクル演算部６２０は、反射領域に付加されている法線情報を利用してパーティクルの反射後の速度ベクトル等を算出することができる。例えば、モーメントと摩擦を考慮しないシミュレーションでは、反射（衝突）により向きを変更する運動量は反射面の法線方向のみに働くこととなる。なお、反射後のパーティクルの軌道を算出するにあたって用いられる計算式やパラメータなどは、シミュレーションの精度や目的などに応じて任意に設定・変更することができるものであり、特定の算出方法に限定されるものではない。
【０１７４】
その後、ステップ７１４において、画像生成部６２２は、パーティクル演算部６２０によって算出されたパーティクルの軌道に基づいて、二次元画像上においてパーティクルが反射領域で反射している画像を生成して、表示部１０４に表示させる。図３６を参照すると、パーティクルの軌道が、ユーザによって指定された反射領域で反射されていることがわかる。
【０１７５】
ここで、ユーザが操作部１０２などを介してパーティクルシミュレーションの開始を選択した場合、画像処理装置６００は、パーティクルシミュレーションを実行する。すなわち、画像生成部６２２は、図３７に示すように、パーティクル演算部６２０によって算出されたパーティクルの軌道に基づいて、二次元画像上においてパーティクルが流動する画像を生成して、表示部１０４に表示させる。
【０１７６】
なお、図３５〜図３７では、１の反射領域のみを指定する例を示したが、画像処理装置６００は、複数の反射領域を設定してパーティクルシミュレーションを実行することもできる。すなわち、パーティクル反射領域設定部６１６は、ユーザによって反射領域が設定されるたびに反射領域データをデータ記憶部６１８に記録することができる。さらに、パーティクル演算部６２０は、このようにしてデータ記憶部６１８に記録された複数の反射領域データに基づいて、パーティクルの軌道を算出することができる。このとき、パーティクル演算部６２０は、例えば、パーティクルの反射に伴って生じるエネルギ損失などを考慮してパーティクルの軌道を算出してもよい。
【０１７７】
以上、画像処理装置６００によって実行されるパーティクルシミュレーションの処理の流れについてフロー図を参照にして説明した。
【０１７８】
＜３−３．パーティクルの軌道修正処理＞
上述した処理の一例では、ユーザはパーティクルの軌道上に反射領域を設定したが、必ずしも反射領域はパーティクルの軌道上に設定される必要はない。従来の手法によりパーティクルシミュレーションを行う場合、本来のパーティクルの軌道とは逸脱した地点でパーティクルを反射させたい場合、三次元シーンを構築し、反射に必要な各種パラメータなどの情報を付加させる必要があった。これに対して本実施形態に係る画像処理装置６００は、パーティクルの軌道を自動で修正し、ユーザによって設定された任意の反射領域でパーティクルを反射させることができる。以下、本実施形態において、ユーザによって選択された反射領域に基づくパーティクルの軌道修正の一例について、図３８を参照にして説明する。
【０１７９】
上述したように、本実施形態においては、パーティクル演算部６２０は、ユーザによって設定されたパーティクルの湧き出し口、パーティクルの初速度の方向および大きさ等に基づいてパーティクルの軌道を算出する。すなわち、パーティクル演算部６２０は、各時間ステップにおいて速度ベクトルを加算し、速度ベクトルには重力加速度を加算することにより、三次元空間内におけるパーティクルの放物線軌道を算出することができる。画像生成部６２２は、このようにして算出されたパーティクルの放物線軌道に基づいて、パーティクルの位置を二次元ベクトルとして二次元画像上に表現して、表示部１０４に表示させることができる。
【０１８０】
また、パーティクルの反射は、シミュレーションを行うシーンに関わらず、ユーザによって設定された反射領域においてのみ発生する。したがって、パーティクル演算部６２０は、反射領域に対応するピクセルの位置情報に基づいて、パーティクルの衝突時間を算出することができる。具体的には、パーティクル演算部６２０は、パーティクルが最初にシーン内に現れた時点、およびパーティクルが反射された時点で、パーティクルが次に反射する時間を算出する。
【０１８１】
例えば、パーティクルが最初にシーン内に現れた時点、およびパーティクルが反射された時点の時間をｔ０、その直後の位置ベクトルをＸ０、速度ベクトルをＶ０と仮定し、ユーザによって設定された反射領域をＡと仮定する。ここで、位置ベクトルＸ０は二次元ベクトルであり、速度ベクトルＶ０は三次元ベクトルであり、反射領域Ａは二次元平面である。この場合、パーティクルが次に反射する位置は、反射領域Ａを構成するいずれかのピクセル（位置）である。したがって、パーティクル演算部６２０は、反射領域Ａの中から任意の位置をパーティクルが反射する位置Ｘ１として選出する。同様に、パーティクル演算部６２０は、すべてのパーティクルに対して各パーティクルが反射する位置Ｘ１を反射領域Ａの中から選出する。この結果、パーティクルシミュレーションにより表現されるパーティクルは、ユーザによって選択された反射領域の広さに応じて拡散した動きで表現されることとなる。
【０１８２】
ここで、パーティクルの反射位置Ｘ１は、必ずしもパーティクル演算部６２０によって算出されたパーティクルの軌道上に位置するとは限らない。このような場合、パーティクル演算部６２０は、物理計算によって算出したパーティクルの軌道上で、反射位置Ｘ１に最も近い位置をＸ’１として選出し、パーティクルがＸ０からＸ’１に到達するまでの時間をｔ１として定義する。さらに、パーティクル演算部６２０は、Ｘ１とＸ’１の差分をパーティクルの軌道に分散させて、パーティクルの軌道を修正する。すなわち、パーティクル演算部６２０は、各時間ステップで物理計算により算出される位置に下記式（１１）で算出される値を加算する。
【０１８３】
【数８】
2010152870.tif 000010
【０１８４】
以上のように、パーティクル演算部６２０は、シミュレーションに利用するすべてのパーティクルに対して上記処理を施すことにより、ユーザによって設定された反射領域でパーティクルが反射されるようにパーティクルの軌道を修正することができる。
【０１８５】
すなわち、湧き出し口から発生したパーティクルは、１つ目の反射領域の中からパーティクル演算部６２０によって選出された任意の反射位置に向かうように軌道修正される。また、ある反射位置で反射したパーティクルは、次の反射領域の中からパーティクル演算部６２０によって選出された任意の反射位置に向かうように軌道修正される。
【０１８６】
また、パーティクル演算部６２０は、反射後のパーティクルの軌道を、反射位置Ｘ１に付加された法線情報に基づいて容易に算出することができる。例えば、反射に際して摩擦やトルクの影響がないものと仮定した場合、衝突後の速度ベクトルＶ’は式（１２）のように算出される。
【０１８７】
【数９】
2010152870.tif 000011
【０１８８】
ここで、Ｖは反射前の速度ベクトルであり、Ｎは正規化された反射面での法線であり、μは反射位置の弾性力を表すスカラー定数であってユーザにより例えば０〜１の範囲で任意に設定される。
【０１８９】
このように、本実施形態に係る画像処理装置６００は、ユーザによってシーン内の任意の位置に設定された反射領域でパーティクルが反射されるように、物理計算によって算出されたパーティクルの軌道を修正することができる。また、画像処理装置６００は、反射領域に付加された法線情報を用いることで容易に反射後のパーティクルの軌道を算出することができる。したがって、画像処理装置６００は、物理計算によって算出された軌道から逸脱した位置でパーティクルを反射させたい場合においても、三次元シーンを再構築したり、反射後の軌道算出に必要な各種パラメータを設定したりする煩雑な処理・作業が不要である。
【０１９０】
＜３−４．画像処理装置６００によるパーティクルシミュレーションの実施例＞
次に、上述した画像処理装置６００によりパーティクルシミュレーションを行った実施例について図３９〜図４４を参照にして説明する。
【０１９１】
図３９および図４０は、幾何学的なシーンにおいて、パーティクルが階段を落ちていく様子をシミュレーションした結果を示す説明図である。従来手法によってパーティクルシミュレーションを行う場合、ユーザは、三次元シーンを構築し、意図した（二次元的な）位置でパーティクルが反射するように各種パラメータ等をシミュレータに提供する必要があった。例えば、図３９および図４０に示す例では階段の幅が大きくなっているシーンが存在している。このようなシーンで意図したパーティクルの反射を実現するには、場所によって反射係数を変更する、または非直感的な三次元形状を作成するなどといった煩雑な作業・処理が必要であった。
【０１９２】
これに対して、本実施形態に係る画像処理装置６００は、二次元画像において設定された法線情報および反射領域に基づいて、上述した処理を実行することにより、図４０に示すようなパーティクルシミュレーションを簡単に実行することができる。
【０１９３】
図４１および図４２は、現実の物理計算では不可能なパーティクルの軌道をシミュレーションした結果を示す説明図である。図４１および図４２を参照すると、階段が途中で奥にずれた後に上昇していることがわかる。現実の物理計算では、このような階段の各段をパーティクルが反射する軌道を算出することはできない。このような場合においても、本実施形態に係る画像処理装置６００は、各段の法線情報を設定し、各段を反射領域として設定することにより、図４２に示すようなパーティクルシミュレーションを容易に実行することができる。
【０１９４】
図４３および図４４は、パーティクルシミュレーションの実施例を示す別の説明図である。図４３および図４４に示すシミュレーションでは、ビルの窓から発生したパーティクルが家の屋根で反射した後、キャラクタの頭部で再度反射している。このようなシミュレーションを従来の手法で実現することは極めて困難であり、煩雑な設定・処理が必要となっていた。すなわち、一度屋根で反射して広がったパーティクルを再度キャラクタの小さな頭部で反射させるには、奥行き情報などを考慮して屋根の法線を細かく調整し、修正を繰り返しながら時間をかけて三次元シーンを構築する必要があった。
【０１９５】
これに対して、本実施形態に係る画像処理装置６００は、このようなシーンにおいても簡易にパーティクルシミュレーションを実行することができる。すなわち、画像処理装置６００は、パーティクルの湧き出し口をビルの窓に設定し、パーティクルの反射領域を家の屋根、およびキャラクタの頭部に設定する。このとき、キャラクタの頭部の法線方向は、例えば、図２９に示したような手法で球体状の法線を定義してもよい。これにより、画像処理装置６００は、上述した処理を実行することにより、図４４に示すようなパーティクルシミュレーションを簡単に実行することができる。
【０１９６】
このように、本実施形態に係る画像処理装置６００は、二次元画像において設定された法線情報を利用することにより、三次元シーを構築することなくパーティクルシミュレーションを実行することができる。また、ユーザによって設定された二次元画像における任意の反射領域でパーティクルが反射するように、パーティクルの軌道を修正することもできる。これにより、現実には不可能なパーティクルの軌道をシミュレーションしたい場合や、複雑な三次元シーンを構築しなければ実現することができなかったパーティクルの軌道をシミュレーションしたい場合などでも、容易にシミュレーションを実行することができる。すなわち、本実施形態に係る画像処理装置６００は、三次元の構造的には一貫性のない法線マップを有するシーンにおいても、三次元形状を構築することなくパーティクルを用いた簡易シミュレーションを実行することが可能である。
【０１９７】
＜４．画像処理装置１００、６００のハードウェア構成＞
次に、図４５を参照しながら、上記実施形態に係る画像処理装置１００（画像処理装置６００も同様）のハードウェア構成について、詳細に説明する。図４５は、本実施形態に係る画像処理装置１００のハードウェア構成を説明するためのブロック図である。
【０１９８】
画像処理装置１００は主に、ＣＰＵ９０１、ＲＯＭ９０３、ＲＡＭ９０５、ブリッジ９０９、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、および通信装置９２５を備える。
【０１９９】
ＣＰＵ９０１は、算出処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、画像処理装置６００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや算出パラメータ等を記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。
【０２００】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよい。さらに、入力装置９１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などから構成されている。画像処理装置１００のユーザは、この入力装置９１５を操作することにより、画像処理装置１００に対してシミュレーションに関する処理を指示することができる。なお、入力装置９１５は、上述した操作部１０２、操作入力部１０６などにより構成される。
【０２０１】
出力装置９１７は、例えば、ＣＲＴディスプレイ、液晶ディスプレイ、プラズマディスプレイ、ＥＬディスプレイなどの表示装置や、スピーカなどの音声出力装置など、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、画像処理装置１００が行ったシミュレーションにより得られた結果を出力する。なお、出力装置９１７は、上述した表示部１０４などにより構成される。
【０２０２】
ストレージ装置９１９は、画像処理装置１００の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。なお、ストレージ装置９１９は、上述したデータ記憶部１１８、６１８などにより構成される。
【０２０３】
ドライブ９２１は、記録媒体用リーダライタであり、画像処理装置６００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７にデータなどを書き込むことも可能である。
【０２０４】
接続ポート９２３は、例えば、ＵＳＢポート、光オーディオ端子、ＩＥＥＥ１３９４ポート、ＳＣＳＩポート、ＨＤＭＩポート等の、外部接続機器９２９に直接接続するためのポートである。この接続ポート９２３に外部接続機器９２９を接続することで、画像処理装置１００は、外部接続機器９２９から画像データなどを取得したり、外部接続機器９２９に各種データを転送したりすることができる。
【０２０５】
通信装置９２５は、例えば、通信網９３１に接続するための通信デバイス等で構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ、光通信用のルータ、ＡＤＳＬ用のルータ、または各種通信用のモデム等である。また、通信装置９２５に接続される通信網９３１は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
【０２０６】
以上、本発明の各実施形態に係る画像処理装置１００および６００の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０２０７】
＜５．まとめ＞
上述したように、第１実施形態に係る画像処理装置１００は、シーン画像を構成するピクセル毎に相対Ｚ値およびオフセットＺ値が設定されたＯＬＤＩを利用することで、シーン内における物体の形状や位置関係を認識して、シミュレーションを行うことができる。また、隣接していないピクセル間でＶＰＣを設定することにより、三次元的一貫性のないシーンにおけるシミュレーションを簡易かつ柔軟に行うこともできる。
【０２０８】
また、第２実施形態に係る画像処理装置６００は、二次元画像において設定された法線情報を利用することにより、三次元データを構築することなくパーティクルシミュレーションを実行することができる。また、ユーザによって設定された二次元画像における任意の反射領域でパーティクルが反射するように、パーティクルの軌道を修正することもできる。これにより、現実には不可能なパーティクルの軌道をシミュレーションしたい場合や、複雑な三次元シーンを構築しなければ実現することができなかったパーティクルの軌道をシミュレーションしたい場合などでも、容易にシミュレーションを実行することができる。
【０２０９】
なお、第１実施形態では三次元データに基づいてＯＬＤＩを生成し、第２実施形態ではる三次元データが存在しない場合を例に説明したが、第２実施形態におけるパーティクルの反射領域の設定や軌道修正等の方法を第１実施形態に適用することも当然に可能である。例えば、第１実施形態に係る画像処理装置１００によりＯＬＤＩを利用してパーティクルの軌道を表現した後に、第２実施形態で説明した方法により、ユーザが設定した反射領域でパーティクルが反射するようにパーティクルの軌道を修正してもよい。さらに、軌道修正したパーティクルを三次元データによる法線情報等に基づいて、反射させたシミュレーションを実現することも当然に可能である。すなわち、第２実施形態において説明した法線情報の設定は、あくまで三次元データが構築されていない場合の例であり、シーン内における三次元データが構築されている場合には、上記第１実施形態において説明したＯＬＤＩを利用すればよい。
【０２１０】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【０２１１】
また、本明細書において、フロー図またはシーケンス図に記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。例えば、パーティクルシミュレーションを実行する際の処理の流れは、必ずしも上述した処理フローの流れに沿って行われる必要はない。例えば、重力方向と該重力の大きさを先に設定した後にパーティクルの湧き出し口を設定してもよく、処理の流れは適宜変更してもよい。
【符号の説明】
【０２１２】
１００、６００    画像処理装置
１０２    操作部
１０４    表示部
１０６    操作入力部
１０８    画像入力部
１１０    ＯＬＤＩ生成部
１１２    パーティクル湧き出し口設定部
１１４    重力情報設定部
１１６    ＯＬＤＩ修正部
１１８、６１８    データ記憶部
１２０、６２０    パーティクル演算部
１２２、６２２    画像生成部
６０８    色画像入力部
６１０    法線画像入力部
６１６    パーティクル反射領域設定部
【図１】
2010152870.tif 000013
【図２】
2010152870.tif 000014
【図３】
2010152870.tif 000015
【図４】
2010152870.tif 000016
【図５】
2010152870.tif 000017
【図６】
2010152870.tif 000018
【図７】
2010152870.tif 000019
【図８】
2010152870.tif 000020
【図９】
2010152870.tif 000021
【図１０】
2010152870.tif 000022
【図１１】
2010152870.tif 000023
【図１２】
2010152870.tif 000024
【図１３】
2010152870.tif 000025
【図１４】
2010152870.tif 000026
【図１５】
2010152870.tif 000027
【図１６】
2010152870.tif 000028
【図１７】
2010152870.tif 000029
【図１８】
2010152870.tif 000030
【図１９】
2010152870.tif 000031
【図２０】
2010152870.tif 000032
【図２１】
2010152870.tif 000033
【図２２】
2010152870.tif 000034
【図２３】
2010152870.tif 000035
【図２４】
2010152870.tif 000036
【図２５】
2010152870.tif 000037
【図２６】
2010152870.tif 000038
【図２７】
2010152870.tif 000039
【図２８】
2010152870.tif 000040
【図２９】
2010152870.tif 000041
【図３０】
2010152870.tif 000042
【図３１】
2010152870.tif 000043
【図３２】
2010152870.tif 000044
【図３３】
2010152870.tif 000045
【図３４】
2010152870.tif 000046
【図３５】
2010152870.tif 000047
【図３６】
2010152870.tif 000048
【図３７】
2010152870.tif 000049
【図３８】
2010152870.tif 000050
【図３９】
2010152870.tif 000051
【図４０】
2010152870.tif 000052
【図４１】
2010152870.tif 000053
【図４２】
2010152870.tif 000054
【図４３】
2010152870.tif 000055
【図４４】
2010152870.tif 000056
【図４５】
2010152870.tif 000057