JP4125685B2 - 描画方法およびその装置 - Google Patents

描画方法およびその装置 Download PDF

Info

Publication number
JP4125685B2
JP4125685B2 JP2004062745A JP2004062745A JP4125685B2 JP 4125685 B2 JP4125685 B2 JP 4125685B2 JP 2004062745 A JP2004062745 A JP 2004062745A JP 2004062745 A JP2004062745 A JP 2004062745A JP 4125685 B2 JP4125685 B2 JP 4125685B2
Authority
JP
Japan
Prior art keywords
segment
light source
viewpoint
hair
sorting
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.)
Expired - Fee Related
Application number
JP2004062745A
Other languages
English (en)
Other versions
JP2005251000A (ja
Inventor
律視 高橋
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004062745A priority Critical patent/JP4125685B2/ja
Publication of JP2005251000A publication Critical patent/JP2005251000A/ja
Application granted granted Critical
Publication of JP4125685B2 publication Critical patent/JP4125685B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、コンピュータグラフィックによって毛状の描画対象を描画する描画方法およびその装置に関するものである。
コンピュータグラフィックス(CG)による動物等の毛の描画においては、毛全体が集合したときのボリューム感を表現することが重要となる。動物の毛同士が互いに落とす影を表現できると、毛同士の前後関係を視覚的に認識することが可能となる。これにより動物の毛等に、奥行きを感じさせることができ、ボリューム感を表現することが可能となる。このように、毛全体が集合したときのボリューム感は、動物等の毛同士が互いに落とす影の影響を大きく受ける。
非特許文献1に記載のFake Fur Renderingによる描画方法は、実際の毛をモデリングすることなく、統計的なモデルを用いて毛の生えているポリゴン面の面積、毛の長さ、毛の生えている密度等の情報を得ている。そして、これらの情報に基づいてポリゴン面の陰影付けを行い、細い毛が生え揃っているような擬似的な視覚効果を与えている。
また、非特許文献2に記載のReal-Time Furによる描画方法は、オブジェクトを複数の層で置き換え、これらの層を重ね合わせることによって表現するシェル・テクスチャーを利用してモデリングやレンダリングを行っている。
さらに、非特許文献3に記載のDeep Shadow Mapsによる描画方法は、毛を表すために三角柱等の形状や線分形状を用いてモデリングを行い、Deep Shadow Mapによって毛の影付けを行っている。
"Fake Fur Rendering", Dan B Goldman, In SIGGRAPH 97 Conference Proceedings, pp.127-134., Los Angeles, 1997. "Real-time fur.", LENGYEL, J. ,Eurographics Rendering Workshop 2000, pp. 243-256 "Deep shadow maps.", Tom Lokovic, Eric Veach , SIGGRAPH 2000,385-392
しかしながら、非特許文献1記載の従来技術では、ポリゴン面毎に陰影付けを行うにあたり、毛そのものをモデル化していないため近い視点からボリューム感のある視覚効果を表現できないといった問題があった。
また、非特許文献2に記載の従来技術では、複数の層を重ね合わせているため毛の伸びている方向に色を変化させることや模様をつけることが困難であり、特に仮想的な動物を描画する場合等に大きな制約となっていた。また、視点方向によってはシェル・テクスチャー間に隙間が見える場合があるといった問題があった。
また、非特許文献3に記載の従来技術では、レイトレーシングベースの手法によってレンダリングを行っているため、レンダリング時間が長くなるといった問題があった。
本発明は、上記に鑑みてなされたものであって、動物等の毛状の描画対象同士が光源からの光を遮光してできる影付けを、高速に描画することができる描画方法およびその装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、コンピュータグラフィックスによってモデリングおよびシミュレーションされた、複数の毛状の描画対象および複数のポリゴン面からなる描画対象を、レンダリングする描画装置で実行される描画方法において、光源方向セグメンテーション手段が、それぞれの前記毛状の描画対象を分割し、分割した描画対象から光源方向に直交する面を有する光源セグメントを生成する光源方向セグメンテーション工程と、第1のソート手段が、前記光源セグメントおよび前記ポリゴン面を、光源との距離が近い順にソートする第1のソート工程と、第1の描画手段が、前記第1のソート工程でソートされた順に、前記光源セグメントおよび前記ポリゴン面を所定のα混合率でαブレンディングしながらフレームバッファに描画する第1の描画工程と、濃度算出手段が、前記フレームバッファへの描画結果に基づいて前記光源セグメントおよび前記ポリゴン面のそれぞれの影付け用の濃度を算出し保存する影付け濃度算出工程と、視点方向セグメンテーション手段が、それぞれの前記毛状の描画対象を分割し、分割した描画対象から視点方向に直交する面を有する視点セグメントを生成する視点方向セグメンテーション工程と、第2のソート手段が、前記視点セグメントおよび前記ポリゴン面を、視点との距離が遠い順にソートする第2のソート工程と、第2の描画手段が、前記第2のソート工程でのソート結果に基づいて、前記ポリゴン面を前記所定のα混合率でαブレンディングしながら前記影付け用の濃度で描画するとともに、前記視点セグメントを前記所定のα混合率でαブレンディングしながら所定のカラー値および前記影付け用の濃度で描画する第2の描画工程と、を含むことを特徴とする。
この請求項1の発明によれば、描画対象同士が及ぼしあう影の影響を表現するために、任意サイズに設定できる視点セグメント毎に影付け濃度を算出しているので、ボリューム感のある毛状の描画対象を迅速に描画することが可能となるという効果を奏する。
以下に添付図面を参照して、この発明にかかる描画方法およびその装置の最良な実施の形態を詳細に説明する。
(実施の形態)
図1は、本発明の実施の形態にかかる描画装置の構成を示すブロック図である。描画装置10は、コンピュータグラフィックス(以下、CGという)によって動物の毛等の描画対象を描画する装置であり、入力手段25、表示手段26、記録手段27、モデリング・シミュレーション手段20、レンダリング手段30からなる。なお、本実施の形態においてモデリング、シミュレーション、レンダリングされるモデルは動物の毛に限られず、例えば昆虫の毛や毛状に生えた植物群(草原)等をモデルとしてもよい。
入力手段25は、モデリング・シミュレーション手段20およびレンダリング手段30と接続されている。入力手段25は、モデリング・シミュレーション手段20やレンダリング手段30にデータ入力や、演算、描画の実行コマンドを入力するためのものであり、例えばキーボードやポインティングデバイス等からなる。入力されるデータは、動物の毛をモデリング、シミュレーションするためのデータや動物の毛以外をポリゴンモデリング、シミュレーションするためのデータ等である。
表示手段26は、モデリング・シミュレーション手段20およびレンダリング手段30と接続されている。表示手段26は、モデリング・シミュレーション手段20やレンダリング手段30で行われたモデリングの結果、シミュレーションの結果、レンダリングの結果等を表示するものであり、例えばディスプレイやプリンタ等からなる。
記録手段27は、モデリング・シミュレーション手段20およびレンダリング手段30と接続されている。記録手段27は、モデリング・シミュレーション手段20やレンダリング手段30で行われたモデリングの結果、シミュレーションの結果、レンダリングの結果等を記録しておくものであり、例えばハードディスクやMO(Magneto Optical disk)ドライブ等からなる。
モデリング・シミュレーション手段20は、入力手段25から入力されたデータ、演算、描画の実行コマンドによってモデリング・シミュレーションを行い、モデリングの結果やシミュレーションの結果等を表示手段26や記録手段27に送る。モデリング・シミュレーション手段20は、3次元CGにおいて描画するモデル(物体)の形状を作成するモデリング機能とモデルの動きをシミュレーションする機能を備えている。
これらの機能により、モデルの任意時刻における位置や形状を決定する。本実施の形態においては、動物等の毛の位置や形状をモデリング、シュミレーションし、これらの任意時刻での位置や形状を決定する。これにより、毛は一本一本が根元から毛先まで直線形状で表現されるものとする。なお、一本の直線形状が一本の毛を表現するようにしてもよいし、一本の直線形状が複数本の毛をまとめて表現するようにしてもよい。
モデリングは、パーティクルシミュレーションとして例えば毛の根元から粒子を打ち上げて重力落下させ、このときの粒子の軌跡を用いて毛の形状をモデリングする粒子計算や、GUI(Graphical User Interface)を通したユーザ(描画装置の使用者)のインタラクションによって動物等のポリゴンモデル上に毛を生やす等によって行う。
シミュレーションは、モデリング機能によって作成された動物等の毛のモデルを例えば風等の影響によって動かし、粒子計算を行うことによって任意時刻でのモデルの位置や形状を数値データとして算出する等によって行う。
図2は、粒子計算によるモデリングの一例を説明するための図である。描画する毛の根元から粒子1を打ち上げる。このとき、毛を描画する位置(範囲)や本数に応じて粒子1の位置(範囲)や個数を決定する。また、打ち上げる粒子1の方向、初速度等の物理条件を決めておく。そして、打ち上げた粒子1は重力落下させる。この打ち上げられた粒子1の軌跡の一部を動物の毛のモデルとして抽出する、そして、抽出した軌跡を数値化し、連続体として表現できるようにする。
レンダリング手段30は、モデリング・シミュレーション手段20によって数値データとして与えられた動物の毛に関する情報を計算によって画像化するものであり、セグメンテーション手段31、描画要素ソート手段32、影付け濃度算出手段33、シーン描画手段34からなる。
セグメンテーション手段31は、曲線や直線等で定義された動物の毛の位置や形状から太陽等の光源方向およびカメラ等の視点方向に対するセグメントを生成する。セグメントの生成は、モデリング、シミュレーションされた動物の毛の根元から先端部分までを長さ方向に分割することによって行う。ここでは、モデリング、シミュレーションされた動物の毛の根元から先端部分までを同じ長さの線分によって分割し、線分の両端に厚み(幅)を与えて四角形のセグメントを生成する。同じ長さの線分によって分割することによって分割処理を容易に行うことが可能となる。
なお、光源方向に対するセグメントを生成する際の線分と視点方向に対するセグメントを生成する際の線分は、種々異なる長さの線分を用いてもよい。例えば、曲線の曲率が大きい部分では短い線分によって毛を分割し曲線の曲率が小さい部分では長い線分によって毛を分割する。これにより、曲線の曲率が大きい部分では細かくリアルに毛を描画することが可能となり、曲線の曲率が大きい部分では分割処理を迅速に行うことが可能となる。
描画要素ソート手段32は、セグメンテーション手段31によって生成された動物の毛のセグメントや動物の毛とは異なる物体のポリゴン面等の描画対象となる各描画要素を光源からの距離や視点からの距離によってソート(順列付け)する。
シーン描画手段34は、図示しないフレームバッファを備えており、光源と各描画要素の距離に基づいてソートされた各描画要素を、光源からの距離が近い描画要素から順にαブレンディングを行いながらフレームバッファに描画する。αブレンディングは、描画要素がポリゴン面である場合はα混合率1.0でフレームバッファに描画する。一方、描画要素がセグメントである場合は、予め設定しておいた所定のα混合率α0でフレームバッファに描画する。
また、シーン描画手段34は視点と各描画要素の距離に基づいてソートされた各描画要素を、視点からの距離が遠い描画要素から順にαブレンディングを行いながらフレームバッファに描画する。このとき、影付け濃度算出手段33によって得られた各描画要素の影付け濃度と各描画要素が有しているカラー値に基づいて全体のシーンを描画する。
影付け濃度算出手段33は、光源からの距離によってソートされた各描画要素がフレームバッファに描画される際の画素値を調べ、各描画要素の影付け用の濃度(以下、影付け濃度という)として記録手段27に保存する。
図3は、影付け濃度の概念を説明するための図である。図3に示すように太陽2等の光源から毛に光が当たると全体の毛のうち太陽2に近い毛の部分はほとんど影ができないのに対し、全体の毛のうち太陽2から遠い位置にある毛の部分は自らの毛と太陽2の間に位置する他の毛やその他の物体の影響を受けて影ができる。他の毛等の影響による影は、自らの毛の部分と太陽2の間に多くのまたは大きな毛が存在するほど大きくなる。また、毛等のα混合率によっても影の状態が異なる。本実施の形態においては、描画する毛にボリューム感を与えるため、毛等の部分同士が互いに他の毛の部分に与える影の影響を影付け濃度として算出しておく。
図4−1〜図4−4は、セグメントの生成方法を説明するための図である。図4−1は毛の分割方法を説明するための図であり、図4−2はセグメントの厚み方向を説明するための図であり、図4−3はセグメント形状を決定する方法を説明ための図であり、図4−4は、生成されたセグメントの一例を示す図である。
セグメンテーション(セグメントの生成)は、光源方向からのセグメンテーションと視点方向からのセグメンテーションの2回行われる。図4−1において、最初に1本の毛の全体を均等な長さの区間で区切り、1本の毛を複数の線分で近似する。ここでは、毛を3等分する場合を示しており、毛の根元側から線分A1,A2,A3を生成している。なお、毛は直線状のものであってもよく、直線状の場合であっても同様に複数の線分で近似する。なお、複数本の毛をまとめて1本の直線や曲線で表現している場合も複数本の毛全体を均等な長さに区切り、複数本の線分で近似する。また、線分の長さは任意に設定可能であり、このため生成されるセグメントのサイズも任意設定可能である。
線分A1〜A3を生成した後、線分A1〜A3毎にセグメントを生成する。各セグメントは面状であり、セグメントとの元となる線分の長さ方向のベクトル(方向ベクトル)とセグメントの厚み方向のベクトルによって生成する。
各セグメントを生成する際、セグメントの始点側(毛の根元側)の厚みは、セグメントの元となる線分の方向ベクトルを用いて算出し、セグメントの終点側(毛先側)の厚みは、セグメントの元となる線分の1つ毛先側の線分の方向ベクトルを用いて算出する。これにより、隣り合うセグメントの境界をなめらかに描画することができるセグメントを生成することが可能となる。
ここでは、線分A1に対応するセグメントの始点側の厚みは線分A1の方向ベクトルを用い、線分A1に対応するセグメントの終点側の厚みは線分A2の方向ベクトルを用いて算出する。線分A2に対応するセグメントの始点側の厚みは線分A2の方向ベクトルを用い、線分A2に対応するセグメントの終点側の厚みは線分A3の方向ベクトルを用いて算出する。これにより、1本の毛は連続したセグメントによって表すことが可能となる。
セグメントの終点側の厚みを算出する際、毛の終点(毛先)となるセグメントのように、セグメントの元となる線分の1つ毛先側の線分が存在しない場合は、セグメントの終点側の厚みはセグメントの始点側の厚みと同じものを用いることとする。これにより、セグメントの終点側の厚みも算出することが可能となる。ここでは、線分A3に対応するセグメントの始点側の厚みと終点側の厚みはともに線分A3の方向ベクトルを用いて算出する。
図4−2に示すように光源の光線方向または視点からの視線方向の単位ベクトルをLとし、毛の長さ方向の単位ベクトルをDとすると、生成するセグメントの厚み方向の単位ベクトルKはベクトルLおよびベクトルDに直交するので、ベクトルK,L,Dの関係はベクトルLとベクトルDの外積を用いてK=L×D/|L×D|となる。
図4−3に示すように線分A1に対するセグメントをセグメントS1とし、セグメントS1の始点側の厚み(幅)をaとして、セグメントS1の始点側の厚み方向の単位ベクトルをK1とすると、セグメントS1の始点側の厚み方向のベクトルはa・K1となる。
同様に、線分A2に対するセグメントをセグメントS2とし、セグメントS2の始点側の厚みをbとして、セグメントS2の始点側の厚み方向の単位ベクトルをK2とすると、セグメントS2の始点側の厚み方向のベクトルはb・K2となる。したがって、セグメントS1の終点側の厚み方向のベクトルは、セグメントS2の始点側の厚み方向のベクトルb・K2となる。
また、図4−4に示すように線分A3に対するセグメントをセグメントS3とし、セグメントS3の始点側の厚みをcとして、セグメントS3の始点側の厚み方向の単位ベクトルをK3とすると、セグメントS3の始点側の厚み方向のベクトルはc・K3となる。したがって、セグメントS2の終点側の厚み方向のベクトルは、セグメントS3の始点側の厚み方向のベクトルc・K3となる。セグメントS3の終点側の厚み方向のベクトルは、セグメントS3の始点側の厚み方向のベクトルc・K3となる。なお、各セグメントの厚みa〜cは、描画する毛の種類によって任意に設定可能とする。
なお、各セグメントを生成する際、セグメントの終点側の厚みは、セグメントの元となる線分の方向ベクトルを用いて算出し、セグメントの始点側の厚みは、セグメントの元となる線分の1つ毛の根元側の線分の方向ベクトルを用いて算出するようにしてもよい。例えば、セグメントS3の終点側の厚み方向のベクトルをc・K3とし、セグメントS3の始点側の厚み方向のベクトルおよびセグメントS2の終点側の厚み方向のベクトルをb・K2とし、セグメントS2の始点側の厚み方向のベクトルおよびセグメントS1の終点側の厚み方向のベクトルをa・K1とする。そして、セグメントS1は毛の根元を含むのでセグメントS1の始点側の厚みはセグメントS1の終点側の厚みと同じものを用いることとする。
なお、各セグメントS1〜S3の厚み方向のベクトルは上述した方法に限られず、他の方法で求めてもよい。例えば、セグメントS1の始点側の厚み方向のベクトルをa・K1とし、セグメントS1の終点側の厚み方向のベクトルおよびセグメントS2の始点側の厚み方向のベクトルを(a・K1+b・K2)/2としてもよい。
このようにして生成された1本の毛を示すセグメントS1〜S3には、毛のテクスチャが貼り付けられる。図5−1は、セグメントに貼り付けるためのテクスチャの一例を示す図であり、ここでのテクスチャは1本の毛を示している。テクスチャ座標は右下が(0.00,0.00)であり、左上が(1.00,1.00)である。ここでは1本の毛を3つのセグメントS1〜S3で3等分しているため、各セグメントに対応するようテクスチャの右側の辺は、(0.00,0.00)、(0.33,0.00)、(0.66,0,00)および(1.00,0.00)の座標が割り当てられている。同様に、テクスチャの左側の辺は、(0.00,1.00)、(0.33,1.00)、(0.66,1,00)および(1.00,1.00)の座標が割り当てられている。
図4−4に示すように、セグメントS1にはテクスチャの(0.00,0.00)、(0.33,0.00)、(0.33,1.00)、(0.00,1.00)で構成される部分が貼り付けられ、セグメントS2にはテクスチャの(0.33,0.00)、(0.66,0,00)、(0.66,1,00)、(0.33,1.00)で構成される部分が貼り付けられ、セグメントS3にはテクスチャの(0.66,0,00)、(1.00,0.00)、(1.00,1.00)、(0.66,1,00)で構成される部分が貼り付けられる。
図5−2は、1本の直線や曲線が複数本の毛を示している場合のテクスチャの一例を示す図である。ここでのテクスチャも図5−1で示したテクスチャと同様に、テクスチャ座標は右下が(0.00,0.00)であり、左上が(1.00,1.00)である。そして、各セグメントに対応するようテクスチャの座標が割り当てられている。
なお、テクスチャはカラー値を有しているものとし、このカラー値を用いてセグメントの描画が行われる。また、テクスチャは描画する毛毎に異なるテクスチャを用いてもよいし、同じテクスチャを用いてもよい。
なお、本実施の形態においては3つのセグメントに対して厚み方向のベクトルを算出したが、セグメントが4つ以上ある場合であっても全てのセグメントに対して厚み方向のベクトルを算出する。そして、テクスチャは、4つのセグメントに対応するよう座標が割り当てられ、各セグメントに対応するようテクスチャが貼り付けられる。各セグメントの厚み方向のベクトルは任意時刻の毛全てに対して算出され、テクスチャが貼り付けられる。
つぎに、このような描画装置の描画方法について図6のフローチャートを参照しながら説明する。モデリング・シミュレーション手段20は、パーティクルシミュレーションやGUIによって動物の毛の位置や形状をモデリングする。さらに、モデリングされた動物の毛は、風が吹いたことによる影響を受けてどのように動くかをシミュレーションし、任意時刻における動物の毛の位置や形状を決める(ステップS100)。また、動物の毛を描画するための動物の体等はポリゴン面で作成しておき、動物の毛と一緒にシミュレーションしておく。
セグメンテーション手段31は、シミュレーションの行われた毛に対し、光源方向に対応したセグメントを作成する。セグメントの作成として、毛の全体を均等な長さに区切るとともに、毛を構成している曲線を例えば線分A1〜A3で近似する。さらに、この線分A1〜A3の方向と光源方向に基づいてセグメントを生成する(ステップS110)。
各セグメントはセグメントの元となる線分の方向ベクトルとセグメントの厚み方向のベクトルによって生成する。各セグメントを生成する際、セグメントの始点側の厚みは、セグメントの元となる線分の方向ベクトルを用いて算出し、セグメントの終点側の厚みは、セグメントの元となる線分の1つ毛先側の線分の方向ベクトルを用いて算出する。毛先部分を含むセグメントの場合は、セグメントの終点側の厚みを算出する際、セグメントの終点側の厚みにはセグメントの始点側の厚みと同じものを用いる。
つぎに、描画要素(作成されたセグメントやポリゴン面)の中心座標を求める。中心座標は各描画要素を構成する格子点の座標の平均値を求めることによって行う。描画要素ソート手段32は、光源と各描画要素の中心座標までの距離を求め、描画要素を光源からの距離が小さいものから大きいもの(近いものから遠いもの)の順番でソートする(ステップS120)。
ここで、フレームバッファ内の画素値を例えば白色を示す(R,G,B,α)=(1.0,1.0,1.0,1.0)で初期化しておく(ステップS130)。ここで、Rは赤、Gは緑、Bは青、αは混合率(不透明率(透明率の逆))を示している。
シーン描画手段34は、描画要素ソート手段32によってソートされた各描画要素のうち、光源との距離が最も小さい描画要素を取り出し、αブレンディングを行いながらフレームバッファ内に描画する(ステップS140)。描画要素がポリゴン面である場合は、αブレンディングを行う際のα混合率を1.0として例えば黒色(R,G,B,α)=(0.0、0.0、0.0、1.0)でフレームバッファに描画する。一方、描画要素がセグメントである場合は、所定のα混合率α0として例えば黒色(R,G,B,α)=(0.0、0.0、0.0、α0)でフレームバッファに描画する。
影付け濃度算出手段33は、シーン描画手段34によってフレームバッファ内に描画された描画要素の中心の画素値を検出する。フレームバッファ内の画素値はR、G、Bの値を検出することによって行うが、ここではR、G、Bの値は全て同じであるため、影付け濃度算出手段33はR、G、Bのいずれかの浮動小数点値をこの描画要素の影つけ濃度として算出し(ステップS150)、記録手段27に保存させておく。そして、フレームバッファに描画した描画要素が最後のものであるかを確認する(ステップS160)。
フレームバッファに描画した描画要素が最後のものでなければ(ステップS160でNoの場合)、以下、ステップS140、S150と同様の処理を行う。すなわち、影付け濃度算出手段33が次に光源からの距離が小さい描画要素の中心が描画されるフレームバッファ内の画素値を調べるため、シーン描画手段34は次の描画要素をαブレンディングを行いながらフレームバッファ内に描画する。そして、影付け濃度算出手段33が描画要素の影つけ濃度を算出して記録手段27に保存させておく。そして、フレームバッファに描画した描画要素が最後のものであるかを確認する(ステップS160)。
以下、光源からの距離が小さい描画要素から順にステップS140〜S160の処理を繰り返す。このように、シーン描画手段34は、描画要素ソート手段32によってソートされた順番で各描画要素をフレームバッファに描画し、影付け濃度を算出して保存していく。フレームバッファに描画した描画要素が最後のものであると判断されれば(ステップS160でYesの場合)、フレームバッファへの描画要素の描画および影付け濃度の算出を終了する。
つぎに、セグメンテーション手段31は、ステップS100でモデリング、シミュレーションの行われた毛に対し、視点方向に対応したセグメントを作成する(ステップS170)。セグメントの作成として、毛の全体を均等な長さに区切るとともに、毛を構成している曲線を例えば線分B1〜B3(図示せず)で近似する。さらに、この線分B1〜B3の方向と視点方向に基づいて各セグメントを構成する四角形を求める(ステップS170)。なお、毛を構成している曲線を光源方に対応するセグメント作成で用いた線分A1〜A3で近似してもよい。
各セグメントはセグメントの元となる線分の方向ベクトルとセグメントの厚み方向のベクトルによって生成する。各セグメントを生成する際、セグメントの始点側の厚みは、セグメントの元となる線分の方向ベクトルを用いて算出し、セグメントの終点側の厚みは、セグメントの元となる線分の1つ毛先側の線分の方向ベクトルを用いて算出する。毛先部分を含むセグメントの場合は、セグメントの終点側の厚みを算出する際、セグメントの終点側の厚みにはセグメントの始点側の厚みと同じものを用いる。
つぎに、描画要素(作成されたセグメントやポリゴン面)の中心座標を求める。中心座標は各描画要素を構成する格子点の座標の平均値を求めることによって行う。描画要素ソート手段32は、視点と各描画要素の中心座標までの距離を求め、セグメントを視点からの距離が大きいものから小さいもの(遠いものから近いもの)の順番でソートするとともに(ステップS180)、ポリゴン面を視点からの距離が大きいものから小さいもの順番でソートする
ここで、フレームバッファ内の画素値を例えば白色を示す(R,G,B,α)=(1.0,1.0,1.0,1.0)で初期化しておく(ステップS190)。シーン描画手段34は、まず動物の毛以外のポリゴンモデルデータ(ポリゴン面)を、描画要素ソート手段32でソートした順番(視点からの距離が大きいものから小さいものの順番)でフレームバッファに描画する(ステップS200)。このときの描画のカラー値は、影付け濃度算出手段33によって算出された描画要素の影付け濃度に元のカラー値を乗算したものを用いる。例えば、影付け濃度がIであり、カラー値が(R、G、B)である場合、カラー値を(I×R、I×G、I×B)としてポリゴン面をフレームバッファに描画する。
つぎに、シーン描画手段34は、描画要素ソート手段32によってソートされた順番で、αブレンディングを行いながらフレームバッファ内にセグメントを描画する(ステップS210)。このとき、各セグメントはテクスチャ座標の対応付けがなされている。描画されるテクスチャのカラー値が(TR、TG、TB)である場合、カラー値を(I×TR、I×TG、I×TB)とし、α混合率を例えばα0としてテクスチャをフレームバッファに描画する。フレームバッファに描画された内容は、記録手段27によって記録されるとともに表示手段26によって表示される。
なお、本実施の形態においては、α混合率を所定のα0としてセグメントをαブレンディングすることとしたが、α混合率は所定の値に限られず、セグメントの厚み毎に設定するようにしてもよい。例えばベクトルLとベクトルDの成す角度をθとしてα0/(1+sinθ)をα混合率として用いてもよい。
また、本実施の形態においては、描画装置10が入力手段25、表示手段26、記録手段27を備える構成としたが入力手段25、表示手段26、記録手段27は描画装置10から独立した構成としてもよい。さらに、モデリング・シミュレーション手段20が描画装置10から独立した構成であってもよい。
なお、本実施の形態においては、視点方向からの描画を行う際、描画要素ソート手段32は、セグメントとポリゴン面を別々にソートしたが、描画要素ソート手段32がセグメントとポリゴン面をまとめて視点からの距離が大きいものから小さいものの順番でソートしてもよい。この場合、セグメントおよびポリゴン面を、描画要素ソート手段32でソートした順番でフレームバッファ内に描画する。この場合であっても、セグメントの描画は所定の影付け濃度、カラー値を用い、αブレンディングを行いながらテクスチャをフレームバッファ内に描画することによって行う。また、ポリゴン面の描画は所定の影付け濃度、カラー値を用いて描画する。
このように実施の形態によれば、描画要素で表される描画対象同士が及ぼしあう影の影響を表現するために、任意サイズに設定できるセグメント毎に影付け濃度を算出しているので、ボリューム感のある毛を高速で描画することが可能となる。
以上のように、本発明にかかる描画方法およびその装置は、コンピュータグラフィックスによる毛状の描画対象の描画に適している。
本発明の実施の形態にかかる描画装置の構成を示すブロック図である。 粒子計算によるモデリングの一例を説明するための図である。 影付け濃度の概念を説明するための図である 毛の分割方法を説明するための図である。 セグメントの厚み方向を説明するための図である。 セグメント形状を決定する方法を説明ための図である。 生成されたセグメントの一例を示す図である。 セグメントに貼り付けるためのテクスチャの一例を示す図である。 1本の直線や曲線が複数本の毛を示している場合のテクスチャの一例を示す図である。 本発明の実施の形態にかかる描画方法の手順を示すフローチャートである。
符号の説明
1 粒子
2 太陽
10 描画装置
20 モデリング・シミュレーション手段
25 入力手段
26 表示手段
27 記録手段
30 レンダリング手段
31 セグメンテーション手段
32 描画要素ソート手段
33 影付け濃度算出手段
34 シーン描画手段
A1〜A3 線分
D 毛の長さ方向の単位ベクトル
K セグメントの厚み方向の単位ベクトル
L 視線方向または光線方向の単位ベクトル
S1〜S3 セグメント

Claims (7)

  1. コンピュータグラフィックスによってモデリングおよびシミュレーションされた、複数の毛状の描画対象および複数のポリゴン面からなる描画対象を、レンダリングする描画装置で実行される描画方法において、
    光源方向セグメンテーション手段が、それぞれの前記毛状の描画対象を分割し、分割した描画対象から光源方向に直交する面を有する光源セグメントを生成する光源方向セグメンテーション工程と、
    第1のソート手段が、前記光源セグメントおよび前記ポリゴン面を、光源との距離が近い順にソートする第1のソート工程と、
    第1の描画手段が、前記第1のソート工程でソートされた順に、前記光源セグメントおよび前記ポリゴン面を所定のα混合率でαブレンディングしながらフレームバッファに描画する第1の描画工程と、
    濃度算出手段が、前記フレームバッファへの描画結果に基づいて前記光源セグメントおよび前記ポリゴン面のそれぞれの影付け用の濃度を算出し保存する影付け濃度算出工程と、
    視点方向セグメンテーション手段が、それぞれの前記毛状の描画対象を分割し、分割した描画対象から視点方向に直交する面を有する視点セグメントを生成する視点方向セグメンテーション工程と、
    第2のソート手段が、前記視点セグメントおよび前記ポリゴン面を、視点との距離が遠い順にソートする第2のソート工程と、
    第2の描画手段が、前記第2のソート工程でのソート結果に基づいて、前記ポリゴン面を前記所定のα混合率でαブレンディングしながら前記影付け用の濃度で描画するとともに、前記視点セグメントを前記所定のα混合率でαブレンディングしながら所定のカラー値および前記影付け用の濃度で描画する第2の描画工程と、
    を含むことを特徴とする描画方法。
  2. 前記光源方向セグメンテーション工程および/または前記視点方向セグメンテーション工程は、前記複数の毛状の描画対象のそれぞれを、描画対象毎に同じ長さで分割することを特徴とする請求項1に記載の描画方法。
  3. 前記光源方向セグメンテーション工程は、前記毛状の描画対象の幅に基づいて、前記光源セグメントの前記光源方向に直交する面の幅を決定するとともに、一つの毛状の描画対象から分割されて生成される前記光源セグメント、隣り合う他の光源セグメントとは前記光源方向に直交する面の幅が重なるよう生成することを特徴とする請求項1または2に記載の描画方法。
  4. 前記視点方向セグメンテーション工程は、前記毛状の描画対象の幅に基づいて、前記視点セグメントの前記視点方向に直交する面の幅を決定するとともに、一つの毛状の描画対象から分割されて生成される前記視点セグメント、隣り合う他の視点セグメントとは前記視点方向に直交する面の幅が重なるよう生成することを特徴とする請求項1〜3のいずれか1つに記載の描画方法。
  5. 前記第2の描画工程は、前記第2のソート工程でソートされた順番に基づいて前記ポリゴン面を先に描画した後、前記第2のソート工程でソートされた順番に基づいて前記視点セグメントを描画することを特徴とする請求項1〜4のいずれか1つに記載の描画方法。
  6. 前記第2の描画工程は、前記第2のソート工程でソートされた順番に基づいて前記ポリゴン面および前記視点セグメントを描画することを特徴とする請求項1〜5のいずれか1つに記載の描画方法。
  7. コンピュータグラフィックスによってモデリングおよびシミュレーションされた、複数の毛状の描画対象および複数のポリゴン面からなる前記複数の毛状以外の描画対象を、レンダリングする描画装置において、
    前記複数の毛状の描画対象のそれぞれを分割し、分割したそれぞれの描画対象から光源方向に直交する面を有するセグメントを光源セグメントとして作成する光源方向セグメンテーション手段と、
    前記光源セグメントおよび前記ポリゴン面を、光源との距離が近い順にソートする第1のソート手段と、
    前記第1のソート手段でソートされた順に、前記光源セグメントおよび前記ポリゴン面を所定のα混合率でαブレンディングしながらフレームバッファに描画する第1の描画手段と、
    前記フレームバッファへの描画結果に基づいて前記光源セグメントおよび前記ポリゴン面のそれぞれの影付け用の濃度を算出し保存する影付け濃度算出手段と、
    前記複数の毛状の描画対象のそれぞれを分割し、分割したそれぞれの描画対象から視点方向に直交する面を有するセグメントを視点セグメントとして作成する視点方向セグメンテーション手段と、
    前記視点セグメントおよび前記ポリゴン面を、視点との距離が遠い順にソートする第2のソート手段と、
    前記第2のソート手段でのソート結果に基づいて、前記ポリゴン面を前記所定のα混合率でαブレンディングしながら前記影付け用の濃度で描画するとともに、前記視点セグメントを前記所定のα混合率でαブレンディングしながら所定のカラー値および前記影付け用の濃度で描画する第2の描画手段と、
    を含むことを特徴とする描画装置。
JP2004062745A 2004-03-05 2004-03-05 描画方法およびその装置 Expired - Fee Related JP4125685B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004062745A JP4125685B2 (ja) 2004-03-05 2004-03-05 描画方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004062745A JP4125685B2 (ja) 2004-03-05 2004-03-05 描画方法およびその装置

Publications (2)

Publication Number Publication Date
JP2005251000A JP2005251000A (ja) 2005-09-15
JP4125685B2 true JP4125685B2 (ja) 2008-07-30

Family

ID=35031407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004062745A Expired - Fee Related JP4125685B2 (ja) 2004-03-05 2004-03-05 描画方法およびその装置

Country Status (1)

Country Link
JP (1) JP4125685B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7118581B2 (ja) 2015-07-10 2022-08-16 ワグナー インターナショナル アクチエンゲゼルシャフト 二重ダイヤフラムポンプ

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4618055B2 (ja) 2005-08-31 2011-01-26 コニカミノルタビジネステクノロジーズ株式会社 製本装置及び画像形成システム
KR100914845B1 (ko) 2007-12-15 2009-09-02 한국전자통신연구원 다시점 영상 정보를 이용한 물체의 삼차원 형상복원 방법및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7118581B2 (ja) 2015-07-10 2022-08-16 ワグナー インターナショナル アクチエンゲゼルシャフト 二重ダイヤフラムポンプ

Also Published As

Publication number Publication date
JP2005251000A (ja) 2005-09-15

Similar Documents

Publication Publication Date Title
JP5299173B2 (ja) 画像処理装置および画像処理方法、並びにプログラム
CN107452048A (zh) 全局光照的计算方法及装置
JP5055214B2 (ja) 画像処理装置、画像処理方法
EP3282427B1 (en) Composing an animation scene in a computer-generated animation
CN106570926B (zh) 一种飞行视景仿真中高效的粒子云层绘制方法
CN109064556B (zh) 一种面向isr的地貌高精度仿真建模系统
Döllner Non-photorealistic 3D geovisualization
JP4125685B2 (ja) 描画方法およびその装置
Paquette An introduction to computer graphics for artists
CN104091318B (zh) 一种中国手语视频过渡帧的合成方法
Zeman Essential Skills for 3D Modeling, Rendering, and Animation
Hempe et al. Generation and rendering of interactive ground vegetation for real-time testing and validation of computer vision algorithms
De Gyves et al. Proximity queries for crowd simulation using truncated Voronoi diagrams
KR102638813B1 (ko) 헤어 래스터화를 위한 시스템들 및 방법들
JPH0154749B2 (ja)
US11455780B2 (en) Graphical user interface for creating data structures used for computing simulated surfaces for animation generation and other purpose
Modarresiyazdi Procedural 2D Cumulus Clouds Using Snaxels
Wang et al. IdiotPencil: an interactive system for generating pencil drawings from 3D polygonal models
Chen Interactive specification and acquisition of depth from single images
Lerner Computers: The computer graphics revolution: Slowly but surely, new software and hardware are making a reality of graphics specialists' dreams
Gee 3D in Photoshop: the ultimate guide for creative professionals
CN115601500A (zh) 一种动态、三维的数字水墨山水画的制作方法
Whelan Beyond Factual to Formulated Silhouettes
XIA Physically based animation and fast rendering of large-scale prairie
Smith Multi-camera: interactive rendering of abstract digital images

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080430

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080508

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees