JP2010152870A - 画像処理装置、画像処理方法および画像処理プログラム - Google Patents

画像処理装置、画像処理方法および画像処理プログラム Download PDF

Info

Publication number
JP2010152870A
JP2010152870A JP2009215866A JP2009215866A JP2010152870A JP 2010152870 A JP2010152870 A JP 2010152870A JP 2009215866 A JP2009215866 A JP 2009215866A JP 2009215866 A JP2009215866 A JP 2009215866A JP 2010152870 A JP2010152870 A JP 2010152870A
Authority
JP
Japan
Prior art keywords
image
particle
value
simulation
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009215866A
Other languages
English (en)
Inventor
Shigeru Owada
茂 大和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2009215866A priority Critical patent/JP2010152870A/ja
Publication of JP2010152870A publication Critical patent/JP2010152870A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】三次元的一貫性のないシーンを効率よく表現し、かつその上で簡易で柔軟なシミュレーションを行うことが可能な画像処理装置を提供する。
【解決手段】シーン画像の1のピクセルに存在する物体の奥行き方向の位置を相対Z値としてピクセル毎に算出し、1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値としてピクセル毎に算出し、相対Z値およびオフセットZ値をシーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成部と、相対Z値およびオフセットZ値に基づいて物体の形状および位置関係を認識することにより、シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算部と、シミュレーション結果がシーン画像に表現された画像を生成するシミュレーション画像生成部と、を備える画像処理装置である。
【選択図】図1

Description

本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
近年、コンピュータグラフィックス(CG:Comuputer Graphics)やバーチャルリアリティ(VR:Virtual Reality)に関する技術力の向上に伴い、特にデザイナーや研究者等によって様々なシミュレーションが行われている。例えば、所定のシーン画像において擬似的に水、炎、煙等の動きを表現させるパーティクルシミュレーションや、視点からの仮想光線とシーン内の物体との交点等を算出することによりレンダリングを行うレイトレーシングなどが広く知られている。
ここで、ある物体(被写体)の三次元データに基づくシーン画像において三次元的一貫性のあるシミュレーションを行う場合、三次元データに基づく演算処理により比較的容易にシミュレーションを行うことができる。ここでいう三次元的一貫性とは、形状の座標や接続関係に破綻がないことであり、直感的には、現実世界に存在可能な形状と考えてもよい。
また、シミュレーションに利用するデータ構造として、非特許文献1〜2に記載のように、ポイントベースグラフィックスと呼ばれる、シーンを点集合で表現する手法が知られている。さらにこれを一歩進め、非特許文献3〜4に記載のように、この点集合を、レンダリングする際のピクセルの位置に整列したデータ構造も提案されている。このようなデータ構造は、LDI(Layered Depth Image)とも言われている。
このLDIは、シーンを構成する点集合を、レンダリング時のピクセル位置に整列したものであり、各点は視点からその点までの距離を保持している。そのため、このデータ構造は、距離付き画像(デプスマップ)を多層にしたものと考えることもできる。既存の距離つき画像では視点から最も近い点の情報のみが格納されていたのに対し、LDIではシーンを構成する全ての形状情報を持っているのが特徴である。したがって、被写体の形状や距離等が三次元データ等に基づいて正確に求めることができる場合には、LDIに基づいて、三次元的一貫性のあるシーンのシミュレーションを比較的容易に行うこともできる。
PFISTER H.、ZWICKER M.、VAN BARR J.、AND GROSS M.2000.Surfels:surface elements as rendering primitives.In Proc.Siggraph‘00、ACM、335−342. ALEXA M.、GROSS M.、PAULY M.、PFISTER H.、STAMMINGER M.、AND ZWICKER M.2004.Point−based computer graphics.In SIGGRAPH‘04 Course Notes、ACM,Article No.7. SHADE J.、GORTLER S.、HEL.、AND SZELISKI R.1998.Layered Depth Images.In Proc.Siggraph‘98、ACM、231−242. NAMBOORI R.、TEH H.C.、AND HUANGZ.2004.An adaptive sampling method for layered depth image. In CGI‘04:Proceedings of the Computer Graphics International、IEEE Computer Society、Washington,DC、USA、206−213.
しかしながら、三次元的一貫性のないシミュレーションを行いたい場合、すなわち、局所的には三次元的な立体構造を持っていても、シーン全体の形状が一意に再構成できない(現実世界にその形状を作り出すことができない)場合も多い。例えば、CGによる映像、ポスター、トリックアートなどにおいては、三次元的な一貫性を持たないシーンがデザイナーによって着想され、かつそのようなシーンの上でCGを用いてシミュレーションを行なうような演出が必要な場合も非常に多い。なぜなら、人間は映像に関して、局所的な一貫性には大きな注意を払うが、大域的な非一貫性には鈍感であり、これを利用した映像には独特の魅力があるからである。
このような場合、従来は、シーンを複数の(一貫性のある)三次元データに分割して構築したり、特殊なシミュレーションの設定により見かけ上意図する効果を得ようとしたりする必要があった。したがって、シーンの一貫性の有無にかかわらず、シーンの再構成やシミュレーションの場当たり的設定を必要とすることなく、直感的なシミュレーションを簡易かつ柔軟に行えるような方法が所望されている。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、三次元的一貫性のないシーンを効率よく表現し、かつその上で簡易で柔軟なシミュレーションを行うことが可能な、新規かつ改良された画像処理装置、画像処理方法および画像処理プログラムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出し、前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出し、前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成部と、前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算部と、前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成部と、を備える画像処理装置が提供される。
係る構成により、画像処理装置のシミュレーション用データ生成部は、シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出することができる。また、シミュレーション用データ生成部は、前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出することができる。これによりシミュレーション用データ生成部は、前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成することができる。また、画像処理装置のシミュレーション結果演算部は、前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算することができる。さらに、画像処理装置の画像生成部は、前記シミュレーション結果が前記シーン画像に表現された画像を生成することができる。
また、前記シーン画像は、所定の三次元形状の物体を含む三次元データを所定の方向からキャプチャした画像であり、前記シミュレーション用データ生成部は、前記三次元データに基づいて前記相対Z値および前記オフセットZ値を算出することもできる。
また、前記シミュレーション用データ生成部は、前記シーン画像の所定の1のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置からの相対距離を前記相対Z値として算出し、前記シーン画像の所定の1のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置との差を前記オフセットZ値として算出することもできる。
また、前記シミュレーション結果演算部は、前記シーン画像の所定の第1ピクセルおよび該第1ピクセルと隣接しない少なくとも1以上の第2ピクセルに同一物体が存在する場合において、前記第1ピクセルと前記第2ピクセルとの間に存在する物体の最短経路のピクセルに設定されている前記オフセットZ値を辿っていくことにより、前記第1ピクセルにおける物体と前記第2ピクセルにおける物体との位置関係を算出することもできる。
また、前記第1ピクセルに存在する物体の奥行き方向の位置と、前記第2ピクセルに存在する物体の奥行き方向の位置との差がユーザにより任意に設定された場合、該差を修正オフセットZ値として前記シミュレーション用データに記録するシミュレーション用データ修正部をさらに備えてもよい。この場合、前記シミュレーション結果演算部は、前記第1ピクセルに存在する物体と前記第2ピクセルにおける物体との位置関係を、優先的に前記修正オフセット値に基づいて算出することもできる。
また、前記シミュレーション結果演算部は、少なくともシーン画像上に設定されたパーティクルの発生位置、該発生位置からのパーティクルの初速度の大きさ、および重力方向と該重力の大きさに基づいて、前記発生位置からのパーティクルの流れを第1のパーティクル軌道として算出し、前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記第1のパーティクル軌道を前記物体との接触位置で少なくとも1回以上反射させた第2のパーティクル軌道を算出してもよい。この場合、シミュレーション画像生成部は、前記シミュレーション結果演算部によって算出された第2のパーティクル軌道に基づいて、前記シーン画像にパーティクルが表現された画像を生成することもできる。
また、前記シミュレーション結果演算部は、シーン画像においてパーティクルが発生する領域が設定された場合、該領域内の発生位置から発生するパーティクル毎に前記第2のパーティクル軌道を算出することもできる。
また、前記シミュレーション結果演算部は、ユーザによりシーン画像に存在する物体の少なくとも1以上の領域が反射領域として設定された場合、前記三次元データに基づいて前記反射領域の物体の法線情報を算出し、前記反射領域で前記第2のパーティクル軌道のパーティクルをさらに反射させた第3のパーティクル軌道を算出することもできる。
また、前記シミュレーション結果演算部は、前記少なくとも1以上の反射領域の中から任意の反射位置を選択し、該反射位置で前記第2のパーティクル軌道のパーティクルを反射させて前記第3のパーティクル軌道を算出することもできる。
また、前記シミュレーション結果演算部は、前記第2のパーティクルの軌道がユーザによって設定された前記反射位置へ到達するように、パーティクルの軌道を修正して前記第3のパーティクル軌道を算出することもできる。
また、前記シミュレーション結果演算部は、前記第2のパーティクル軌道の所定位置における時間をt0、前記第2のパーティクル軌道がユーザによって設定された前記反射位置に到達する時間をt1、該反射位置をX1と定義し、前記第2のパーティクル軌道で前記X1に最も近い位置X’を算出し、前記t0〜t1の各時間ステップで下記式(1)により算出された値を加算することにより前記第2のパーティクル記号がユーザによって設定された前記反射位置へ到達するように前記第2のパーティクル軌道を修正して、該修正された第2のパーティクル軌道のパーティクルを反射させて前記第3のパーティクル軌道を算出することもできる。
Figure 2010152870
また、上記課題を解決するために、本発明の別の観点によれば、シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出する相対Z値算出ステップと、前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出するオフセットZ値算出ステップと、前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成ステップと、前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算ステップと、前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成ステップと、を備える画像処理方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出する相対Z値算出処理と、前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出するオフセットZ値算出処理と、前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成処理と、前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算処理と、前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成処理と、をコンピュータに実行させる画像処理プログラム。
以上説明したように本発明によれば、三次元的一貫性のないシーンを効率よく表現し、かつその上で簡易で柔軟なシミュレーションを行うことが可能な、新規かつ改良された画像処理装置、画像処理方法および画像処理プログラムが提供される。
本発明の第1実施形態に係る画像処理装置100の機能構成を示すブロック図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す説明図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す別の説明図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す別の説明図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す別の説明図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す別の説明図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す別の説明図である。 第1実施形態において、相対Z値およびオフセットZ値の概念を示す別の説明図である。 第1実施形態において、画像処理装置100によるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。 第1実施形態において、画像処理装置100の表示部104に表示されるシーン画像の表示例である。 第1実施形態において、重力情報の設定画面の一例を示す説明図である。 第1実施形態において、重力情報の設定画面の一例を示す説明図である。 第1実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。 第1実施形態において、任意の隣接しないピクセル間のオフセットZ値を算出する方法の概念を示す説明図である。 第1実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第1実施形態において、隣接していないピクセル間の奥行き情報を設定する概念を示す説明図である。 第1実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第1実施形態において、OLDIを利用した光線追跡の概念を示す説明図である。 第1実施形態において、OLDIを利用した光線追跡の概念を示す別の説明図である。 第1実施形態において、OLDIを利用した光線追跡の概念を示す別の説明図である。 第1実施形態において、オフセットZ値の一貫性を保つ方法の概念を示す説明図である。 本発明の第2実施形態に係る情報処理装置600の機能構成を示すブロック図である。 第2実施形態に係る情報処理装置600によるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。 第2実施形態において、情報処理装置600の表示部104に表示される色画像の一例を示す説明図である。 第2実施形態において、法線情報の設定画面の一例を示す説明図である。 第2実施形態において、法線情報の設定画面の一例を示す説明図である。 第2実施形態において、法線情報の設定画面の一例を示す説明図である。 第2実施形態において、法線情報の設定画面の一例を示す説明図である。 第2実施形態において、球体状の法線情報の設定方法の概念を示す説明図である。 第2実施形態において、重力方向と該重力の大きさの設定方法の概念を示す説明図である。 第2実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。 第2実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。 第2実施形態において、パーティクル湧き出し口の設定画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクル反射領域の設定画面の一例を示す説明図である。 第2実施形態において、パーティクル反射領域の設定画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクルシの軌道修正の概念を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 第2実施形態において、パーティクルシミュレーションの実行画面の一例を示す説明図である。 画像処理装置100、600のハードウェア構成の一例を示すブロック図である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.本発明の実施形態の概要
2.第1実施形態(OLDIを利用したパーティクルシミュレーション)
2−1.第1実施形態に係る画像処理装置100の機能構成
2−2.奥行き情報の算出処理
2−3.画像処理装置100によるシミュレーションの処理フロー
2−4.変形例1(OLDIを利用した種々のシミュレーション)
2−5.変形例2(オフセットZ値の一貫性を保つ応用用法)
3.第2実施形態(法線情報を利用したパーティクルシミュレーション)
3−1.第2実施形態に係る画像処理装置600の機能構成
3−2.画像処理装置600によるパーティクルシミュレーションの処理フロー
3−3.パーティクルの軌道修正処理
3−4.画像処理装置600によるパーティクルシミュレーションの実施例
4.画像処理装置100、600のハードウェア構成
5.まとめ
<1.本発明の実施形態の概要>
本発明の詳細を説明するにあたり、まず本発明の各種実施形態の概要について説明する。
通常、三次元的に一貫的なシーンにおいて、水、炎、煙等の流れを表現するパーティクルシミュレーションを行う場合、シーン内に存在する物体の三次元形状に基づいてパーティクルの反射位置や軌道が計算され、三次元的一貫性のあるシミュレーション結果が得られる。しかしながら、上述したように、デザイナーや研究者等は、デザイン上の欲求、あるいは絵画や脳内映像の実験のために、シーン内において、三次元的に一貫性のないシミュレーションを実行したい場合も多い。そのため、シーン内の物体の実際の三次元形状や位置関係を局所的にのみ定義した形状表現に変換した上で、パーティクルの反射位置や軌道を局所的に計算したいことも多い。なぜなら、人間は映像に関して、局所的な一貫性には大きな注意を払うが、大域的な非一貫性には鈍感であるからである。例えば、CGによる映像、ポスター、トリックアートなどの分野では特にこのようなシミュレーションが強く要望されている。
しかしながら、そのようなシミュレーションを行うには、場当たり的にシーンを一貫性のあるパーツに分解したり、シミュレーションも発見的かつ非直感的なセットアップを行って期待する結果を得るようにしたりしなければならない。したがって、直感的でない三次元形状を作成する困難さや、処理負担の増加、シミュレーション処理の複雑化を招いてしまうという問題があった。また、そもそもシーン内にうまく物体を表現できない場合も多く、このような場合に簡易的かつ柔軟性のあるシミュレーションを行うことができないという問題もあった。
本発明の各実施形態に係る画像処理装置は、このような問題点を解消することができる。具体的には、本発明の第1実施形態に係る画像処理装置100は、シミュレーションに利用するデータ構造としてOLDI(Offset Layered Depth Image)を利用することにより、三次元的一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができる。ここで、OLDIとは、シミュレーションを行うシーン画像を構成するピクセル毎に、物体の奥行き方向の相対位置を示す「相対Z値」と、隣接するピクセルに存在する物体の奥行き方向の位置との差異を示す「オフセットZ値」とが設定されたデータ構造である。
画像処理装置100は、シミュレーションを行う際に、OLDIに含まれる相対Z値およびオフセットZ値を利用することにより、シーン内の物体の形状や位置関係を認識することができる。また、隣接しないピクセル間のオフセットZ値を任意に変更することにより、三次元データを再構築等することなく、シーン内における物体の局所的な形状や位置関係を容易に変更して、全体として三次元的一貫性のないシミュレーションを簡易かつ柔軟に行うことができる。
また、本発明の第2実施形態に係る画像処理装置600は、シミュレーションするシーンの二次元画像の各ピクセルに、RGBの色情報に加えてその点の三次元の面の方向(法線)に関する情報を付加して法線マップとして表現することもできる。画像処理装置600は、法線情報から三次元シーンを構築することなく、法線情報を直接シミュレーションに利用することにより、ユーザが意図するシミュレーションを実行することができる。この結果、画像処理装置600は、三次元的な一貫性の有無に捉われることなく、ユーザが所望するシーンを簡易にシミュレーションすることができる。すなわち、画像処理装置600は、三次元的な一貫性のないシーンにおける複雑なシミュレーションをする場合においても、全体として三次元形状を構築することなく、二次元画像に付加された法線情報を用いてユーザが意図するシミュレーションを実行することができる。
以下、このような特徴を有する本発明の各実施形態の詳細について説明する。
<2.第1実施形態>
まず、本発明の第1実施形態に係る画像処理装置100について説明する。画像処理装置100は、シーン画像を構成するピクセル毎に対象物体の奥行き情報が設定されたOLDI(Offset Layered Depth Image)を利用することにより、簡易的なシミュレーションを可能とすることができる。ここで、「奥行き情報」とは、シミュレーションの対象となるシーン画像を構成する各ピクセルに存在する対象物体の奥行き方向の位置情報を含む情報であり、詳細は図2を参照に後述する。また、「OLDI」とは上記「奥行き情報」を含むシミュレーション用の画像データであり、詳細は後述する。
<2−1.第1実施形態に係る画像処理装置100の機能構成>
図1は、第1実施形態に係る画像処理装置100の機能構成の一例を示す機能ブロック図である。
図1に示すように、画像処理装置100は主に、操作入力部106と、画像入力部108と、OLDI生成部110と、パーティクル湧き出し口設定部112と、重力情報設定部114と、OLDI修正部116と、データ記憶部118と、パーティクル演算部120と、画像生成部122と、を含んで構成される。また、画像処理装置100は、ユーザによる操作を受け付ける操作部102と、シミュレーション結果を表示する表示部104と、を備えている。
画像処理装置100を構成するこれらの各機能部は、CPU(Central Processing Unit)によって制御されることにより各種機能を実行する。また、図1に示した画像処理装置100の機能構成は、本実施形態を説明する上での一例であり、本発明はこれらに限定されるものではない。すなわち、画像処理装置100は、図1に示した機能構成以外にも、例えば、撮影機能、通信機能、音声入出力機能、外部入出力機能などの各種機能をさらに備えることも当然に可能である。なお、以下の説明においては、本実施形態の特徴である、OLDIを利用したシミュレーションの代表例として、パーティクルシミュレーションに関する処理を中心に、図1に示した機能について説明する。
(操作部102)
操作部102は、例えば、タッチパネル、キーボード、マウス、ボタン、スイッチ、レバー、ダイヤルなどで構成される。ユーザは、操作部102を操作して、画像処理装置100に対してシミュレーションに必要な処理(画像入力、奥行き情報の算出処理、OLDIの生成、シミュレーション処理等)を指示することができる。
なお、操作部102は、必ずしも画像処理装置100に備えられている必要はない。すなわち、操作部102は、画像処理装置100の一部として構成されてもよく、有線・無線を問わず画像処理装置100と接続されていてもよい。
(操作入力部106)
操作入力部106は、ユーザからの指示入力を受けて、受け付けた指示内容をデコードし、各種命令を画像入力部108、OLDI生成部110、パーティクル湧き出し口設定部112、重力情報設定部114、OLDI修正部116などへ転送する。操作入力部106は、上記操作部102をユーザが操作した際に、操作内容に応じた処理を実行するために、当該処理の実効命令を各種機能構成部へ転送する。
(画像入力部108)
画像入力部108は、各種シミュレーションに利用する画像データを、ユーザからの指示に応じてデータ記憶部118へ転送する。ここで、画像データとは、各種シミュレーションを実行する対象となるシーンイメージである。すなわち、所定の三次元形状の物体を含んで構成される三次元画像データや、該三次元画像データを所定の方向からピクチャしたシミュレーションのシーンとなる二次元画像データ(以下、シーン画像ともいう)等である。ユーザは、上記操作部102を操作することにより、画像処理装置100の画像記憶部(図示せず)などに記録されている画像データを選択したり、外部メディアに記録されている画像データを選択したりすることができる。ユーザは、例えば、所定の三次元形状の物体を含む三次元画像データをシミュレーションの対象として選択し、該三次元形状を所定の方向からキャプチャした二次元画像データを、シミュレーションを行うシーン画像として選択することができる。画像入力部108は、操作入力部106からの指示に応じて、ユーザが選択した三次元画像データやシーン画像データをシミュレーションに利用する画像データとして後述するデータ記憶部118へ転送する。
(OLDI生成部110)
OLDI生成部110は、シミュレーションのシーンとなるシーン画像データを構成する各ピクセルの奥行き情報を算出し、算出結果に基づいてシミュレーション用データ(以下「OLDI:Offset Layerd Depth Image」という)をデータ記憶部118に記録する。なお、OLDI生成部110は、本発明のシミュレーション用データ生成部として機能する。
ここで、奥行き情報とは、シーン画像データを構成する各ピクセルに存在する物体の奥行き方向の位置情報であり、相対Z値およびオフセットZ値を含む情報である。
相対Z値とは、シーン画像の所定の1のピクセルに存在する物体の奥行き方向の相対的な位置関係を示す値である。OLDI生成部110は、例えば、三次元画像データに基づいて、シーン画像データの奥行き方向に存在する物体の位置関係を認識し、ピクセル毎に相対Z値を算出する。
オフセットZ値とは、所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接するピクセルに存在する所定の物体の奥行き方向の位置と、の差異を示す値である。OLDI生成部110は、例えば、三次元画像データに基づいて、シーン画像データの奥行き方向に存在する物体の位置関係を認識し、ピクセル毎にオフセットZ値を算出することができる。
OLDI生成部110は、シーン画像に算出した相対Z値およびオフセットZ値を含めて、シミュレーション用データ(OLDI)として、データ記憶部118に記録する。
なお、相対Z値データおよびオフセットZ値データの詳細については、図2を参照に後述する。
(パーティクル湧き出し口設定部112)
パーティクル湧き出し口設定部112は、パーティクルシミュレーションに利用する湧き出し口データをデータ記憶部118へ転送する。ここで、湧き出し口データとは、パーティクルシミュレーションを実行する際に、パーティクルが発生する始点に関する情報であり、例えば、シーン画像におけるパーティクルの発生場所、パーティクルの初速度の方向および大きさなどが含まれる。上述したように、パーティクルシミュレーションでは、水、炎、煙などの動きを擬似的に表現することができる。したがって、ユーザは、パーティクルシミュレーションを実行するに際して、操作部102を操作して、パーティクルが発生する始点(以下、湧き出し口という)を指定し、パーティクルの初速度の方向や大きさなどを設定する。パーティクル湧き出し口設定部112は、操作部102からの指示に応じて、ユーザが指定した湧き出し口に関する情報を認識し、パーティクルシミュレーションに利用する湧き出し口データとして後述するデータ記憶部118へ転送する。
なお、パーティクルシミュレーションにおいては、パーティクルを、必ずしもシーン画像における所定の1のピクセルから発生させる必要はない。例えば、水が満たされている立方体領域から水を放出させるようなシミュレーションを行う場合、ユーザは、当該立方体領域をパーティクルの発生領域として指定してもよい。この場合、パーティクル湧き出し口設定部112は、ユーザが指定したパーティクルの発生領域に関する情報を認識し、パーティクルシミュレーションに利用する湧き出し口データとして後述するデータ記憶部118へ転送する。
(重力情報設定部114)
重力情報設定部114は、パーティクルシミュレーションに利用する重力データをデータ記憶部118へ転送する。ここで、重力データとは、シーンにおける三次元的な重力の方向および大きさに関する情報である。パーティクルシミュレーションでは、設定したパーティクルの進行方向、初速度、重力方向と該重力の大きさなどに基づいて、湧き出し口からのパーティクルの軌道を算出することにより、水、炎、煙などの動きを擬似的に表現することができる。したがって、ユーザは、パーティクルシミュレーションを実行するに際して、操作部102を操作して、シーン画像における三次元的な重力方向と該重力の大きさを設定する。重力情報設定部114は、操作入力部106からの指示に応じて、ユーザが設定した重力方向と該重力の大きさに関する情報を認識し、パーティクルシミュレーションに利用する重力データとして後述するデータ記憶部118へ転送する。
(OLDI修正部116)
OLDI修正部116は、上記OLDI生成部110によって算出された奥行き情報を、ユーザによって任意に設定された値に修正し、データ記憶部118に記録されているOLDIを更新する。上記OLDI生成部110によって生成されたOLDIに基づいてシミュレーションを行った場合、実際の三次元形状に基づいた一貫性のあるシーンにおけるシミュレーションを容易に行うことができる。しかしながら、しかしながら、三次元的な一貫性のないシーンを所望し、その上でシミュレーションを行うには、上記OLDI生成部110によって算出された奥行き情報を修正する必要がある。そこで、ユーザは、操作部102を操作することにより、シミュレーション行うシーンにおける局所的な形状部分を構成するピクセルの奥行き情報を任意に変更し、所望するシミュレーション結果を実現させることができる。OLDI修正部116は、ユーザによる奥行き情報の修正結果に応じて、データ記憶部118に記録されているOLDIに含まれる奥行き情報を更新する。これにより、本実施形態に係る画像処理装置100は、一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができる。なお、OLDI修正部116は、本発明のシミュレーション用データ修正部として機能する。
(データ記憶部118)
データ記憶部118は、OLDIを利用したシミュレーションの実行に必要となる各種データを記憶する記憶部である。すなわち、データ記憶部118は、画像データ、OLDI、湧き出し口データ、重力データなどを記憶することができる。また、データ記憶部118は、後述するパーティクル演算部120による算出処理結果なども記憶することができる。
(パーティクル演算部120)
パーティクル演算部120は、データ記憶部118に記録されている各種データに基づいてパーティクルシミュレーションに必要な算出処理を実行する。パーティクル演算部120は、例えば、データ記憶部118に記録されている湧き出し口データおよび重力データに基づいて、シーン画像におけるパーティクルの軌道を算出することができる。また、パーティクル演算部120は、例えば、データ記憶部118に記録されているOLDIに含まれる相対Z値およびオフセットZ値に基づいて、上記パーティクルの軌道における物体の有無を認識し、パーティクルの反射位置を算出することもできる。このとき、パーティクル演算部120は、例えば、三次元画像データから反射位置における物体の法線情報を利用して反射方向を算出したり、反射により損失されるエネルギなどを考慮して反射後のパーティクルの軌道を算出したりすることもできる。
また、上述したように、本実施形態に係る画像処理装置100は、奥行き情報を修正することにより、本来のパーティクルの軌道を修正して、局所的な形状構造のみに基づくシミュレーションを実行することができる。したがって、パーティクル演算部120は、記OLDI修正部116によって更新されたOLDIに含まれる修正後の奥行き情報に基づいて、パーティクルの軌道を修正することもできる。なお、パーティクル演算部120によるパーティクルの軌道修正処理の詳細については、後述する処理フローにおいて説明する。
パーティクル演算部によって算出された各種情報はデータ記憶部118および画像生成部122へ転送される。なお、パーティクル演算部120によって行われる処理は上記処理に限定されるものではなく、シミュレーションに必要となる各種処理を追加的に行うことも当然に可能である。また、パーティクル演算部120は、本発明のシミュレーション結果演算部として機能する。
(画像生成部122)
画像生成部122は、表示部104に表示させる画像データを生成し、表示部104の表示切替を制御する。例えば、画像生成部122は、操作入力部106からの指示に応じて、ユーザによる表示切替の指示を認識し、表示部104の表示を切り替える。画像生成部122は、例えば、ユーザが選択した所定の三次元画像データやシーン画像データをデータ記憶部118から抽出して表示部104に表示させることができる。また、画像生成部122は、例えば、パーティクル演算部120による算出結果に基づいて、シーン画像にパーティクルが表現された画像を生成して表示部104に表示させることができる。もちろん、画像生成部122によって生成される画像データや、表示部104の表示切替処理は上記例に限定されるものではない。
(表示部104)
表示部104は、画像生成部122による指示に応じて所定の画像データを表示する。表示部104は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ(LCD)、有機ELディスプレイ(Organic ElectroLuminescence Display)などからなる表示装置である。
なお、表示部104は、必ずしも画像処理装置100に備えられている必要はない。すなわち、表示部104は、画像処理装置100の一部として構成されてもよく、外部ディスプレイなどとして画像処理装置100と接続されていてもよい。
以上、本実施形態に係る画像処理装置100の機能構成について説明した。なお、図1に示した画像処理装置100の機能構成は、本実施形態を説明する上での一例であり、上記説明においては、本実施形態の特徴の1つであるOLDIを利用したパーティクルシミュレーションに関する機能を中心に説明した。
<2−2.奥行き情報の算出処理>
次に、上記OLDI生成部110による奥行き情報の算出処理の概念について説明する。上述したように、OLDI生成部110は、シーン画像を構成する各ピクセルに存在する物体の奥行き方向の位置に関する情報を算出し、OLDIとしてデータ記憶部118に記録する。具体的には、OLDI生成部110は、ピクセル毎に、同一ピクセルに存在する物体の奥行き方向の相対的な位置関係を示す相対Z値を算出する。さらに、OLDI生成部110は、1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接するピクセルに存在する物体の奥行き方向の位置との差を示すオフセットZ値も算出する。その後、シーン画像を構成するすべてのピクセル毎に算出した相対Z値およびオフセットZ値を、シーン画像に含めたシミュレーション用データ(OLDI)をデータ記憶部118に記録する。以下、OLDI生成部110によって算出される相対Z値およびオフセットZ値の概念について、図2を参照にして説明する。
図2は、スクリーン200に表示される所定の画像データを所定の視点202から見た場合において、シーン画像を構成する所定の隣接ピクセルAおよびBに関する相対Z値およびオフセットZ値の概念を示す説明図である。
図2に示すように、ピクセルAにおいては、P0、P1、P2、P3の4つの位置において物体が存在している。相対Z値とは、スクリーンから直近に存在する物体の位置P0を基準とした各物体の奥行き方向の相対位置を意味する。すなわち、P0とP1との奥行き方向の距離が相対Z(P1)値(図2のrelZ(P1))、P0とP2との奥行き方向の距離が相対Z(P2)値(図2のrelZ(P2))、P0とP3との奥行き方向の距離が相対Z(P3)値(図2のrel(ZP3))として表される。
OLDI生成部110は、データ記憶部118に記録されている三次元データに基づいて、視点202からシーン画像データの所定のピクセルの奥行き方向に存在する物体を認識し、上記相対Z値を算出することができる。また、OLDI生成部110は、同様の三次元データに基づいて、奥行き方向に存在する物体の法線情報(図2の各点P0、P1、P2、P3における矢印方向)も併せて算出しておいてもよい。
次に、オフセットZ値とは、シーン画像を構成する所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接するピクセルに存在する物体の奥行き方向の位置との差異を意味する。すなわち、図2の例では、ピクセルAにおいてスクリーンの直近に存在する物体の奥行き方向の位置P0と、ピクセルBにおいてスクリーンの直近に存在する物体の奥行き方向の位置P10と、の差異がオフセットZ値(図2のoffs(A、B))として算出される。
OLDI生成部110は、データ記憶部118に記録されている三次元データに基づいて、シーン画像を構成する所定のピクセルの奥行き方向に存在する物体を認識し、上記オフセットZ値を算出することができる。通常、1のピクセルと隣接するピクセルは8個存在するため、OLDI生成部110は、ピクセル毎に8個のオフセットZ値を算出する。ここで、隣接するピクセルAおよびBの互いのオフセットZ値であるoffs(A、B)およびoffs(B、A)は下記式(2)の関係で表される。
Figure 2010152870
したがって、OLDI生成部110は通常、ピクセル毎に4個のオフセットZ値を算出することにより、すべての隣接するピクセルとのオフセットZ値を算出することができ、オフセットZ値の算出処理の効率化を図ることもできる。
次に、図3〜図8を参照にして、上記相対Z値およびオフセットZ値について詳細に説明する。図3は、所定の三次元形状の物体300を所定の視点202から見たときの概念を示す説明図である。表示部104として機能するスクリーン200には、物体300を視点202からキャプチャしたシーン画像が表示される。
図4は、図3に示したスクリーン200の所定位置のYZ断面図である。また、図5は、図4に示すYZ断面図において、Y方向に配列されたピクセルの境界線が表現された断面図である。すなわち、図5においてY方向に一定間隔で配置されている実線は、スクリーン200に表示されるシーン画像を構成するピクセルの境界線を示している。図5を参照すると、物体300の奥行き方向(Z方向)の位置は、ピクセル毎に異なっていることがわかる。また、あるピクセルにおいては、同一ピクセル内に物体300が複数回存在していることもわかる。
ここで、図6を参照に、オフセットZ値の算出概念について説明する。まず、OLDI生成部110は、ピクセルAにおける物体300のZ値と、ピクセルBにおける物体300のZ値との差異をオフセットZ値(offs(A、B))として算出する。同様にOLDI生成部110は、ピクセル毎に隣接するピクセルに関するオフセットZ値を算出していく。
次に、相対Z値の算出概念について、図7および8を参照に説明する。図7に示すように、OLDI生成部110は、スクリーン200から最も近い物体300の奥行き方向の位置がすべてのピクセルで同一となるように、物体300を所定位置までスライドさせる(図7の物体302)。その後、図8に示すように、OLDI生成部110は、スクリーン200から最も近い位置に存在する物体300からの相対的な位置を算出する。例えば、図8に示す例では、ピクセルFでは相対Z値(relZ(F))=4、ピクセルGでは相対Z値(relZ(G))=2、として算出される。また、例えば、同一ピクセル内に3回以上物体300が存在する場合も同様に、OLDI生成部110は、スクリーン200から最も近い位置に存在する物体300からの相対的な位置に基づいて相対Z値を算出する。
このように、OLDI生成部110は、スクリーン200に表示されるシーン画像を構成するピクセル毎に、相対Z値およびオフセットZ値を算出していく。OLDI生成部110は、シーン画像を構成するすべてのピクセルの相対Z値およびオフセットZ値を算出した後、シーン画像に算出した相対Z値およびオフセットZ値を含めたODLIをデータ記憶部118に記録する。なお、図3〜図8に示した説明図は、あくまで絶対Z値およびオフセットZ値の算出概念を説明する上での概念図であり、実際にOLDI生成部110は、ピクセル毎に物体300をスライドさせた物体302のデータを作成しているわけではないことは言うまでもない。
このようにして算出される相対Z値およびオフセットZ値を含むOLDIがデータ記憶部118に記録されることにより、画像処理装置100は、シミュレーションを行う際に、シーン内に含まれる物体の三次元形状や位置関係を容易に認識することができる。すなわち、画像処理装置100は、オフセットZ値に基づいて、隣接するピクセルに存在する物体300の奥行き方向の位置を認識することができる。また、画像処理装置100は、相対Z値に基づいて、同一ピクセルに存在する複数の物体300の奥行き方向の位置も認識することができる。
この結果、画像処理装置100は、例えば、パーティクルシミュレーションを行う際に、ある所定の位置から発生したパーティクルが物体300に接触する位置を認識することができる。また、上述したように、三次元データに基づいて算出される法線情報に基づいて、物体300と接触した後のパーティクルの反射軌道を認識することもできる。
<2−3.画像処理装置100によるシミュレーションの処理フロー>
次に、上述した機能構成を備える画像処理装置100によって実行される、OLDIを利用したパーティクルシミュレーションの処理の流れについてフロー図を参照にして説明する。
図9は、本実施形態に係る画像処理装置100により実行されるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。
図9に示すように、ステップ200において、画像入力部108は、パーティクルシミュレーションに利用する画像データをデータ記憶部118に記録する。ユーザは、例えば、三次元データに含まれる任意の三次元形状の物体を回転させて、所定の方向から見た三次元形状の物体をキャプチャすることにより、パーティクルシミュレーションを行う二次元のシーン画像データを選択することができる。これを受けて画像入力部108は、ユーザによって選択された三次元画像データおよびシーン画像データをデータ記憶部118に転送する。このとき、画像生成部122は、ユーザによる操作部102の操作に応じて三次元画像データを表示部104で回転表示させたり、ユーザによってキャプチャされたシーン画像データを表示部104に表示させたりすることができる。
図10は、ステップ200により表示部104に表示される二次元画像データの一例を示す説明図である。図10に示す例では、手前のバー406および奥のバー404を含むコの字型のブロックから、垂直方向にバー402を含むL字型のブロックが突出した三次元形状の物体400を所定の方向からキャプチャしたシーン画像データが表示されている。
次に、ステップ202において、OLDI生成部110は、ユーザによって選択されたシーン画像の奥行き情報を算出し、OLDIをデータ記憶部118に記録する。すなわち、OLDI生成部110は、シーン画像を構成するピクセル毎に算出した相対Z値およびオフセットZ値をシーン画像に含めたOLDIを生成し、データ記憶部118に記録する。
次に、ステップ204において、重力情報設定部114は、パーティクルシミュレーションに利用する重力データをデータ記憶部118に記録する。ユーザは、例えば、ステップ200により表示部104に表示されたシーンにおける三次元的な重力方向と該重力の大きさを任意に設定することができる。重力情報設定部114は、ユーザによって設定された三次元的な重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部118に記録する。
図11は、ユーザが重力方向と該重力の大きさを設定する際の表示部104の表示例を示す説明図である。図11に示すように、表示部104にはシーン画像に重ねて重力方向と該重力の大きさを示す矢印が表示される。ユーザは、例えば、操作部102を操作することにより、表示部104に表示された重力方向と該重力の大きさを示す矢印を任意の方向に設定することができる。すなわち、ユーザは、パーティクルシミュレーションを行うシーンの重力方向と該重力の大きさを任意に設定することができる。
図12は、パーティクルシミュレーションを行うシーンにおける三次元的な重力方向を設定する別の方法を示す概念図である。図12に示すように、ユーザは、例えば、シーンにおける任意の領域の法線方向と逆方向を重力方向として設定することもできる。図12(a)に示す例では、重力方向は二次元画像に追いおいて下方向に設定されている。ここで、ユーザが、操作部102などを操作することにより、任意の領域(例えば、図12(a)におけるハッチング領域)を選択した場合、図12(b)に示すように、選択した領域の法線方向と逆方向に重力方向を自動で設定することができる。これは例えば、パーティクルシミュレーションを行うシーン内に水平面として設定したい領域が存在する場合などに、三次元的な重力方向を容易に設定することができるという利点がある。
重力情報設定部114は、このようにしてユーザによって任意に設定された重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部118に記録する。また、画像生成部122は、データ記憶部118に記録された重力データに基づいて、ユーザにより設定された重力方向が表現された画像を生成して表示部104に表示させることができる。
次に、ステップ206において、パーティクル湧き出し口設定部112は、パーティクルシミュレーションに利用する湧き出し口データをデータ記憶部118に記録する。ユーザは、例えば、ステップ200により表示部104に表示されたシーンにおける所定位置をパーティクルが発生する湧き出し口として設定することができる。また、ユーザは、設定した湧き出し口から発生するパーティクルの初速度の方向及び大きさも任意に設定することができる。
図13は、パーティクルの湧き出し口に関する情報を設定する際の表示部104の表示例を示す説明図である。ユーザは、例えば、操作部102を操作することにより、表示部104に表示されているシーンの任意の位置(または領域)をパーティクルの湧き出し口として指定することができる。また、ユーザは、例えば、操作部102を操作することにより、パーティクルの初速度の方向や大きさ等もあわせて設定することができる。
パーティクル湧き出し口設定部112は、このようにしてユーザによって任意に設定されたパーティクルの湧き出し口、初速度および大きさに関する情報を、パーティクルの湧き出し口データとしてデータ記憶部118に記録する。
次に、ステップ208において、画像処理装置100は、レンダリング処理を行う。ここで、レンダリングとは、数値データとして与えられた物体や図形に関する情報を計算によって画像化することを意味する。
パーティクル演算部120は、データ記憶部118に記録されている各種データに基づいて、パーティクルの軌道を算出する。まず、パーティクル演算部120は、データ記憶部118に記録されている湧き出し口データに基づいて湧き出し口からのパーティクルの軌道を算出する。
次に、パーティクル演算部120は、データ記憶部118に記録されているOLDIに基づいて、算出したパーティクルの軌道と物体との接触位置を算出する。ここで、パーティクル演算部120は、OLDIに含まれる相対Z値およびオフセットZ値に基づいて、パーティクルの軌道と物体との接触位置を算出することができる。
パーティクル演算部120は、パーティクルの軌道における物体の有無を判断するにあたり、相対Z値およびオフセットZ値を利用する。しかしながら、必ずしも隣接するすべてのピクセルに物体が存在するとは限らない。このような場合、パーティクル演算部120は、ある1のピクセルから目的となるピクセルまでに存在する物体の最短経路を辿っていくことにより、より簡易的に所定のピクセル間のオフセットZ値を算出することができる。
図14は、任意のピクセル間のオフセットZ値を算出する際に、ピクセル間に存在する物体の最短距離を辿っていく概念を示す説明図である。図14の例では、パーティクルの軌道が、あるピクセルAからピクセルBに向かう場合において、ピクセルAとピクセルBとの間に物体が存在しない領域250(図のドット領域)が存在している。すなわち、物体が存在しないにおいてオフセットZ値は存在しないため、図14の矢印を辿ってoffs(A、B)を算出することはできない。このような場合、パーティクル演算部120は、物体が存在する領域でピクセルAからピクセルBまでの最短経路252(図の破線)を辿っていくことにより、offs(A、B)をより簡易的に算出することができる。なお、最短距離の算出アルゴリズムとしては、フロイド・ワーシャル法などが例として挙げられるが、特定のアルゴリズムに限定されるものではない。
次に、パーティクル演算部120は、パーティクルが物体と接触した後の反射軌道を算出する。パーティクル演算部120は、例えば、データ記憶部118に記録されている三次元画像データに基づいて、パーティクルと物体との接触位置における物体の法線情報を利用してパーティクルの反射後の速度ベクトル等を算出することができる。例えば、モーメントと摩擦を考慮しないシミュレーションでは、反射(衝突)により向きを変更する運動量は反射面の法線方向のみに働くこととなる。なお、反射後のパーティクルの軌道を算出するにあたって用いられる計算式やパラメータなどは、シミュレーションの精度や目的などに応じて任意に設定・変更することができるものであり、特定の算出方法に限定されるものではない。
その後、ステップ210において、画像生成部122は、パーティクル演算部120によって算出されたパーティクルの軌道に基づいて、シミュレーションのシーン画像上にパーティクルの軌道を重ねた画像を生成して、表示部104に表示させる。図15は、ステップ210により表示部104に表示されるパーティクルシミュレーションの結果の一例を示す説明図である。図14に示すように、物体400の最上部のバー402の湧き出し口408を始点としたパーティクルの軌道が、その後最下部手前のバー406で反射していることがわかる。これは、パーティクル演算部120によって算出されたパーティクルの軌道が、相対Z値およびオフセットZ値に基づいて、最下部手前のバー406で物体400に接触すると判断されたためである。
このように、画像処理装置100は、相対Z値およびオフセットZ値がピクセル毎に設定されたOLDIを利用することにより、シーンにおける一貫性のあるパーティクルの軌道表現の簡易性および柔軟性を向上させることができる。
しかしながら、デザイナーや研究者等が要求するシミュレーションは、必ずしも一貫性のあるシーンにおけるシミュレーションのみではない。例えば、図15に示した例では、湧き出し口408から放出されたパーティクルを、最下部奥のバー404で反射させた後に、最下部手前のバー406で反射させた場合のシミュレーションを行いたい場合などが例として挙げられる。しかしながら、従来、図15に示した物体400の三次元構造において、そのような一貫性のないシミュレーションを行うには、データの再構築、各種パラメータの詳細設定の調整等が必要であった。これに対して本実施形態に係る画像処理装置100は、シーン全体の三次元構造の整合性を考慮することなく、局所的にのみ一貫性を持つようなシーンを想定したシミュレーションを容易に実現することも可能である。
上述したように、画像処理装置100は、OLDIを利用することにより、パーティクルの軌道と物体の接触位置を判断することができる。したがって、OLDIに含まれている相対Z値やオフセットZ値を任意に修正することにより、他の部分を破壊することなく、パーティクルと物体の接触位置や軌道を任意に修正することができる。
上述したように、通常隣接していないピクセル間のオフセットZ値は、物体が存在する範囲の最短距離を辿っていくことにより算出される。しかしながら、隣接していないピクセル間のオフセットZ値を任意に設定・変更することにより、最短距離を辿って算出されるオフセットZ値とは異なるオフセットZ値に基づいてシミュレーションを行うこともできる。これにより、実際の三次元形状とは一貫性のないシーンを想定したパーティクルの軌道表現を実現することができる。
OLDI修正部116は、図9のステップ212において、ユーザによって指定された任意の隣接していないピクセル間のオフセットZ値を更新する。これにより、隣接していないピクセル間で仮想のピクセル接続(以下VPCともいう:Virtual Pixel Connection)を確立することができる。上述したように、パーティクル演算部120は、ピクセル間に存在する物体の範囲の最短距離を辿っていくことにより、パーティクルの軌道と物体との接触位置を判断する。しかしながら、VPCを確立することにより、隣接していないピクセル間の奥行き関係情報がOLDIに含まれることとなる。したがって、パーティクル演算部120は、隣接していないピクセル間に存在する物体とパーティクルとの接触を判断する際に、OLDI修正部116によって設定されたVPCに関する情報が含まれるOLDIを利用することができる。すなわち、ユーザは、任意に隣接していないピクセル間でVPCを設定することにより、隣接していないピクセル間の奥行き情報を任意に設定・変更でき、パーティクルの軌道と物体との接触関係を自由に変更することができる。
以下、図16を参照に具体的例を説明する。図16は、隣接していないピクセル間のオフセットZ値を任意に修正する概念を示す説明図である。図16に示す例では、ユーザは、隣接していない任意のピクセル、例えば、物体400の最上部のバー402のピクセルおよび最下部奥のバー404のピクセルの奥行き情報を修正して、VPC1を確立している。同様に、物体400の最下部奥のバー404のピクセルおよび最下部手前のバー406のピクセルの奥行き情報を任意に修正して、VPC2を確立している。すなわち、VPC1の確立により、バー402よりもバー404が手前に存在しているように奥行き情報が修正され、VPC2の確立により、バー404よりもバー406が手前に存在しているように奥行き情報が修正されている。OLDI修正部116は、このように確立されたVPCに関する情報(修正オフセットZ値)を、データ記憶部118に記録されているOLDIに記録する。
その後、ステップ214において、パーティクル演算部120は、OLDI修正部116によって更新されたOLDIに基づいて、再度レンダリング処理を行う。さらに、ステップ216において、画像生成部122は、パーティクル演算部120によって算出されたパーティクルの軌道に基づいて、シミュレーション結果を表示部104に表示させる。
図17は、ステップ216により表示部104に表示されるパーティクルシミュレーションの結果の一例を示す説明図である。パーティクル演算部120は、最上部のバー402と最下部奥のバー404との間に確立されたVPC1に基づいてパーティクルの軌道との接触を判断するため、吹き出し口408から発生したパーティクルは、バー404で反射していることがわかる。さらに、パーティクル演算部120は、最下部奥のバー404と最下部手前のバー406との間に確立されたVPC2に基づいてパーティクルの軌道との接触を判断するため、バー404で反射したパーティクルは、バー406で再度反射している。
このようなパーティクルの軌道は、物体400に示すような、現実に存在可能な三次元構造からは実現不可能であり、シミュレーションを実現するには、データの再構築、各種パラメータの詳細設定等の煩雑な処理が必要となっていた。しかしながら、本実施形態に係る画像処理装置100では、OLDIに含まれる奥行き情報を任意に修正することにより、一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができる。
<変形例1>
上述したように、本実施形態に係る画像処理装置100は、パーティクルシミュレーションに限らず、OLDIを利用することにより種々のシミュレーションの簡易性および柔軟性を向上させることができる。例えば、広くシミュレーションとして利用されている、レイトレーシング(Ray Tracing)、シェーディング(Shading)等にも適用することは当然に可能である。
例えば、レイトレーシングでOLDIを利用する場合、視線方向と平行に各ピクセルに入射した光線と、シーンにおける物体との接触点をOLDIに含まれる奥行き情報に基づいて容易に判断することができる。
光線などの進路と物体の接触判断も上述した方法と同様に行うことができる。図18〜20は、ある光線をトレースする場合の概念を示す説明図である。図18に示すように、直線状の光線360が所定の物体300に向かって放射されている場合も、上述した方法と同様に、シーン画像における光線をトレースすることができる。すなわち、図19に示すように、シーン画像を構成する各ピクセルにおける相対Z値およびオフセットZ値に基づいて光の進路360をトレースしていき、物体300との接触点を判断することができる。
図20は、ある光線の入射光370が、物体表面378との接触点376で反射光374および屈折光372に分離されるイメージを示した説明図である。上述したように、OODIを利用することにより、入射光370と物体表面378との接触点376を判断することができる。また、反射光374や屈折光372の進行方向に関しては、物体表面378の法線情報や、一般的に知られているスネルの法則、フレネルの法則等を利用することで算出することができる。
通常、レイトレーシングによりレンダリングする場合、奥行き方向の位置が遠すぎるとピクセルの色に大きく影響してしまい、一貫性のないシーンが表現されてしまうことがある。しかしながら、上述したようにOLDIを利用することにより、光線の接触位置の奥行き方向に関する情報を任意に修正し、ユーザが所望するシーンを表現することができる。
このように、本実施形態に係る画像処理装置100は、シーン画像を構成するピクセル毎に相対Z値およびオフセットZ値が設定されたOLDIを利用することにより、種々のシミュレーションの簡易性および柔軟性を向上させることができる。
<変形例2>
上述したように、本実施形態に係る画像処理装置100は、隣接していないピクセル間のオフセットZ値を任意に設定することにより、シミュレーションの簡易性および柔軟性を向上させている。このように、オフセットZ値を変更した場合、局所的なデータの一貫性が保たれなくなることが想定される。例えば、隣接していないが近くに存在する二つのピクセルPとQのオフセットZ値が変更された場合には、非一貫的になったデータを一貫したデータに変換することが望ましい。そこで、以下のような方法により、局所的な一貫性を保つこともできる。
ある所定のピクセルの奥行きを定め、それを隣接ピクセルに伝播させていくことにより、局所的に三次元形状を再構築することができる。しかしながら、局所的な一貫性を保つには、伝播順序に関わらないことが必要である。すなわち、隣接ピクセルの間の奥行きの差が、伝播経路の選択によって影響されないことが必要である。
例えば、図21に示す例では、以下の式(3)〜(6)に示す関係がすべてのピクセルA、B、C、Dにおいて成立している。ここで、offs(X、Y)は、ピクセルXとYとのオフセットZ値を意味する。
Figure 2010152870
ここで、上述した式(2)の対称性と、式(3)、(4)および(5)を用いれば、式(6)の関係は算出可能であるため、拘束条件の数は、1つのピクセルあたり3つとなる。これらの式(3)、(4)および(5)の右辺を左辺に移項し、すべてのピクセルに対する関係式を一つの行列で表すと、以下の式(7)のように表すことができる。この式が局所的一貫性を見たすための連立方程式である。
Figure 2010152870
ここで、xは、これから計算するオフセットZ値を一列にまとめたものである。また、Mは定数の行列を意味し、各値は0、1または−1である。
式(7)は、変数の数(Mの列の数)よりも式の数(Mの行の数)の方が少ないので、局所的一貫性は必ず満たされる。そこで、残った自由度を用いてさらに、最初に与えられたオフセットZ値と、最終的に計算されるオフセットZ値の差が可能な限り小さくなるような拘束条件を加えることを検討する。まず、Mの零空間(NullspaceまたはKernelとも呼ばれる)を求める。零空間は、その空間内のすべての点yでMy=0となるような空間であり、基底ベクトルの集合で表される。この基底ベクトルの集合を縦ベクトルとして行列にしたものをNとする。次に、以下の式(8)を満足するようなyを決定する。
Figure 2010152870
貫性を含んでいる。また、yは、零空間の基底ベクトルそれぞれに対する係数であり、これから計算するものである。このyは、擬似逆行列を用いて以下の式(9)により容易に計算することができる。
Figure 2010152870
このようにして求められたyに行列bfNを掛けることによって、上記式(3)〜(6)を満足し、かつ入力されたオフセットZ値との差の二乗和が最小になるオフセット集合を計算することができる。
Figure 2010152870
上記のような計算は、ユーザが編集した所定の小範囲の領域のみを対象として行ってもよいし、画像全体に対して行ってもよい。
<3.第2実施形態(法線情報を利用したパーティクルシミュレーション)>
近年、コンピュータグラフィックス(CG:Computer Graphics)の技術進展に伴い、画像編集、シミュレーションなどといった様々な画像処理技術が注目されている。ここで、CGにおいては、形状の三次元的な位置情報よりも微分情報などが重要となることが多い。例えば、人間は、シーン内の奥行きを二次元ディスプレイから知覚することはできないが、面の方向情報であれば、陰影や変形などから簡単に知覚することができる。したがって、CGにおいては、陰影付けや形状変形のために法線やラプラシアンなどの微分情報が利用されることがある。例えば、Makoto Okabe、Takeo Igarashi、Gang Zeng、Long Quan、Yasuyuki Matsushita、Heung−Yeung Shum:Single−View Relighting with Normal Map Painting:Proceedings of Pacific Graphics 2006,Taipei,Taiwan,October 11−13,2006,pp.27−34に記載のように、二次元画像に法線情報を付加し、当該法線情報に基づいて画像の照明条件を調整することによりリライティング処理を行い、擬似的な三次元効果を付加する方法が知られている。
しかし、エッシャーの「Waterfall」という作品などに見られるように、二次元で表現することは容易だが、三次元的な構造に一貫性がなく、矛盾したようなシーンにおいてパーティクルシミュレーションを利用する場合、非直感的な三次元形状を構築し、ユーザが意図した位置でパーティクルが反射するように各種パラメータを初期情報としてシミュレータに提供しなければならない。したがって、直感的でない三次元形状を作成する困難さや、処理負担の増加、シミュレーション処理の複雑化を招いてしまうという問題があった。
ここで、二次元画像に何らかの手法により付加された法線情報を積分することにより三次元形状を再構築して用いることも考えられる。しかしながら、法線情報をユーザが直接に与える場合には、そこから算出される三次元形状は、一般に一通りには定まらない。すなわち、三次元的に矛盾した法線情報を容易に与えることが可能なため、法線情報を積分することにより、一貫性のある三次元形状を再構築できるケースは限られている。したがって、三次元形状の再構築において法線情報を利用する場合には制約が大きく、様々な工夫が必要となってしまい、処理負担の増加、シミュレーション処理の複雑化などといった問題が生じてしまう。
上記第1実施形態に係る画像処理装置100では、三次元画像データからOLDIを生成することにより、一貫性のないシーンにおけるシミュレーションの簡易性および柔軟性を向上させることができた。しかしながら、シミュレーションを実行するシーンの三次元データが必ずしも構築されているとは限らない。したがって、三次元的な一貫性のないシーンにおけるシミュレーションを実行する場合、三次元形状を構築したり、ユーザが意図したようにパーティクルが反射するように各種パラメータ等を初期情報としてシミュレータに提供したりする必要があった。この結果、処理負担の増加、シミュレーション処理の複雑化を招いてしまうという問題があった。
本発明の第2実施形態に係る画像処理装置600はこのような問題を解決することができ、三次元の構造的に一貫性がなく、矛盾したような法線マップを有するシーンにおいても、三次元形状を構築することなくパーティクルを用いた簡易シミュレーションを実行することを可能とする。具体的には、画像処理装置600は、二次元画像の各ピクセルに定義された法線情報を直接用いて、あたかも三次元空間でパーティクルが反射しているかのようなシミュレーションを簡易に実行することを可能とする。
より詳細には、画像処理装置600は、シミュレーションするシーンの二次元画像の各ピクセルに、RGBの色情報に加えてその点の三次元の面の方向(法線)に関する情報を付加して法線マップとして表現する。法線マップは、二次元表現のフレキシブルさと、三次元的効果のリアリティと、を兼ね備えた一般的なシーン表現である。
しかしながら、法線情報を積分することにより実際に三次元形状を一意に再構築できるシーンは限られているため、シミュレーションなどの処理を組み込むことが難しいという問題があった。これに対して、画像処理装置600は、法線情報から三次元シーンを構築することなく、法線情報を直接シミュレーションに利用することにより、ユーザが意図するシミュレーションを実行することができる。この結果、画像処理装置600は、三次元的な一貫性に捉われることなく、ユーザが所望するシーンを簡易にシミュレーションすることができる。すなわち、画像処理装置600は、三次元的な一貫性のないシーンにおける複雑なシミュレーションをする場合においても、三次元形状を構築することなく、二次元画像に付加された法線情報を用いてユーザが意図するシミュレーションを実行することができる。
以下、このような特徴を有する画像処理装置600の詳細について説明する。
<3−1.第2実施形態に係る画像処理装置600の機能構成>
まず、本発明の第2実施形態に係る画像処理装置600の機能構成について説明する。図22は、本実施形態に係る画像処理装置600の機能構成の一例を示すブロック図である。
図22に示すように、画像処理装置600は主に、操作入力部106と、色画像入力部608と、法線画像入力部610と、パーティクル湧き出し口設定部112と、重力情報設定部114と、パーティクル反射領域設定部616と、データ記憶部618と、パーティクル演算部620と、画像生成部622と、を含んで構成される。また、画像処理装置600は、ユーザによる操作を受け付ける操作部102と、シミュレーション結果を表示する表示部104と、を備えている。
画像処理装置600を構成するこれらの各機能部は、CPU(Central Processing Unit)によって制御されることにより各種機能を実行する。また、図22に示した画像処理装置600の機能構成は、本実施形態を説明する上での一例であり、本発明はこれらに限定されるものではない。すなわち、画像処理装置600は、図22に示した機能構成以外にも、例えば、撮影機能、通信機能、音声入出力機能、外部入出力機能などの各種機能をさらに備えることも当然に可能である。なお、操作部102、操作入力部106、パーティクル湧き出し口設定部112、重力情報設定部114および表示部104は、上記第1実施形態に係る画像処理装置100と同様のため、以下の説明においては省略する。また、以下の説明においては、本実施形態の特徴である、パーティクルシミュレーションに関する処理を中心に、図22に示した各機能構成部の詳細について説明する。
(色画像入力部608)
色画像入力部608は、パーティクルシミュレーションに利用する二次元画像を、ユーザからの指示に応じてデータ記憶部618へ転送する。ここで、二次元画像とは、各ピクセルがRGBの色情報を有する色画像データである。ユーザは、上記操作部102を操作することにより、パーティクルシミュレーションに利用する二次元画像を選択することができる。ユーザは、例えば、画像処理装置600の画像記憶部(図示せず)などに記録されている二次元画像を選択したり、外部メディアに記録されている二次元画像を選択したりすることができる。色画像入力部608は、操作入力部106からの指示に応じて、ユーザが選択した二次元画像を認識し、当該二次元画像をパーティクルシミュレーションに利用する色画像データとして後述するデータ記憶部618へ転送する。
(法線画像入力部610)
法線画像入力部610は、ユーザや解析プログラムなどによって二次元画像に付加された法線情報に基づいてパーティクルシミュレーションに利用する法線画像を生成し、データ記憶部618へ転送する。ここで、法線情報とは、二次元画像の各ピクセルにおける三次元の面の方向(法線)を示す情報である。ユーザは、上記操作部102を操作することにより、パーティクルシミュレーションに利用する二次元画像を構成する所定のピクセルにおける法線情報を付加することができる。また、ユーザは、例えば、パーティクルシミュレーションに利用する二次元画像に対して所定の解析プログラムを利用することにより自動で各ピクセルにおける法線情報を付加することもできる。なお、解析プログラムとしては、例えば、二次元画像を構成するピクセルの明るさなどに基づいて擬似的な三次元空間を構築して自動で法線情報を付加する方法などが挙げられるが、特定の解析方法に限定されるものではない。
法線画像入力部610は、ユーザによって付加された法線情報や、解析プログラムなどによって自動で付加された法線情報と、データ記憶部618に保存されている色画像データと、に基づいて法線マップを生成する。法線画像入力部610は、例えば、二次元画像を構成する所定のピクセルの法線情報を、あらかじめ設定されたRGBの色情報に変換して管理することもできる。法線画像入力部610は、このようにして生成した法線マップを、パーティクルシミュレーションに利用する法線画像として後述するデータ記憶部618へ転送する。
(パーティクル反射領域設定部616)
パーティクル反射領域設定部616は、パーティクルシミュレーションに利用する反射領域データをデータ記憶部618へ転送する。ここで、反射領域データとは、パーティクルシミュレーションにおいて、パーティクルの軌道を反射させる領域に関する情報であり、例えば、反射領域となる二次元画像上のピクセル(位置)、当該ピクセルの法線情報などが含まれる。
上述したように、パーティクルシミュレーションでは、設定したパーティクルの進行方向、初速度、重力方向と該重力の大きさなどに基づいて、湧き出し口からのパーティクルの軌道を算出することにより、水、炎、煙などの動きを擬似的に表現することができる。ここで、本実施形態に係る画像処理装置600は、例えば、二次元画像における任意の領域を反射領域として指定した場合、湧き出し口から流動するパーティクルを当該反射領域で反射させることができる。すなわち、湧き出し口から流動するパーティクルは、反射領域に到達した後、当該反射領域の法線方向に向かって反射されることとなる。従来、このようなパーティクルの反射を、矛盾した三次元シーンに関してシミュレーションする場合、反射領域の三次元シーンを矛盾のない範囲内において局所的に構築し、構築された三次元シーンに基づいて反射するパーティクルの軌道を算出する必要があった。これに対して、本実施形態に係る画像処理装置600は、反射領域に設定された法線情報のみに基づいてパーティクルの反射を実現することができる。
したがって、ユーザは、パーティクルシミュレーションを実行するに際して、操作部102を操作して、二次元画像上の任意の領域を反射領域として指定し、当該反射領域の法線情報を設定する。パーティクル反射領域設定部616は、操作入力部106からの指示に応じて、ユーザが設定した反射領域および法線情報などを認識し、パーティクルシミュレーションに利用する反射領域データとして後述するデータ記憶部618へ転送する。
(データ記憶部618)
データ記憶部618は、上述したパーティクルシミュレーションの実行に必要となる各種データを記憶する記憶部である。すなわち、データ記憶部618は、色画像データ、法線画像データ、湧き出し口データ、重力データ、反射領域データなどを記憶することができる。また、データ記憶部618は、後述するパーティクル演算部620による演算処理結果なども記憶することができる。
(パーティクル演算部620)
パーティクル演算部620は、データ記憶部618に記録されている各種データに基づいてパーティクルシミュレーションに必要な演算処理を実行する。パーティクル演算部620は、例えば、データ記憶部618に記録されている湧き出し口データおよび重力データに基づいて、二次元画像上におけるパーティクルの軌道を算出することができる。また、パーティクル演算部620は、例えば、データ記憶部618に記録されている反射領域データに基づいて、反射領域で反射した後のパーティクルの軌道を算出することができる。このとき、パーティクル演算部620は、例えば、反射により損失されるエネルギなどを考慮して反射後のパーティクルの軌道を算出してもよい。
また、本実施形態に係る画像処理装置600は、本来のパーティクルの軌道から外れる二次元画像上の領域が反射領域として指定された場合にも、パーティクルの軌道を修正して簡易的にパーティクルシミュレーションを実行することができる。したがって、パーティクル演算部620は、パーティクルが反射領域に向かうようにパーティクルの軌道を修正する。なお、パーティクル演算部620は、本発明のシミュレーション結果演算部として機能する。また、パーティクル演算部620によるパーティクルの軌道修正処理の詳細については、後述する処理フローにおいて説明する。
また、上述したように、パーティクルの湧き出し口として二次元画像上の所定領域が設定されるような場合もある。このような場合、パーティクル演算部は、設定された領域を構成する複数のピクセルをパーティクルの発生位置として、各パーティクル発生位置から発生する複数のパーティクルの軌道を算出することができる。これにより、例えば、水が満たされている立方体領域がパーティクルの発生領域として設定された場合、当該領域を構成する複数のピクセルからパーティクルを発生させることにより、水が立方体領域から放出されているようなシミュレーションを行うこともできる。
パーティクル演算部によって算出された各種情報はデータ記憶部618および画像生成部122へ転送される。なお、パーティクル演算部620によって行われる処理は上記処理に限定されるものではなく、シミュレーションに必要となる各種処理を追加的に行うことも当然に可能である。
(画像生成部622)
画像生成部622は、表示部104に表示させる画像データを生成し、表示部104の表示切替を制御する。例えば、画像生成部622は、操作入力部106からの指示に応じて、ユーザによる表示切替の指示を認識し、表示部104の表示を切り替える。画像生成部622は、例えば、ユーザが所定の二次元画像を選択した場合、当該二次元画像に対応する色画像データをデータ記憶部618から抽出して表示部104に表示させることができる。また、画像生成部622は、例えば、ユーザが法線情報の設定を指示した場合、法線情報の設定画面を表示部104に表示させることができる。また、画像生成部622は、パーティクル演算部620による算出結果に基づいて、二次元画像にパーティクルが表現された画像を生成して表示部104に表示させることができる。もちろん、画像生成部622によって生成される画像データや、表示部104の表示切替処理は上記例に限定されるものではない。
以上、本実施形態に係る画像処理装置600の機能構成について説明した。なお、図22に示した画像処理装置600の機能構成は、本実施形態を説明する上での一例であり、上記説明においては、本実施形態の特徴の1つであるパーティクルシミュレーションに関する機能を中心に説明した。
<3−2.画像処理装置600によるパーティクルシミュレーションの処理フロー>
次に、上述した機能構成を備える画像処理装置600によって実行されるパーティクルシミュレーションの処理の流れについてフロー図を参照にして説明する。
図23は、本実施形態に係る画像処理装置600により実行されるパーティクルシミュレーションの処理の流れの一例を示すフロー図である。
図23に示すように、ステップ700において、色画像入力部608は、パーティクルシミュレーションに利用する色画像データをデータ記憶部618に記録する。ユーザは、例えば、シミュレーションを行いたい二次元画像を、操作部102を操作することにより選択することができる。これを受けて色画像入力部608は、ユーザによって選択された二次元画像を色画像データとしてデータ記憶部618に転送する。このとき、画像生成部622は、データ記憶部618に格納された色画像データを表示部104に表示させることができる。
図24は、ステップ700により表示部104に表示される色画像データの一例を示す説明図である。ユーザは、図24に示した色画像に基づいて、パーティクルシミュレーションを行う二次元画像を認識することができる。
次に、ステップ702において、法線画像入力部610は、パーティクルシミュレーションに利用する法線画像データをデータ記憶部618に記録する。ユーザは、例えば、ステップ700により表示部104に表示された色画像の所定領域を構成するピクセルに対して所定の法線情報を設定することができる。法線画像入力部610は、このようにして二次元画像の所定のピクセルに対して法線情報が付加された画像を、法線画像データとしてデータ記憶部618に転送する。このとき、画像生成部622は、データ記憶部618に格納された法線画像データを表示部104に表示させることができる。
ユーザは、例えば、操作部102を操作することにより、法線情報を付加させるモードへの移行を画像処理装置600に指示することができる。画像生成部622は、操作入力部106からの指示に応じて、法線情報を付加するモードに表示部104の表示を切り替えることができる。
図25〜28は、ユーザが二次元画像に対して所定の法線情報を付加させる際の表示部104の表示例を示す説明図である。図24に示すように、表示部104にはステップ700により表示された色画像に重ねて法線情報を設定するための画面が表示されている。ユーザは、図25に示す画面を参照しながら、二次元画像における所定の領域を構成するピクセルに対して法線情報を付加することができる。
まず、ユーザは、図26に示すように、法線情報を付加する領域を選択する。ユーザは、例えば、マウス、キーボードなどで構成される操作部102を操作したり、表示部104が備えるタッチパネル機能を利用したりすることにより、二次元画像における所定領域を、法線情報を付加する領域として選択することができる。
次に、ユーザは、図27に示すように、選択した領域の法線情報を設定する。ユーザは、例えば、マウス、キーボードなどで構成される操作部102を操作したり、表示部104が備えるタッチパネル機能を利用したりすることにより、選択領域を構成する各ピクセルに対して任意の三次元的な法線方向を設定することができる。このとき、画像生成部622は、ユーザによって設定された法線方向に応じて選択領域の表示色を変更させて表示部104に表示させてもよい。図27に示す例では、説明の便宜上選択領域にハッチング処理が施されているが、画像生成部622は、ユーザによって設定された法線方向に対応するRGBの値を所定の計算式に基づいて算出し、選択領域を算出された色で表示させることができる。
ユーザによって選択領域の法線方向が変更された場合、図28に示すように、法線方向を示す矢印の向きが変更され、選択領域の色(図28においてはハッチング)が変更される。
また、法線方向の設定は上記例に限定されるものではなく、画像処理装置600は、他の方法により法線情報を設定することもできる。例えば、ユーザによって二次元画像における所定範囲の円領域が選択された場合、画像処理装置600は、当該円領域において球形状の法線方向を自動で設定することもできる。図29は、当手法による法線方向の設定の概念を示す説明図である。図29(a)に示すように、二次元画像において円形状の領域が指定された場合、画像処理装置600は、図29(b)に示すように、球体状の法線方向を自動で設定する。このとき、画像生成部622は、円領域の各ピクセルに付加された法線方向に対応するRGBの値を所定の計算式に基づいて算出し、選択された円領域を算出された色で表示させることもできる。なお、この法線方向の設定に際して生成されるのは法線だけであって、実際に対応する三次元の球を生成しているわけではない。
また、法線情報は必ずしもユーザによる操作によって設定されなければならないわけではなく、例えば、自動解析プログラムなどを利用することにより、二次元画像に自動で法線情報を付加してもよい。二次元画像に対して自動で法線情報を付加する方法としては、二次元画像を構成する明るさなどを利用する手法などが考えられるが、本実施形態では特定の手法に限定されるものではない。
このようにして、ユーザは、表示部104に表示される画像を参照して、二次元画像上で選択した所定領域の三次元的な法線情報を任意に設定することができる。
法線画像入力部610は、以上のような方法によって設定された法線情報を含む画像を、法線画像データとしてデータ記憶部618に記録する。
再度図23のフロー図を参照すると、ステップ704において、画像処理装置600は、ステップ702によって設定された法線情報に対して、画像処理フィルタリングを施す。すなわち、ユーザは、上述した方法で設定した法線情報を、画像フィルタによって任意に加工することができる。ユーザは、例えば、平滑化フィルタリングや多数決フィルタリングなどを利用することにより、設定した法線情報を任意に加工することができる。なお、ステップ704は、ユーザの選択により任意に行われる処理であって必ずしも実行される必要はない。また、法線情報の加工に利用される画像処理フィルタもユーザまたは画像処理装置600によって適宜選択されるものであり、特定のフィルタリング処理に限定されるものではない。
次に、ステップ706において、重力情報設定部114は、パーティクルシミュレーションに利用する重力データをデータ記憶部618に記録する。ユーザは、例えば、ステップ700により表示部104に表示された色画像における三次元的な重力方向と該重力の大きさを任意に設定することができる。重力情報設定部114は、ユーザによって設定された二次元画像における三次元的な重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部618に転送する。
図30は、ユーザが重力方向と該重力の大きさを設定する際の表示部104の表示例を示す説明図である。図30に示すように、表示部104には二次元画像に重ねて重力方向と該重力の大きさを示す矢印が表示される。ユーザは、例えば、操作部102を操作することにより、表示部104に表示された重力方向と該重力の大きさを示す矢印を任意の方向に設定することができる。すなわち、ユーザは、パーティクルシミュレーションをするシーンの重力方向と該重力の大きさを任意に設定することができる。
重力情報設定部114は、このようにしてユーザによって任意に設定された重力方向と該重力の大きさに関する情報を、重力データとしてデータ記憶部618に記録する。また、画像生成部622は、データ記憶部618に記録された重力データに基づいて、二次元画像にユーザにより設定された重力方向が表現された画像を生成して表示部104に表示させることができる。
次に、ステップ708において、パーティクル湧き出し口設定部112は、パーティクルシミュレーションに利用する湧き出し口データをデータ記憶部618に記録する。ユーザは、例えば、ステップ700により表示部104に表示された色画像の所定位置をパーティクルが発生する湧き出し口として設定することができる。また、ユーザは、設定した湧き出し口から発生するパーティクルの初速度の方向および大きさも任意に設定することができる。
図31〜図33は、ユーザによってパーティクルの湧き出し口、初速度の方向および大きさが設定された際の表示部104の表示例を示す説明図である。ユーザによってパーティクルの湧き出し口、パーティクルの初速度の方向および大きさが設定されると、パーティクル演算部620は、設定された情報や重力データなどに基づいて、湧き出し口から発生するパーティクルの軌道を算出する。その後、画像生成部622は、図31〜図33に示すように、パーティクル演算部620によって算出されたパーティクルの軌道が表現された画像を生成して、表示部104に表示させる。これにより、ユーザは、操作部102を操作することにより、設定したパーティクルの湧き出し口、パーティクルの初速度の方向および大きさを任意に変更し、パーティクルの軌道を修正することができる。図31〜図33を参照すると、パーティクルの湧き出し口は固定されているが、パーティクルの初速度方向がユーザによって変更されることにより、パーティクルの軌道が変更されていることがわかる。
ここで、ユーザが操作部102などを介してパーティクルシミュレーションの開始を選択した場合、画像処理装置600は、パーティクルシミュレーションを実行する。すなわち、画像生成部622は、パーティクル演算部620によって算出されたパーティクルの軌道に基づいて、二次元画像上においてパーティクルが流動する画像を生成して、表示部104に表示させる。
図34は、パーティクルシミュレーション実行時における表示部104の表示例を示す説明図である。図34に示すように、表示部104には、図33に示したパーティクルの軌道に基づいて、複数のパーティクルにより水の流れが表現されている。
次に、ステップ710において、パーティクル反射領域設定部616は、パーティクルシミュレーションに利用する反射領域データをデータ記憶部618に記録する。ユーザは、例えば、操作部102を操作することにより、表示部104に表示された二次元画像の任意の領域をパーティクルの反射領域として設定することができる。パーティクル反射領域設定部616は、ユーザによって設定されたパーティクルの反射領域に関する情報を、反射領域データとしてデータ記憶部618に転送する。
図35は、パーティクルの反射領域を設定する際の表示部104の表示例を示す説明図である。図35に示すように、表示部104にはユーザが設定したパーティクルの反射領域が表示される。ユーザは、例えば、マウスやキーボードなどで構成される操作部102を操作したり、タッチパネル機能を備える表示部104を利用したりすることにより、二次元画像における任意の領域を反射領域として設定することができる。
このようにしてユーザによりパーティクルの反射領域が設定された場合、パーティクル反射領域設定部616は、設定された反射領域に関する情報を、反射領域データとしてデータ記憶部618に転送する。
次に、ステップ712において、画像処理装置600は、レンダリング処理を行う。ここで、レンダリングとは、数値データとして与えられた物体や図形に関する情報を計算によって画像化することを意味する。
まず、パーティクル演算部620は、データ記憶部618に記録されている反射領域データなどに基づいて反射後のパーティクルの軌道を算出する。
ここで、パーティクル演算部620は、反射領域に付加されている法線情報を利用してパーティクルの反射後の速度ベクトル等を算出することができる。例えば、モーメントと摩擦を考慮しないシミュレーションでは、反射(衝突)により向きを変更する運動量は反射面の法線方向のみに働くこととなる。なお、反射後のパーティクルの軌道を算出するにあたって用いられる計算式やパラメータなどは、シミュレーションの精度や目的などに応じて任意に設定・変更することができるものであり、特定の算出方法に限定されるものではない。
その後、ステップ714において、画像生成部622は、パーティクル演算部620によって算出されたパーティクルの軌道に基づいて、二次元画像上においてパーティクルが反射領域で反射している画像を生成して、表示部104に表示させる。図36を参照すると、パーティクルの軌道が、ユーザによって指定された反射領域で反射されていることがわかる。
ここで、ユーザが操作部102などを介してパーティクルシミュレーションの開始を選択した場合、画像処理装置600は、パーティクルシミュレーションを実行する。すなわち、画像生成部622は、図37に示すように、パーティクル演算部620によって算出されたパーティクルの軌道に基づいて、二次元画像上においてパーティクルが流動する画像を生成して、表示部104に表示させる。
なお、図35〜図37では、1の反射領域のみを指定する例を示したが、画像処理装置600は、複数の反射領域を設定してパーティクルシミュレーションを実行することもできる。すなわち、パーティクル反射領域設定部616は、ユーザによって反射領域が設定されるたびに反射領域データをデータ記憶部618に記録することができる。さらに、パーティクル演算部620は、このようにしてデータ記憶部618に記録された複数の反射領域データに基づいて、パーティクルの軌道を算出することができる。このとき、パーティクル演算部620は、例えば、パーティクルの反射に伴って生じるエネルギ損失などを考慮してパーティクルの軌道を算出してもよい。
以上、画像処理装置600によって実行されるパーティクルシミュレーションの処理の流れについてフロー図を参照にして説明した。
<3−3.パーティクルの軌道修正処理>
上述した処理の一例では、ユーザはパーティクルの軌道上に反射領域を設定したが、必ずしも反射領域はパーティクルの軌道上に設定される必要はない。従来の手法によりパーティクルシミュレーションを行う場合、本来のパーティクルの軌道とは逸脱した地点でパーティクルを反射させたい場合、三次元シーンを構築し、反射に必要な各種パラメータなどの情報を付加させる必要があった。これに対して本実施形態に係る画像処理装置600は、パーティクルの軌道を自動で修正し、ユーザによって設定された任意の反射領域でパーティクルを反射させることができる。以下、本実施形態において、ユーザによって選択された反射領域に基づくパーティクルの軌道修正の一例について、図38を参照にして説明する。
上述したように、本実施形態においては、パーティクル演算部620は、ユーザによって設定されたパーティクルの湧き出し口、パーティクルの初速度の方向および大きさ等に基づいてパーティクルの軌道を算出する。すなわち、パーティクル演算部620は、各時間ステップにおいて速度ベクトルを加算し、速度ベクトルには重力加速度を加算することにより、三次元空間内におけるパーティクルの放物線軌道を算出することができる。画像生成部622は、このようにして算出されたパーティクルの放物線軌道に基づいて、パーティクルの位置を二次元ベクトルとして二次元画像上に表現して、表示部104に表示させることができる。
また、パーティクルの反射は、シミュレーションを行うシーンに関わらず、ユーザによって設定された反射領域においてのみ発生する。したがって、パーティクル演算部620は、反射領域に対応するピクセルの位置情報に基づいて、パーティクルの衝突時間を算出することができる。具体的には、パーティクル演算部620は、パーティクルが最初にシーン内に現れた時点、およびパーティクルが反射された時点で、パーティクルが次に反射する時間を算出する。
例えば、パーティクルが最初にシーン内に現れた時点、およびパーティクルが反射された時点の時間をt0、その直後の位置ベクトルをX0、速度ベクトルをV0と仮定し、ユーザによって設定された反射領域をAと仮定する。ここで、位置ベクトルX0は二次元ベクトルであり、速度ベクトルV0は三次元ベクトルであり、反射領域Aは二次元平面である。この場合、パーティクルが次に反射する位置は、反射領域Aを構成するいずれかのピクセル(位置)である。したがって、パーティクル演算部620は、反射領域Aの中から任意の位置をパーティクルが反射する位置X1として選出する。同様に、パーティクル演算部620は、すべてのパーティクルに対して各パーティクルが反射する位置X1を反射領域Aの中から選出する。この結果、パーティクルシミュレーションにより表現されるパーティクルは、ユーザによって選択された反射領域の広さに応じて拡散した動きで表現されることとなる。
ここで、パーティクルの反射位置X1は、必ずしもパーティクル演算部620によって算出されたパーティクルの軌道上に位置するとは限らない。このような場合、パーティクル演算部620は、物理計算によって算出したパーティクルの軌道上で、反射位置X1に最も近い位置をX’1として選出し、パーティクルがX0からX’1に到達するまでの時間をt1として定義する。さらに、パーティクル演算部620は、X1とX’1の差分をパーティクルの軌道に分散させて、パーティクルの軌道を修正する。すなわち、パーティクル演算部620は、各時間ステップで物理計算により算出される位置に下記式(11)で算出される値を加算する。
Figure 2010152870
以上のように、パーティクル演算部620は、シミュレーションに利用するすべてのパーティクルに対して上記処理を施すことにより、ユーザによって設定された反射領域でパーティクルが反射されるようにパーティクルの軌道を修正することができる。
すなわち、湧き出し口から発生したパーティクルは、1つ目の反射領域の中からパーティクル演算部620によって選出された任意の反射位置に向かうように軌道修正される。また、ある反射位置で反射したパーティクルは、次の反射領域の中からパーティクル演算部620によって選出された任意の反射位置に向かうように軌道修正される。
また、パーティクル演算部620は、反射後のパーティクルの軌道を、反射位置X1に付加された法線情報に基づいて容易に算出することができる。例えば、反射に際して摩擦やトルクの影響がないものと仮定した場合、衝突後の速度ベクトルV’は式(12)のように算出される。
Figure 2010152870
ここで、Vは反射前の速度ベクトルであり、Nは正規化された反射面での法線であり、μは反射位置の弾性力を表すスカラー定数であってユーザにより例えば0〜1の範囲で任意に設定される。
このように、本実施形態に係る画像処理装置600は、ユーザによってシーン内の任意の位置に設定された反射領域でパーティクルが反射されるように、物理計算によって算出されたパーティクルの軌道を修正することができる。また、画像処理装置600は、反射領域に付加された法線情報を用いることで容易に反射後のパーティクルの軌道を算出することができる。したがって、画像処理装置600は、物理計算によって算出された軌道から逸脱した位置でパーティクルを反射させたい場合においても、三次元シーンを再構築したり、反射後の軌道算出に必要な各種パラメータを設定したりする煩雑な処理・作業が不要である。
<3−4.画像処理装置600によるパーティクルシミュレーションの実施例>
次に、上述した画像処理装置600によりパーティクルシミュレーションを行った実施例について図39〜図44を参照にして説明する。
図39および図40は、幾何学的なシーンにおいて、パーティクルが階段を落ちていく様子をシミュレーションした結果を示す説明図である。従来手法によってパーティクルシミュレーションを行う場合、ユーザは、三次元シーンを構築し、意図した(二次元的な)位置でパーティクルが反射するように各種パラメータ等をシミュレータに提供する必要があった。例えば、図39および図40に示す例では階段の幅が大きくなっているシーンが存在している。このようなシーンで意図したパーティクルの反射を実現するには、場所によって反射係数を変更する、または非直感的な三次元形状を作成するなどといった煩雑な作業・処理が必要であった。
これに対して、本実施形態に係る画像処理装置600は、二次元画像において設定された法線情報および反射領域に基づいて、上述した処理を実行することにより、図40に示すようなパーティクルシミュレーションを簡単に実行することができる。
図41および図42は、現実の物理計算では不可能なパーティクルの軌道をシミュレーションした結果を示す説明図である。図41および図42を参照すると、階段が途中で奥にずれた後に上昇していることがわかる。現実の物理計算では、このような階段の各段をパーティクルが反射する軌道を算出することはできない。このような場合においても、本実施形態に係る画像処理装置600は、各段の法線情報を設定し、各段を反射領域として設定することにより、図42に示すようなパーティクルシミュレーションを容易に実行することができる。
図43および図44は、パーティクルシミュレーションの実施例を示す別の説明図である。図43および図44に示すシミュレーションでは、ビルの窓から発生したパーティクルが家の屋根で反射した後、キャラクタの頭部で再度反射している。このようなシミュレーションを従来の手法で実現することは極めて困難であり、煩雑な設定・処理が必要となっていた。すなわち、一度屋根で反射して広がったパーティクルを再度キャラクタの小さな頭部で反射させるには、奥行き情報などを考慮して屋根の法線を細かく調整し、修正を繰り返しながら時間をかけて三次元シーンを構築する必要があった。
これに対して、本実施形態に係る画像処理装置600は、このようなシーンにおいても簡易にパーティクルシミュレーションを実行することができる。すなわち、画像処理装置600は、パーティクルの湧き出し口をビルの窓に設定し、パーティクルの反射領域を家の屋根、およびキャラクタの頭部に設定する。このとき、キャラクタの頭部の法線方向は、例えば、図29に示したような手法で球体状の法線を定義してもよい。これにより、画像処理装置600は、上述した処理を実行することにより、図44に示すようなパーティクルシミュレーションを簡単に実行することができる。
このように、本実施形態に係る画像処理装置600は、二次元画像において設定された法線情報を利用することにより、三次元シーを構築することなくパーティクルシミュレーションを実行することができる。また、ユーザによって設定された二次元画像における任意の反射領域でパーティクルが反射するように、パーティクルの軌道を修正することもできる。これにより、現実には不可能なパーティクルの軌道をシミュレーションしたい場合や、複雑な三次元シーンを構築しなければ実現することができなかったパーティクルの軌道をシミュレーションしたい場合などでも、容易にシミュレーションを実行することができる。すなわち、本実施形態に係る画像処理装置600は、三次元の構造的には一貫性のない法線マップを有するシーンにおいても、三次元形状を構築することなくパーティクルを用いた簡易シミュレーションを実行することが可能である。
<4.画像処理装置100、600のハードウェア構成>
次に、図45を参照しながら、上記実施形態に係る画像処理装置100(画像処理装置600も同様)のハードウェア構成について、詳細に説明する。図45は、本実施形態に係る画像処理装置100のハードウェア構成を説明するためのブロック図である。
画像処理装置100は主に、CPU901、ROM903、RAM905、ブリッジ909、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、および通信装置925を備える。
CPU901は、算出処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、画像処理装置600内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや算出パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。画像処理装置100のユーザは、この入力装置915を操作することにより、画像処理装置100に対してシミュレーションに関する処理を指示することができる。なお、入力装置915は、上述した操作部102、操作入力部106などにより構成される。
出力装置917は、例えば、CRTディスプレイ、液晶ディスプレイ、プラズマディスプレイ、ELディスプレイなどの表示装置や、スピーカなどの音声出力装置など、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、画像処理装置100が行ったシミュレーションにより得られた結果を出力する。なお、出力装置917は、上述した表示部104などにより構成される。
ストレージ装置919は、画像処理装置100の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。なお、ストレージ装置919は、上述したデータ記憶部118、618などにより構成される。
ドライブ921は、記録媒体用リーダライタであり、画像処理装置600に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927にデータなどを書き込むことも可能である。
接続ポート923は、例えば、USBポート、光オーディオ端子、IEEE1394ポート、SCSIポート、HDMIポート等の、外部接続機器929に直接接続するためのポートである。この接続ポート923に外部接続機器929を接続することで、画像処理装置100は、外部接続機器929から画像データなどを取得したり、外部接続機器929に各種データを転送したりすることができる。
通信装置925は、例えば、通信網931に接続するための通信デバイス等で構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN、Bluetooth、光通信用のルータ、ADSL用のルータ、または各種通信用のモデム等である。また、通信装置925に接続される通信網931は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の各実施形態に係る画像処理装置100および600の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
<5.まとめ>
上述したように、第1実施形態に係る画像処理装置100は、シーン画像を構成するピクセル毎に相対Z値およびオフセットZ値が設定されたOLDIを利用することで、シーン内における物体の形状や位置関係を認識して、シミュレーションを行うことができる。また、隣接していないピクセル間でVPCを設定することにより、三次元的一貫性のないシーンにおけるシミュレーションを簡易かつ柔軟に行うこともできる。
また、第2実施形態に係る画像処理装置600は、二次元画像において設定された法線情報を利用することにより、三次元データを構築することなくパーティクルシミュレーションを実行することができる。また、ユーザによって設定された二次元画像における任意の反射領域でパーティクルが反射するように、パーティクルの軌道を修正することもできる。これにより、現実には不可能なパーティクルの軌道をシミュレーションしたい場合や、複雑な三次元シーンを構築しなければ実現することができなかったパーティクルの軌道をシミュレーションしたい場合などでも、容易にシミュレーションを実行することができる。
なお、第1実施形態では三次元データに基づいてOLDIを生成し、第2実施形態ではる三次元データが存在しない場合を例に説明したが、第2実施形態におけるパーティクルの反射領域の設定や軌道修正等の方法を第1実施形態に適用することも当然に可能である。例えば、第1実施形態に係る画像処理装置100によりOLDIを利用してパーティクルの軌道を表現した後に、第2実施形態で説明した方法により、ユーザが設定した反射領域でパーティクルが反射するようにパーティクルの軌道を修正してもよい。さらに、軌道修正したパーティクルを三次元データによる法線情報等に基づいて、反射させたシミュレーションを実現することも当然に可能である。すなわち、第2実施形態において説明した法線情報の設定は、あくまで三次元データが構築されていない場合の例であり、シーン内における三次元データが構築されている場合には、上記第1実施形態において説明したOLDIを利用すればよい。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
また、本明細書において、フロー図またはシーケンス図に記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。例えば、パーティクルシミュレーションを実行する際の処理の流れは、必ずしも上述した処理フローの流れに沿って行われる必要はない。例えば、重力方向と該重力の大きさを先に設定した後にパーティクルの湧き出し口を設定してもよく、処理の流れは適宜変更してもよい。
100、600 画像処理装置
102 操作部
104 表示部
106 操作入力部
108 画像入力部
110 OLDI生成部
112 パーティクル湧き出し口設定部
114 重力情報設定部
116 OLDI修正部
118、618 データ記憶部
120、620 パーティクル演算部
122、622 画像生成部
608 色画像入力部
610 法線画像入力部
616 パーティクル反射領域設定部

Claims (13)

  1. シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出し、前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出し、前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成部と、
    前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算部と、
    前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成部と、
    を備える画像処理装置。
  2. 前記シーン画像は、所定の三次元形状の物体を含む三次元データを所定の方向からキャプチャした画像であり、
    前記シミュレーション用データ生成部は、前記三次元データに基づいて前記相対Z値および前記オフセットZ値を算出する、請求項1に記載の画像処理装置。
  3. 前記シミュレーション用データ生成部は、前記シーン画像の所定の1のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置からの相対距離を前記相対Z値として算出し、前記シーン画像の所定の1のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルにおいてユーザの視点から最も近くに存在する物体の奥行き方向の位置との差を前記オフセットZ値として算出する、請求項2に記載の画像処理装置。
  4. 前記シミュレーション結果演算部は、前記シーン画像の所定の第1ピクセルおよび該第1ピクセルと隣接しない少なくとも1以上の第2ピクセルに同一物体が存在する場合において、前記第1ピクセルと前記第2ピクセルとの間に存在する物体の最短経路のピクセルに設定されている前記オフセットZ値を辿っていくことにより、前記第1ピクセルにおける物体と前記第2ピクセルにおける物体との位置関係を算出する、請求項3に記載の画像処理装置。
  5. 前記第1ピクセルに存在する物体の奥行き方向の位置と、前記第2ピクセルに存在する物体の奥行き方向の位置との差がユーザにより任意に設定された場合、該差を修正オフセットZ値として前記シミュレーション用データに記録するシミュレーション用データ修正部をさらに備え、
    前記シミュレーション結果演算部は、前記第1ピクセルに存在する物体と前記第2ピクセルにおける物体との位置関係を、優先的に前記修正オフセット値に基づいて算出する、請求項4に記載の画像処理装置。
  6. 前記シミュレーション結果演算部は、少なくともシーン画像上に設定されたパーティクルの発生位置、該発生位置からのパーティクルの初速度の大きさ、および重力方向と該重力の大きさに基づいて、前記発生位置からのパーティクルの流れを第1のパーティクル軌道として算出し、前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記第1のパーティクル軌道を前記物体との接触位置で少なくとも1回以上反射させた第2のパーティクル軌道を算出し、
    前記シミュレーション画像生成部は、前記シミュレーション結果演算部によって算出された第2のパーティクル軌道に基づいて、前記シーン画像にパーティクルが表現された画像を生成する請求項5に記載の画像処理装置。
  7. 前記シミュレーション結果演算部は、シーン画像においてパーティクルが発生する領域が設定された場合、該領域内の発生位置から発生するパーティクル毎に前記第2のパーティクル軌道を算出する、請求項6に記載の画像処理装置。
  8. 前記シミュレーション結果演算部は、ユーザによりシーン画像に存在する物体の少なくとも1以上の領域が反射領域として設定された場合、前記三次元データに基づいて前記反射領域の物体の法線情報を算出し、前記反射領域で前記第2のパーティクル軌道のパーティクルをさらに反射させた第3のパーティクル軌道を算出する、請求項7に記載の画像処理装置。
  9. 前記シミュレーション結果演算部は、前記少なくとも1以上の反射領域の中から任意の反射位置を選択し、該反射位置で前記第2のパーティクル軌道のパーティクルを反射させて前記第3のパーティクル軌道を算出する、請求項8に記載の画像処理装置。
  10. 前記シミュレーション結果演算部は、前記第2のパーティクルの軌道がユーザによって設定された前記反射位置へ到達するように、パーティクルの軌道を修正して前記第3のパーティクル軌道を算出する、請求項9に記載の画像処理装置。
  11. 前記シミュレーション結果演算部は、前記第2のパーティクル軌道の所定位置における時間をt0、前記第2のパーティクル軌道がユーザによって設定された前記反射位置に到達する時間をt1、該反射位置をX1と定義し、
    前記第2のパーティクル軌道で前記X1に最も近い位置X’を算出し、
    前記t0〜t1の各時間ステップで下記式(1)により算出された値を加算することにより前記第2のパーティクル記号がユーザによって設定された前記反射位置へ到達するように前記第2のパーティクル軌道を修正して、該修正された第2のパーティクル軌道のパーティクルを反射させて前記第3のパーティクル軌道を算出する、請求項10に記載の画像処理装置。
    Figure 2010152870
  12. シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出する相対Z値算出ステップと、
    前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出するオフセットZ値算出ステップと、
    前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成ステップと、
    前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算ステップと、
    前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成ステップと、
    を備える画像処理方法。
  13. シミュレーションを行う二次元のシーン画像の所定の1のピクセルに存在する物体の少なくとも1以上の奥行き方向の位置を相対Z値として前記シーン画像を構成するピクセル毎に算出する相対Z値算出処理と、
    前記シーン画像の所定の1のピクセルに存在する物体の奥行き方向の位置と、該ピクセルと隣接する複数のピクセルに存在する物体の奥行き方向の位置との差をオフセットZ値として、前記シーン画像を構成するピクセル毎に算出するオフセットZ値算出処理と、
    前記相対Z値および前記オフセットZ値を前記シーン画像に含めたシミュレーション用データを生成するシミュレーション用データ生成処理と、
    前記シミュレーション用データに含まれる前記相対Z値および前記オフセットZ値に基づいて、前記シーン画像に含まれる物体の形状および位置関係を認識することにより、前記シーン画像におけるシミュレーション結果を演算するシミュレーション結果演算処理と、
    前記シミュレーション結果が前記シーン画像に表現された画像を生成するシミュレーション画像生成処理と、
    をコンピュータに実行させる画像処理プログラム。
JP2009215866A 2008-11-25 2009-09-17 画像処理装置、画像処理方法および画像処理プログラム Withdrawn JP2010152870A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009215866A JP2010152870A (ja) 2008-11-25 2009-09-17 画像処理装置、画像処理方法および画像処理プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008300178 2008-11-25
JP2009215866A JP2010152870A (ja) 2008-11-25 2009-09-17 画像処理装置、画像処理方法および画像処理プログラム

Publications (1)

Publication Number Publication Date
JP2010152870A true JP2010152870A (ja) 2010-07-08

Family

ID=42571841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009215866A Withdrawn JP2010152870A (ja) 2008-11-25 2009-09-17 画像処理装置、画像処理方法および画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2010152870A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014521174A (ja) * 2011-07-20 2014-08-25 ゼットティーイー コーポレイション 動的壁紙の生成方法及び生成装置
JP2016031673A (ja) * 2014-07-29 2016-03-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
CN111512344A (zh) * 2017-08-08 2020-08-07 西门子股份公司 使用增强用生成式对抗神经网络从cad数据生成合成深度图像
CN114047998A (zh) * 2021-11-30 2022-02-15 珠海金山数字网络科技有限公司 对象更新方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014521174A (ja) * 2011-07-20 2014-08-25 ゼットティーイー コーポレイション 動的壁紙の生成方法及び生成装置
US9195364B2 (en) 2011-07-20 2015-11-24 Zte Corporation Method and apparatus for generating dynamic wallpaper
JP2016031673A (ja) * 2014-07-29 2016-03-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US10175765B2 (en) 2014-07-29 2019-01-08 Sony Interactive Entertainment Inc. Information processing device, information processing method, and computer program
CN111512344A (zh) * 2017-08-08 2020-08-07 西门子股份公司 使用增强用生成式对抗神经网络从cad数据生成合成深度图像
CN114047998A (zh) * 2021-11-30 2022-02-15 珠海金山数字网络科技有限公司 对象更新方法及装置
CN114047998B (zh) * 2021-11-30 2024-04-19 珠海金山数字网络科技有限公司 对象更新方法及装置

Similar Documents

Publication Publication Date Title
US7181363B2 (en) Three dimensional tangible interface for interacting with spatial-temporal data using a laser scanner
CN100534158C (zh) 产生虚拟图像和真实图像的合成图像
US11514673B2 (en) Systems and methods for augmented reality
KR20140007367A (ko) 삼차원 환경 재구성
CN107038745A (zh) 一种3d旅游景观漫游交互方法及装置
US9401044B1 (en) Method for conformal visualization
TW201921318A (zh) 用於產生場景之舖磚式三維影像表示之設備及方法
EP2065854B1 (en) posture dependent normal vectors for texture mapping
CN116051713B (zh) 渲染方法、电子设备和计算机可读存储介质
US20220375152A1 (en) Method for Efficiently Computing and Specifying Level Sets for Use in Computer Simulations, Computer Graphics and Other Purposes
US11455444B2 (en) Method for generating simulations of fluid interfaces for improved animation of fluid interactions
US20130278602A1 (en) Animatable graphics lighting analysis reporting
JP2010152870A (ja) 画像処理装置、画像処理方法および画像処理プログラム
Thiel et al. Interaction and locomotion techniques for the exploration of massive 3D point clouds in VR environments
EP3980975B1 (en) Method of inferring microdetail on skin animation
WO2022113246A1 (ja) 画像処理装置および画像処理方法
US11961186B2 (en) Method and system for visually seamless grafting of volumetric data
Zhu et al. Integrated Co-Designing Using Building Information Modeling and Mixed Reality with Erased Backgrounds for Stock Renovation
CA3143520C (en) Method of computing simulated surfaces for animation generation and other purposes
CN117197319B (zh) 图像生成方法、装置、电子设备及存储介质
JP2010231620A (ja) 三次元cg画像編集方法、装置、プログラム、記録媒体
CN115526976A (zh) 虚拟场景渲染方法、装置、存储介质和电子设备
CN117745894A (zh) 3d地图的模型动画生成方法、装置、存储介质和电子装置
CN116778059A (zh) 虚拟水面波纹生成方法、装置、存储介质与电子设备
Chen et al. Multisensory experience with images

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20121204