(57)【要約】【課題】特別な機能を有するフィルタを用いることなく、毛皮等を高速にかつ質感高く描画することができる画像処理装置およびその方法を提供する。【解決手段】毛の全体的な属性をもとに、毛座標系において節点ＮＤを接続した形態で毛の１本１本が折れ線として作成し、毛のモデル情報Ｓ１１を出力する毛作成部１１と、毛のモデル情報を異なる束なりに分類し、分類した毛の情報から、平面の情報（方程式）を作成し、分類したモデル情報と平面の情報から、板およびマップを作成する板／マップ作成部１２と、マップ情報を保持するマップ保持部１３と、板／マップ作成部１２による板をマップ保持部１３に保持されているマップ情報に基づいて描画する描画部１４とを設ける。【選択図】　　　図１
2004054599.tif 000002
【特許請求の範囲】
【請求項１】
近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理装置であって、
方向性をもって発生している近接する複数の線状物体を束なりとし、当該束なりに対応する板を作成する作成部と、
所定のパラメータを基に上記作成部により作成された板を描画する描画部と
を有する画像処理装置。
【請求項２】
上記描画部は、上記作成部で作成した板に対応する束なりに属する線状物の情報を含むマップデータに基づいて上記板の描画を行う
請求項１記載の画像処理装置。
【請求項３】
上記作成部は、モデルとして与えられた線状物の情報を複数の束なりに分類し、分類した複数の束なりのうち最も良く近似する束なりに基づいて板を作成する
請求項１記載の画像処理装置。
【請求項４】
上記作成部は、モデルとして与えられた線状物の情報を複数の束なりに分類するに際し、線状物に垂直な方向になるべく長く領域を取るように分類する
請求項３記載の画像処理装置。
【請求項５】
上記作成部は、板に対応する束なりに属する線状物の情報を含むマップデータを所定の軸に対して基準として作成し、かつ、当該作成に際し、線状物の生えている方向を上記所定の軸にほぼ平行に与えて作成し、
上記描画部は、上記作成部で作成したマップデータに基づいて上記板の描画を行う
請求項１記載の画像処理装置。
【請求項６】
近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理装置であって、
線状物のモデル情報を異なる束なりに分類し、分類した線状物の情報から、平面の情報を作成し、分類したモデル情報と平面の情報から、板およびマップを作成する板／マップ作成部と、
上記板／マップ作成部で作成したマップ情報を保持するマップ保持部と、
板／マップ作成部により作成した板をマップ保持部に保持されているマップ情報に基づいて描画する描画部と
を有する画像処理装置。
【請求項７】
上記板／マップ作成部は、分類した複数の束なりのうち最も良く近似する束なりに基づいて板を作成する
請求項６記載の画像処理装置。
【請求項８】
上記板／マップ作成部は、モデルとして与えられた線状物の情報を複数の束なりに分類するに際し、線状物に垂直な方向になるべく長く領域を取るように分類する
請求項７記載の画像処理装置。
【請求項９】
上記板／マップ作成部は、板に対応する束なりに属する線状物の情報を含むマップデータを所定の軸に対して基準として作成し、かつ、当該作成に際し、線状物の生えている方向を上記所定の軸にほぼ平行に与えて作成する
請求項６記載の画像処理装置。
【請求項１０】
近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理方法であって、
方向性をもって発生している近接する複数の線状物体を束なりとし、当該束なりに対応する板を作成する第１のステップと、
所定のパラメータを基に作成された板を描画する第２のステップと
を有する画像処理方法。
【請求項１１】
上記第２のステップにおいては、上記第１のステップで作成した板に対応する束なりに属する線状物の情報を含むマップデータに基づいて上記板の描画を行う
請求項１０記載の画像処理方法。
【請求項１２】
上記第１のステップにおいては、モデルとして与えられた線状物の情報を複数の束なりに分類し、分類した複数の束なりのうち最も良く近似する束なりに基づいて板を作成する
請求項１０記載の画像処理方法。
【請求項１３】
上記第１のステップにおいては、モデルとして与えられた線状物の情報を複数の束なりに分類するに際し、線状物に垂直な方向になるべく長く領域を取るように分類する
請求項１２記載の画像処理方法。
【請求項１４】
上記第１のステップにおいては、板に対応する束なりに属する線状物の情報を含むマップデータを所定の軸に対して基準として作成し、かつ、当該作成に際し、線状物の生えている方向を上記所定の軸にほぼ平行に与えて作成し、
上記第２のステップにおいては、上記第１のステップで作成したマップデータに基づいて上記板の描画を行う
請求項１０記載の画像処理方法。
【請求項１５】
近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理方法であって、
線状物のモデル情報を異なる束なりに分類する第１のステップと、
分類した線状物の情報から、平面の情報を作成する第２のステップと、
分類したモデル情報と平面の情報から、板およびマップを作成する第３のステップと、
上記第３のステップ作成したマップ情報を保持する第４のステップと、
上記第３のステップで作成した板を上記第４のステップで保持した情報に基づいて描画する第５のステップと
を有する画像処理方法。
【請求項１６】
上記第３のステップにおいては、分類した複数の束なりのうち最も良く近似する束なりに基づいて板を作成する
請求項１５記載の画像処理方法。
【請求項１７】
上記第１のステップにおいては、モデルとして与えられた線状物の情報を複数の束なりに分類するに際し、線状物に垂直な方向になるべく長く領域を取るように分類する
請求項１６記載の画像処理方法。
【請求項１８】
上記第３のステップにおいては、板に対応する束なりに属する線状物の情報を含むマップデータを所定の軸に対して基準として作成し、かつ、当該作成に際し、線状物の生えている方向を上記所定の軸にほぼ平行に与えて作成する
請求項１５記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、近接する複数の線状物体が比較的にまとまった方向に発生している毛皮等を表現する画像処理装置およびその方法に関するものである。
【０００２】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス（ＣＧ）」技術が盛んに研究・開発され、さらに実用化されている。
【０００３】
たとえば、３次元グラフィックスは、３次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで３次元的な２次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのＣＡＤ／ＣＡＭ、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【０００４】
３次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【０００５】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する３次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【０００６】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル（ｐｉｘｅｌ）を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるＲＧＢ形式などで表される色（描画色）データ、奥行き方向の距離を表すｚ値などがある。
また、最近の高精細な３次元グラフィックス処理では、遠近感を醸し出すためのｆ（ｆｏｇ：霧）や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャｔ（ｔｅｘｔｕｒｅ）なども、画像パラメータの１つとして含まれている。
【０００７】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくＤＤＡ（Ｄｉｇｉｔａｌ　Ｄｉｆｆｅｒｅｎｔｉａｌ　Ａｎａｌｙｚｅｒ）と呼ばれる線形補間手法を用いて実行される。
ＤＤＡプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向（Ｘ方向）の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【０００８】
【発明が解決しようとする課題】
ところで、各ピクセルの描画色の計算、すなわち色計算には表面の材質が大きく影響を及ぼす。平坦で均質な素材の表面の色計算は比較的容易であるが、たとえば動物の毛皮などの色計算は容易ではない。何故ならば、表面形状が複雑で、毛の密度によっては皮膚の色の影響を受けたり、毛の流れによって色も変化するからである。
【０００９】
動物の毛皮を描画する最も基本的な方法として、毛を１本１本描画する方法がある。
しかしながら、この方法は、毛を１本１本描画するために必要な計算量が膨大となってしまうという根本的な問題がある。
さらに、毛は半透明物質として描画するため、プリミティブ単位あるいはピクセル単位で奥行き方向にソート（ｚソート）する必要がある。これにも膨大な計算量を要する。
【００１０】
Ｋａｊｉｙａは、３次元マップを用い視線方向にテクセルを走査することによって、毛皮の質感を表現できることを示した（Ｋａｊｉｙａ，Ｊ．Ｔ　ａｎｄ　Ｔｉｍｏｔｈｙ　Ｌ．　Ｋａｙ．Ｒｅｎｄｅｒｉｎｇ　Ｆｕｒ　ｗｉｔｈ　Ｔｈｒｅｅ　Ｄｉｍｅｎｔｉｏｎａｌ　Ｔｅｘｔｕｒｅｓ，ＳＩＧＧＲＡＰＨ　８９，ｐｐ．２７１−２８０、参照）。
しかしながら、この方法は、視線方向のテクセルの走査に描画時間が多く必要である。また、３次元マップを保持するための大容量のメモリ領域が必要となる。
【００１１】
Ｇｏ１ｄｍａｎは、ダルメシアンのような非常に短い毛の生え方がポアソン（Ｐｏｉｓｓｏｎ）分布に従うと仮定することによって、確率的な見え方を計算し、高速に毛皮の質感を描画する方法を開発した（Ｇｏｌｄｍａｎ，Ｄ．Ｂ．，　Ｆａｋｅ　Ｆｕｒ　Ｒｅｎｄｅｒｉｎｇ，ＳＩＧＧＲＡＰＨ　９７，ｐｐ．１２７−１３４　、参照）　　。
この方法は、視線方向のテクセルの走査が必要なく、大容量のメモリも必要がない。
しかしながら、この方法は、短い毛が１ピクセル中に十分に多く存在する場合にのみ有効であり、たとえばダルメシアンより長い毛であったり、１ピクセル中にそれほど多く毛が存在しないような場合には用いることができない。
【００１２】
Ｌｅｎｇｙｅｌは、毛皮を同心の複数の半透明層（以下、シェル（ｓｈｅｌｌ）という）として描画する方法を提案した（Ｌｅｎｇｙｅｌ，Ｅ．Ｊ．，　Ｒｅａｌ−Ｔｉｍｅ　Ｆｕｒ，　Ｅｕｒｏｇｒａｐｈｉｃｓ　Ｒｅｎｄｅｒｉｎｇ　Ｗｏｒｋｓｈｏｐ　２０００，　ｐｐ．２４３−２５６　、および、Ｌｅｎｇｙｅｌ，Ｅ．Ｊ．，　Ｒｅａｌ−Ｔｉｍｅ　Ｆｕｒ　ｏｖｅｒ　Ａｒｂｉｔｒａｒｙ　Ｓｕｒｆａｃｅｓ　，ＡＣＭ　２００１　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　Ｉｎｔｅｒａｃｔｉｖｅ　３Ｄ　Ｇｒａｐｈｉｃｓ（ｈｔｔｐ：／／ｒｅｓｅａｒｃｈ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／　〜ｊｄｌ／）　参照）。
これは、シェルを内側から複数回描画し、重ね合わせて行くことで、毛皮を高速に描画できる。各シェルの色計算には、事前に毛のモデルから作成した３次元マップを用いる。
【００１３】
彼らはまた、ｎＶｉｄｉａのＧｅＦｏｒｃｅにおける頂点シェーダ、ピクセルシェーダへの実装を行い、この方法が実際に、有効であることを示した。
【００１４】
この方法では、Ｐｒａｕｎのラップドテクスチャ（ｌａｐｐｅｄ　ｔｅｘｔｕｒｅ）の手法（Ｐｒａｕｎ，Ｅ．，　Ｌａｐｐｅｄ　Ｔｅｘｔｒｕｒｅｓ，　ＳＩＧＧＲＡＰＨ　２０００，ｐｐ．４６５−４７０、参照）を用い、同しマップを縁り返し表面に貼り付けることで、必要なマップの総量を減らしている。
しかし、この方法では、依然として擬似的な３次元マップであり、シェルの数だけのマップはやはり必要となってしまうという問題がある。
【００１５】
また、シェルを用いた描画の本質的な問題として、エッジ近傍での画質の劣化がある。エッジ近傍では、毛の描画色か徐々に薄く見えるようになる。また、シェルの描画順がエッジ近傍では正しくないため、正しい色が得られない。
このエッジ近傍での画質上の問題点を、Ｌｅｎｇｙｅｌは皮膚上のメッシュの境界線上に、皮膚面に垂直にひれ状のプリミティブ（フィン：ｆｉｎ）を用いることで解決している。
フィン（ｆｉｎ）は、メッシュの境界上のどこにでも存在し、メッシュの境界がエッジに近い場合のみフィンを描画するようにしている。フィンの描画には、前述の３次元マップとは別のマップ（フィンテクスチャ（ｆｉｎ　　ｔｅｘｔｕｒｅ））を用いる。
【００１６】
Ｌｅｎｇｙｅｌは、メッシュの全ての境界線上に異なるフィンテクスチャを用意するのではなく、１種類のフィンテクスチャを使いまわすことで、必要なメモリ量を節約している。
しかしながら、Ｌｅｎｇｙｅｌが試みているのは、毛が全体的には皮膚面に対して垂直に立っている場合のみである。
この場合であれば、フィンテクスチャは１種類で済むが、たとえば毛が皮膚面に沿っているような場合には、視線と毛の方向との関係から様々なフィンテクスチャを選択する必要が生じる。
したがって、フィンテクスチャに必要なメモリ量は増大する。
【００１７】
また、フィンは半透明のプリミティブとして描画するため、正確な色計算のためには本来はｚソートを行わなければならないが、これについてＬｅｎｇｙｅｌは特に述べていない。
【００１８】
上記のような課題があるものの、シェルを用いた毛皮の描画は高速であり、単純形状の物体であれば、フィンの描画を除けば、半透明物体の重ねあわせに合うソーティングも必要ないという長所がある。
ところが、このシェルレンダリングでは毛の連続性を保てない。
【００１９】
毛の連続性を保つためには、フィルタを用いることが考えられる。この手法では。効果的に毛を描画できるが、フィルタを高速に実行する特別の機能を保持する必要がある。本機能を所持しないハードウェアでは、この処理は実装が困難である。
【００２０】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、特別な機能を有するフィルタを用いることなく、毛皮等を高速にかつ質感高く描画することができる画像処理装置およびその方法を提供することにある。
【００２１】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点は、近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理装置であって、方向性をもって発生している近接する複数の線状物体を束なりとし、当該束なりに対応する板を作成する作成部と、所定のパラメータを基に上記作成部により作成された板を描画する描画部とを有する。
【００２２】
好適には、上記描画部は、上記作成部で作成した板に対応する束なりに属する線状物の情報を含むマップデータに基づいて上記板の描画を行う。
【００２３】
好適には、上記作成部は、モデルとして与えられた線状物の情報を複数の束なりに分類し、分類した複数の束なりのうち最も良く近似する束なりに基づいて板を作成する。
【００２４】
好適には、上記作成部は、モデルとして与えられた線状物の情報を複数の束なりに分類するに際し、線状物に垂直な方向になるべく長く領域を取るように分類する。
【００２５】
好適には、上記作成部は、板に対応する束なりに属する線状物の情報を含むマップデータを所定の軸に対して基準として作成し、かつ、当該作成に際し、線状物の生えている方向を上記所定の軸にほぼ平行に与えて作成し、上記描画部は、上記作成部で作成したマップデータに基づいて上記板の描画を行う。
【００２６】
本発明の第２の観点は、近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理装置であって、線状物のモデル情報を異なる束なりに分類し、分類した線状物の情報から、平面の情報を作成し、分類したモデル情報と平面の情報から、板およびマップを作成する板／マップ作成部と、上記板／マップ作成部で作成したマップ情報を保持するマップ保持部と、板／マップ作成部により作成した板をマップ保持部に保持されているマップ情報に基づいて描画する描画部とを有する。
【００２７】
本発明の第３の観点は、近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理方法であって、方向性をもって発生している近接する複数の線状物体を束なりとし、当該束なりに対応する板を作成する第１のステップと、所定のパラメータを基に作成された板を描画する第２のステップとを有する。
【００２８】
本発明の第４の観点は、近接する複数の線状物体が方向性をもって発生している対象物を表現する画像処理方法であって、線状物のモデル情報を異なる束なりに分類する第１のステップと、分類した線状物の情報から、平面の情報を作成する第２のステップと、分類したモデル情報と平面の情報から、板およびマップを作成する第３のステップと、上記第３のステップ作成したマップ情報を保持する第４のステップと、上記第３のステップで作成した板を上記第４のステップで保持した情報に基づいて描画する第５のステップとを有する。
【００２９】
本発明によれば、たとえば線状物のモデル情報が板／マップ作成部に供給される。
板／マップ作成部では、線状物のモデル情報を異なる束なりに分類される。分類した線状物の情報から、平面の情報が作成される。そして、分類したモデル情報と平面の情報から、板およびマップを作成される。
板／マップ作成部で生成された板情報は、描画部に供給され、マップ情報はマップ保持部に供給され、保持される。
そして、描画部において、板／マップ作成部により作成した板がマップ保持部に保持されているマップ情報に基づいて描画される。
【００３０】
【発明の実施の形態】
以下、本発明の実施形態を図面に関連付けて説明する。
【００３１】
図１は、本発明に係る画像処理装置の一実施形態を示すブロック構成図である。
【００３２】
まず、本実施形態に係る画像処理装置１０の基本概念について説明する。
本画像処理装置１０は、２次元マップを用いた近接する複数の線状物体が比較的にまとまった方向に発生している毛皮の描画が可能である。
具体的には、画像処理装置１０は、毛の「束なり」を表現する板を複数枚描画することにより、毛皮を描画する。
図２に示すように、毛皮における毛は全てが独立に生えているのではなく、隣り合う毛同士は比較的まとまった方向に発生している。本実施形態においては、これを「束なり」と呼ぶことにする。
このような特徴は、毛髪などでは目立たず、毛皮に特有の現象である。
毛髪を１本１本ではなく、あるまとまった単位で描画するという手法は提案されている。しかしながら、毛髪の場合、毛がどの方向にまとまるといった特徴がないことから、十分に多くの毛をまとめた単位で描画することは困難である。
本実施形態においては、毛皮における毛が平面上に「束なり」を構成していることから、これら「束なり」を別々の板として描画することにより、毛皮の質感を損なわず、毛の情報をまとめた単位で描画することができるように構成されている。
この際、板を半透明の物体として描画するため、各板は正確に奥行き方向から順番にソーティングされる必要がある。これに対して、本実施形態においては、ピクセル単位でのソートが可能であること利用して対応している。これは既存ハードウェアでも十分に実現可能である。
【００３３】
図３は、図２に示した毛の束なりをそれぞれ板として表した図である。
本実施形態においては、板ＰＬＴを作成した後、図４に示すように、この板ＰＬＴに対して毛の色計算に必要な情報を投影する。その結果、板ＰＬＴそれぞれに対応して２次元のマップが作成できる。
マップには、毛の方向ベクトル、色、透過度といった情報が格納される。
なお、マップに格納する毛の情報は、各テクセルに対して一番上側の毛のみを格納することも可能であるが、これは必ずしもそうする必要はなく、各テクセルに対して複数の毛の情報の重み付け平均値を用いることもことも可能であり、有効である。
【００３４】
すなわち、本実施形態に係る画像処理装置１０は、３次元マップを用いず、単一の２次元マップを用いて描画する。
本画像処理装置１０では、このように、表現したい毛をなるべく分断しないようにサンプリングすることで、少ないメモリ容量で高画質な表現を可能としている。
【００３５】
本実施形態に係る画像処理は、描画前処理および描画時処理から構成される。描画前処理は毛のモデル作成や板およびマップ作成処理を含み、描画前に一度だけ行う。描画時処理は描画前に作成されたマップを用いて、リアルタイムで行う処理である。
以下に、本実施形態に係る画像処理装置１０の具体的な構成および処理内容について詳述する。
【００３６】
本画像処理装置１０は、図１に示すように、毛作成部１１、板／マップ作成部１２、マップ保持部１３、描画部１４、および描画色およびｚ値を保持するメモリ１５を有している。
描画前処理は毛作成部１１、板／マップ作成部１２、およびマップ保持部１３で行われ、描画後処理は、描画部１４、およびメモリ１５により行われる。
【００３７】
毛作成部１１は、毛の全体的な属性をもとに、図５に示すような、毛座標系において符号１−０，１−１，・・で示す毛の１本１本を折れ線として作成し、毛のモデル情報Ｓ１１として板／マップ作成部１２に供給する。
図５の例は、毛を２本だけ作成した状態を示している。各毛１−０，１−１は、丸で示した複数（図５の例では４）の節点ＮＤ００〜ＮＤ０３，ＮＤ１０〜ＮＤ１３を結合した折れ線で表現されている。
毛の属性は、基本的に先端部と末端部、すなわち一番先端の節点ＮＤ００，ＮＤ１０と、一番末端の節点ＮＤ０３，ＮＤ１３に対する属性として与える。そして、中間に存在する節点ＮＤ０１，ＮＤ０２、ＮＤ１１，ＮＤ１２の属性は、先端と末端の節点間を均等に補間して求める。
したがって、本実施形態においては、節点間の距離は、１本の毛においては同じとなっている。
【００３８】
板／マップ作成部１２は、毛作成部１１によりモデルとして与えられた毛の情報から板および色計算用のマップを作成し、作成した板情報Ｓ１２ａを描画部１４に供給し、マップ情報Ｓ１２ｂをマップ保持部１３に供給する。
【００３９】
図６は、板／マップ作成部１２の具体的な構成例を示すブロック図である。
【００４０】
この板／マップ作成部１２は、図６に示すように、束なり作成部１２１、平面作成部１２２、および投影部１２３を有している。
【００４１】
束なり作成部１２１は、毛作成部１１により与えられた毛のモデル情報を、異なる束なりに分類し、分類した束なり毎の毛のモデル情報を信号Ｓ１２１として平面作成部１２２および投影部１２３に出力する。
平面作成部１２２は、束なり作成部１２１において束なりに分類された毛の情報から、平面の情報（方程式）を作成し、信号Ｓ１２２として投影部１２３に出力する。
投影部１２３は、モデル情報と平面の情報から、板およびマップを作成し、板情報Ｓ１２ａを描画部１４に供給し、マップ情報Ｓ１２ｂをマップ保持部１３に供給する。
【００４２】
以下に、板／マップ作成部１２の具体的な処理手順について詳述する。
【００４３】
毛作成部１１で作成される毛は、図５に示すように、仮想的に皮膚面を表現したｘｙｚ空間に、折れ線で定義され、ｘ−ｙ平面を仮想的な皮膚面とする。
この場合、折れ線の節点の座標それぞれにｘ，ｙ，ｚ座標が定義される。以下ではｉ番目の毛のｊ番目の節点ＮＤをｐ〔ｉ〕〔ｊ〕＝（ｘ〔ｉ〕〔ｊ〕，ｙ〔ｉ〕〔ｊ〕，ｚ〔ｉ〕〔ｊ〕）と記述することとする。なお、根元の節点番号をｊ＝０とする。根元は皮膚面に接していると考えられるので、ｚ座標は０である。
【００４４】
毛の束なりは、それぞれの毛に束なりの番号を与えることにより作成する。同一の束なりの番号を与えられた毛は、同一の束なりを構成する。すなわち、グループ化を行う。
毛の束なりは、以下の数１に示すような手順で作成する。
【００４５】
【数１】
2004054599.tif 000003
【００４６】
数１に示す処理によれば、代表点は、束なりの数だけ平面に形成する。また、ランダムなｘ，ｙ座標を選択する場合には、たとえば乱数を用いる。
そして、毛を全部カウントして、最も近い代表点を持つ束なりを選択する。
【００４７】
ここでｄｉｓｔａｎｃｅは、単純なユークリッド距離であってもかまわないが、毛に垂直な方向により多く毛を集めるような距離を用いると、集めた毛の束なりが板状になり、より効果的である。
たとえば、下記の数２のように計算することができる。
図７は、この毛に垂直な方向により多く毛を集めるような距離を用いて集めた毛の束なりが板状になる様子を示す図である。
図７において、ここでｐは根元の位置、Ｒｅｐは代表点の位置である。
また、＜ｔ＞は毛の生えている方向ベクトル、＜ｇ＞はｐからＲｅｐへと向かうベクトルである。ａ，ｂはそれぞれ定数であり、ａがｂよりも大きいときに毛に垂直な方向により多くの毛が集められる。すなわち、ａ＞＞ｂの場合に、楕円のように横長に方向性を持たせることができる。
【００４８】
【数２】
2004054599.tif 000004
【００４９】
そして、束なりを集めた後、それぞれを最も良く近似できる板を作成する。
平面の方程式は数３で表されるものとする。
【００５０】
【数３】
ａｘ＋ｂｙ＋ｚ＋ｄ＝０
【００５１】
ここで、平面がｚ軸に平行な場合は、この式で表現できないが、実用上は毛は皮膚に沿っていることから問題を生じない。以下ではａ，ｂ，ｃ，ｄを求める。
たとえば、好ましい平面を、毛に含まれる全ての節点とｚ軸に垂直な方向との距離の２乗和が最小になるものとすると、数３を得る。これは一般的な最小２乗法を、平面の方程式を求めるために用いたものである。
なお、ｘ〔ｉ〕，ｙ〔ｉ〕，ｚ〔ｉ〕はそれぞれ、束なりに含まれる節点のｘ，ｙ，ｚ座標を列挙したものとする。またＮは束なりに含まれる全部の節点の数とする。また、ｔは転置を示す。
【００５２】
【数４】
（（Σｘ〔ｉ〕２　　Σｘ〔ｉ〕ｙ〔ｊ〕，Σｘ〔ｉ〕）
（Σｘ〔ｉ〕ｙ〔ｉ〕，Σｙ〔ｉ〕２　，Σｙ〔ｉ〕）
（Σｘ〔ｉ〕，　Σｙ〔ｉ〕，　Ｎ））ｔ　＊（ａ，ｂ，ｄ）ｔ
＝（−Σｘ〔ｉ〕ｚ〔ｉ〕，−Σｙ〔ｉ〕ｚ〔ｉ〕，−Σｚ〔ｉ〕）ｔ
【００５３】
数３をａ，ｂ，ｄについて、たとえばガウス法などを用いて解くことにより、平面の方程式を求めることができる。
この方程式をそのまま用いることは可能だが、たとえば図８のように板同士が重なる場合に、画質の劣化を伴う場合がある。
そこでａ，ｂについて、複数の板ＰＬＴにおけるａ，ｂの平均値（ａ´，ｂ´）とすることで、各板の傾きを同じとすることが有効である。
この際、数３におけるｄを、数４のように再度計算し直す。
【００５４】
【数５】
ｄ´＝−（ａ´ｘ〔ｉ〕＋ｂ´ｙ〔ｉ〕＋ｚ〔ｉ〕）／Ｎ
【００５５】
ここで定義できた平面に対して、束なりに属する毛の情報を、ある一定の方向から図４のようにして投影することによりマップを作成する。典型的には平面の垂直方向から投影する。
毛の情報としては、色計算に必要な情報であり、毛の方向ベクトル、毛の色、毛の透過度などがある。
【００５６】
図９は、平面に毛の情報を投影した様子を示す図である。
図９に示すように、情報が投影された部分を全て包含するような、平面上のある矩形領域（図中の点線で示された領域）を求め、これを最終的な板ＰＬＴとする。
なお、マップのｓ，ｔ軸は任意に決定できるが、ｓ軸あるいはｔ軸のいずれかが毛の方向と平行であるように選ぶことで、必要なマップの総量を減らすことができる。
【００５７】
図１０（Ａ）はｔ軸を毛にほぼ並行に与えた場合を示し、図１０（Ｂ）は斜めに与えた場合を示す図である。
図１０（Ａ）にようにｔ軸を毛にほぼ並行に与えた場合の方が、図１０（Ｂ）のように斜めに与えた場合に比べて、毛の情報をより有効に格納できる。
【００５８】
ここで、板／マップ作成部１２におけるマップ作成の具体的な方法の手順について、図１１に関連付けて説明する。
【００５９】
たとえば各板毎にｍａｐ＿ｈｅｉｇｈｔ×ｍａｐ＿ｗｉｄｔｈのサイズのマップを用意する。
マップには、ｈ（ｔｅｘ）　（毛の高さ）、ｖａｌｉｄ（毛の存在するかどうかのフラグ）、Ｔ（ｔｅｘ）　（テクスチャ座標系における毛の方向ベクトル）、Ｋｄ，Ｋｓ（拡散（ｄｉｆｆｕｓｅ）／鏡面（ｓｐｅｃｕｌａｒ）の反射率（ｒｅｆｌｅｃｔａｎｃｅ））、ｓｈｉｎｉｎｅｓｓ（ｓｐｅｃｕｌａｒ　　ｓｈｉｎｉｎｅｓｓ）、ｃｏｖ（ｃｏｖｅｒａｇｅ）を格納する。
【００６０】
マップは、図１１に示すように、毛１をｈ軸方向から投射して作成する。同じテクセル上に複数の毛が存在する場合には、最も上の毛の情報をテクセルに格納する。
【００６１】
以下、作成手順の詳細を記述する。
【００６２】
最初にｍａｐの全領域についてｖａｌｉｄを０とする（毛が存在しない）。また、ｈ（ｔｅｘ）　を０とする（一番低い）。
続いて、求めた各節点のテクスチャ座標Ｐ（ｔｅｘ）　（＝（ｓ（ｔｅｘ）　，ｔ（ｔｅｘ）　，ｈ（ｔｅｘ）　））を用いて線分をマップ上に描画する。なお以下でｉ番目の節点の位置をＰｉ　（＝（ｓｉ　，ｔｉ　，ｈｉ　））と記述する。
【００６３】
折れ線はｉ＝０〜（節点数−２）について、ｉ番目の節点と（ｉ＋１）番目の節点の間の線分を描画する。まず、ｉ番目の節点と、（ｉ＋１）番目の節点のマップ上のテクセル座標（ｕ，ｖ）を数５のように求める。
【００６４】
【数６】
ｕｉ　　　＝　　ｍａｐ＿ｗｉｄｔｈ　　　　＊　　　　ｓｉ
ｖｉ　　＝　　　　ｍａｐ＿ｈｅｉｇｈｔ　　＊　　　　ｔｉ
ｕｉ　＋１　＝　　　　ｍａｐ＿ｗｉｄｔｈ　　　　＊　　　　ｓｉ　＋１
ｖｉ　＋１　＝　ｍａｐ＿ｈｅｉｇｈｔ　　＊　　ｔｉ　＋１
【００６５】
線分の端点（すなわちｉ番目の節点と（ｉ＋１）番目の節点）での毛の方向ベクトルＴは以下のように計算する。
【００６６】
【数７】
Ｔｉ　＝Ｐｉ　＋１　−Ｐｉ
Ｔｉ　＋１　＝Ｔｉ
【００６７】
ＴおよびＫｄ，Ｋｓ，ｓｈｉｎｉｎｅｓｓ，ｈ（Ｐの３番目の要素）およびｗｉｄｔｈが端点で求まっている。両端での値をもとに（ｕｉ　，ｖｉ　），（ｕｉ　＋１　，ｖｉ　＋１　）の間を結ぶ線分上のＴ，Ｋｄ，Ｋｓ，ｓｈｉｎｉｎｅｓｓ，ｈ，ｗｉｄｔｈを線形補間により求める。
【００６８】
次にＴ，Ｋｄ，Ｋｓ，ｓｈｉｎｉｎｅｓｓ，ｈの値をマップ上に描画する。線分の途中での値は、両端の値を補間して求める。ただし書き込むのは、ｈの値がテクセルに書き込まれているｈの値以上の場合とする。値を書き込んだ場合は、該当するテクセルのｖａｌｉｄを１（毛が存在する）とする。
【００６９】
この際、通常のラインアンチエイリアスの手法で、各テクセルのカバレッジｃｏｖを求める。更に、各テクセルでのｗｉｄｔｈ値を考慮して、以下のようにカバレッジを算出する。
【００７０】
【数８】
ｃｏｖ＝ｍｉｎ（ｃｏｖ＊ｗｉｄｔｈ，　１．０）
【００７１】
また、マップについて、有効なテクセルを調べ、その最大なところまでを新しマップサイズとする。これにより、マップのサイズを小さくすることができる。
【００７２】
マップ保持部１３は、たとえばＳＲＡＭ等のメモリにより構成され、板／マップ作成部１２で作成され、各種パラメータや高さ情報、透過度情報が付加された２次元マップを保持し、保持したマップ情報を描画部１４に出力する。
マップ保持部１３は、たとえば与えられたマップ番号、テクスチャ座標に従ってテクセルの内容を出力する。
【００７３】
上記までは、通常リアルタイムで実行する必要はなく、描画前に時間をかけて行えばよい種類の描画前処理である。
【００７４】
描画部１４は、板／マップ作成部１２による板をマップ保持部１３に保持されているマップ情報に基づいて描画する。
これにより、毛皮の質感を表現することが可能となる。
【００７５】
前述した通り、板は皮膚面を仮想化した空間に作成しているため、これを実際に描画する際は、板の各頂点をオブジェクトが存在する空間に変換する必要がある。
仮想的な空間の原点が、オブジェクト空間の０点に存在するとする。またこの点において皮膚の法線ベクトル＜ｎ＞、ｓ，ｔ方向のベクトル＜ｓ＞，＜ｔ＞のように与えられるとすると、数８のように各頂点のオブジェクト空間での座標ｖは計算できる。
【００７６】
【数９】
Ｖ＝０＋ｘ＊＜ｓ＞＋ｙ＋＜ｔ＞＋ｚ＋＜ｎ＞
【００７７】
以上のようにして、毛の束なりから板を作成し、これを描画することにより、毛皮の質感を良好に表現することができる。
【００７８】
以下に、描画部１４の描画処理についてさらに説明する。
【００７９】
メモリ１５は、たとえばフレームバッファと同サイズの５種類のバッファを持つ。具体的には、色バッファ（ＣＢＵＦ）、深さバッファ（ＤＢＵＦ）、色バッファ２（ＣＢＵＦ２）、深さバッファ２（ＤＢＵＦ２）、最近傍バッファ（ＮＥＡＲＥＳＴ）である。
【００８０】
描画部１４は、はじめに、以下のようにバッファを全てのピクセルについて初期化する。
色バッファＣＢＵＦ，ＣＢＵＦ２を背景色に、深さバッファＤＢＵＦ、ＤＢＵＦ２、および最近傍バッファＮＥＡＲＥＳＴを最遠方の値に初期化する。
【００８１】
繰り返し回数が０回目の場合は、以下のようにして、最近傍バッファＮＥＡＲＥＳＴにピクセル毎の最も視点に近い場合のｚ値を格納する。
【００８２】
【数１０】
2004054599.tif 000005
【００８３】
いずれの繰り返し回数であっても、以下のような条件で色バッファＣＢＵＦ２，深さバッファＤＢＵＦ２を更新する。
【００８４】
【数１１】
2004054599.tif 000006
【００８５】
シーン内の全ての板の描画が完了したならば、色バッファＣＢＵＦ２，深さバッファＤＢＵＦ２に内容を色バッファＣＢＵＦ，深さバッファＤＢＵＦへとコピーし、深さバッファＤＢＵＦ２を最遠方の値とする。
全ての描画ピクセルについて、最近傍バッファＮＥＡＲＥＳＴと深さバッファが一致したならば、完了フラグをｔｒｕｅ（真）とする。
一致しないならば、完了フラグはｆａｌｓｅである。
繰り返し描画を終了したときに、最終的な描画色は色バッファＣＢＵＦに格納される。
【００８６】
次に、図１の構成の画像処理装置の動作を説明する。
【００８７】
まず、描画前処理として、毛作成部１１において、毛の全体的な属性をもとに、毛座標系において節点ＮＤを接続した形態で毛の１本１本が折れ線として作成され、毛のモデル情報Ｓ１１として板／マップ作成部１２に供給される。
【００８８】
板／マップ作成部１２においては、毛作成部１１により与えられた毛のモデル情報が束なり作成部１２１に入力される。
束なり作成部１２においては、毛のモデル情報が異なる束なりに分類される。分類された束なり毎の毛のモデル情報が信号Ｓ１２１として束なり作成部１２１から平面作成部１２２および投影部１２３に供給される。
平面作成部１２２では、束なり作成部１２１において束なりに分類された毛の情報から、平面の情報（方程式）が作成され、信号Ｓ１２２として投影部１２３に出力される。
投影部１２３は、モデル情報と平面の情報から、板およびマップを作成し、板情報Ｓ１２ａを描画部１４に供給し、マップ情報Ｓ１２ｂをマップ保持部１３に供給する。
【００８９】
このように、毛のモデル情報Ｓ１１が供給された板／マップ作成部１２においては、与えられた毛の情報から板およびマップが作成され、作成した板情報Ｓ１２ａが描画部１４に供給され、マップ情報Ｓ１２ｂがマップ保持部１３に供給される。
なお、生成した２次元マップには、シェルの描画時に必要なパラメータ（Ｋｄ、Ｋｓ、Ｋａ、Ｔｔ、ｃｏｖ、ｓｈｉｎｉｎｅｓｓ）、高さ（ｈ）情報等が含まれている。
【００９０】
そして、描画部１４において、板／マップ作成部１２による板がマップ保持部１３に保持されているマップ情報に基づいて描画される。
このとき、板は皮膚面を仮想化した空間に作成しているため、これを実際に描画する際は、板の各頂点がオブジェクトが存在する空間に変換される。
以上のようにして、毛の束なりから板を作成し、これを描画することにより、毛皮の質感を良好に表現することができる。
【００９１】
以上説明したように、本実施形態によれば、毛の全体的な属性をもとに、毛座標系において節点ＮＤを接続した形態で毛の１本１本が折れ線として作成し、毛のモデル情報Ｓ１１を出力する毛作成部１１と、毛のモデル情報を異なる束なりに分類し、分類した毛の情報から、平面の情報（方程式）を作成し、分類したモデル情報と平面の情報から、板およびマップを作成する板／マップ作成部１２と、マップ情報を保持するマップ保持部１３と、板／マップ作成部１２による板をマップ保持部１３に保持されているマップ情報に基づいて描画する描画部１４とを設けたので、特別な機能を有するフィルタを用いることなく、毛皮を高速に描画することができ、毛皮の質感を良好に表現することができる利点がある。
【００９２】
【発明の効果】
以上説明したように、本発明によれば、特別な機能を有するフィルタを用いることなく、毛皮を高速に描画することができる。
また、ハードウェアの増大を防止できることはもとより、毛皮の質感を高精度に表現することができる利点がある。
【図面の簡単な説明】
【図１】本発明に係る画像処理装置の一実施形態を示すブロック構成図である。
【図２】本実施形態に係る毛の「束なり」について説明するための図である。
【図３】図２に示した毛の束なりをそれぞれ板として表した図である。
【図４】２次元のマップの作成概念を説明するための図である。
【図５】本実施形態に係る毛作成部の毛のモデル作成方法を説明するための図である。
【図６】本実施形態に係る板／マップ作成部の具体的な構成例を示すブロック図である。
【図７】毛に垂直な方向により多く毛を集めるような距離を用いて集めた毛の束なりが板状になる様子を示す図である。
【図８】板同士が重なった状態を示し、画質の劣化を伴う場合があることを説明するための図である。
【図９】平面に毛の情報を投影した様子を示す図である。
【図１０】（Ａ）はｔ軸を毛にほぼ並行に与えた場合を示す図、（Ｂ）は斜めに与えた場合を示す図である。
【図１１】本実施形態に係るマップ作成の具体的な手順を説明するための図である。
【符号の説明】
１０…画像処理装置、１１…毛作成部、１２…板／マップ作成部、１２１…束なり作成部、１２２…平面作成部、１２３…投影部、１３…マップ保持部、１４…描画部、１５…メモリ。
【図１】
2004054599.tif 000007
【図２】
2004054599.tif 000008
【図３】
2004054599.tif 000009
【図４】
2004054599.tif 000010
【図５】
2004054599.tif 000011
【図６】
2004054599.tif 000012
【図７】
2004054599.tif 000013
【図８】
2004054599.tif 000014
【図９】
2004054599.tif 000015
【図１０】
2004054599.tif 000016
【図１１】
2004054599.tif 000017