(57)【要約】      （修正有）【課題】コンピュータグラフィックスにおけるオブジェクトの質感再現性を、計算コストを抑えながら高めるための方法およびそれを実行するコンピュータプログラムプロダクトを提供する。【解決手段】３次元上のオブジェクトから様々な情報を取得し、かかる情報を計算統合することにより作成された、オブジェクトの形状情報を含む２次元テクスチャマップに対して、様々なシミュレーションを行うことにより、従来は３次元上で行われていた複雑なシミュレーションを、２次元上の簡単なシミュレーションに置き換える。【選択図】図２
2014229171.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトの形状情報を含むテクスチャマップを作成する方法であって、
（ａ）オブジェクトの頂点情報を取得するステップ、
（ｂ）オブジェクトのエッジ情報を取得するステップ、
（ｃ）情報を計算統合して、オブジェクトの形状情報を算出するステップ、
を含み、
（ｃ）のステップにおいて計算統合される情報が、少なくとも前記頂点情報および前記エッジ情報を含む、前記方法。
【請求項２】
（ｃ）のステップの前に、さらに（ｄ）オブジェクト表面のコーティング情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記コーティング情報を含む、請求項１に記載の方法。
【請求項３】
（ｃ）のステップの前に、さらに（ｅ）オブジェクト表面の接触確率情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記接触確率情報を含む、請求項１または２に記載の方法。
【請求項４】
（ｃ）のステップの前に、さらに（ｆ）オブジェクト表面の座標情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記座標情報を含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
（ｃ）のステップの前に、さらに（ｇ）オブジェクト表面の法線ベクトル情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記法線ベクトル情報を含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
（ｃ）のステップの前に、さらに（ｈ）オブジェクト表面の曲率情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記曲率情報を含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
請求項１〜６のいずれか一項に記載の方法により作成されたテクスチャマップに対して、（１）衝突シミュレーションを行い、衝突情報を取得するステップ、
（２）剥離シミュレーションを行い、剥離情報を取得するステップ、
（３）腐食シミュレーションを行い、腐食情報を取得するステップ、および
（４）堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される１または２以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
【請求項８】
オブジェクトに対して、
（１）衝突シミュレーションを行い、衝突情報を取得するステップ、
（２）剥離シミュレーションを行い、剥離情報を取得するステップ、
（３）腐食シミュレーションを行い、腐食情報を取得するステップ、および
（４）堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される１または２以上のステップを行い、前記ステップにより取得した情報を、請求項１〜６のいずれか一項に記載の方法により作成されたテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
【請求項９】
請求項１〜６のいずれか一項に記載の方法により作成されたテクスチャマップに対して、
衝突シミュレーションを行い、衝突情報を算出するステップ、
前記衝突情報に基づいて剥離情報を算出するステップ、
前記剥離情報に基づいて腐食値を算出するステップ、
前記腐食値を前記テクスチャマップに含まれる形状情報にさらに計算統合するステップを行い、前記腐食値を含むテクスチャマップを作成する方法。
【請求項１０】
請求項１〜９のいずれか一項に記載の方法により作成されたテクスチャマップ。
【請求項１１】
コンピュータ上で実行される場合に、前記コンピュータに請求項１〜９のいずれか一項に記載の方法を実行させるコンピュータプログラム手段を有するコンピュータプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、従来は３次元上で行われていた複雑なシミュレーションを、オブジェクトの形状情報を含む２次元テクスチャマップを利用することにより、２次元上の簡単なシミュレーションに置き換え、オブジェクトの質感再現性および写実性の向上と計算コストの低減との両立を実現する方法に関する。
【背景技術】
【０００２】
コンピュータグラフィックスにおいて、オブジェクトの写実性を高めることは常に追求され続けている事であり、その写実性において、オブジェクトの質感再現は重要な要素である。よって、オブジェクトの表面的な質感を再現するために、一般的には、２次元の画素情報のそれぞれの画素に色情報やアルファ値を含むテクスチャマップを、３次元上のオブジェクトに張り付けて、写実性を高めるということが行われてきた。しかしながら、上記テクスチャマップに含まれる情報は限られているため、それを利用したオブジェクトの質感の再現性も限られる。よって、例えば、鉄などの金属オブジェクトにおけるオブジェクト形状に沿って進行する腐食を、コンピュータグラフィックスにおいて正確に再現するためには、上記テクスチャマップを利用する方法では不十分であり、実際には、３次元上のオブジェクトに海水を接触させ、海水が接触した部分に酸化反応を起こさせ腐食させるという、３次元シミュレーションが行われている（非特許文献１）。
【０００３】
上記シミュレーションにおいては、海水によるオブジェクトの腐食の進行度合いを、オブジェクトの頂点ごとに計算しているが（非特許文献１）、この計算を３次元の連続空間上で行うためには、複雑な並列計算を行う必要があり、計算処理に時間がかかる。また、このような手法では、シミュレーションからレンダリングに至るまで、様々なソフトウェアやアプリケーションを利用する必要があるが、ソフトウェアごとにデータフォーマットやルールが異なっているため、オブジェクトの各頂点に依存したデータを、シミュレーションからレンダリングに至るまで、これらのソフトウェア間で相互に利用することは困難である。したがって、オブジェクトの各頂点に依存したデータを、これらのソフトウェア間で相互に利用するための新たなソフトェアやシステムを構築する必要がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“The synthesis of rust in seawater” Yao-Xun Chang , Zen-Chung Shin The Visual Computer Vol. 19 (2003)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記シミュレーションは、オブジェクトの表面全体に対して海水が接触し、表面全体に腐食が起こることを想定して行われているが（非特許文献１）、本発明者らは、海中のように腐食が進行しやすい環境下に晒される実際の金属製品には、何かしらの腐食防止塗装が施されている事が一般的であるため、金属製品の表面全体が一様に腐食していくという事象は起こりにくいと考えた。さらに、上記腐食防止塗装がされた金属製品の表面に凹凸形状がある場合、金属製品の凹凸部分が他物体と接触することにより、腐食防止塗装の一部が剥離していき、金属部分が剥き出しになるため、金属製品表面の腐食進行の度合いにバラツキが生じることを見出した。
【０００６】
かかる新たな知見から、本発明者らは、オブジェクト表面の物理的浸食に関するシミュレーションにおいては、オブジェクトに関する基本的な３次元情報に加えて、オブジェクト表面の凹凸形状の情報や、腐食防止塗装の情報をさらに付加し、オブジェクトと他物体との衝突シミュレーションを行って腐食防止塗装の剥離を再現し、オブジェクト表面の腐食進行度合いにバラツキを持たせることで、オブジェクト表面の物理的浸食の再現性および写実性が高まると考え、これに基づき研究を進めた。
【０００７】
その結果、コンピュータ上において、上記のような新たな複雑なシミュレーションを行うためには、３次元の連続空間上の膨大な情報量を扱う必要があるため、高性能なコンピュータと膨大な処理時間が必要となり、計算コストが高くなると考えた。また、逆に、この計算コストを低く抑えようとすると、オブジェクトに関する情報量を削減したり、シミュレーションを簡略化したりする必要が生じるため、その結果、オブジェクトの質感再現性が低下するとの問題を見出した。かかる問題を解決することにより、トレードオフの関係にあるオブジェクトの質感再現性および写実性の向上と計算コストの低減との両立を実現することを新たな課題としさらに研究を進めた。
【０００８】
したがって、本発明の目的は、コンピュータグラフィックスにおけるオブジェクトの質感再現性を、計算コストを抑えながら高めるための方法およびそれを実行するコンピュータプログラムプロダクトを提供することである。
【課題を解決するための手段】
【０００９】
本発明者らは、上記課題を達成すべく鋭意研究を重ねたところ、コンピュータグラフィックスにおいて、３次元上のオブジェクトから様々な情報を取得し、かかる情報を計算統合することにより作成された、オブジェクトの形状情報を含む２次元テクスチャマップに対して、様々なシミュレーションを行うことにより、従来は３次元上で行われていた複雑なシミュレーションを、２次元上の簡単なシミュレーションに置き換えることができることを見出し、さらに研究を進め、本発明を完成させた。
【００１０】
すなわち、本発明は以下に関する。
〔１〕オブジェクトの形状情報を含むテクスチャマップを作成する方法であって、
（ａ）オブジェクトの頂点情報を取得するステップ、
（ｂ）オブジェクトのエッジ情報を取得するステップ、
（ｃ）情報を計算統合して、オブジェクトの形状情報を算出するステップ、
を含み、
（ｃ）のステップにおいて計算統合される情報が、少なくとも前記頂点情報および前記エッジ情報を含む、前記方法。
〔２〕（ｃ）のステップの前に、さらに（ｄ）オブジェクト表面のコーティング情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記コーティング情報を含む、〔１〕に記載の方法。
〔３〕（ｃ）のステップの前に、さらに（ｅ）オブジェクト表面の接触確率情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記接触確率情報を含む、〔１〕または〔２〕に記載の方法。
〔４〕（ｃ）のステップの前に、さらに（ｆ）オブジェクト表面の座標情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記座標情報を含む、〔１〕〜〔３〕のいずれか一つに記載の方法。
【００１１】
〔５〕（ｃ）のステップの前に、さらに（ｇ）オブジェクト表面の法線ベクトル情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記法線ベクトル情報を含む、〔１〕〜〔４〕のいずれか一つに記載の方法。
〔６〕（ｃ）のステップの前に、さらに（ｈ）オブジェクト表面の曲率情報を取得するステップを含み、（ｃ）のステップにおいて計算統合される情報が、さらに前記曲率情報を含む、〔１〕〜〔５〕のいずれか一つに記載の方法。
〔７〕〔１〕〜〔６〕のいずれか一つに記載の方法により作成されたテクスチャマップに対して、
（１）衝突シミュレーションを行い、衝突情報を取得するステップ、
（２）剥離シミュレーションを行い、剥離情報を取得するステップ、
（３）腐食シミュレーションを行い、腐食情報を取得するステップ、および
（４）堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される１または２以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
【００１２】
〔８〕オブジェクトに対して、
（１）衝突シミュレーションを行い、衝突情報を取得するステップ、
（２）剥離シミュレーションを行い、剥離情報を取得するステップ、
（３）腐食シミュレーションを行い、腐食情報を取得するステップ、および
（４）堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される１または２以上のステップを行い、前記ステップにより取得した情報を、〔１〕〜〔６〕のいずれか一つに記載の方法により作成されたテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法。
〔９〕〔１〕〜〔６〕のいずれか一つに記載の方法により作成されたテクスチャマップに対して、
衝突シミュレーションを行い、衝突情報を算出するステップ、
前記衝突情報に基づいて剥離情報を算出するステップ、
前記剥離情報に基づいて腐食値を算出するステップ、
前記腐食値を前記テクスチャマップに含まれる形状情報にさらに計算統合するステップを行い、前記腐食値を含むテクスチャマップを作成する方法。
〔１０〕〔１〕〜〔９〕のいずれか一つに記載の方法により作成されたテクスチャマップ。
〔１１〕コンピュータ上で実行される場合に、前記コンピュータに〔１〕〜〔９〕のいずれか一つに記載の方法を実行させるコンピュータプログラム手段を有するコンピュータプログラムプロダクト。
【発明の効果】
【００１３】
本発明の方法は、コンピュータグラフィックスにおいて、３次元のオブジェクトから様々な情報を取得し、かかる情報を計算統合することにより、オブジェクトの形状情報を含む情報を、２次元のテクスチャマップ上に展開することを実現する。これにより、極めて高い質感再現性を実現し、これまでにない写実性の向上を実現することができる。特に、本発明により、従来は３次元上のオブジェクトに対して行われていた複雑なシミュレーションを、２次元上のテクスチャマップに対して行うことで、計算コストや計算処理時間を大幅に縮小することができるという利点がある。さらに、本発明におけるテクスチャマップは、基本的には、２次元の画像情報のそれぞれの画素に色情報やアルファ値を含む一般的な画像形式を採用しているため、異なるソフトウェアやシステム間で相互に利用でき、新たなソフトウェアやシステムを構築する必要性を省くという利点も有する。さらにまた、本発明によれば、様々なシミュレーション結果の情報を各種のテクスチャマッピング用の画像データとして計算・出力することができるため、一般的に使われているＣＧモデリングソフト内で利用することが容易であるという利点をも有する。
【図面の簡単な説明】
【００１４】
【図１】図１は、単一のテクスチャマップへの情報の書き込み、もしくは複数のテクスチャマップへ別々の情報を書き込む本手法の概要を表している。
【図２】図２は、３次元形状のオブジェクト情報からテクスチャマップを作成するまでの流れ図を表している。
【図３】図３は、エッジを形成するポリゴン面がもつそれぞれの法線方向から計算される、エッジの持つ先鋭性を表している。
【図４】図４は、エッジの先鋭性をテクスチャマップ上に保存する際の、３次元オブジェクト上の頂点と対応するテクスチャマップ上の画素座標を表している。
【図５】図５は、エッジの持つ先鋭性をテクスチャマップ上に保存する際の、対応頂点上を結ぶエッジ情報の保存の様子を表している。
【図６】図６は、テクスチャマップ上に平滑化処理を加えることによって直線情報であったエッジ情報をポリゴン面全体に拡散している様子を表している。
【図７】図７は、頂点上の法線ベクトルを頂点を形成する周囲のポリゴンがもつそれぞれの法線から決定する手法を表している。
【図８】図８は、三次元オブジェクト上の頂点とそれに対応するテクスチャマップ上の保存箇所を表している。
【図９】図９は、頂点上の先鋭性に応じたテクスチャマップへの情報の保存の仕方の一例を表している。
【図１０】図１０は、頂点上の先鋭性の情報を平滑化処理によってポリゴン面全体に拡散する様子を表している。
【図１１】図１１は、各頂点上で計算される先鋭性をオブジェクト上にグレースケールで表現したものを表している。左の図が平滑化処理前、右の図が平滑化処理後の頂点の先鋭性情報である。
【図１２】図１２は、各エッジ上で計算される先鋭性をオブジェクト上にグレースケールで表現したものを表している。左の図が平滑化処理前、右の図が平滑化処理後のエッジ上の先鋭性情報である。
【図１３】図１３は、頂点上のもつ先鋭性情報とエッジの持つ先鋭性情報を統合したものを表している。左の図は頂点、エッジの持つそれぞれの先鋭性情報の割合を０．５として統合した結果画像、右はそれぞれ１．０としより先鋭性情報を強調した結果画像である。
【図１４】図１４は、オブジェクトの読み込みからテクスチャマップを作成するまでの行程において考慮する３次元情報に合わせて取得するオブジェクトの形状情報を選択する行程を表したものである。
【図１５】図１５は、各表面における他物体との接触確率を概念的に表した図である。左が接触確率の高い表面、右が接触確率の低い表面をそれぞれ表す。
【図１６】図１６は、各表面における接触確率をテクスチャマップ化しグレースケールで表現した図である。
【図１７】図１７は、各表面における三次元座標情報をテクスチャマップ化しそれぞれの座標に対してＲＧＢ三色を用いて表現した図である。
【図１８】図１８は、各表面が持つ法線情報を表した図と、それを用いた堆積箇所を表した図である。
【図１９】図１９は、オブジェクトの読み込みからテクスチャマップ作成に至るまでの行程で選択するシミュレーションとそのために必要な情報の選択を表している。
【図２０】図２０は、球形物体の衝突時の平面物体における圧力の分布の様子を表している。
【図２１】図２１は、球形物体の衝突時の凹凸物体における圧力の分布の様子を表している。
【図２２】図２２は、シミュレーションで想定する接触物体との衝突の概念図である。
【図２３】図２３は、凹凸物体との接触における圧力の加わり方の概念図を表している。
【図２４】図２４は、物体が斜め方向からオブジェクト表面に衝突した際、表面を滑った場合に起きる圧力分布の推移の様子を表している。
【図２５】図２５は、塗装の剥離に関する実物体例を表している。
【図２６】図２６は、 オブジェクトに適用するボロノイ分割による領域分割を表している。
【図２７】図２７は、加えられた圧力から分割された領域に従って想定している塗装の剥離の結果画像を表している。
【図２８】図２８は、時間経過に伴うオブジェクト表面上の腐食の進行について表している。
【図２９】図２９は、既存の腐食箇所に伴う、腐食の拡大の様子を表している。
【図３０】図３０は、凹凸条件によって金属の腐食の発生確率の変化を表している。
【図３１】図３１は、腐食シミュレーションの際に考慮する形状情報とそれらを統合した情報について表している。
【図３２】図３２は、堆積シミュレーションの結果画像を表している。
【図３３】図３３は、防腐塗装された金属表面を想定した劣化シミュレーション全体の行程を表している。
【図３４】図３４は、防腐塗装された金属表面を想定した劣化シミュレーションの結果画像を表している。
【発明を実施するための形態】
【００１５】
本発明を実施するための形態について、以下、適宜、項目分けして説明するが、本発明は、以下に示す態様に限定されるものではなく、必要に応じて、改変、修正などを行うことができる。本発明において、計算統合される情報は、典型的には、オブジェクトの形状等の状態や、各種シミュレーションの結果等を数値化し、コンピュータ上で扱うことができるようにした情報である。また、計算統合とは、コンピュータ上でテクスチャマップに一体的に扱うことを可能にすること、すなわち、１つのテクスチャマップとして扱うことに限定されるものではなく、複数の互いに関連付けされたテクスチャマップとして扱うことも含まれる。例として図１左側に示すように１つのテクスチャマップに情報を書き込み出力することや、図１右側に示すように複数のテクスチャマップに別々に情報を書き込むことや、他のテクスチャマップに保存された情報を参照して値に補正をかけることなども含まれる。
【００１６】
１．エッジ情報および頂点情報から、形状情報を算出する方法
本発明の一態様について、図２に示す態様においては、オブジェクトの形状情報として、凹凸情報を中心に説明するが、かかる形状情報は、凹凸情報のみに限定されるものではなく、例えば、後述するコーティング情報、接触確率情報、座標情報、法線ベクトル情報、曲率情報等の各情報を包含する。また、図２に示す態様において、テクスチャマップは、基本的には、画素値を格納するテクスチャバッファを有するテクセルの２次元配列を中心に説明するが、かかるテクスチャマップは、これに限定されるものではなく、例えば、テクスチャバッファに保存可能な情報量や種類を拡張して、上記各情報の詳細な情報を保存できるようにしてもよい。また、以下の説明において、テクスチャマップ、テクセルおよびテクスチャマッピングを、それぞれテクスチャ画像、画素およびテクスチャ化と表現している場合があるが、これは、便宜上のものであって、別の意味として使用しているものではない。図２に示す態様において、本発明によるオブジェクトの形状情報を含むテクスチャマップを作成する方法は、３次元形状のオブジェクトを読み込み、オブジェクト情報からエッジ情報および頂点情報を取得して、エッジおよび頂点の凹凸情報を統合してテクスチャマップ化することによって、凹凸情報を含むオブジェクトの形状情報を含むテクスチャマップを作成する。
【００１７】
エッジの凹凸情報を算出する方法は、従来用いられている種々の方法を用いることができるが、例えば、オブジェクトのエッジを形成する隣り合うポリゴン同士の折れ方向と法線方向の内積によって算出してもよい。これら折れ方向と内積はベクトル情報から簡単に算出することができ、これは、エッジ上の先鋭さの密度を数値化したものである。図３左側は凸形状のエッジであって、ベクトルａは隣接するポリゴンｂ１、ｂ２によって形成されるエッジ上の先鋭性を表す。図３右側は凹形状のエッジであって、ベクトルｃは隣接するポリゴンｄ１、ｄ２によって形成されるエッジ上の先鋭性を表す。そして、それぞれのエッジ上の先鋭性Ｉは、隣接するポリゴンの単位法線ベクトルをそれぞれｖ１、ｖ２を用いてそれぞれ、
【数１】
2014229171.tif 000003
で算出することができる。この先鋭性Ｉをエッジ上の凹凸値としてもよい。しかしながら、エッジの凹凸情報は、例えばエッジを形成するポリゴンが持つ頂点を制御点に用いたパラメトリック曲線から算出できる曲率などの他の方法により算出してもよい。
【００１８】
この算出されたエッジの凹凸情報をテクスチャ画像上に保存していく際には、オブジェクトの持つテクスチャとの対応関係を用いてもよい。これは、テクスチャマッピングにおける基本的な手法であり、オブジェクト表面に貼るための画像情報の位置を決定する際に必要となるものである。対応関係においては情報が３次元から２次元に落ちるため、対応関係の構築の方法も様々なものが利用できる（立方体であればサイコロの展開図のような平面展開の方法、単純に側面を無視し正面から貼る方法（正面からの投影）、または、ポリゴンの持つ法線情報にしたがって画素を対応させる方法）。本態様においては、基本的にオブジェクトを展開する手法をとり、別の対応関係同士が重なり合う、ねじれの関係にはならないものとして説明する。
【００１９】
次に、オブジェクトのエッジの凹凸情報をテクスチャ画像上に保存していく際には、３次元と２次元の頂点毎の対応関係の情報が存在するため、その対応する点を参照して画像化を行ってもよい。すなわち、テクスチャ画像上にオブジェクトのエッジ上の凹凸値を描画する場合、図４に示すように、対応する頂点を端点とした線分を用い、その線分に対応する画素のそれぞれに、対応する値を埋めるように処理する。ここで、図４の左側は、３次元空間における凸形状のエッジとその端点を表し、図４右側は、２次元空間における対応する端点を表す。そして、画素内に入れる凹凸値の大きさや、線分に対応する画素の範囲は、凹凸情報の内容によって変化させてもよい。例えば、エッジを形成している２つのポリゴンの法線の内積値の大きさによってエッジに対応する線分の太さを決定してもよい。このような処理をした場合、図５に示すように、線分で描かれたエッジに対応する画素にはエッジの凹凸値を付加できるが（図５右、白色の直線部分）、その周辺の各ポリゴン上の画素に対しては値が付加されない（図５右、グレーの部分）。このことは、ポリゴンで形成されたオブジェクトはつまるところ平面の集合体であるため、凹凸はつなぎ目であるエッジ上に現れるのが一般的であるからである。
【００２０】
しかし、ポリゴンで形成されたオブジェクトが表現したいものはエッジ上のみで法線方向が変化する多面体だけでなく、連続して法線方向が変化する曲面も含まれているとみなし、この凹凸情報を保存した画素に関してもエッジ上とその周囲の間における急激な変化を抑え、表面全体で連続性を持たせるためにエッジ上の凹凸値を周囲に拡散させてもよい。そのため、エッジ上の凹凸情報をポリゴン表面全体に伸ばす、平滑化処理を加えてもよい。この処理によって保存された値は、オブジェクト表面上における凹凸情報の局所的な密度ととらえることができるため、画素内に入れる凹凸値の大きさや、直線に対応する画素の範囲の比を崩さなければ、この平滑化の方法も自由に変更することができる。こうすることにより、図６に示すように、エッジ上の凹凸情報をエッジ周辺の画素に拡散させた、平滑化されたテクスチャ画像を作成してもよい。ここでは、エッジ周囲の画素とエッジとの距離に応じて、凹凸情報の数値を変化させることで、エッジ上の凹凸情報の数値を周囲の画素に拡散させている。こうすることで、オブジェクトの質感再現性および写実性を向上することができる。
【００２１】
頂点の凹凸情報を算出する方法は、従来用いられている種々の方法を用いることができるが、例えば、オブジェクトの頂点が持つ法線と周辺のポリゴンが持つ法線、また頂点に繋がるエッジの持つベクトルによって決定してもよい。頂点の法線方向はあらかじめ決定されていない情報であるため、オブジェクト形状から算出する必要がある。この計算は、周囲ポリゴンの法線の重心を採用するのが一般的であるが、本態様においては、周囲ポリゴンの持つ法線に対して角度毎に重み付けを行うことで計算してもよい。これは、頂点と隣接するポリゴンにおいて、頂点を構成する角度の全体に占める割合の大きい法線情報をより優遇する手法となる。この頂点の持つ法線に対して、凹凸情報、すなわち曲率を計算する際、この法線に垂直に交わる二軸を決定する必要がある。この二軸は隣接するポリゴンとエッジ情報から決定することができる。そして、求めた二軸に対してそれぞれ隣接ポリゴンの法線と対応角度から曲率を計算し、それを用いることによって凹凸情報とすることができる。
【００２２】
以下に、具体的な算出方法として、頂点の凹凸情報を頂点の先鋭性として算出する方法を図７を参照しながら説明する。図７において、ａは頂点上の法線、ｂ１〜ｂ４は隣接するポリゴン上の法線、ｂ１´〜ｂ４´は隣接するポリゴンが注目頂点上で形成する角度を表す。まず、頂点の向いている方向を決定するため、頂点上の法線を隣接ポリゴンの法線から決める。頂点の法線Ｍは、隣接するポリゴンの数をｎ、一つのポリゴンの持つ法線をＮ、そのポリゴンが注目頂点上で形成する角度をθ、注目頂点上で形成される全ての角度の合計値をＴとして以下の式で算出することができる。
【数２】
2014229171.tif 000004
次に決められた頂点上の法線と頂点と接するポリゴン面の法線から頂点上の先鋭性を決める。頂点上の先鋭性は、頂点の法線と隣接する各ポリゴンの法線で決定される先鋭性Ｉの総和として決定することができ、先鋭性Ｉは上記計算式で求めることができる。この際、頂点上の先鋭性Ａは頂点と各隣接ポリゴンとの先鋭性Ｉを隣接ポリゴンが持つ角度の大きさで優遇するため、先鋭性Ａは、以下の式で算出することができる。
【数３】
2014229171.tif 000005
しかしながら、頂点の凹凸情報は、例えば周囲のポリゴンを形成する頂点を制御点に用いたパラメトリック曲面などから算出できる曲率などの他の方法により算出してもよい。
【００２３】
次に、オブジェクトの頂点の凹凸情報をテクスチャ画像上に保存していく場合は、エッジの凹凸情報の保存の場合と同様に、図８に示すように、対応する頂点の画素上に値を保存してもよい。この際、対象となる箇所は一定範囲内の画素とする。この値の保存においても、エッジの凹凸情報の保存の場合と同様に、凹凸情報の内容に合わせて、図９に示すように値の大きさや値を保存する画素の範囲を変化させてもよい。例えば、頂点の持つ先鋭性Ａの値において保存する値は凹凸に応じて最大値、最小値に固定したまま、保存する画素領域の中心からの半径を凹凸のない中央値との差に比例して増加させたり、保存する画素領域の大きさは固定したまま中央値からの差を凹凸情報として値に保存したりしてもよい。そして、この場合においても、頂点上の凹凸情報をポリゴン表面全体へ拡張するため、図１０に示すように、凹凸情報の内容や、頂点からの距離に合わせて、平滑化処理を行ってもよい。
【００２４】
オブジェクトの形状情報を含むテクスチャマップの作成は、従来用いられている種々の方法を用いることができるが、例えば、以下のように、オブジェクトのエッジの凹凸情報を保存したテクスチャ画像と、オブジェクトの頂点の凹凸情報を保存したテクスチャ画像とを統合することによって行っても良い。図１１は、オブジェクトの頂点の凹凸情報の中央値をグレー（ＲＧＢ＝１２８）として保存したテクスチャ画像（左側）と、それを平滑化し、頂点上の先鋭さを密度として表したテクスチャ画像（右側）を示している。図１２は、オブジェクトのエッジの凹凸情報を２値化したテクスチャ画像（左側）と、それを平滑化し、エッジ上の先鋭さの密度を表したテクスチャ画像（右側）を示している。次に、これらを統合する場合は、それぞれのテクスチャ画像における中央値（凹凸がないと思われる箇所の値）を中心にそれぞれのテクスチャ画像に重みを付けて行っても良く、重み付けの比率は、対象とするシミュレーション内容によって変更してもよい。例えばオブジェクト表面上を伝わる滴の方向推定など法線方向の変化を重視するシミュレーションの場合はエッジの凹凸情報の重み付けを増やし、オブジェクトに対してある程度の大きさを持った他の物体との衝突シミュレーションなどオブジェクト形状における凹凸の先端部分を重要視した場合は頂点の凹凸情報の重み付けを増やすことで、オブジェクトの質感再現性および写実性を向上することができる。図１３は、重みをそれぞれ０．５ずつ（半分ずつ）とした場合（左側）と、１．０としてそのまま統合した場合（右側）の、オブジェクトの形状情報を含むテクスチャマップを示す。図１１〜図１３において、凹凸情報に含まれる数値を基本的に白黒の濃淡で表しているが、これらを３原色の色空間で表してもよい。例えば、読み込むオブジェクトの形状に合わせて、頂点とエッジのどちらに重点を置くかを代えたい場合、どちらかを３原色の色空間で、もう一方をグレースケールで表してもよい。これは、作成された２次元のテクスチャマップから、３次元のオブジェクトの形状を把握する際に有益である。
【００２５】
以上、オブジェクトの形状情報を含むテクスチャマップの作成方法についての一例を説明したが、作成方法はこれに限定されるものではない。例えば、オブジェクトの形状情報を含むテクスチャマップの作成は、オブジェクトのエッジの凹凸情報および頂点の凹凸情報をそれぞれ保存したテクスチャ画像を作成することなく行うこともできる。すなわち、オブジェクトの３次元情報から頂点情報およびエッジ情報を取得して、それぞれの凹凸情報をコンピュータ上で計算して数値化し、これらを単純に足し合わせることで計算統合してもよい。また、オブジェクトの３次元情報から頂点情報およびエッジ情報を取得して、上記エッジの先鋭性Ｉと頂点の先鋭性Ａの値を一つの先鋭性として計算統合しテクスチャマップ上に保存するというさらに単純な方法で作成してもよい。
【００２６】
また、上記態様においては、最初に３次元形状のオブジェクトを読み込み、オブジェクト情報から頂点情報やエッジ情報等を取得しているが、このオブジェクトは、コンピュータグラフィックス上のオブジェクトに限られるものではない。例えば、実世界に存在する立体物を３Ｄスキャナで読み込み、頂点情報やエッジ情報等の情報を取得することや、ステレオビジョンで撮影した情報から、立体物の情報を取得することも、オブジェクト情報から様々な情報を取得することに含まれる。
【００２７】
２．エッジ情報および頂点情報にさらに種々の情報を加えた、形状情報の算出方法
図１４に示す、別の態様において、本発明によるオブジェクトの形状情報を含むテクスチャマップを作成する方法は、オブジェクトの頂点情報やエッジ情報に加えて、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等の各情報を計算統合して、オブジェクトの形状情報として算出する方法を含む。図１４に示す態様においては、オブジェクト表面の上記各情報を、色情報やアルファ値としてテクスチャマップ上に保存することを中心に説明するが、かかる各情報のテクスチャマップへの保存の仕方は、これに限定されるものではなく、例えば、上記のように、テクスチャバッファに保存可能な情報量や種類を拡張して、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等の詳細な情報を保存するようにしてもよい。また、オブジェクト表面の上記各情報は、オブジェクト表面上の頂点毎の各情報、ポリゴン毎の各情報、または、オブジェクト表面にランダムに作成した母点を基点としたボロノイ領域毎の各情報であってもよい。これにより情報量をコントロールすることができるため、オブジェクトの質感再現性および写実性と計算コストのバランスに合わせて、自由に選択しても良い。
【００２８】
コーティング情報とは、オブジェクト表面に施されているコーティングに関する情報であって、コーティングの種類や情報など、様々なものを用いることができる。コーティングの種類としては、例えば、腐食防止塗装、メッキ塗装、塗料塗装、滅菌コート、抗菌コート、撥水コート、耐水コート、耐熱コート、耐火コートなどが用いられ、コーティングの情報としては、例えば、上記コーティングの種類に加えて、その色、厚さ、強度、材質、劣化耐性、抗菌性、撥水性、膜厚、持続期間、ポリマーの含有量などの情報を用いても良い。また、異なる種類のコーティングが複数回に亘って行われることで、コーティングが層状を成している場合や、オブジェクト表面の一部にだけコーティングがされている場合、また、オブジェクトの表面の異なる領域ごとに、異なるコーティングがされている場合においては、層の形成順序、コーティング領域の位置情報などの情報をさらに含んでもよい。
【００２９】
また、上記コーティングの情報には、オブジェクト自体の色、すなわち、表面に何もコーティングがされていない状態のオブジェクト自体の表面の色、強度、材質、耐摩耗性、粘着性などの情報も含まれる。これらの情報は、実世界に存在する立体物を３Ｄスキャナやステレオビジョンで読み込む際に画像処理で自動的に取得しても良いし、様々な情報を基に手動で入力してもよい。また、コンピュータグラフィックス上のオブジェクトに何もコーティングがされていない場合であっても、シミュレーションの目的に合わせて、仮想的な様々な表面コーティング情報を、オブジェクト情報に付加してもよい。そして、これらの情報をテクスチャ画像上に保存していく場合は、対応する頂点の画素毎に情報を保存してもよいが、オブジェクトのポリゴン情報やボロノイ領域に合わせて、テクスチャ画像上の画素もグループ化し、同グループに属する複数の画素のそれぞれに対応する値の平均値を、グループ毎の値として保存することで、テクスチャ画像上の情報量を少なくして計算コストを抑えてもよい。さらにまた、これらの情報を対応する頂点の画素毎に、テクスチャ画像上に保存した後に、ボロノイ分割を行って、ボロノイ領域毎の平均値を取ってもよい。
【００３０】
接触確率情報とは、オブジェクト表面のどの部分に他物体が接触しやすいかに関する情報であって、従来用いられている種々の方法を用いることができる。例えば、図１５のように、オブジェクトが存在する空間においてオブジェクト自体のオクルージョン、もしくはオブジェクト以外の障害物があるという観点から作成する場合は、オブジェクト表面の各ポリゴンに対して、そのポリゴンへの照射方向におけるオクルージョンや障害物の量を数値化することにより取得してもよい。図１６は、このような観点から作成されたテクスチャ画像の一例であり、より白色に近い部分が接触率の高い領域で、より黒色に近い部分が接触率の低い領域である。
【００３１】
また、この接触確率情報は、コンピュータグラフィックス上の３次元のオブジェクトに対して他物体を衝突させるという、衝突シミュレーションを行うことによって算出してもよい。この場合は、オブジェクトに衝突する他物体のサイズ、形状、材質、質量、他物体の初期位置、衝突方向、衝突速度などをランダムに決定し、オブジェクトに対して衝突シミュレーションを繰り返すことで、オブジェクト表面の他物体との接触確率を数値情報として算出してもよい。この数値情報の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
【００３２】
座標情報とは、３次元オブジェクトの頂点が持つ座標値に関する情報であって、従来用いられている種々の方法を用いることができる。例えば、図１７は、座標値をＲＧＢで表現した場合のオブジェクト表面の図（左側）およびそれを展開したテクスチャ画像（右側）を示す。これらは、オブジェクトをある方向から見た場合に、テクスチャ画像に対応する表面の座標値がより右方向にある場合はＲ（赤色）を、より奥行き方向にある場合はＧ（緑色）を、より高さ方向にある場合はＢ（青色）を強くすることで、対応する表面の座標値の大きさを示したものである。この座標値の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
【００３３】
オブジェクトの凹凸情報に、さらにこの座標情報を計算統合してテクスチャマップを作成することで、例えば、水流や空気などの流れ方向を２次元シミュレーションで凹凸情報のみの場合と比べより精密に計算することができる。これは、オブジェクトの凹凸情報に、オブジェクトの座標情報に含まれる、オブジェクトの向き、奥行き、高さ等も計算統合することにより、より正確なオブジェクトの形状情報をテクスチャマップ上に保存できることに起因する。
【００３４】
また、図１７の左側に示されるように、オブジェクトが床面に接している場合は、オブジェクト頂点の高さ方向の座標値が小さい部分は、床面と接している部分であると仮定できるため、この部分は他物体との接触確率が低いとして、２次元の衝突シミュレーションを行うこともできる。したがって、上記のような、オブジェクト表面の物理的浸食の再現性を高めるための複雑なシミュレーションを行う場合は、オブジェクト表面の凹凸情報やコーティング情報に加えて、オブジェクトの向き、奥行き、高さなどの情報を含んだテクスチャマップを利用することにより、より再現性の高いシミュレーションを行うことができ、オブジェクトの写実性を高めることができる。
【００３５】
法線ベクトル情報とは、オブジェクト表面の各頂点または各面が向いている方向、すなわちオブジェクト表面の法線ベクトルに関する情報であって、従来用いられている種々の方法を用いることができる。例えば、図１８は、法線ベクトル情報をテクスチャ画像化したもの（左側および中央側）であるが、この法線ベクトル情報と凹凸情報を計算統合することにより、粒状物（砂や埃）が堆積しやすい溝部分などの箇所を簡単に求めてテクスチャ画像化（右側）することができる。また、法線ベクトル情報を計算統合することで、例えば、他物体のオブジェクトへの衝突が上方向から起こることを想定した３次元シミュレーションを、２次元のテクスチャマップ上で行う場合は、対象物の衝突箇所はオブジェクトの上方向を向いている面、すなわち、黒色が強い領域に対して起こりやすいとして、２次元の衝突シミュレーションを行うことができる。この法線ベクトル情報の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
【００３６】
曲率情報とは、オブジェクト表面に曲面がある場合の曲面上のある点における曲率に関する情報であって、従来用いられている種々の方法を用いることができる。曲率に関する情報としては、例えば、曲面上のある点における最大、最小の曲率の積に関する情報である、ガウス曲率が挙げられる。このガウス曲率が正である面はドーム形状、負である面は鞍形状、ゼロである面は筒形状であるなど、オブジェクト表面の曲面の形状を、このガウス曲率情報から理解することができる。また、この曲率情報には、全曲率（ガウス曲率）、平均曲率、曲率半径、曲率中心などの情報も含まれる。この曲率情報の算出および保存も、オブジェクト表面の頂点毎、ポリゴン毎、または、ボロノイ領域毎に行うなど、自由に選択しても良い。
【００３７】
以上、図１４に基づいて、オブジェクトの頂点情報やエッジ情報に加えて、オブジェクト表面のコーティング情報、接触確率情報、座標情報、法線ベクトル情報、または、曲率情報等を計算統合して、オブジェクトの形状情報として算出する方法を説明したが、本発明はこの態様に限定されるものではない。例えば、これらの情報の組み合わせ方、算出方法、算出手順、重み付け等は、オブジェクトの形状情報を含むテクスチャマップに対して行われるシミュレーション、例えば、後述する衝突シミュレーション、堆積シミュレーション、腐食シミュレーション、摩耗シミュレーション、剥離シミュレーション等の内容に合わせて変化させてもよい。さらに、上記接触確率情報、座標情報、法線ベクトル情報、曲率情報に関連する各情報は、オブジェクトの頂点情報やエッジ情報から直接算出することもできる。すなわち、オブジェクトの頂点情報やエッジ情報から、頂点の座標、エッジの長さ、向き、端点の座標、ポリゴン面の形状、ポリゴン面の法線、頂点上の法線、エッジの先鋭性、頂点の先鋭性などを算出することができるため、上記各情報をオブジェクトの頂点情報やエッジ情報から直接算出して、これらの情報を計算統合して、オブジェクトの形状情報を算出してもよい。
【００３８】
３．シミュレーション結果情報を含むテクスチャマップを作成する方法
図１９に示す、別の態様において、本発明は、オブジェクトの形状情報を含むテクスチャマップに対して、
（１）衝突シミュレーションを行い、衝突情報を取得するステップ、
（２）剥離シミュレーションを行い、剥離情報を取得するステップ、
（３）腐食シミュレーションを行い、腐食情報を取得するステップ、および
（４）堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される１または２以上のステップを行い、前記ステップにより取得した情報を、前記テクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法を含む。
【００３９】
また、さらに別の態様として、本発明は、オブジェクトに対して、
（１）衝突シミュレーションを行い、衝突情報を取得するステップ、
（２）剥離シミュレーションを行い、剥離情報を取得するステップ、
（３）腐食シミュレーションを行い、腐食情報を取得するステップ、および
（４）堆積シミュレーションを行い、堆積情報を取得するステップ、
からなる群から選択される１または２以上のステップを行い、前記ステップにより取得した情報を、オブジェクトの形状情報を含むテクスチャマップに含まれる形状情報に計算統合するステップを行い、シミュレーション結果情報を含むテクスチャマップを作成する方法を含む。
【００４０】
ここで、上記からなる群から選択される１または２以上のステップを行うとは、上記（１）〜（４）に記載されたステップから、１または２以上のステップを選択して、これらを順不同で行うことや、以下に示す塗装剥離を考慮した腐食シミュレーションのように、順序立てて行うこと、また、順序の中で同じステップを２度以上行うことを含んでも良い。これらの順序は、求められる再現性や写実性、および／または、計算統合の効率などの観点から自由に設定することができる。
【００４１】
また、オブジェクトの形状情報を含むテクスチャマップに対して行われる、上記各シミュレーションは、テクスチャマップ上の頂点毎、ポリゴン毎、または、テクスチャマップ上にランダムに作成した母点を基点としたボロノイ領域毎に行ってもよい。また、オブジェクトに対して行われる、上記各シミュレーションは、オブジェクト上の頂点毎、ポリゴン毎、または、オブジェクト上にランダムに作成した母点を基点としたボロノイ領域毎に行ってもよい。これにより情報量をコントロールすることができるため、オブジェクトの質感再現性および写実性と計算コストとのバランスに合わせて、自由に選択しても良い。
【００４２】
衝突シミュレーションとは、オブジェクトまたはオブジェクトの形状情報を含むテクスチャマップに対して、他物体を衝突させるシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、衝突シミュレーションは、図２０に示すように、オブジェクトの形状情報を含む２次元のテクスチャマップ上で、他物体の衝突を再現するという形で行ってもよい。ここで、図２０の中央側は、凹凸情報のない２次元のテクスチャマップを示し、図２０の右側は、前記２次元のテクスチャマップ上に、他物体が衝突した時の圧力分布を示している。このシミュレーションにおいては、他物体の形状を球形状とし、衝突時の圧力分布を色の濃淡で表しているため、圧力分布における中心点の色が一番濃く、中心点から離れていくに従って色が淡くなっている。この例のように、衝突シミュレーションの結果である衝突情報としては、例えば、衝突シミュレーションによって算出された色情報を保存してもよいが、以下に述べるような、衝突圧力の数値、衝突回数、他物体の各情報などを保存してもよい。
【００４３】
また、図２１は、凹凸情報のある２次元のテクスチャマップ上で、上記と同様の球形状の他物体の衝突を再現したものである。ここで、図２１の中央側は、オブジェクトの凹凸情報を含むテクスチャマップを表し、図２１の右側は、前記テクスチャマップ上に、球形状の他物体が衝突した時の圧力分布を示したものである。このシミュレーションにおいては、球形状の他物体が、凹凸形状のあるオブジェクトに対して衝突したことを再現しているため、テクスチャマップの中心付近の凹形状部分の衝突圧力は小さく、凸形状部分の衝突圧力は大きくなっていることが分かる。
【００４４】
また、図２２に示すように、衝突シミュレーションは、コンピュータグラフィックス上で他物体（図２２の左側）を生成し、３次元のオブジェクト（図２２の右側）に対して衝突させることで再現してもよい。このように、衝突シミュレーションを３次元上で行うことで、他物体がオブジェクト表面のどの位置に衝突するかを、より正確に算出することができる。したがって、上記のような、オブジェクト表面の物理的浸食の再現性を高めるためのシミュレーションを、より正確に行う場合は、オブジェクト表面の凹凸情報や腐食防止塗装などのコーティング情報を含んだ、オブジェクトの形状情報を含む２次元のテクスチャマップ上のどの部分に、他物体の衝突が起こるかを正確に算出する必要があるため、上記のように、衝突シミュレーションを３次元上で行い、衝突位置を正確に特定した後に、２次元のテクスチャマップの対応する位置に圧力分布の情報を保存してもよい。
【００４５】
ここで、オブジェクトまたはオブジェクトの形状情報を含むテクスチャマップに対して衝突させる他物体のサイズ、形状、材質、質量、他物体の初期位置、衝突方向、衝突速度などの、他物体の各情報は、衝突シミュレーションにおいて最初に与えられる条件として、任意に決定してもよい。これにより、例えば、他物体の質量および衝突速度が決まれば、他物体の運動量が算出できるため、上記テクスチャマップ上の圧力分布の値を、前記運動量に合わせて変化させてもよい。また、この衝突シミュレーションは、何度も繰り返し行ってもよく、上記他物体の各情報は、衝突毎に変化させてもよい。例えば、他物体の初期位置および衝突方向をランダムに変化させながら、衝突シミュレーションを繰り返すことで、オブジェクト表面全体に渡って衝突を再現することができる。衝突シミュレーションを繰り返す場合は、衝突の度に発生する圧力値を足し合わせていっても良い。図２３は、衝突により平面上にかかる圧力（図２３の左側）および凹凸がある場合にかかる圧力（図２３の右側）の違いを概念的に示したものであり、圧力計算は、例えば２次元テクスチャマップ上の座標を中心に、接触半径ａ内の各画素位置に加わる圧力をＰ、荷重をＮ、他物体の半径をｒ、テクスチャマップ上の凹凸情報の値をＫとすると、
【数４】
2014229171.tif 000006
として計算することができるが、圧力計算はこれに限られるものではない。
【００４６】
また、他物体の初期位置および衝突方向を決定して、２次元のテクスチャマップ上で衝突を再現する際には、例えば、テクスチャマップ上に座標情報や法線ベクトル情報が保存されていれば、これらの情報を計算統合することで、他物体のオブジェクトへの衝突入射角度が算出できるため、対象物の衝突入射角度と運動量の情報を統合することで、より正確な衝突圧力分布を再現することができる。すなわち、上記のように球形状の他物体がオブジェクト表面対して垂直に衝突する場合は、図２０の右側に示すように、テクスチャマップ上の圧力分布は円形パターンとなるが、例えば、球形状の他物体がオブジェクト表面に対して斜めに衝突する場合は、例えば、図２４に示すように、他物体の衝突が最初に起こる箇所の圧力が大きく、その後、他物体がオブジェクト表面上を滑っていくため、圧力は小さくなっていき、最終的な圧力分布は楕円形パターンとなる。
【００４７】
これらの圧力分布のパターンは、衝突シミュレーションの内容ごとに様々に変化するが、上記のように衝突入射角度と運動量等の情報が分かれば、ある程度の圧力分布のパターンを算出することができる。例えば、予めコンピュータグラフィックス上に、凹凸のない平面と他物体とを配置し、他物体のサイズ、形状、材質、質量、他物体の初期位置、衝突方向、衝突速度などをランダムに変化させて、平面に対して衝突させるという衝突シミュレーションを繰り返すことで、様々な圧力分布パターンのデータベースを作成することができる。このデータベースには、上記他物体の各情報と圧力分布パターンとの関係性を保存することができるため、他物体の２次元のテクスチャマップに対する衝突を再現する際には、上記他物体の各情報をランダムに変化させ、各情報に対応するパターンの圧力分布をデータベースから読み込み、２次元のテクスチャマップ上に計算統合していくという簡単な方法で、他物体の２次元のテクスチャマップに対する衝突を再現してもよい。こうすることにより、２次元のテクスチャマップ上で行う衝突シミュレーションの再現性を、３次元のオブジェクトに対して行う衝突シミュレーションの再現性により近づけることができる。
【００４８】
さらにまた、上記対応するパターンの圧力分布を２次元のテクスチャマップ上に計算統合していく際においても、例えば、２次元のテクスチャマップ上に３次元オブジェクト表面の接触確率情報が含まれている場合は、テクスチャマップ上で行う衝突シミュレーションの再現性をより高めることができる。すなわち、他物体Ａが、テクスチャマップ上の接触確率情報の数値が低いところに接触による圧力の影響を与えた場合は、前記衝突は実際には接触する可能性の低い箇所であるとして、圧力分布パターンの該当する箇所の圧力値を小さくまたはゼロにし、逆に、同じ対象物Ａが、テクスチャマップ上の接触確率情報の数値が高いところに衝突による圧力の影響を与えた場合は、前記衝突は実際に起こる可能性が高い衝突であるとして、圧力分布パターンの該当する箇所の圧力値をそのまま、または大きくして保存してもよい。こうすることにより、２次元のテクスチャマップ上で行う衝突シミュレーションの再現性を、３次元のオブジェクトに対して行う衝突シミュレーションの再現性にさらに近づけることができる。
【００４９】
剥離シミュレーションとは、オブジェクトの表面またはオブジェクトの形状情報を含むテクスチャマップの表面の剥離を再現するシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、図２５は、腐食防止塗装がされた押ボタン式交通信号制御機の写真を示すが、制御機の角の部分は通行者がよく接触する部分であり、通行者の手の接触が他の部分に比べて多く、それによる圧力がかかり易いため、腐食防止塗装の一部が剥がれており、その部分の金属腐食が進んでいる。この例のように、剥離シミュレーションは、オブジェクトの表面、または、オブジェクト表面の形状情報を含むテクスチャマップの表面にかかる圧力と塗装剥離との関係をシミュレーションすることを含んでもよく、また、表面にかかる圧力は、上記衝突シミュレーションによって算出された圧力を利用してもよい。
【００５０】
図２６および図２７を参照して、本発明の剥離シミュレーションの一態様を説明する。図２６は、オブジェクトの表面をボロノイ分割を用いて領域ごとにクラス化したもの（図２６の左側）と、それをテクスチャマップ上で表したもの（図２６の右側）を示す。この態様においては、圧力は頂点毎ではなく、クラス毎に与えられるものとし、与えられた圧力から負荷値を計算し、クラス毎に蓄積している。剥離シミュレーションを行う際は、予め圧力値や、圧力が与えられる範囲、また、上記のような圧力分布のパターン等を設定してから行ってもよい。また、この圧力値や負荷値を２次元のテクスチャマップ上に計算統合していく場合においても、例えば、２次元のテクスチャマップ上に３次元オブジェクト表面の凹凸情報が含まれている場合は、凸の領域には圧力値や負荷値が伝わりやすく、逆に凹の領域には圧力値や負荷値が伝わりにくいとして、計算統合してもよい。
【００５１】
図２７は、上記圧力値または負荷値がある閾値を越えた領域を白色で、超えていない領域を黒色で表したテクスチャ画像であり、オブジェクト表面の凸の領域に白色の領域が、凹の領域に黒色の領域が集中していることが分かる。上記閾値は、オブジェクト表面のコーティング情報を基に設定してもよい。例えば、オブジェクト表面に腐食防止塗装がされている場合は、その塗装の厚さや強度を基に、腐食防止塗装がどれだけの負荷値をどれくらいの間与えられると剥離するかを計算し、その情報を基に設定してもよい。上記のように、したがって、腐食シミュレーションにおいて最初に与えられる条件としては、例えば、圧力値、負荷値、圧力が与えられる時間、閾値などであってもよく、剥離シミュレーションの結果である剥離情報としては、例えば、剥離シミュレーションによって算出された、圧力値、負荷値、圧力が与えられた時間、蓄積された値、閾値を越えた領域の位置情報、閾値を越えていない領域における、圧力の蓄積値などの情報に加えて、以下に示すような、オブジェクトの摩耗における、摩耗度合い、摩耗領域の位置情報を含んでも良い。
【００５２】
そして、この剥離シミュレーションを、コーティング情報が保存されているテクスチャマップに対して行う場合は、テクスチャマップ上には、オブジェクト表面の凹凸情報、コーティング情報、および、剥離情報が計算統合されることになるが、その際には、上記閾値を越えた領域の位置情報に基づいて、上記コーティング情報に含まれる値を小さくまたはゼロにしてもよい。また、この剥離シミュレーションは、オブジェクト表面に何もコーティングがされていない場合にも行うことができる。例えば、石膏のような素材を利用して作成されたオブジェクトに対して、剥離シミュレーションを行った場合は、石膏オブジェクトの表面が摩耗して削れていく。したがって、コーティングがされていないオブジェクトの表面に、剥離シミュレーションを行う場合は、上記のように、オブジェクト上に圧力を加えて負荷値を蓄積させていき、蓄積された値が閾値を越えた領域を摩耗させていくことで実現してもよいし、圧力が加わる度に、圧力が加わった領域を摩耗させていくことで実現してもよい。この摩耗は、オブジェクト表面上の頂点の座標値を変化させることで、オブジェクト上の削れとして再現してもよいし、ボロノイ領域毎に負荷値を蓄積させていき、蓄積された値の大きさに応じて摩耗の度合いを決めて、ボロノイ領域毎にオブジェクトの削られる厚さを決めることで、オブジェクトの形状情報を変化させてもよい。
【００５３】
腐食シミュレーションとは、オブジェクトの表面またはオブジェクトの形状情報を含むテクスチャマップの表面の腐食を再現するシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、図２８は、剥離箇所があるオブジェクト表面に対して腐食シミュレーションを行った場合の、時間経過と腐食の度合いを示す腐食値を色の濃淡で表した図であり、オブジェクト表面の腐食値がより大きい領域に白色の領域が、腐食値がより小さい領域に黒色の領域が集中していることが分かる。腐食シミュレーションにおいて、最初に与えられる条件としては、例えば、オブジェクト表面に接する、海水の塩分濃度や、空気中の湿度、温度などの、腐食を進行させる条件、腐食時間、腐食値などであってもよいし、以下に示すような、腐食値の周囲への拡大割合を保存してもよい。また、腐食シミュレーションの結果である腐食情報としては、腐食値、腐食位置、腐食の色などを含んでもよい。
【００５４】
また、オブジェクト表面に腐食防止塗装の剥離箇所がある場合は、腐食はその剥離箇所から始まりやすく、また、その剥離箇所にはオブジェクトと腐食防止塗装の境目が露出して海水等が侵入しやすくなるため、腐食の進行と共に腐食部分の周辺部の塗装に膨れが生じ、そのために与えられる圧力に対する塗装剥離の可能性に変化が生じる。したがって、この塗装剥離の可能性の変化を考慮して、腐食が決定した箇所から、周囲に対して腐食値を一定割合増加させて、腐食の拡大を再現してもよい。図２９は、腐食の拡大を概念的に示したものであり、図２９の左側の白色の部分は、塗装剥離が起こり腐食が始まっている箇所、黒色の部分は、塗装剥離が起こっていない箇所、矢印は海水の侵入方向を表し、図２９の右側の白色の部分は、海水の侵入により塗装の剥離および腐食が始まっている箇所を示しており、塗装剥離箇所の拡大に伴う腐食部分の拡大、すなわち、腐食値が周囲に対して拡大されていることが分かる。
【００５５】
さらにまた、この腐食シミュレーションは、オブジェクト表面に腐食防止塗装がされていない場合において行っても良い。例えば、図３０は、空気中の酸素と、凹凸のある金属製のオブジェクト表面の接触を概念的に示したものであり、酸素分子が図中左側から図中右側の鉄原子に接触している。ここで、図中右上側の矢印で示される鉄原子は露出表面が大きいため、酸素と接触しやすく、図中右下側の矢印で示される鉄原子は露出表面が小さいため、酸素と接触しにくいことが分かる。この酸素と鉄との接触のしやすさは、オブジェクトの頂点の主曲率、ガウス曲率およびエッジの角度などを計算統合したり、上記凹凸情報、接触確率情報、座標情報、法線ベクトル情報、曲率情報等を計算統合したりすることで、腐食係数情報として算出してテクスチャマップ化し、そのテクスチャマップに対して、腐食シミュレーションを行ってもよい。図３１は、腐食係数情報をテクスチャマップ化する際の計算統合過程を概念的に示したものであり、図３１の左側は、オブジェクトの頂点の主曲率、ガウス曲率およびエッジの角度を色の濃淡で表した図、図３１の右側は、これらを計算統合して作成した腐食係数マップを表した図である。上記のように、様々な情報を計算統合することにより、２次元のテクスチャマップ上で行う腐食シミュレーションの再現性を、３次元のオブジェクトに対して行う腐食シミュレーションの再現性にさらに近づけることができる。
【００５６】
堆積シミュレーションとは、オブジェクトの表面上またはオブジェクトの形状情報を含むテクスチャマップの表面上に起こる堆積を再現するシミュレーションであって、従来用いられている種々の方法を用いることができる。例えば、図３２右側は、上記図１８の右側に示した、粒状物（砂や埃）が堆積しやすい溝部分などの箇所を情報として保存したテクスチャマップに対して、堆積シミュレーションを行った結果を示し、粒状物が堆積しやすい溝部分や、オブジェクトの上面に堆積物が集中していることが分かる。堆積シミュレーションにおいて、最初に与える条件は、上記衝突シミュレーションにおいて、最初に与えられる条件と類似しており、例えば、堆積物の形状、サイズ、初期位置などの他に、堆積物の色、粘着性などを含んでもよい。ここで、衝突シミュレーションと堆積シミュレーションとの大きな違いは、衝突においては、他物体がオブジェクトに衝突した後は、他物体がオブジェクトから離れることを想定しているが、堆積においては、堆積物はオブジェクト上に堆積していくか、離れるかのどちらかである。したがって、堆積シミュレーションの結果である、堆積情報としては、堆積している堆積物の形状、サイズ、色、厚さなどを含んでもよい。
【００５７】
以上、衝突シミュレーション、剥離シミュレーション、腐食シミュレーション、堆積シミュレーションの一例を簡単に説明したが、これらシミュレーションは、上記各態様に限定されるものではない。また、これらシミュレーションは、順不同で行っても、目的等に応じて、順序立てて行っても、また、順序の中で同じシミュレーションを２度以上行うことを含んでも良い。例えば、塗装がされた凹凸形状があるオブジェクトの表面に、衝突シミュレーションを繰り返すことで圧力値を算出し、この圧力値を基に剥離シミュレーションを行って塗装の剥離箇所を算出した後に、この塗装の剥離箇所の情報を基に、再び衝突シミュレーションを行うことで、オブジェクトの塗装が剥離した箇所においては摩耗を再現し、塗装が剥離していない箇所においては塗装の剥離を再現することができる。また、上記各シミュレーションは、オブジェクトの形状情報を含むテクスチャマップおよびオブジェクトに対して行っても良い。すなわち、上記のように衝突シミュレーションだけは、オブジェクトに対して行い、それ以外はオブジェクトの形状情報を含むテクスチャマップに対して行っても良い。
【００５８】
本発明におけるテクスチャマップを作成するにあたり、各種の形状情報の計算統合や、各種のシミュレーションの試行と、その結果情報の取得および計算統合は、本発明の技術分野の当業者であれば、本発明のこれまでの説明および以下に示す実施例の記載に基づき、適宜、自ら組んだプログラムや、市販のプログラム等を利用することによって、自由に行うことができる。本発明の質感再現性の向上や、それによる写実性の向上は、夫々の計算統合やシミュレーションを個々に行うだけでは実現できず、これまで詳細に説明したとおりの、各態様（例えば、図２、図１４、図１９など）に沿って行うことにより実現できるものである。
【実施例１】
【００５９】
図３３を参照して、本発明者らが実際に行った、塗装剥離を考慮した腐食シミュレーションを実施例として説明する。本実施例においては、オブジェクトにはＳｔａｎｆｏｒｄ  Ｂｕｎｎｙ（http://graphics.stanford.edu/data/3Dscanrep/#bunny）を使用した。そして、オブジェクトの形状情報として凹凸情報およびコーティング情報を含むテクスチャマップを、Ａｕｔｏｄｅｓｋ社の３ｄｓｍａｘのソフトウェア、および、作成したプログラムを組み合わせて作成した。そして次に、このテクスチャマップに対してシミュレーションを行った。図３３に示すように、ステップａでは衝突シミュレーション、ステップｂでは剥離シミュレーション、ステップｃでは腐食シミュレーションを行い、ステップｄでは、上記各シミュレーション結果情報を計算統合して、テクスチャマップ上の情報を更新した。そして、ステップｅでは、テクスチャマップを生成し、ステップｆでは、生成したテクスチャマップをオブジェクトに対して適用した。ここで、ステップｆにおいては、Ａｕｔｏｄｅｓｋ社の３ｄｓｍａｘ、ステップａ、ｂ、ｃ、ｄ、ｅにおいては、作成したプログラムを利用した。
【００６０】
図３３を参照して、実施例をさらに具体的に説明する。ステップａにおいては、衝突シミュレーションを行っているが、これは正確な衝突位置を算出するために、３次元オブジェクトに対しての衝突シミュレーションを行った。次に、ステップｂにおいては、ステップａで取得された衝突位置などの衝突情報を基に、上記２次元のテクスチャマップに対して、剥離シミュレーションを行った。そして、これらステップａおよびステップｂを一定数繰り返した（衝突剥離フェーズ）が、ここではステップａにおける、衝突シミュレーションの条件を、衝突毎に変えることで、衝突によるオブジェクト表面の剥離を正確に再現した。次に、ステップｃにおいては、腐食シミュレーションを行い、ステップｄにおいては、ステップａおよびｂで取得された剥離情報および、ステップｃで取得された腐食値や腐食箇所などの情報を計算統合し、テクスチャマップ上の情報を更新した。
【００６１】
そして、これらステップｃおよびステップｄを一定数繰り返した（腐食フェーズ）が、ここではステップｃにおける、腐食時間などの腐食シミュレーションの条件を毎回変えることで、腐食によるオブジェクト表面の腐食を正確に再現した。そして、ステップｄで情報が更新されたテクスチャマップを利用して、さらにステップａ〜ｄを行いテクスチャマップを更新することを繰り返した（劣化フェーズ）が、ここにおいても、各ステップにおける条件を変えながら行った。そして、ステップｅにおいて、これら繰り返されたシミュレーションの結果情報を含むテクスチャマップを生成し、ステップｆにおいて、生成されたテクスチャマップをオブジェクトに対して適用した。図３４は、全体シミュレーションの回数をｔとして、ｔの値の増加に合わせた、腐食防止塗装がされたオブジェクト上の腐食の変化と、腐食防止塗装がされていないオブジェクトに同じシミュレーションを行った場合の腐食の状態である。図示されるように、全体シミュレーションの回数が増すにつれて、腐食防止塗装がされたオブジェクト上の腐食箇所が増えていっているが、腐食防止塗装がされていないオブジェクト上の腐食は、オブジェクト表面全体に一様に起こっている。これらを比較することで、３次元シミュレーションと２次元シミュレーションを組み合わせることで、オブジェクトの質感再現性および写実性の向上と計算コストの低減との両立を実現することに成功したことが分かる。
【図１】
2014229171.tif 000007
【図２】
2014229171.tif 000008
【図３】
2014229171.tif 000009
【図４】
2014229171.tif 000010
【図５】
2014229171.tif 000011
【図６】
2014229171.tif 000012
【図７】
2014229171.tif 000013
【図８】
2014229171.tif 000014
【図９】
2014229171.tif 000015
【図１０】
2014229171.tif 000016
【図１１】
2014229171.tif 000017
【図１２】
2014229171.tif 000018
【図１３】
2014229171.tif 000019
【図１４】
2014229171.tif 000020
【図１５】
2014229171.tif 000021
【図１６】
2014229171.tif 000022
【図１７】
2014229171.tif 000023
【図１８】
2014229171.tif 000024
【図１９】
2014229171.tif 000025
【図２０】
2014229171.tif 000026
【図２１】
2014229171.tif 000027
【図２２】
2014229171.tif 000028
【図２３】
2014229171.tif 000029
【図２４】
2014229171.tif 000030
【図２５】
2014229171.tif 000031
【図２６】
2014229171.tif 000032
【図２７】
2014229171.tif 000033
【図２８】
2014229171.tif 000034
【図２９】
2014229171.tif 000035
【図３０】
2014229171.tif 000036
【図３１】
2014229171.tif 000037
【図３２】
2014229171.tif 000038
【図３３】
2014229171.tif 000039
【図３４】
2014229171.tif 000040