JP2014229171A - オブジェクトの形状情報を含むテクスチャマップを作成する方法 - Google Patents
オブジェクトの形状情報を含むテクスチャマップを作成する方法 Download PDFInfo
- Publication number
- JP2014229171A JP2014229171A JP2013109701A JP2013109701A JP2014229171A JP 2014229171 A JP2014229171 A JP 2014229171A JP 2013109701 A JP2013109701 A JP 2013109701A JP 2013109701 A JP2013109701 A JP 2013109701A JP 2014229171 A JP2014229171 A JP 2014229171A
- Authority
- JP
- Japan
- Prior art keywords
- information
- simulation
- texture map
- collision
- corrosion
- 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.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
【課題】コンピュータグラフィックスにおけるオブジェクトの質感再現性を、計算コストを抑えながら高めるための方法およびそれを実行するコンピュータプログラムプロダクトを提供する。【解決手段】3次元上のオブジェクトから様々な情報を取得し、かかる情報を計算統合することにより作成された、オブジェクトの形状情報を含む2次元テクスチャマップに対して、様々なシミュレーションを行うことにより、従来は3次元上で行われていた複雑なシミュレーションを、2次元上の簡単なシミュレーションに置き換える。【選択図】図2
Description
本発明は、従来は3次元上で行われていた複雑なシミュレーションを、オブジェクトの形状情報を含む2次元テクスチャマップを利用することにより、2次元上の簡単なシミュレーションに置き換え、オブジェクトの質感再現性および写実性の向上と計算コストの低減との両立を実現する方法に関する。
コンピュータグラフィックスにおいて、オブジェクトの写実性を高めることは常に追求され続けている事であり、その写実性において、オブジェクトの質感再現は重要な要素である。よって、オブジェクトの表面的な質感を再現するために、一般的には、2次元の画素情報のそれぞれの画素に色情報やアルファ値を含むテクスチャマップを、3次元上のオブジェクトに張り付けて、写実性を高めるということが行われてきた。しかしながら、上記テクスチャマップに含まれる情報は限られているため、それを利用したオブジェクトの質感の再現性も限られる。よって、例えば、鉄などの金属オブジェクトにおけるオブジェクト形状に沿って進行する腐食を、コンピュータグラフィックスにおいて正確に再現するためには、上記テクスチャマップを利用する方法では不十分であり、実際には、3次元上のオブジェクトに海水を接触させ、海水が接触した部分に酸化反応を起こさせ腐食させるという、3次元シミュレーションが行われている(非特許文献1)。
上記シミュレーションにおいては、海水によるオブジェクトの腐食の進行度合いを、オブジェクトの頂点ごとに計算しているが(非特許文献1)、この計算を3次元の連続空間上で行うためには、複雑な並列計算を行う必要があり、計算処理に時間がかかる。また、このような手法では、シミュレーションからレンダリングに至るまで、様々なソフトウェアやアプリケーションを利用する必要があるが、ソフトウェアごとにデータフォーマットやルールが異なっているため、オブジェクトの各頂点に依存したデータを、シミュレーションからレンダリングに至るまで、これらのソフトウェア間で相互に利用することは困難である。したがって、オブジェクトの各頂点に依存したデータを、これらのソフトウェア間で相互に利用するための新たなソフトェアやシステムを構築する必要がある。
"The synthesis of rust in seawater" Yao-Xun Chang , Zen-Chung Shin The Visual Computer Vol. 19 (2003)
上記シミュレーションは、オブジェクトの表面全体に対して海水が接触し、表面全体に腐食が起こることを想定して行われているが(非特許文献1)、本発明者らは、海中のように腐食が進行しやすい環境下に晒される実際の金属製品には、何かしらの腐食防止塗装が施されている事が一般的であるため、金属製品の表面全体が一様に腐食していくという事象は起こりにくいと考えた。さらに、上記腐食防止塗装がされた金属製品の表面に凹凸形状がある場合、金属製品の凹凸部分が他物体と接触することにより、腐食防止塗装の一部が剥離していき、金属部分が剥き出しになるため、金属製品表面の腐食進行の度合いにバラツキが生じることを見出した。
かかる新たな知見から、本発明者らは、オブジェクト表面の物理的浸食に関するシミュレーションにおいては、オブジェクトに関する基本的な3次元情報に加えて、オブジェクト表面の凹凸形状の情報や、腐食防止塗装の情報をさらに付加し、オブジェクトと他物体との衝突シミュレーションを行って腐食防止塗装の剥離を再現し、オブジェクト表面の腐食進行度合いにバラツキを持たせることで、オブジェクト表面の物理的浸食の再現性および写実性が高まると考え、これに基づき研究を進めた。
その結果、コンピュータ上において、上記のような新たな複雑なシミュレーションを行うためには、3次元の連続空間上の膨大な情報量を扱う必要があるため、高性能なコンピュータと膨大な処理時間が必要となり、計算コストが高くなると考えた。また、逆に、この計算コストを低く抑えようとすると、オブジェクトに関する情報量を削減したり、シミュレーションを簡略化したりする必要が生じるため、その結果、オブジェクトの質感再現性が低下するとの問題を見出した。かかる問題を解決することにより、トレードオフの関係にあるオブジェクトの質感再現性および写実性の向上と計算コストの低減との両立を実現することを新たな課題としさらに研究を進めた。
したがって、本発明の目的は、コンピュータグラフィックスにおけるオブジェクトの質感再現性を、計算コストを抑えながら高めるための方法およびそれを実行するコンピュータプログラムプロダクトを提供することである。
本発明者らは、上記課題を達成すべく鋭意研究を重ねたところ、コンピュータグラフィックスにおいて、3次元上のオブジェクトから様々な情報を取得し、かかる情報を計算統合することにより作成された、オブジェクトの形状情報を含む2次元テクスチャマップに対して、様々なシミュレーションを行うことにより、従来は3次元上で行われていた複雑なシミュレーションを、2次元上の簡単なシミュレーションに置き換えることができることを見出し、さらに研究を進め、本発明を完成させた。
すなわち、本発明は以下に関する。
〔1〕オブジェクトの形状情報を含むテクスチャマップを作成する方法であって、
(a)オブジェクトの頂点情報を取得するステップ、
(b)オブジェクトのエッジ情報を取得するステップ、
(c)情報を計算統合して、オブジェクトの形状情報を算出するステップ、
を含み、
(c)のステップにおいて計算統合される情報が、少なくとも前記頂点情報および前記エッジ情報を含む、前記方法。
〔2〕(c)のステップの前に、さらに(d)オブジェクト表面のコーティング情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記コーティング情報を含む、〔1〕に記載の方法。
〔3〕(c)のステップの前に、さらに(e)オブジェクト表面の接触確率情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記接触確率情報を含む、〔1〕または〔2〕に記載の方法。
〔4〕(c)のステップの前に、さらに(f)オブジェクト表面の座標情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記座標情報を含む、〔1〕〜〔3〕のいずれか一つに記載の方法。
〔1〕オブジェクトの形状情報を含むテクスチャマップを作成する方法であって、
(a)オブジェクトの頂点情報を取得するステップ、
(b)オブジェクトのエッジ情報を取得するステップ、
(c)情報を計算統合して、オブジェクトの形状情報を算出するステップ、
を含み、
(c)のステップにおいて計算統合される情報が、少なくとも前記頂点情報および前記エッジ情報を含む、前記方法。
〔2〕(c)のステップの前に、さらに(d)オブジェクト表面のコーティング情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記コーティング情報を含む、〔1〕に記載の方法。
〔3〕(c)のステップの前に、さらに(e)オブジェクト表面の接触確率情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記接触確率情報を含む、〔1〕または〔2〕に記載の方法。
〔4〕(c)のステップの前に、さらに(f)オブジェクト表面の座標情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記座標情報を含む、〔1〕〜〔3〕のいずれか一つに記載の方法。
〔5〕(c)のステップの前に、さらに(g)オブジェクト表面の法線ベクトル情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記法線ベクトル情報を含む、〔1〕〜〔4〕のいずれか一つに記載の方法。
〔6〕(c)のステップの前に、さらに(h)オブジェクト表面の曲率情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記曲率情報を含む、〔1〕〜〔5〕のいずれか一つに記載の方法。
〔7〕〔1〕〜〔6〕のいずれか一つに記載の方法により作成されたテクスチャマップに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
〔6〕(c)のステップの前に、さらに(h)オブジェクト表面の曲率情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記曲率情報を含む、〔1〕〜〔5〕のいずれか一つに記載の方法。
〔7〕〔1〕〜〔6〕のいずれか一つに記載の方法により作成されたテクスチャマップに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
〔8〕オブジェクトに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、〔1〕〜〔6〕のいずれか一つに記載の方法により作成されたテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
〔9〕〔1〕〜〔6〕のいずれか一つに記載の方法により作成されたテクスチャマップに対して、
衝突シミュレーションを行い、衝突情報を算出するステップ、
前記衝突情報に基づいて剥離情報を算出するステップ、
前記剥離情報に基づいて腐食値を算出するステップ、
前記腐食値を前記テクスチャマップに含まれる形状情報にさらに計算統合するステップを行い、前記腐食値を含むテクスチャマップを作成する方法。
〔10〕〔1〕〜〔9〕のいずれか一つに記載の方法により作成されたテクスチャマップ。
〔11〕コンピュータ上で実行される場合に、前記コンピュータに〔1〕〜〔9〕のいずれか一つに記載の方法を実行させるコンピュータプログラム手段を有するコンピュータプログラムプロダクト。
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、〔1〕〜〔6〕のいずれか一つに記載の方法により作成されたテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
〔9〕〔1〕〜〔6〕のいずれか一つに記載の方法により作成されたテクスチャマップに対して、
衝突シミュレーションを行い、衝突情報を算出するステップ、
前記衝突情報に基づいて剥離情報を算出するステップ、
前記剥離情報に基づいて腐食値を算出するステップ、
前記腐食値を前記テクスチャマップに含まれる形状情報にさらに計算統合するステップを行い、前記腐食値を含むテクスチャマップを作成する方法。
〔10〕〔1〕〜〔9〕のいずれか一つに記載の方法により作成されたテクスチャマップ。
〔11〕コンピュータ上で実行される場合に、前記コンピュータに〔1〕〜〔9〕のいずれか一つに記載の方法を実行させるコンピュータプログラム手段を有するコンピュータプログラムプロダクト。
本発明の方法は、コンピュータグラフィックスにおいて、3次元のオブジェクトから様々な情報を取得し、かかる情報を計算統合することにより、オブジェクトの形状情報を含む情報を、2次元のテクスチャマップ上に展開することを実現する。これにより、極めて高い質感再現性を実現し、これまでにない写実性の向上を実現することができる。特に、本発明により、従来は3次元上のオブジェクトに対して行われていた複雑なシミュレーションを、2次元上のテクスチャマップに対して行うことで、計算コストや計算処理時間を大幅に縮小することができるという利点がある。さらに、本発明におけるテクスチャマップは、基本的には、2次元の画像情報のそれぞれの画素に色情報やアルファ値を含む一般的な画像形式を採用しているため、異なるソフトウェアやシステム間で相互に利用でき、新たなソフトウェアやシステムを構築する必要性を省くという利点も有する。さらにまた、本発明によれば、様々なシミュレーション結果の情報を各種のテクスチャマッピング用の画像データとして計算・出力することができるため、一般的に使われているCGモデリングソフト内で利用することが容易であるという利点をも有する。
本発明を実施するための形態について、以下、適宜、項目分けして説明するが、本発明は、以下に示す態様に限定されるものではなく、必要に応じて、改変、修正などを行うことができる。本発明において、計算統合される情報は、典型的には、オブジェクトの形状等の状態や、各種シミュレーションの結果等を数値化し、コンピュータ上で扱うことができるようにした情報である。また、計算統合とは、コンピュータ上でテクスチャマップに一体的に扱うことを可能にすること、すなわち、1つのテクスチャマップとして扱うことに限定されるものではなく、複数の互いに関連付けされたテクスチャマップとして扱うことも含まれる。例として図1左側に示すように1つのテクスチャマップに情報を書き込み出力することや、図1右側に示すように複数のテクスチャマップに別々に情報を書き込むことや、他のテクスチャマップに保存された情報を参照して値に補正をかけることなども含まれる。
1.エッジ情報および頂点情報から、形状情報を算出する方法
本発明の一態様について、図2に示す態様においては、オブジェクトの形状情報として、凹凸情報を中心に説明するが、かかる形状情報は、凹凸情報のみに限定されるものではなく、例えば、後述するコーティング情報、接触確率情報、座標情報、法線ベクトル情報、曲率情報等の各情報を包含する。また、図2に示す態様において、テクスチャマップは、基本的には、画素値を格納するテクスチャバッファを有するテクセルの2次元配列を中心に説明するが、かかるテクスチャマップは、これに限定されるものではなく、例えば、テクスチャバッファに保存可能な情報量や種類を拡張して、上記各情報の詳細な情報を保存できるようにしてもよい。また、以下の説明において、テクスチャマップ、テクセルおよびテクスチャマッピングを、それぞれテクスチャ画像、画素およびテクスチャ化と表現している場合があるが、これは、便宜上のものであって、別の意味として使用しているものではない。図2に示す態様において、本発明によるオブジェクトの形状情報を含むテクスチャマップを作成する方法は、3次元形状のオブジェクトを読み込み、オブジェクト情報からエッジ情報および頂点情報を取得して、エッジおよび頂点の凹凸情報を統合してテクスチャマップ化することによって、凹凸情報を含むオブジェクトの形状情報を含むテクスチャマップを作成する。
本発明の一態様について、図2に示す態様においては、オブジェクトの形状情報として、凹凸情報を中心に説明するが、かかる形状情報は、凹凸情報のみに限定されるものではなく、例えば、後述するコーティング情報、接触確率情報、座標情報、法線ベクトル情報、曲率情報等の各情報を包含する。また、図2に示す態様において、テクスチャマップは、基本的には、画素値を格納するテクスチャバッファを有するテクセルの2次元配列を中心に説明するが、かかるテクスチャマップは、これに限定されるものではなく、例えば、テクスチャバッファに保存可能な情報量や種類を拡張して、上記各情報の詳細な情報を保存できるようにしてもよい。また、以下の説明において、テクスチャマップ、テクセルおよびテクスチャマッピングを、それぞれテクスチャ画像、画素およびテクスチャ化と表現している場合があるが、これは、便宜上のものであって、別の意味として使用しているものではない。図2に示す態様において、本発明によるオブジェクトの形状情報を含むテクスチャマップを作成する方法は、3次元形状のオブジェクトを読み込み、オブジェクト情報からエッジ情報および頂点情報を取得して、エッジおよび頂点の凹凸情報を統合してテクスチャマップ化することによって、凹凸情報を含むオブジェクトの形状情報を含むテクスチャマップを作成する。
エッジの凹凸情報を算出する方法は、従来用いられている種々の方法を用いることができるが、例えば、オブジェクトのエッジを形成する隣り合うポリゴン同士の折れ方向と法線方向の内積によって算出してもよい。これら折れ方向と内積はベクトル情報から簡単に算出することができ、これは、エッジ上の先鋭さの密度を数値化したものである。図3左側は凸形状のエッジであって、ベクトルaは隣接するポリゴンb1、b2によって形成されるエッジ上の先鋭性を表す。図3右側は凹形状のエッジであって、ベクトルcは隣接するポリゴンd1、d2によって形成されるエッジ上の先鋭性を表す。そして、それぞれのエッジ上の先鋭性Iは、隣接するポリゴンの単位法線ベクトルをそれぞれv1、v2を用いてそれぞれ、
で算出することができる。この先鋭性Iをエッジ上の凹凸値としてもよい。しかしながら、エッジの凹凸情報は、例えばエッジを形成するポリゴンが持つ頂点を制御点に用いたパラメトリック曲線から算出できる曲率などの他の方法により算出してもよい。
この算出されたエッジの凹凸情報をテクスチャ画像上に保存していく際には、オブジェクトの持つテクスチャとの対応関係を用いてもよい。これは、テクスチャマッピングにおける基本的な手法であり、オブジェクト表面に貼るための画像情報の位置を決定する際に必要となるものである。対応関係においては情報が3次元から2次元に落ちるため、対応関係の構築の方法も様々なものが利用できる(立方体であればサイコロの展開図のような平面展開の方法、単純に側面を無視し正面から貼る方法(正面からの投影)、または、ポリゴンの持つ法線情報にしたがって画素を対応させる方法)。本態様においては、基本的にオブジェクトを展開する手法をとり、別の対応関係同士が重なり合う、ねじれの関係にはならないものとして説明する。
次に、オブジェクトのエッジの凹凸情報をテクスチャ画像上に保存していく際には、3次元と2次元の頂点毎の対応関係の情報が存在するため、その対応する点を参照して画像化を行ってもよい。すなわち、テクスチャ画像上にオブジェクトのエッジ上の凹凸値を描画する場合、図4に示すように、対応する頂点を端点とした線分を用い、その線分に対応する画素のそれぞれに、対応する値を埋めるように処理する。ここで、図4の左側は、3次元空間における凸形状のエッジとその端点を表し、図4右側は、2次元空間における対応する端点を表す。そして、画素内に入れる凹凸値の大きさや、線分に対応する画素の範囲は、凹凸情報の内容によって変化させてもよい。例えば、エッジを形成している2つのポリゴンの法線の内積値の大きさによってエッジに対応する線分の太さを決定してもよい。このような処理をした場合、図5に示すように、線分で描かれたエッジに対応する画素にはエッジの凹凸値を付加できるが(図5右、白色の直線部分)、その周辺の各ポリゴン上の画素に対しては値が付加されない(図5右、グレーの部分)。このことは、ポリゴンで形成されたオブジェクトはつまるところ平面の集合体であるため、凹凸はつなぎ目であるエッジ上に現れるのが一般的であるからである。
しかし、ポリゴンで形成されたオブジェクトが表現したいものはエッジ上のみで法線方向が変化する多面体だけでなく、連続して法線方向が変化する曲面も含まれているとみなし、この凹凸情報を保存した画素に関してもエッジ上とその周囲の間における急激な変化を抑え、表面全体で連続性を持たせるためにエッジ上の凹凸値を周囲に拡散させてもよい。そのため、エッジ上の凹凸情報をポリゴン表面全体に伸ばす、平滑化処理を加えてもよい。この処理によって保存された値は、オブジェクト表面上における凹凸情報の局所的な密度ととらえることができるため、画素内に入れる凹凸値の大きさや、直線に対応する画素の範囲の比を崩さなければ、この平滑化の方法も自由に変更することができる。こうすることにより、図6に示すように、エッジ上の凹凸情報をエッジ周辺の画素に拡散させた、平滑化されたテクスチャ画像を作成してもよい。ここでは、エッジ周囲の画素とエッジとの距離に応じて、凹凸情報の数値を変化させることで、エッジ上の凹凸情報の数値を周囲の画素に拡散させている。こうすることで、オブジェクトの質感再現性および写実性を向上することができる。
頂点の凹凸情報を算出する方法は、従来用いられている種々の方法を用いることができるが、例えば、オブジェクトの頂点が持つ法線と周辺のポリゴンが持つ法線、また頂点に繋がるエッジの持つベクトルによって決定してもよい。頂点の法線方向はあらかじめ決定されていない情報であるため、オブジェクト形状から算出する必要がある。この計算は、周囲ポリゴンの法線の重心を採用するのが一般的であるが、本態様においては、周囲ポリゴンの持つ法線に対して角度毎に重み付けを行うことで計算してもよい。これは、頂点と隣接するポリゴンにおいて、頂点を構成する角度の全体に占める割合の大きい法線情報をより優遇する手法となる。この頂点の持つ法線に対して、凹凸情報、すなわち曲率を計算する際、この法線に垂直に交わる二軸を決定する必要がある。この二軸は隣接するポリゴンとエッジ情報から決定することができる。そして、求めた二軸に対してそれぞれ隣接ポリゴンの法線と対応角度から曲率を計算し、それを用いることによって凹凸情報とすることができる。
以下に、具体的な算出方法として、頂点の凹凸情報を頂点の先鋭性として算出する方法を図7を参照しながら説明する。図7において、aは頂点上の法線、b1〜b4は隣接するポリゴン上の法線、b1´〜b4´は隣接するポリゴンが注目頂点上で形成する角度を表す。まず、頂点の向いている方向を決定するため、頂点上の法線を隣接ポリゴンの法線から決める。頂点の法線Mは、隣接するポリゴンの数をn、一つのポリゴンの持つ法線をN、そのポリゴンが注目頂点上で形成する角度をθ、注目頂点上で形成される全ての角度の合計値をTとして以下の式で算出することができる。
次に決められた頂点上の法線と頂点と接するポリゴン面の法線から頂点上の先鋭性を決める。頂点上の先鋭性は、頂点の法線と隣接する各ポリゴンの法線で決定される先鋭性Iの総和として決定することができ、先鋭性Iは上記計算式で求めることができる。この際、頂点上の先鋭性Aは頂点と各隣接ポリゴンとの先鋭性Iを隣接ポリゴンが持つ角度の大きさで優遇するため、先鋭性Aは、以下の式で算出することができる。
しかしながら、頂点の凹凸情報は、例えば周囲のポリゴンを形成する頂点を制御点に用いたパラメトリック曲面などから算出できる曲率などの他の方法により算出してもよい。
次に、オブジェクトの頂点の凹凸情報をテクスチャ画像上に保存していく場合は、エッジの凹凸情報の保存の場合と同様に、図8に示すように、対応する頂点の画素上に値を保存してもよい。この際、対象となる箇所は一定範囲内の画素とする。この値の保存においても、エッジの凹凸情報の保存の場合と同様に、凹凸情報の内容に合わせて、図9に示すように値の大きさや値を保存する画素の範囲を変化させてもよい。例えば、頂点の持つ先鋭性Aの値において保存する値は凹凸に応じて最大値、最小値に固定したまま、保存する画素領域の中心からの半径を凹凸のない中央値との差に比例して増加させたり、保存する画素領域の大きさは固定したまま中央値からの差を凹凸情報として値に保存したりしてもよい。そして、この場合においても、頂点上の凹凸情報をポリゴン表面全体へ拡張するため、図10に示すように、凹凸情報の内容や、頂点からの距離に合わせて、平滑化処理を行ってもよい。
オブジェクトの形状情報を含むテクスチャマップの作成は、従来用いられている種々の方法を用いることができるが、例えば、以下のように、オブジェクトのエッジの凹凸情報を保存したテクスチャ画像と、オブジェクトの頂点の凹凸情報を保存したテクスチャ画像とを統合することによって行っても良い。図11は、オブジェクトの頂点の凹凸情報の中央値をグレー(RGB=128)として保存したテクスチャ画像(左側)と、それを平滑化し、頂点上の先鋭さを密度として表したテクスチャ画像(右側)を示している。図12は、オブジェクトのエッジの凹凸情報を2値化したテクスチャ画像(左側)と、それを平滑化し、エッジ上の先鋭さの密度を表したテクスチャ画像(右側)を示している。次に、これらを統合する場合は、それぞれのテクスチャ画像における中央値(凹凸がないと思われる箇所の値)を中心にそれぞれのテクスチャ画像に重みを付けて行っても良く、重み付けの比率は、対象とするシミュレーション内容によって変更してもよい。例えばオブジェクト表面上を伝わる滴の方向推定など法線方向の変化を重視するシミュレーションの場合はエッジの凹凸情報の重み付けを増やし、オブジェクトに対してある程度の大きさを持った他の物体との衝突シミュレーションなどオブジェクト形状における凹凸の先端部分を重要視した場合は頂点の凹凸情報の重み付けを増やすことで、オブジェクトの質感再現性および写実性を向上することができる。図13は、重みをそれぞれ0.5ずつ(半分ずつ)とした場合(左側)と、1.0としてそのまま統合した場合(右側)の、オブジェクトの形状情報を含むテクスチャマップを示す。図11〜図13において、凹凸情報に含まれる数値を基本的に白黒の濃淡で表しているが、これらを3原色の色空間で表してもよい。例えば、読み込むオブジェクトの形状に合わせて、頂点とエッジのどちらに重点を置くかを代えたい場合、どちらかを3原色の色空間で、もう一方をグレースケールで表してもよい。これは、作成された2次元のテクスチャマップから、3次元のオブジェクトの形状を把握する際に有益である。
以上、オブジェクトの形状情報を含むテクスチャマップの作成方法についての一例を説明したが、作成方法はこれに限定されるものではない。例えば、オブジェクトの形状情報を含むテクスチャマップの作成は、オブジェクトのエッジの凹凸情報および頂点の凹凸情報をそれぞれ保存したテクスチャ画像を作成することなく行うこともできる。すなわち、オブジェクトの3次元情報から頂点情報およびエッジ情報を取得して、それぞれの凹凸情報をコンピュータ上で計算して数値化し、これらを単純に足し合わせることで計算統合してもよい。また、オブジェクトの3次元情報から頂点情報およびエッジ情報を取得して、上記エッジの先鋭性Iと頂点の先鋭性Aの値を一つの先鋭性として計算統合しテクスチャマップ上に保存するというさらに単純な方法で作成してもよい。
また、上記態様においては、最初に3次元形状のオブジェクトを読み込み、オブジェクト情報から頂点情報やエッジ情報等を取得しているが、このオブジェクトは、コンピュータグラフィックス上のオブジェクトに限られるものではない。例えば、実世界に存在する立体物を3Dスキャナで読み込み、頂点情報やエッジ情報等の情報を取得することや、ステレオビジョンで撮影した情報から、立体物の情報を取得することも、オブジェクト情報から様々な情報を取得することに含まれる。
2.エッジ情報および頂点情報にさらに種々の情報を加えた、形状情報の算出方法
図14に示す、別の態様において、本発明によるオブジェクトの形状情報を含むテクスチャマップを作成する方法は、オブジェクトの頂点情報やエッジ情報に加えて、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等の各情報を計算統合して、オブジェクトの形状情報として算出する方法を含む。図14に示す態様においては、オブジェクト表面の上記各情報を、色情報やアルファ値としてテクスチャマップ上に保存することを中心に説明するが、かかる各情報のテクスチャマップへの保存の仕方は、これに限定されるものではなく、例えば、上記のように、テクスチャバッファに保存可能な情報量や種類を拡張して、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等の詳細な情報を保存するようにしてもよい。また、オブジェクト表面の上記各情報は、オブジェクト表面上の頂点毎の各情報、ポリゴン毎の各情報、または、オブジェクト表面にランダムに作成した母点を基点としたボロノイ領域毎の各情報であってもよい。これにより情報量をコントロールすることができるため、オブジェクトの質感再現性および写実性と計算コストのバランスに合わせて、自由に選択しても良い。
図14に示す、別の態様において、本発明によるオブジェクトの形状情報を含むテクスチャマップを作成する方法は、オブジェクトの頂点情報やエッジ情報に加えて、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等の各情報を計算統合して、オブジェクトの形状情報として算出する方法を含む。図14に示す態様においては、オブジェクト表面の上記各情報を、色情報やアルファ値としてテクスチャマップ上に保存することを中心に説明するが、かかる各情報のテクスチャマップへの保存の仕方は、これに限定されるものではなく、例えば、上記のように、テクスチャバッファに保存可能な情報量や種類を拡張して、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等の詳細な情報を保存するようにしてもよい。また、オブジェクト表面の上記各情報は、オブジェクト表面上の頂点毎の各情報、ポリゴン毎の各情報、または、オブジェクト表面にランダムに作成した母点を基点としたボロノイ領域毎の各情報であってもよい。これにより情報量をコントロールすることができるため、オブジェクトの質感再現性および写実性と計算コストのバランスに合わせて、自由に選択しても良い。
コーティング情報とは、オブジェクト表面に施されているコーティングに関する情報であって、コーティングの種類や情報など、様々なものを用いることができる。コーティングの種類としては、例えば、腐食防止塗装、メッキ塗装、塗料塗装、滅菌コート、抗菌コート、撥水コート、耐水コート、耐熱コート、耐火コートなどが用いられ、コーティングの情報としては、例えば、上記コーティングの種類に加えて、その色、厚さ、強度、材質、劣化耐性、抗菌性、撥水性、膜厚、持続期間、ポリマーの含有量などの情報を用いても良い。また、異なる種類のコーティングが複数回に亘って行われることで、コーティングが層状を成している場合や、オブジェクト表面の一部にだけコーティングがされている場合、また、オブジェクトの表面の異なる領域ごとに、異なるコーティングがされている場合においては、層の形成順序、コーティング領域の位置情報などの情報をさらに含んでもよい。
また、上記コーティングの情報には、オブジェクト自体の色、すなわち、表面に何もコーティングがされていない状態のオブジェクト自体の表面の色、強度、材質、耐摩耗性、粘着性などの情報も含まれる。これらの情報は、実世界に存在する立体物を3Dスキャナやステレオビジョンで読み込む際に画像処理で自動的に取得しても良いし、様々な情報を基に手動で入力してもよい。また、コンピュータグラフィックス上のオブジェクトに何もコーティングがされていない場合であっても、シミュレーションの目的に合わせて、仮想的な様々な表面コーティング情報を、オブジェクト情報に付加してもよい。そして、これらの情報をテクスチャ画像上に保存していく場合は、対応する頂点の画素毎に情報を保存してもよいが、オブジェクトのポリゴン情報やボロノイ領域に合わせて、テクスチャ画像上の画素もグループ化し、同グループに属する複数の画素のそれぞれに対応する値の平均値を、グループ毎の値として保存することで、テクスチャ画像上の情報量を少なくして計算コストを抑えてもよい。さらにまた、これらの情報を対応する頂点の画素毎に、テクスチャ画像上に保存した後に、ボロノイ分割を行って、ボロノイ領域毎の平均値を取ってもよい。
接触確率情報とは、オブジェクト表面のどの部分に他物体が接触しやすいかに関する情報であって、従来用いられている種々の方法を用いることができる。例えば、図15のように、オブジェクトが存在する空間においてオブジェクト自体のオクルージョン、もしくはオブジェクト以外の障害物があるという観点から作成する場合は、オブジェクト表面の各ポリゴンに対して、そのポリゴンへの照射方向におけるオクルージョンや障害物の量を数値化することにより取得してもよい。図16は、このような観点から作成されたテクスチャ画像の一例であり、より白色に近い部分が接触率の高い領域で、より黒色に近い部分が接触率の低い領域である。
また、この接触確率情報は、コンピュータグラフィックス上の3次元のオブジェクトに対して他物体を衝突させるという、衝突シミュレーションを行うことによって算出してもよい。この場合は、オブジェクトに衝突する他物体のサイズ、形状、材質、質量、他物体の初期位置、衝突方向、衝突速度などをランダムに決定し、オブジェクトに対して衝突シミュレーションを繰り返すことで、オブジェクト表面の他物体との接触確率を数値情報として算出してもよい。この数値情報の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
座標情報とは、3次元オブジェクトの頂点が持つ座標値に関する情報であって、従来用いられている種々の方法を用いることができる。例えば、図17は、座標値をRGBで表現した場合のオブジェクト表面の図(左側)およびそれを展開したテクスチャ画像(右側)を示す。これらは、オブジェクトをある方向から見た場合に、テクスチャ画像に対応する表面の座標値がより右方向にある場合はR(赤色)を、より奥行き方向にある場合はG(緑色)を、より高さ方向にある場合はB(青色)を強くすることで、対応する表面の座標値の大きさを示したものである。この座標値の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
オブジェクトの凹凸情報に、さらにこの座標情報を計算統合してテクスチャマップを作成することで、例えば、水流や空気などの流れ方向を2次元シミュレーションで凹凸情報のみの場合と比べより精密に計算することができる。これは、オブジェクトの凹凸情報に、オブジェクトの座標情報に含まれる、オブジェクトの向き、奥行き、高さ等も計算統合することにより、より正確なオブジェクトの形状情報をテクスチャマップ上に保存できることに起因する。
また、図17の左側に示されるように、オブジェクトが床面に接している場合は、オブジェクト頂点の高さ方向の座標値が小さい部分は、床面と接している部分であると仮定できるため、この部分は他物体との接触確率が低いとして、2次元の衝突シミュレーションを行うこともできる。したがって、上記のような、オブジェクト表面の物理的浸食の再現性を高めるための複雑なシミュレーションを行う場合は、オブジェクト表面の凹凸情報やコーティング情報に加えて、オブジェクトの向き、奥行き、高さなどの情報を含んだテクスチャマップを利用することにより、より再現性の高いシミュレーションを行うことができ、オブジェクトの写実性を高めることができる。
法線ベクトル情報とは、オブジェクト表面の各頂点または各面が向いている方向、すなわちオブジェクト表面の法線ベクトルに関する情報であって、従来用いられている種々の方法を用いることができる。例えば、図18は、法線ベクトル情報をテクスチャ画像化したもの(左側および中央側)であるが、この法線ベクトル情報と凹凸情報を計算統合することにより、粒状物(砂や埃)が堆積しやすい溝部分などの箇所を簡単に求めてテクスチャ画像化(右側)することができる。また、法線ベクトル情報を計算統合することで、例えば、他物体のオブジェクトへの衝突が上方向から起こることを想定した3次元シミュレーションを、2次元のテクスチャマップ上で行う場合は、対象物の衝突箇所はオブジェクトの上方向を向いている面、すなわち、黒色が強い領域に対して起こりやすいとして、2次元の衝突シミュレーションを行うことができる。この法線ベクトル情報の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
曲率情報とは、オブジェクト表面に曲面がある場合の曲面上のある点における曲率に関する情報であって、従来用いられている種々の方法を用いることができる。曲率に関する情報としては、例えば、曲面上のある点における最大、最小の曲率の積に関する情報である、ガウス曲率が挙げられる。このガウス曲率が正である面はドーム形状、負である面は鞍形状、ゼロである面は筒形状であるなど、オブジェクト表面の曲面の形状を、このガウス曲率情報から理解することができる。また、この曲率情報には、全曲率(ガウス曲率)、平均曲率、曲率半径、曲率中心などの情報も含まれる。この曲率情報の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
以上、図14に基づいて、オブジェクトの頂点情報やエッジ情報に加えて、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等を計算統合して、オブジェクトの形状情報として算出する方法を説明したが、本発明はこの態様に限定されるものではない。例えば、これらの情報の組み合わせ方、算出方法、算出手順、重み付け等は、オブジェクトの形状情報を含むテクスチャマップに対して行われるシミュレーション、例えば、後述する衝突シミュレーション、堆積シミュレーション、腐食シミュレーション、摩耗シミュレーション、剥離シミュレーション等の内容に合わせて変化させてもよい。さらに、上記接触確率情報、座標情報、法線ベクトル情報、曲率情報に関連する各情報は、オブジェクトの頂点情報やエッジ情報から直接算出することもできる。すなわち、オブジェクトの頂点情報やエッジ情報から、頂点の座標、エッジの長さ、向き、端点の座標、ポリゴン面の形状、ポリゴン面の法線、頂点上の法線、エッジの先鋭性、頂点の先鋭性などを算出することができるため、上記各情報をオブジェクトの頂点情報やエッジ情報から直接算出して、これらの情報を計算統合して、オブジェクトの形状情報を算出してもよい。
3.シミュレーション結果情報を含むテクスチャマップを作成する方法
図19に示す、別の態様において、本発明は、オブジェクトの形状情報を含むテクスチャマップに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法を含む。
図19に示す、別の態様において、本発明は、オブジェクトの形状情報を含むテクスチャマップに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法を含む。
また、さらに別の態様として、本発明は、オブジェクトに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、オブジェクトの形状情報を含むテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法を含む。
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、オブジェクトの形状情報を含むテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法を含む。
ここで、上記からなる群から選択される1または2以上のステップを行うとは、上記(1)〜(4)に記載されたステップから、1または2以上のステップを選択して、これらを順不同で行うことや、以下に示す塗装剥離を考慮した腐食シミュレーションのように、順序立てて行うこと、また、順序の中で同じステップを2度以上行うことを含んでも良い。これらの順序は、求められる再現性や写実性、および/または、計算統合の効率などの観点から自由に設定することができる。
また、オブジェクトの形状情報を含むテクスチャマップに対して行われる、上記各シミュレーションは、テクスチャマップ上の頂点毎、ポリゴン毎、または、テクスチャマップ上にランダムに作成した母点を基点としたボロノイ領域毎に行ってもよい。また、オブジェクトに対して行われる、上記各シミュレーションは、オブジェクト上の頂点毎、ポリゴン毎、または、オブジェクト上にランダムに作成した母点を基点としたボロノイ領域毎に行ってもよい。これにより情報量をコントロールすることができるため、オブジェクトの質感再現性および写実性と計算コストとのバランスに合わせて、自由に選択しても良い。
衝突シミュレーションとは、オブジェクトまたはオブジェクトの形状情報を含むテクスチャマップに対して、他物体を衝突させるシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、衝突シミュレーションは、図20に示すように、オブジェクトの形状情報を含む2次元のテクスチャマップ上で、他物体の衝突を再現するという形で行ってもよい。ここで、図20の中央側は、凹凸情報のない2次元のテクスチャマップを示し、図20の右側は、前記2次元のテクスチャマップ上に、他物体が衝突した時の圧力分布を示している。このシミュレーションにおいては、他物体の形状を球形状とし、衝突時の圧力分布を色の濃淡で表しているため、圧力分布における中心点の色が一番濃く、中心点から離れていくに従って色が淡くなっている。この例のように、衝突シミュレーションの結果である衝突情報としては、例えば、衝突シミュレーションによって算出された色情報を保存してもよいが、以下に述べるような、衝突圧力の数値、衝突回数、他物体の各情報などを保存してもよい。
また、図21は、凹凸情報のある2次元のテクスチャマップ上で、上記と同様の球形状の他物体の衝突を再現したものである。ここで、図21の中央側は、オブジェクトの凹凸情報を含むテクスチャマップを表し、図21の右側は、前記テクスチャマップ上に、球形状の他物体が衝突した時の圧力分布を示したものである。このシミュレーションにおいては、球形状の他物体が、凹凸形状のあるオブジェクトに対して衝突したことを再現しているため、テクスチャマップの中心付近の凹形状部分の衝突圧力は小さく、凸形状部分の衝突圧力は大きくなっていることが分かる。
また、図22に示すように、衝突シミュレーションは、コンピュータグラフィックス上で他物体(図22の左側)を生成し、3次元のオブジェクト(図22の右側)に対して衝突させることで再現してもよい。このように、衝突シミュレーションを3次元上で行うことで、他物体がオブジェクト表面のどの位置に衝突するかを、より正確に算出することができる。したがって、上記のような、オブジェクト表面の物理的浸食の再現性を高めるためのシミュレーションを、より正確に行う場合は、オブジェクト表面の凹凸情報や腐食防止塗装などのコーティング情報を含んだ、オブジェクトの形状情報を含む2次元のテクスチャマップ上のどの部分に、他物体の衝突が起こるかを正確に算出する必要があるため、上記のように、衝突シミュレーションを3次元上で行い、衝突位置を正確に特定した後に、2次元のテクスチャマップの対応する位置に圧力分布の情報を保存してもよい。
ここで、オブジェクトまたはオブジェクトの形状情報を含むテクスチャマップに対して衝突させる他物体のサイズ、形状、材質、質量、他物体の初期位置、衝突方向、衝突速度などの、他物体の各情報は、衝突シミュレーションにおいて最初に与えられる条件として、任意に決定してもよい。これにより、例えば、他物体の質量および衝突速度が決まれば、他物体の運動量が算出できるため、上記テクスチャマップ上の圧力分布の値を、前記運動量に合わせて変化させてもよい。また、この衝突シミュレーションは、何度も繰り返し行ってもよく、上記他物体の各情報は、衝突毎に変化させてもよい。例えば、他物体の初期位置および衝突方向をランダムに変化させながら、衝突シミュレーションを繰り返すことで、オブジェクト表面全体に渡って衝突を再現することができる。衝突シミュレーションを繰り返す場合は、衝突の度に発生する圧力値を足し合わせていっても良い。図23は、衝突により平面上にかかる圧力(図23の左側)および凹凸がある場合にかかる圧力(図23の右側)の違いを概念的に示したものであり、圧力計算は、例えば2次元テクスチャマップ上の座標を中心に、接触半径a内の各画素位置に加わる圧力をP、荷重をN、他物体の半径をr、テクスチャマップ上の凹凸情報の値をKとすると、
として計算することができるが、圧力計算はこれに限られるものではない。
また、他物体の初期位置および衝突方向を決定して、2次元のテクスチャマップ上で衝突を再現する際には、例えば、テクスチャマップ上に座標情報や法線ベクトル情報が保存されていれば、これらの情報を計算統合することで、他物体のオブジェクトへの衝突入射角度が算出できるため、対象物の衝突入射角度と運動量の情報を統合することで、より正確な衝突圧力分布を再現することができる。すなわち、上記のように球形状の他物体がオブジェクト表面対して垂直に衝突する場合は、図20の右側に示すように、テクスチャマップ上の圧力分布は円形パターンとなるが、例えば、球形状の他物体がオブジェクト表面に対して斜めに衝突する場合は、例えば、図24に示すように、他物体の衝突が最初に起こる箇所の圧力が大きく、その後、他物体がオブジェクト表面上を滑っていくため、圧力は小さくなっていき、最終的な圧力分布は楕円形パターンとなる。
これらの圧力分布のパターンは、衝突シミュレーションの内容ごとに様々に変化するが、上記のように衝突入射角度と運動量等の情報が分かれば、ある程度の圧力分布のパターンを算出することができる。例えば、予めコンピュータグラフィックス上に、凹凸のない平面と他物体とを配置し、他物体のサイズ、形状、材質、質量、他物体の初期位置、衝突方向、衝突速度などをランダムに変化させて、平面に対して衝突させるという衝突シミュレーションを繰り返すことで、様々な圧力分布パターンのデータベースを作成することができる。このデータベースには、上記他物体の各情報と圧力分布パターンとの関係性を保存することができるため、他物体の2次元のテクスチャマップに対する衝突を再現する際には、上記他物体の各情報をランダムに変化させ、各情報に対応するパターンの圧力分布をデータベースから読み込み、2次元のテクスチャマップ上に計算統合していくという簡単な方法で、他物体の2次元のテクスチャマップに対する衝突を再現してもよい。こうすることにより、2次元のテクスチャマップ上で行う衝突シミュレーションの再現性を、3次元のオブジェクトに対して行う衝突シミュレーションの再現性により近づけることができる。
さらにまた、上記対応するパターンの圧力分布を2次元のテクスチャマップ上に計算統合していく際においても、例えば、2次元のテクスチャマップ上に3次元オブジェクト表面の接触確率情報が含まれている場合は、テクスチャマップ上で行う衝突シミュレーションの再現性をより高めることができる。すなわち、他物体Aが、テクスチャマップ上の接触確率情報の数値が低いところに接触による圧力の影響を与えた場合は、前記衝突は実際には接触する可能性の低い箇所であるとして、圧力分布パターンの該当する箇所の圧力値を小さくまたはゼロにし、逆に、同じ対象物Aが、テクスチャマップ上の接触確率情報の数値が高いところに衝突による圧力の影響を与えた場合は、前記衝突は実際に起こる可能性が高い衝突であるとして、圧力分布パターンの該当する箇所の圧力値をそのまま、または大きくして保存してもよい。こうすることにより、2次元のテクスチャマップ上で行う衝突シミュレーションの再現性を、3次元のオブジェクトに対して行う衝突シミュレーションの再現性にさらに近づけることができる。
剥離シミュレーションとは、オブジェクトの表面またはオブジェクトの形状情報を含むテクスチャマップの表面の剥離を再現するシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、図25は、腐食防止塗装がされた押ボタン式交通信号制御機の写真を示すが、制御機の角の部分は通行者がよく接触する部分であり、通行者の手の接触が他の部分に比べて多く、それによる圧力がかかり易いため、腐食防止塗装の一部が剥がれており、その部分の金属腐食が進んでいる。この例のように、剥離シミュレーションは、オブジェクトの表面、または、オブジェクト表面の形状情報を含むテクスチャマップの表面にかかる圧力と塗装剥離との関係をシミュレーションすることを含んでもよく、また、表面にかかる圧力は、上記衝突シミュレーションによって算出された圧力を利用してもよい。
図26および図27を参照して、本発明の剥離シミュレーションの一態様を説明する。図26は、オブジェクトの表面をボロノイ分割を用いて領域ごとにクラス化したもの(図26の左側)と、それをテクスチャマップ上で表したもの(図26の右側)を示す。この態様においては、圧力は頂点毎ではなく、クラス毎に与えられるものとし、与えられた圧力から負荷値を計算し、クラス毎に蓄積している。剥離シミュレーションを行う際は、予め圧力値や、圧力が与えられる範囲、また、上記のような圧力分布のパターン等を設定してから行ってもよい。また、この圧力値や負荷値を2次元のテクスチャマップ上に計算統合していく場合においても、例えば、2次元のテクスチャマップ上に3次元オブジェクト表面の凹凸情報が含まれている場合は、凸の領域には圧力値や負荷値が伝わりやすく、逆に凹の領域には圧力値や負荷値が伝わりにくいとして、計算統合してもよい。
図27は、上記圧力値または負荷値がある閾値を越えた領域を白色で、超えていない領域を黒色で表したテクスチャ画像であり、オブジェクト表面の凸の領域に白色の領域が、凹の領域に黒色の領域が集中していることが分かる。上記閾値は、オブジェクト表面のコーティング情報を基に設定してもよい。例えば、オブジェクト表面に腐食防止塗装がされている場合は、その塗装の厚さや強度を基に、腐食防止塗装がどれだけの負荷値をどれくらいの間与えられると剥離するかを計算し、その情報を基に設定してもよい。上記のように、したがって、腐食シミュレーションにおいて最初に与えられる条件としては、例えば、圧力値、負荷値、圧力が与えられる時間、閾値などであってもよく、剥離シミュレーションの結果である剥離情報としては、例えば、剥離シミュレーションによって算出された、圧力値、負荷値、圧力が与えられた時間、蓄積された値、閾値を越えた領域の位置情報、閾値を越えていない領域における、圧力の蓄積値などの情報に加えて、以下に示すような、オブジェクトの摩耗における、摩耗度合い、摩耗領域の位置情報を含んでも良い。
そして、この剥離シミュレーションを、コーティング情報が保存されているテクスチャマップに対して行う場合は、テクスチャマップ上には、オブジェクト表面の凹凸情報、コーティング情報、および、剥離情報が計算統合されることになるが、その際には、上記閾値を越えた領域の位置情報に基づいて、上記コーティング情報に含まれる値を小さくまたはゼロにしてもよい。また、この剥離シミュレーションは、オブジェクト表面に何もコーティングがされていない場合にも行うことができる。例えば、石膏のような素材を利用して作成されたオブジェクトに対して、剥離シミュレーションを行った場合は、石膏オブジェクトの表面が摩耗して削れていく。したがって、コーティングがされていないオブジェクトの表面に、剥離シミュレーションを行う場合は、上記のように、オブジェクト上に圧力を加えて負荷値を蓄積させていき、蓄積された値が閾値を越えた領域を摩耗させていくことで実現してもよいし、圧力が加わる度に、圧力が加わった領域を摩耗させていくことで実現してもよい。この摩耗は、オブジェクト表面上の頂点の座標値を変化させることで、オブジェクト上の削れとして再現してもよいし、ボロノイ領域毎に負荷値を蓄積させていき、蓄積された値の大きさに応じて摩耗の度合いを決めて、ボロノイ領域毎にオブジェクトの削られる厚さを決めることで、オブジェクトの形状情報を変化させてもよい。
腐食シミュレーションとは、オブジェクトの表面またはオブジェクトの形状情報を含むテクスチャマップの表面の腐食を再現するシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、図28は、剥離箇所があるオブジェクト表面に対して腐食シミュレーションを行った場合の、時間経過と腐食の度合いを示す腐食値を色の濃淡で表した図であり、オブジェクト表面の腐食値がより大きい領域に白色の領域が、腐食値がより小さい領域に黒色の領域が集中していることが分かる。腐食シミュレーションにおいて、最初に与えられる条件としては、例えば、オブジェクト表面に接する、海水の塩分濃度や、空気中の湿度、温度などの、腐食を進行させる条件、腐食時間、腐食値などであってもよいし、以下に示すような、腐食値の周囲への拡大割合を保存してもよい。また、腐食シミュレーションの結果である腐食情報としては、腐食値、腐食位置、腐食の色などを含んでもよい。
また、オブジェクト表面に腐食防止塗装の剥離箇所がある場合は、腐食はその剥離箇所から始まりやすく、また、その剥離箇所にはオブジェクトと腐食防止塗装の境目が露出して海水等が侵入しやすくなるため、腐食の進行と共に腐食部分の周辺部の塗装に膨れが生じ、そのために与えられる圧力に対する塗装剥離の可能性に変化が生じる。したがって、この塗装剥離の可能性の変化を考慮して、腐食が決定した箇所から、周囲に対して腐食値を一定割合増加させて、腐食の拡大を再現してもよい。図29は、腐食の拡大を概念的に示したものであり、図29の左側の白色の部分は、塗装剥離が起こり腐食が始まっている箇所、黒色の部分は、塗装剥離が起こっていない箇所、矢印は海水の侵入方向を表し、図29の右側の白色の部分は、海水の侵入により塗装の剥離および腐食が始まっている箇所を示しており、塗装剥離箇所の拡大に伴う腐食部分の拡大、すなわち、腐食値が周囲に対して拡大されていることが分かる。
さらにまた、この腐食シミュレーションは、オブジェクト表面に腐食防止塗装がされていない場合において行っても良い。例えば、図30は、空気中の酸素と、凹凸のある金属製のオブジェクト表面の接触を概念的に示したものであり、酸素分子が図中左側から図中右側の鉄原子に接触している。ここで、図中右上側の矢印で示される鉄原子は露出表面が大きいため、酸素と接触しやすく、図中右下側の矢印で示される鉄原子は露出表面が小さいため、酸素と接触しにくいことが分かる。この酸素と鉄との接触のしやすさは、オブジェクトの頂点の主曲率、ガウス曲率およびエッジの角度などを計算統合したり、上記凹凸情報、接触確率情報、座標情報、法線ベクトル情報、曲率情報等を計算統合したりすることで、腐食係数情報として算出してテクスチャマップ化し、そのテクスチャマップに対して、腐食シミュレーションを行ってもよい。図31は、腐食係数情報をテクスチャマップ化する際の計算統合過程を概念的に示したものであり、図31の左側は、オブジェクトの頂点の主曲率、ガウス曲率およびエッジの角度を色の濃淡で表した図、図31の右側は、これらを計算統合して作成した腐食係数マップを表した図である。上記のように、様々な情報を計算統合することにより、2次元のテクスチャマップ上で行う腐食シミュレーションの再現性を、3次元のオブジェクトに対して行う腐食シミュレーションの再現性にさらに近づけることができる。
堆積シミュレーションとは、オブジェクトの表面上またはオブジェクトの形状情報を含むテクスチャマップの表面上に起こる堆積を再現するシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、図32右側は、上記図18の右側に示した、粒状物(砂や埃)が堆積しやすい溝部分などの箇所を情報として保存したテクスチャマップに対して、堆積シミュレーションを行った結果を示し、粒状物が堆積しやすい溝部分や、オブジェクトの上面に堆積物が集中していることが分かる。堆積シミュレーションにおいて、最初に与える条件は、上記衝突シミュレーションにおいて、最初に与えられる条件と類似しており、例えば、堆積物の形状、サイズ、初期位置などの他に、堆積物の色、粘着性などを含んでもよい。ここで、衝突シミュレーションと堆積シミュレーションとの大きな違いは、衝突においては、他物体がオブジェクトに衝突した後は、他物体がオブジェクトから離れることを想定しているが、堆積においては、堆積物はオブジェクト上に堆積していくか、離れるかのどちらかである。したがって、堆積シミュレーションの結果である、堆積情報としては、堆積している堆積物の形状、サイズ、色、厚さなどを含んでもよい。
以上、衝突シミュレーション、剥離シミュレーション、腐食シミュレーション、堆積シミュレーションの一例を簡単に説明したが、これらシミュレーションは、上記各態様に限定されるものではない。また、これらシミュレーションは、順不同で行っても、目的等に応じて、順序立てて行っても、また、順序の中で同じシミュレーションを2度以上行うことを含んでも良い。例えば、塗装がされた凹凸形状があるオブジェクトの表面に、衝突シミュレーションを繰り返すことで圧力値を算出し、この圧力値を基に剥離シミュレーションを行って塗装の剥離箇所を算出した後に、この塗装の剥離箇所の情報を基に、再び衝突シミュレーションを行うことで、オブジェクトの塗装が剥離した箇所においては摩耗を再現し、塗装が剥離していない箇所においては塗装の剥離を再現することができる。また、上記各シミュレーションは、オブジェクトの形状情報を含むテクスチャマップおよびオブジェクトに対して行っても良い。すなわち、上記のように衝突シミュレーションだけは、オブジェクトに対して行い、それ以外はオブジェクトの形状情報を含むテクスチャマップに対して行っても良い。
本発明におけるテクスチャマップを作成するにあたり、各種の形状情報の計算統合や、各種のシミュレーションの試行と、その結果情報の取得および計算統合は、本発明の技術分野の当業者であれば、本発明のこれまでの説明および以下に示す実施例の記載に基づき、適宜、自ら組んだプログラムや、市販のプログラム等を利用することによって、自由に行うことができる。本発明の質感再現性の向上や、それによる写実性の向上は、夫々の計算統合やシミュレーションを個々に行うだけでは実現できず、これまで詳細に説明したとおりの、各態様(例えば、図2、図14、図19など)に沿って行うことにより実現できるものである。
図33を参照して、本発明者らが実際に行った、塗装剥離を考慮した腐食シミュレーションを実施例として説明する。本実施例においては、オブジェクトにはStanford Bunny(http://graphics.stanford.edu/data/3Dscanrep/#bunny)を使用した。そして、オブジェクトの形状情報として凹凸情報およびコーティング情報を含むテクスチャマップを、Autodesk社の3dsmaxのソフトウェア、および、作成したプログラムを組み合わせて作成した。そして次に、このテクスチャマップに対してシミュレーションを行った。図33に示すように、ステップaでは衝突シミュレーション、ステップbでは剥離シミュレーション、ステップcでは腐食シミュレーションを行い、ステップdでは、上記各シミュレーション結果情報を計算統合して、テクスチャマップ上の情報を更新した。そして、ステップeでは、テクスチャマップを生成し、ステップfでは、生成したテクスチャマップをオブジェクトに対して適用した。ここで、ステップfにおいては、Autodesk社の3dsmax、ステップa、b、c、d、eにおいては、作成したプログラムを利用した。
図33を参照して、実施例をさらに具体的に説明する。ステップaにおいては、衝突シミュレーションを行っているが、これは正確な衝突位置を算出するために、3次元オブジェクトに対しての衝突シミュレーションを行った。次に、ステップbにおいては、ステップaで取得された衝突位置などの衝突情報を基に、上記2次元のテクスチャマップに対して、剥離シミュレーションを行った。そして、これらステップaおよびステップbを一定数繰り返した(衝突剥離フェーズ)が、ここではステップaにおける、衝突シミュレーションの条件を、衝突毎に変えることで、衝突によるオブジェクト表面の剥離を正確に再現した。次に、ステップcにおいては、腐食シミュレーションを行い、ステップdにおいては、ステップaおよびbで取得された剥離情報および、ステップcで取得された腐食値や腐食箇所などの情報を計算統合し、テクスチャマップ上の情報を更新した。
そして、これらステップcおよびステップdを一定数繰り返した(腐食フェーズ)が、ここではステップcにおける、腐食時間などの腐食シミュレーションの条件を毎回変えることで、腐食によるオブジェクト表面の腐食を正確に再現した。そして、ステップdで情報が更新されたテクスチャマップを利用して、さらにステップa〜dを行いテクスチャマップを更新することを繰り返した(劣化フェーズ)が、ここにおいても、各ステップにおける条件を変えながら行った。そして、ステップeにおいて、これら繰り返されたシミュレーションの結果情報を含むテクスチャマップを生成し、ステップfにおいて、生成されたテクスチャマップをオブジェクトに対して適用した。図34は、全体シミュレーションの回数をtとして、tの値の増加に合わせた、腐食防止塗装がされたオブジェクト上の腐食の変化と、腐食防止塗装がされていないオブジェクトに同じシミュレーションを行った場合の腐食の状態である。図示されるように、全体シミュレーションの回数が増すにつれて、腐食防止塗装がされたオブジェクト上の腐食箇所が増えていっているが、腐食防止塗装がされていないオブジェクト上の腐食は、オブジェクト表面全体に一様に起こっている。これらを比較することで、3次元シミュレーションと2次元シミュレーションを組み合わせることで、オブジェクトの質感再現性および写実性の向上と計算コストの低減との両立を実現することに成功したことが分かる。
Claims (11)
- オブジェクトの形状情報を含むテクスチャマップを作成する方法であって、
(a)オブジェクトの頂点情報を取得するステップ、
(b)オブジェクトのエッジ情報を取得するステップ、
(c)情報を計算統合して、オブジェクトの形状情報を算出するステップ、
を含み、
(c)のステップにおいて計算統合される情報が、少なくとも前記頂点情報および前記エッジ情報を含む、前記方法。 - (c)のステップの前に、さらに(d)オブジェクト表面のコーティング情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記コーティング情報を含む、請求項1に記載の方法。
- (c)のステップの前に、さらに(e)オブジェクト表面の接触確率情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記接触確率情報を含む、請求項1または2に記載の方法。
- (c)のステップの前に、さらに(f)オブジェクト表面の座標情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記座標情報を含む、請求項1〜3のいずれか一項に記載の方法。
- (c)のステップの前に、さらに(g)オブジェクト表面の法線ベクトル情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記法線ベクトル情報を含む、請求項1〜4のいずれか一項に記載の方法。
- (c)のステップの前に、さらに(h)オブジェクト表面の曲率情報を取得するステップを含み、(c)のステップにおいて計算統合される情報が、さらに前記曲率情報を含む、請求項1〜5のいずれか一項に記載の方法。
- 請求項1〜6のいずれか一項に記載の方法により作成されたテクスチャマップに対して、(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。 - オブジェクトに対して、
(1)衝突シミュレーションを行い、衝突情報を取得するステップ、
(2)剥離シミュレーションを行い、剥離情報を取得するステップ、
(3)腐食シミュレーションを行い、腐食情報を取得するステップ、および
(4)堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される1または2以上のステップを行い、前記ステップにより取得した情報を、請求項1〜6のいずれか一項に記載の方法により作成されたテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。 - 請求項1〜6のいずれか一項に記載の方法により作成されたテクスチャマップに対して、
衝突シミュレーションを行い、衝突情報を算出するステップ、
前記衝突情報に基づいて剥離情報を算出するステップ、
前記剥離情報に基づいて腐食値を算出するステップ、
前記腐食値を前記テクスチャマップに含まれる形状情報にさらに計算統合するステップを行い、前記腐食値を含むテクスチャマップを作成する方法。 - 請求項1〜9のいずれか一項に記載の方法により作成されたテクスチャマップ。
- コンピュータ上で実行される場合に、前記コンピュータに請求項1〜9のいずれか一項に記載の方法を実行させるコンピュータプログラム手段を有するコンピュータプログラムプロダクト。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109701A JP2014229171A (ja) | 2013-05-24 | 2013-05-24 | オブジェクトの形状情報を含むテクスチャマップを作成する方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109701A JP2014229171A (ja) | 2013-05-24 | 2013-05-24 | オブジェクトの形状情報を含むテクスチャマップを作成する方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014229171A true JP2014229171A (ja) | 2014-12-08 |
Family
ID=52128943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013109701A Pending JP2014229171A (ja) | 2013-05-24 | 2013-05-24 | オブジェクトの形状情報を含むテクスチャマップを作成する方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014229171A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017148207A (ja) * | 2016-02-24 | 2017-08-31 | 株式会社カプコン | ゲームプログラムおよびゲームシステム |
JP2021064334A (ja) * | 2019-10-17 | 2021-04-22 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
-
2013
- 2013-05-24 JP JP2013109701A patent/JP2014229171A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017148207A (ja) * | 2016-02-24 | 2017-08-31 | 株式会社カプコン | ゲームプログラムおよびゲームシステム |
JP2021064334A (ja) * | 2019-10-17 | 2021-04-22 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
JP7455546B2 (ja) | 2019-10-17 | 2024-03-26 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701857B (zh) | 3d建模的对象的纹理化 | |
KR101265810B1 (ko) | 프로시저 기하 개체의 삼각화 | |
US8368714B2 (en) | Curved surface rendering system and method | |
CN111581776B (zh) | 一种基于几何重建模型的等几何分析方法 | |
US9367943B2 (en) | Seamless fracture in a production pipeline | |
WO2005010669A3 (en) | Method for creating single 3d surface model from a point cloud | |
CN109461197B (zh) | 一种基于球面uv和重投影的云实时绘制优化方法 | |
CN104157000A (zh) | 模型表面法线的计算方法 | |
WO2019033059A1 (en) | AUTOMATED GENERATION OF A MESH | |
CN118469836A (zh) | 一种基于高斯辐射场的月面新视角合成方法 | |
JP2014229171A (ja) | オブジェクトの形状情報を含むテクスチャマップを作成する方法 | |
JP2001067495A (ja) | 三角形メッシュの生成方法、装置及び記録媒体 | |
JP2012209734A (ja) | 色域外郭情報生成装置、及びプログラム | |
CN114049423A (zh) | 一种自动的真实感三维模型纹理映射方法 | |
Tatarchuk | Real-time tessellation on GPU | |
JP6727931B2 (ja) | 穴被覆曲面生成装置および穴被覆曲面生成用プログラム | |
Gürler et al. | Applying Perlin Noise on 3D Hexagonal Tiled Maps | |
Leung et al. | Localized construction of curved surfaces from polygon meshes: A simple and practical approach on GPU | |
Schilling et al. | Rendering of multiresolution models with texture | |
JP2005301425A (ja) | 座標変換装置、座標変換方法およびプログラム | |
KR100818286B1 (ko) | 안개 효과를 고려하여 3차원 그래픽스 데이터를 렌더링하는방법 및 장치 | |
Mukundan | Multi-level stroke textures for sketch based non-photorealistic rendering | |
Liktor et al. | Fractional Reyes‐Style Adaptive Tessellation for Continuous Level of Detail | |
Hao et al. | Partial Cutting Method of the 3D Geometric Model | |
JP2017167782A (ja) | 形状変形装置および形状変形用プログラム |