JP2005243034A - 織物組織アニメーション表現のためのデータ構造、これを用いた3次元グラフィックデータのレンダリング装置及び方法 - Google Patents

織物組織アニメーション表現のためのデータ構造、これを用いた3次元グラフィックデータのレンダリング装置及び方法 Download PDF

Info

Publication number
JP2005243034A
JP2005243034A JP2005052505A JP2005052505A JP2005243034A JP 2005243034 A JP2005243034 A JP 2005243034A JP 2005052505 A JP2005052505 A JP 2005052505A JP 2005052505 A JP2005052505 A JP 2005052505A JP 2005243034 A JP2005243034 A JP 2005243034A
Authority
JP
Japan
Prior art keywords
node
fabric
field
fabric structure
data structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005052505A
Other languages
English (en)
Inventor
Jeonghwan Ahn
庭 桓 安
Do-Kyoon Kim
金 道 均
Sang-Oak Woo
禹 相 玉
Nikolay Yurievich Gerasimov
ユーリビッチ ゲラシモフ ニコライ
Sergey Urievich Belyaev
ユーリビッチ ベルヤエフ セルゲイ
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020040015607A external-priority patent/KR100571838B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005243034A publication Critical patent/JP2005243034A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/16Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】 織物組織アニメーション表現のためのデータ構造、及びそれを利用した3次元グラフィックデータのレンダリング装置及び方法を提供する。
【解決手段】 織物組織の平面メッシュの垂直軸に沿ってグラニュレーションを定義する垂直グラニュレーションフィールドと、織物組織の平面メッシュの水平軸に沿ってグラニュレーションを定義する水平グラニュレーションフィールドと、織物組織の平面メッシュの高さを定義する高さフィールドと、織物組織の平面メッシュの幅を定義する幅フィールドと、織物組織の移動と関連して作用する外力及び内力、力による移動位置、及び織物組織と衝突する客体がある場合、衝突による移動位置の計算に使われる物理的特性値を定義する物理的特性ノードと、を含むことを特徴とする。
【選択図】 図3

Description

本発明は3次元グラフィックデータのレンダリングに係り、特に布のような織物組織(cloth)を持つ物体を自然にリアルタイムでアニメーション表現可能にする織物組織アニメーション表現のためのデータ構造、及びそれを利用した3次元グラフィックデータのレンダリング装置及び方法に関する。
3次元グラフィックデータを保存しているファイルからデータを判読してそれを画面に出力するためには、判読した3次元グラフィックデータの意味を解析し、これを画面に出力するデータを保存する場所であるビデオメモリに書き込む装置が必要である。通常このような装置を3次元グラフィックレンダリングエンジンという。
一般に、3次元グラフィックデータは、3次元空間上に位置する物体のジオメトリー情報、物体の材質情報、光源の位置と特性に関する情報、経時的な情報の変化情報などを含む。物体のジオメトリー情報には物体を構成する3次元頂点の位置、この頂点の連結情報などがあり、物体等の材質情報には色、表面の光反射度などがある。このような情報は、ユーザーが容易に3次元グラフィックデータを生成、修正できるように直観的または論理的に理解しやすい構造で表現されるが、通常はこれを場面グラフといい、非循環ツリー構造となっている。場面グラフは、物体のジオメトリー情報や材質情報などを含むノードとそれらを垂直的に連結して階層化をなす連結情報とで構成される。すなわち、ノードは場面グラフの基礎的な構成要素である。このようなノードの具体的な特性を定義する部分がフィールドである。
最近になって、3次元グラフィックデータをレンダリングするプロセッサーが高性能となり、これに伴い自然物をさらに高画質で現実感のあるように表現したいという要求が増加している。既存の3次元グラフィック技術は単純な3次元モデルを表してアニメーション表現するものであったが、最近では水、風、煙などの自然界現象を表現し、人の髪の毛、服などの動きを表現して仮想環境に合う演出が自在となり、開発者の想像力が容易に表現可能になってきている。
しかし、布のような織物組織の動きを表現する時は、織物組織が持っている内部の固有特性と実際の自然現象で発生する重力、風、加速度、空気抵抗など外部から加えられる物理的な力を考慮せねばならない。また、織物組織が他の外部物体と衝突した場合にどんな影響を受けてどのように動くかも考慮せねばならない。
近来このような物理法則を鑑みたアニメーション表現方法が多く提案されたが、各方法はそれぞれのフォーマットで作られており、汎用的な3次元グラフィックモデルのレンダリング及びアニメーション表現が不可能であった。また、ユーザーが複雑な物理的特性を鑑みて製作せねばならいために著作が難しく、それぞれのフォーマットで作られているために他のレンダリングや著作道具とは互換性がない。また、一度作ったモデルを再び使用するためには新たに製作せねばならないという再使用の問題があった。
本発明が解決しようとする技術的課題は、VRML(Virtual Reality Modeling Language:仮想現実具現言語)、MPEG(Moving Picture Expert Group:動画像専門家グループ)と3D MAX、Mayaなど一般の商用プログラムで、織物組織の自然かつリアルタイムなアニメーションになるように必要な値についてのノード及びフィールドを定義する織物組織アニメーション表現のためのデータ構造を提供することである。
本発明が解決しようとする他の技術的課題は、織物組織アニメーション表現のためのデータ構造を利用して3次元織物組織モデルを2次元画像にレンダリングする3次元グラフィックデータのレンダリング装置及び方法を提供することである。
前記技術的課題を解決するために、本発明による織物組織アニメーション表現のためのデータ構造は、織物組織の平面メッシュの垂直軸に沿ってグラニュレーションを定義する垂直グラニュレーションフィールドと、前記織物組織の平面メッシュの水平軸に沿ってグラニュレーションを定義する水平グラニュレーションフィールドと、前記織物組織の平面メッシュの高さを定義する高さフィールドと、前記織物組織の平面メッシュの幅を定義する幅フィールドと、前記織物組織の移動と関連して作用する外力及び内力、前記力による移動位置、及び前記織物組織と衝突する客体がある場合、衝突による移動位置の計算に使われる物理的特性値を定義する物理的特性ノードと、を含むことを特徴とする。
前記物理的特性ノードは、前記織物組織に作用する前記外力を計算するために、重力の計算に使われる重力加速度を定義する重力加速度フィールドと、空気抵抗力の計算に使われる風速を定義する風速フィールドと、外部緩衝力の計算に使われる緩衝係数を定義する緩衝係数フィールドと、前記空気抵抗力の計算に使われる抵抗係数を定義する空気抵抗係数フィールドと、を含むことが望ましい。
また、前記物理的特性ノードは、前記織物組織に作用する前記内力を計算するために、前記織物組織の平面メッシュを構成する格子パーチクルを連結しているバネの最大伸長度を定義する最大伸長度フィールドと、現在位置の格子パーチクルと上下左右に隣接する格子パーチクルとを連結するバネが持つ抵抗係数を定義する平面力抵抗係数フィールドと、前記現在位置の格子パーチクルと対角線方向に隣接する格子パーチクルとを連結するバネが持つ抵抗係数を定義する移動変形抵抗係数フィールドと、前記現在位置の格子パーチクルと上下左右に一つ置きに隣接する格子パーチクルとを連結するバネが持つ抵抗係数を定義する捻れ抵抗係数フィールドと、を含むことが望ましい。
また、前記物理的特性ノードは、前記力による移動位置を計算するための加速度の計算に使われる格子パーチクルの逆質量を定義する逆質量フィールドを含むことが望ましい。前記物理的特性ノードは、前記織物組織の移動位置の計算に使われる時間間隔を定義する時間間隔フィールドを含むことが望ましい。
前記データ構造は、前記織物組織の平面メッシュのいずれか1方向のエッジが固定されていることを定義する固定エッジフィールドをさらに含みうる。また、前記データ構造は、前記織物組織に客体が衝突する場合、衝突による前記織物組織の移動位置を計算して前記客体の表現に使われる衝突ノードをさらに含むことができる。
前記衝突ノードは、前記客体が前記織物組織に衝突する点の移動速度の計算に使われる摩擦係数フィールドと、前記織物組織に衝突する仮想の客体を定義するキネマチックスノードと、前記織物組織に衝突する前記客体を実際に表示するのに使われる可視型ノードと、を含むことが望ましい。
前記他の技術的課題を解決するために、本発明による3次元グラフィックデータのレンダリング装置は、前記織物組織アニメーション表現のためのデータ構造を持つ3次元グラフィックデータからノードを判別し、かつフィールドを解析して構成された場面グラフを出力する解析器と、前記場面グラフのノード及びフィールドから織物組織アニメーションのための物理量を計算し、計算された物理量を含む場面グラフを出力する計算器と、前記計算された物理量を含む場面グラフを2次元画像に変換して出力する変換器と、を含むことを特徴とする。
前記計算器は、前記場面グラフで織物ノードを判別する織物判別部と、前記ノード及びフィールド値によって前記織物メッシュを生成する織物メッシュ生成部と、前記織物組織に作用する前記外力、前記内力、及び前記外力及び前記内力による移動位置をそれぞれ表す物理量を計算する物理量計算部と、前記物理量計算部により計算された前記移動位置を前記織物メッシュに適用して前記織物メッシュの構造を変形し、前記物理量を含む場面グラフを出力する織物メッシュ変形部と、を含むことを特徴とする。
前記衝突検査部は、前記織物組織が、前記キネマチックスノードにより定義された前記仮想の客体と衝突するかどうかを検査することを特徴とする。また、前記衝突検査部は、前記織物組織が前記キネマチックスノードにより定義された前記仮想の客体と衝突すれば、衝突する点の位置を検出することを特徴とする。
前記他の技術的課題を解決するために、本発明による3次元グラフィックデータのレンダリング方法は、(a)前述した織物組織アニメーション表現のためのデータ構造を持つ3次元グラフィックデータからノードを判別し、かつフィールドを解析して構成された場面グラフを出力する段階と、(b)前記場面グラフのノード及びフィールドから織物組織アニメーションのための物理量を計算し、計算された物理量を含む場面グラフを出力する段階と、(c)前記計算された物理量を含む場面グラフを2次元画像に変換して出力する段階と、を含むことを特徴とする。
本発明で定義したノードは格子形態の織物組織を3次元グラフィックで生成し、織物組織が内部的に持っている特徴を記述できる。また、織物組織に加えれる重力、風、加速度、空気抵抗などの力と外部剛体が衝突した時に加えらる力とを鑑みて実際のような軟らかい動きを表現することが可能である。また、ノードにある複数のフィールド値を変えるだけで全体的なアニメーションを表現することが可能であるので、誰でも容易にノード及びフィールド値を変えるだけで所望のアニメーションを製作できる。また、フィールド値だけを変えればよいので、いままで使われた補間回路アニメーションに比べてデータ量が少ないという長所もある。特に、3次元グラフィックの表現において標準となっているVRMLやMPEG−4などは、このような織物組織についてのアニメーションを支援していない。しかし、本発明ではこのような標準に合わせてノードを表現することによって互換性を支援し、誰でも容易にノード及びフィールド値のみ変えるだけで所望のアニメーションを製作できる。
以下、添付された図面を参照して本発明の望ましい実施例を詳細に説明する。
まず、織物組織の物理的モデルについて説明する。
図1は織物組織のジオメトリー構造を示したものであり、布のような織物組織物体をモデリングするためには、X.Provotの論文、「Deformation constraints in a mass-spring model to describe rigid cloth behavior」、Grapics Interface’95,pp.147〜158に表されているように、点質量を持つパーチクルで構成された四角形格子構造を使用する。それぞれの点質量は次のように3つの相異なる形態のバネにより隣接した点質量と連結される。
第1に、点質量(i,j)と点質量(i+1,j)、(i−1,j)、(i,j+1)、(i,j−1)とを連結するバネ(図1の最も太い実線)は布の骨格構造を指定する。すなわち、このバネは布の平面内での引張力に抵抗する。
第2に、点質量(i,j)と点質量(i+1,j+1)、(i−1,j+1)、(i+1,j−1)、(i−1,j−1)とを連結するバネ(図1の中間太さの実線)は布の平面内での移動変形に抵抗する。
第3に、点質量(i,j)と点質量(i+2、j)、(i−2、j)、(i,j+2)、(i,j−2)とを連結するバネ(図1の最も薄い実線)は布の平面外での捻れに抵抗する。
次いで、それぞれの格子パーチクルに作用する力について説明する。
各格子パーチクルの動きは、数式(1)のようにニュートンの第2運動法則により定義される。
ここで、 は(i,j)格子パーチクルに属している点質量、Kijklは格子パーチクルの空間位置、Fijはこのパーチクルに加えられるあらゆる力の和である。
このような力は、内部で発生する力及び外部から加えられる力より構成される。内部で発生する力はバネによって隣接の点質量との連結により定義され、外部から加えられる力は重力、空気抵抗、緩衝作用により定義される。
まず、内力を説明する。
(k,l)インデックスを持つ格子パーチクルの集合をT(i,j)とすれば、図1に示すように、(k,l)インデックスでの点質量は、(i,j)インデックスの点質量とバネで連結されている。この場合、(i,j)インデックスの点質量に影響を与える内力
は次のように計算できる。
ここで、、Kijklは(i,j)と(k,l)でのパーチクル(点質量を含む)とを連結するバネの強度、、Lijklは平衡状態でのバネの長さ、、rijは空間上で(i,j)インデックスの点質量の位置ベクトル、、rklは(k,l)インデックスの点質量の位置ベクトルである。
次いで、外力を説明すれば、外力は重力、外部緩衝力、空気抵抗力及び相対的加速度による力に大別できる。
重力
は次の数式(3)のように定義される。
ここで、mijは格子パーチクルの質量、gは重力加速度である。
外部緩衝力
は次の数式(4)のように定義される。
ここで、μは緩衝係数、vij≡rijは該当格子パーチクル(i,j)の速度である。
空気抵抗力
は次の数式(5)のように定義される。
ここで、cは抵抗係数、nijは該当格子パーチクル(i,j)での法線ベクトル、uwは風の速度である。
相対加速度による力
は次の数式(6)のように定義される。
ここで、a0は布の一部の動きが鑑みられた座標系での線形加速度、ω及びεはそれによる角速度及び角加速度である。
内力及び外力を合わせた全体力Fijkl(t)は次の数式(7)の通りである。
格子パーチクルの移動位置を計算するために、ここでは基本的な数値解析的方法であるオイラー法を使用する。時間tで全ての格子パーチクルの空間位置rij及び速度vijが分かると仮定すれば、短時間経過後、すなわち、時間t+τで全ての格子パーチクルの位置及び速度を次のような式により計算できる。
ここで、rij及びvijは、時間tで微分可能であると仮定した時に展開されたテイラー級数の第1項及び第2項であるので、t+τにおける近似値を求めることができる。同様に数式(9)もt+τでの近似値を求めたものである。この式に必要な該当格子点質量での加速度は次のように求めることができる。
次いで、織物組織と他の物体との衝突について説明する。
織物組織が次のような物体(所定の形態の剛体:球形(sphear)、円錐台(Ttruncated Cone;シリンダーを含む)、正六面体などを想定できる)と衝突すると仮定する。
この時、次のような2つの機能を行う必要がある。第1に、衝突如何を検査するために織物組織のいずれか一つのパーチクルが衝突する物体中に位置しているかどうかを検出する必要がある。第2に、衝突による移動位置を計算するために織物組織のいずれか一つのパーチクルが衝突する物体の表面に投影される点を探す必要がある。
このような方法によれば、侵入モーメントを検出しなくても織物組織のパーチクルの移動位置を計算できる。
織物組織のパーチクルの位置yijが衝突する物体中にある場合、速度vijを次のように再計算する。
ここで、vt及びvnはパーチクルの位置yijでの接線速度及び法線速度成分、kfは侵入点での摩擦係数である。この時、必要な値(速度、物体表面に対する法線、摩擦係数)を求めるために物体の表面に対してパーチクル位置を投影し、この投影位置で侵入が発生すると仮定する。
織物組織の全てのパーチクルに対して、オイラー方法によって時間段階での全てのパーチクルの位置を求めれば、時間t+τでの織物組織のパーチクルの位置yijは次のように求めることができる。
一方、織物組織アニメーションを表現するためのデータ構造は、ClothAnimノード、ClothAnimPhysノード及びcollidersノードと定義できる。
図1を参照して説明したように、織物組織は点質量を持つパーチクルで構成された四角形格子構造を使用してモデリングし、各格子パーチクルは内力及び外力に影響されて動く。また、球形や正六面体の形態を持つ剛体との衝突に反応して動くこともある。図2は、織物組織を「x−z」座標系で三角形メッシュで表したものである。
ClothAnimノードは、図2のメッシュ構造の織物組織を表現する格子パーチクルに対するフィールド値と格子パーチクルに加えられる内力、外力、衝突と関連したノード及びフィールド値で構成される。
このようなClothAnimノードに使われるノード及びフィールド値の一例を図3に示す。
各ClothAnimノードに使われるフィールドは、numHSections、numWSections、height及びwidthフィールド、ClothAnimPhysノード、constrainフィールド、collidersノードを含んでいる。
numHSectionsフィールドは「z」軸に沿って平面メッシュのグラニュレーションを定義し、numWSectionsフィールドは「x」軸に沿って平面メッシュのグラニュレーションを定義する。図2でnumHSectionsは3、numWSectionsは5である。heightフィールドは「z」軸に沿って平面メッシュの高さを定義する。widthフィールドは「x」軸に沿って平面メッシュの幅を定義する。
numHSections、numWSections、height及びwidthフィールドにより図2のような織物組織の平面メッシュを構成し、heightフィールド値をnumHSectionsフィールド値で割った値、及びwidthフィールド値をnumWSectionsフィールド値で割った値は、内力を求めるための数式(2)で初期状態のLijklである。
ClothAnimPhysノードは、与えられた織物組織についての物理的特性を定義する。このノードは相異なる複数のClothAnimノード間に共有されることもある。図3でClothAnimPhysがNULLである場合にはこのノードに対する値が定義されておらず、内部的にあらかじめ定義された値を使用するという意味である。ClothAnimPhysノードのフィールドについては後述する。
constrainフィールドは「left(左)」、「right(右)」、「top(上)」、「bottom(下)」のストリングのうち一つの値を持つ。このフィールドは、四角形織物組織のメッシュで固定されるエッジを定義する。すなわち、「left(左)」と設定すれば、織物組織のメッシュで左側エッジは固定されて動かず、残りのエッジのみ動くことができる。このconstrainフィールドは、旗が旗竿に固定されてはためくようなアニメーションに使用できる。しかし、図3のように、constrainにストリングが定義されていなければ、固定されるエッジなしにあらゆるエッジが動くことができるということを意味している。
collidersノードは衝突検査時に考慮されねばならない「Kinematics」ノードを持っており、これについては後述する。
前述したように、織物組織の動きは格子パーチクル間の相互内部的な力と外部から加えられる重力、空気抵抗、緩衝作用などの外力により定義される。ClothAnimPhysノードはこのような物理的な特性値を持っている。
このようなClothAnimPhysノードに使われるフィールド値の一例を図4に示す。ClothAnimPhysノードは、gravityフィールド、windフィールド、timeStepフィールド、dissipativeCoeffフィールド、nodeMassInvフィールド、airResistCoeffフィールド、maxElongationフィールド、stiffnessStructHフィールド、stiffnessStructWフィールド、stiffnessShearフィールド、stiffnessBendHフィールド及びstiffnessBendWフィールドより構成されている。このうち、gravityフィールドは重力加速度を定義し、重力の計算に使われる。windフィールドは風の速度を定義し、空気抵抗力の計算に使われる。timeStepフィールドはオイラー方法を解く時に時間間隔τを定義し、格子パーチクルの位置及び速度の計算に使われる。dissipativeCoeffフィールドは外部緩衝力を計算するために使われる緩衝係数μを定義する。nodeMassInvフィールドは格子パーチクルでの格子の逆質量m-1を定義し、内力及び外力による加速度の計算に使われる。織物組織の密度が一定であると仮定すれば、各格子の質量は同一であるといえる。airResistCoeffフィールドは空気抵抗を計算するために使用する抵抗係数cを定義する。maxElongationフィールドは格子パーチクルを連結しているバネの最大伸長度を定義する。バネが過度に伸びた場合には、強制に減る。stiffnessStructHフィールドは「z」軸と同一軸線上にあるバネの強度を定義する。この値は布の平面内での引張る力に抵抗する。stiffnessStructWフィールドは「x」軸と同一軸線上にあるバネの強度を定義する。この値は布の平面内での引張る力に抵抗する。stiffnessShearフィールドは対角線方向にパーチクルを連結するバネの強度を定義する。この値は布の平面内での移動変形に対応する。stiffnessBendHフィールドは、「z」軸線上に一つ置きに隣接するパーチクルを連結するバネの強度を定義する。この値は布の平面外からの捻れ力に抵抗する。stiffnessBendWフィールドは「x」軸線上に一つ置きに隣接するパーチクルを連結するバネの強度を定義する。この値は布の平面外での捻れ力に抵抗する。stiffnessStructHフィールド、stiffnessStructWフィールド、stiffnessShearフィールド、stiffnessBendHフィールド及びstiffnessBendWフィールドは内力を求めるのに使われるKijklである。
collidersノードはClothAnimノードの衝突の定義に使用する。このようなcollidersノード及びフィールド値の一例は図5Aに図示されている。collidersノードは、frictionCoeffフィールド、kinematicsノード及びvisibleShapeノードより構成される。このうち、frictionCoeffフィールドは衝突応答過程で使用する摩擦係数kfを定義する。
kinematicsノードはClothAnimノードと衝突する仮想の客体を定義するために使われる。kinematicsノードの定義方法には2つの方法がある。
第1の方法では、kinematicsノードのDEF名称をClothAnimノードにあるcollidersノードのフィールドで定義できる。このフィールドでkinematicsノードは、VRML標準に既に定義された2個のgeometryノード(Box、Sphere)、及びVRML標準には定義されていないgeometryノード(TruncatedCone)を持つことができる。「Sphere」の場合、球の直径が定義されねばならず、VRML標準で使用するSphereノードと同じ形態である。「Box」の場合、大きさを定義しなけれならず、VRML標準で使用するBoxノードと同じ形態である。「TruncatedCone」の場合、高さ、上面半径及び下面半径を定義しなければならない。もし、上面半径と下面半径とが同じであれば円筒形態となり、上面半径が0であるか、下面半径が0であれば、円錐形態であると定義される。TruncatedConeノードの一例を図5Bに示す。
他の方法では、kinematicsノードはClothAnimノードと衝突する仮想の客体を定義するためのClothAnimModelのフィールド値を持つことができる。このようなkinematicsノードの一例を図5Cに示す。ClothAnimModelは前記geometryノードと同じ「Sphere」、「Box」、「TruncatedCone」の3つのプリミティブを持つことができる。
visibleShapeノードは、実際織物組織と衝突する客体を画面に示すために使用し、VRMLで定義したShapeノードを持つ。
次いで、図6ないし図13を参照して本発明によるレンダリング装置及び方法を詳細に説明する。
図6は、本発明によるレンダリング装置のブロック図を示したものであり、解析器610、計算器620及び変換器630から主として構成されている。
前記解析器610は、前述した織物組織アニメーション表現のためのデータ構造を持つ3次元グラフィックデータINからノードを判別し、フィールドを解析して構成された場面グラフを出力する。
前記計算器620は、場面グラフのノード及びフィールドから織物組織アニメーションのための物理量を計算し、計算された物理量を含む場面グラフを出力する。
前記変換器630は、前記計算された物理量を含む場面グラフを2次元画像OUTに変換して出力する。
図7は、図6において解析器610のブロック図を示したものであり、ノード判別部710、フィールド解析部720、文字列及びビット列判別部730及び場面グラフ構成部740から主として構成されている。解析器610の各構成要素の機能は図10とともに説明する。図10は、解析器610で行われる3次元グラフィックデータの解析過程をフローチャートで示したものである。
ノード判別部710は、3次元グラフィックデータIN1からノードを判別する(S1000段階)。この時、文字列及びビット列判別部730は、ノード判別部710から入力されたノードの文字列を解析してノード判別部710に出力する。判別されたノードによって、3次元グラフィックデータが物体に関するジオメトリー情報であるかどうか、物体の材質に関する情報であるかどうかが識別できる。次いで、ノード判別部710で解析されたノードにフィールドが充填される空間を生成する(S1010段階)。この時、文字列及びビット列判別部730は、フィールド解析部720から入力されたフィールドの文字列または2進ビット列を解析してその結果をフィールド解析部720に出力する。フィールド解析部720は、生成されたフィールドが充填される空間に3次元グラフィックデータを解析してフィールド値を充填する(S1020段階)。場面グラフ構成部740は、解析されたフィールド値を持つノードを挿入して構成された場面グラフOUT1を出力する(S1030段階)。この場面グラフは織物組織を構成する格子パーチクルの位置、この格子パーチクルの連結情報などの幾何情報、織物組織の材質に関する情報を含むノードを持っている。次いで、3次元グラフィックデータにさらに解析する必要があるノードがあるかどうかを判定する(S1040段階)。3次元グラフィックデータにさらに解析必要があるノードがあれば、S1000段階に戻って解析過程を反復し、さらに解析必要があるノードがなければ、解析過程を終了する。
図8は、図6において計算器620のブロック図を示したものであり、織物判別部810、織物メッシュ生成部820、衝突個体判別部830、衝突検査部840、物理量計算部850及び織物メッシュ変形部860から主として構成されている。計算器620の各構成要素の機能は図11とともに説明する。図11は、計算器620で行われる場面グラフの計算過程をフローチャートで示したものである。
織物判別部810は、入力された場面グラフIN2で織物ノードを判別する(S1100段階)。織物メッシュ生成部820は、解析器610で解析されたノード及びフィールド値によって織物メッシュを生成する(S1110段階)。次いで、衝突客体判別部830は、入力された場面グラフIN2で織物と衝突する客体の有無、すなわち、collidersノードの有無を判定する(S1120段階)。織物と衝突する客体がなければ、S1150段階に進む。
S1120段階で織物と衝突する客体があれば、collidersノードの幾何情報を通じて衝突する客体を判別する(S1130段階)。衝突検査部840は、衝突する客体が織物と衝突するかどうかを検査する(S1140段階)。kinematicsノードにより定義された仮想の客体が織物と衝突するかどうかを検査する。この時、仮想の客体が織物と衝突すれば、衝突する点の位置を検出する。
その後、物理量計算部850は、織物と衝突する客体がある場合には内力、外力、この力による移動位置、衝突による移動位置などの物理量を計算し、織物と衝突する客体がない場合には内力、外力、この力による移動位置などの物理量を計算する(S1150段階)。この時、計算される力及び移動位置は前述した通りである。織物メッシュ変形部860は、計算された物理量野に基づいて織物メッシュの構造を変形し、計算された物理量を含む場面グラフを出力する(S1160段階)。その後、織物と衝突する客体がさらにあるかどうかを判定する(S1170段階)。織物と衝突する客体がさらにあれば、S1130段階に戻る。織物と衝突する客体がなければ、さらに計算する必要のあるノードの有無を判定する(S1180段階)。計算する必要のあるノードがあれば、S1100段階に戻る。計算する必要のあるノードがなければ、場面グラフの計算過程を終了する。
図9は、図6において変換器630のブロック図を示したものであり、材質情報判読部910及び客体変換部920から主として構成されている。変換器630の各構成要素の機能は図12とともに説明する。図12は、場面グラフを2次元画像に変換する過程をフローチャートで表したものである。
材質情報判読部910は、計算器620から入力された場面グラフIN3でノードの材質情報を判読する(S1200段階)。例えば、ノードの材質情報にはテクスチャー、透明度などがある。客体変換部910は、判読された材質情報を利用して計算された物理量に関する情報を持つ場面グラフを、適切な座標変換を通じて2次元画像OUT3に変換して出力する(S1210段階)。次いで、変換する必要のあるノードがさらにあるかどうかを判定する(S1220段階)。変換する必要のあるノードがさらにあれば、S1200段階に戻って変換過程を反復する。変換する必要のあるノードがなければ、変換過程を終了する。
図13は、本発明によって定義されたノード及びフィールドを利用してレンダリング処理した一例を表したものである。図14は、従来の補間回路ノードを利用してレンダリング処理した一例を表したものである。図13の一例を表現するためのファイルの大きさは1,568バイトであり、図14の一例を表現するためのファイルの大きさは1,375,061バイトである。したがって、本発明によってレンダリング処理した方法が、約1/876程度でファイルサイズが小さい。
図15は、本発明によるレンダリング方法を適用して球形客体が織物組織に衝突する場合のアニメーション結果の一例を表したものである。図15に示すように、球形客体が織物組織に衝突した時に織物組織が「自然にもみくちゃになる」様子を見ることができる。
図16は、図15のアニメーションを具現するために使用したcollidersノードを表したものである。衝突応答過程中に使われる摩擦係数を定義するためにfrictionCoeffを持っている。また、kinematicsノードはSphereというgeometryノードを持ってもよく、織物ノードと衝突する客体を定義するものである。visibleShapeノードはAppearanceというappearanceノード及びSphereというgeometryノードを持っている。ここで、appearanceノードは外形に関する情報を持っている。materialノードは衝突客体の色相情報を持っており、textureノードのurlフィールドにイメージの経路を書き込めばイメージが適用される。
図17は、図15のアニメーションを具現するために図16のcollidersノードを使用したClothAnimノードを表したものである。ClothAnimノードは、collidersノードを呼び出して織物組織のアニメーション表示を行う。
本発明はコンピュータ可読記録媒体にコンピュータ(情報処理機能を持つ装置をいずれも含む)可読コードとして具現できる。コンピュータ可読記録媒体は、コンピュータシステムによって読取られるデータが保存されるあらゆる記録装置を含む。コンピュータ可読記録装置の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ保存装置などがある。
本発明は図面に図示された実施例を参照して説明されたが、これは例示的なものに過ぎず、当業者ならば本発明の範囲を逸脱しないながらも多様な変形及び均等な他の実施例が可能であるという点を理解できる。したがって、本発明の真の技術的保護範囲は特許請求の範囲の技術的思想により決まらねばならない。
本発明は、VRML、MPEGと3D MAX、Mayaなど一般の商用プログラムで好適に利用される。
織物組織のジオメトリー構造を示す図面である。 織物組織を「x−z」座標系で三角形メッシュで示す図面である。 本発明によるClothAnimノードに使われるノード及びフィールド値の一例を示す図面である。 ClothAnimPhyノード及びフィールド値の一例を示す図面である。 collidersノード及びフィールド値の一例を示す図面である。 TruncatedConeノード及びフィールド値の一例を示す図面である。 kinematicsノードの一例を図5Cに示す図面である。 本発明による3次元グラフィックデータのレンダリング装置の構成を示すブロック図である。 図6における解析器の細部ブロック図である。 図6における計算器の細部ブロック図である。 図6における変換器の細部ブロック図である。 本発明によるレンダリング方法において、3次元グラフィックデータの解析過程を示すフローチャートである。 本発明によるレンダリング方法において、計算過程を示すフローチャートである。 本発明によるレンダリング方法において、計算された物理量を含む場面グラフを2次元画像に変換する過程を示すフローチャートである。 本発明によって定義されたノード及びフィールドを利用してレンダリング処理した例を示す図面である。 従来の補間回路ノードを利用してレンダリング処理した例を示す図面である。 本発明によるレンダリング方法を適用して球形客体が織物に衝突した場合のアニメーション結果の一例を示す図面である。 図15を具現するために使われたcollidersノードを示す図面である。 図15を具現するために使われたClothAnimノードを示す図面である。

Claims (20)

  1. 織物組織の平面メッシュの垂直軸に沿ってグラニュレーションを定義する垂直グラニュレーションフィールドと、
    前記織物組織の平面メッシュの水平軸に沿ってグラニュレーションを定義する水平グラニュレーションフィールドと、
    前記織物組織の平面メッシュの高さを定義する高さフィールドと、
    前記織物組織の平面メッシュの幅を定義する幅フィールドと、
    前記織物組織の移動と関連して作用する外力及び内力、前記力による移動位置、及び前記織物組織と衝突する客体がある場合、衝突による移動位置の計算に使われる物理的特性値を定義する物理的特性ノードと、を含むことを特徴とする織物組織アニメーション表現のためのデータ構造。
  2. 前記物理的特性ノードは、
    前記織物組織に作用する前記外力を計算するために、
    重力の計算に使われる重力加速度を定義する重力加速度フィールドと、
    空気抵抗力の計算に使われる風速を定義する風速フィールドと、
    外部緩衝力の計算に使われる緩衝係数を定義する緩衝係数フィールドと、
    前記空気抵抗力の計算に使われる抵抗係数を定義する空気抵抗係数フィールドと、を含むことを特徴とする請求項1に記載の織物組織アニメーション表現のためのデータ構造。
  3. 前記物理的特性ノードは、
    前記織物組織に作用する前記内力を計算するために、
    前記織物組織の平面メッシュを構成する格子パーチクルを連結しているバネの最大伸長度を定義する最大伸長度フィールドと、
    現在位置の格子パーチクルと隣接する格子パーチクルとを連結するバネが持つ抵抗係数を定義する平面力抵抗係数フィールドと、
    前記現在位置の格子パーチクルと対角線方向に隣接する格子パーチクルとを連結するバネが持つ抵抗係数を定義する移動変形抵抗係数フィールドと、
    前記現在位置の格子パーチクルと上下左右に一つ置きに隣接する格子パーチクルとを連結するバネが持つ抵抗係数を定義する捻れ抵抗係数フィールドと、を含むことを特徴とする請求項1または請求項2に記載の織物組織アニメーション表現のためのデータ構造。
  4. 前記物理的特性ノードは、
    前記力による移動位置を計算するための加速度の計算に使われる格子パーチクルの逆質量を定義する逆質量フィールドを含むことを特徴とする請求項1または請求項2に記載の織物組織アニメーション表現のためのデータ構造。
  5. 前記物理的特性ノードは、
    前記織物組織の移動位置の計算に使われる時間間隔を定義する時間間隔フィールドを含むことを特徴とする請求項1または請求項2に記載の織物組織アニメーション表現のためのデータ構造。
  6. 前記データ構造は、
    前記織物組織の平面メッシュのいずれか1方向のエッジが固定されていることを定義する固定エッジフィールドをさらに含むことを特徴とする請求項1ないし請求項5のいずれか1項に記載の織物組織アニメーション表現のためのデータ構造。
  7. 前記データ構造は、
    前記織物組織に客体が衝突する場合、衝突による前記織物組織の移動位置を計算して前記客体の表現に使われる衝突ノードをさらに含むことを特徴とする請求項1ないし請求項6のいずれか1項に記載の織物組織アニメーション表現のためのデータ構造。
  8. 前記衝突ノードは、
    前記客体が前記織物組織に衝突する点の移動速度の計算に使われる摩擦係数フィールドと、
    前記織物組織に衝突する仮想の客体を定義するキネマチックスノードと、
    前記織物組織に衝突する前記客体を実際に表示するのに使われる可視型ノードと、を含むことを特徴とする請求項7に記載の織物組織アニメーション表現のためのデータ構造。
  9. 前記キネマチックスノードはジオメトリーノードを持ち、前記ジオメトリーノードはボックスノード、球形ノード及び円錐台ノードのうち少なくとも一つ以上のノードであることを特徴とする請求項7または請求項8に記載の織物組織アニメーション表現のためのデータ構造。
  10. 請求項1ないし請求項9のいずれか1項に記載のデータ構造を持つ3次元グラフィックデータからノードを判別し、かつフィールドを解析して構成された場面グラフを出力する解析器と、
    前記場面グラフのノード及びフィールドから織物組織アニメーションのための物理量を計算し、計算された物理量を含む場面グラフを出力する計算器と、
    前記計算された物理量を含む場面グラフを2次元画像に変換して出力する変換器と、を含むことを特徴とする3次元グラフィックデータのレンダリング装置。
  11. 前記計算器は、
    前記場面グラフで織物ノードを判別する織物判別部と、
    前記ノード及びフィールド値によって前記織物メッシュを生成する織物メッシュ生成部と、
    前記織物組織に作用する前記外力、前記内力、及び前記外力及び前記内力による移動位置をそれぞれ表す物理量を計算する物理量計算部と、
    前記物理量計算部により計算された前記移動位置を前記織物メッシュに適用して前記織物メッシュの構造を変形し、前記物理量を含む場面グラフを出力する織物メッシュ変形部と、を含むことを特徴とする請求項10に記載の3次元グラフィックデータのレンダリング装置。
  12. 前記計算器は、
    前記織物組織と衝突する客体がある場合、前記衝突する客体を判別する衝突客体判別部と、
    前記織物組織と衝突する客体との衝突如何を検査する衝突検査部と、をさらに含み、
    前記物理量計算部は、前記織物組織が前記客体との衝突により移動した位置を計算することを特徴とする請求項11に記載の3次元グラフィックデータのレンダリング装置。
  13. 前記衝突検査部は、
    前記織物組織が、前記キネマチックスノードにより定義された前記仮想の客体と衝突するかどうかを検査することを特徴とする請求項12に記載の3次元グラフィックデータのレンダリング装置。
  14. 前記衝突検査部は、
    前記織物組織が前記キネマチックスノードにより定義された前記仮想の客体と衝突すれば、衝突する点の位置を検出することを特徴とする請求項13に記載の3次元グラフィックデータのレンダリング装置。
  15. (a)請求項1ないし請求項9のいずれか1項に記載のデータ構造を持つ3次元グラフィックデータからノードを判別し、かつフィールドを解析して構成された場面グラフを出力する段階と、
    (b)前記場面グラフのノード及びフィールドから織物組織アニメーションのための物理量を計算し、計算された物理量を含む場面グラフを出力する段階と、
    (c)前記計算された物理量を含む場面グラフを2次元画像に変換して出力する段階と、を含むことを特徴とする3次元グラフィックデータのレンダリング方法。
  16. 前記(b)段階は、
    (b1)前記場面グラフで織物ノードを判別する段階と、
    (b2)前記ノード及びフィールド値によって織物メッシュを生成する段階と、
    (b3)前記織物組織に作用する前記外力、前記内力、及び前記外力及び前記内力による前記織物組織の移動位置を計算する段階と、
    (b4)前記計算された移動位置を前記織物メッシュに適用して前記織物メッシュの構造を変形する段階と、を含むことを特徴とする請求項15に記載の3次元グラフィックデータのレンダリング方法。
  17. 前記(b)段階は、前記(b3)段階前に、
    (b5)前記織物組織と衝突する客体がある場合、前記衝突する客体を判別する段階と、
    (b6)前記織物組織と衝突する客体との衝突如何を検査する段階と、をさらに含み、
    前記(b3)段階は、前記衝突による前記織物組織の移動位置を計算する段階をさらに含むことを特徴とする請求項16に記載の3次元グラフィックデータのレンダリング方法。
  18. 前記(b6)段階は、
    前記織物組織が前記キネマチックスノードにより定義された前記仮想の客体と衝突するかどうかを検査する段階を含むことを特徴とする請求項17に記載の3次元グラフィックデータのレンダリング方法。
  19. 前記(b6)段階は、
    前記織物組織が前記キネマチックスノードにより定義された前記仮想の客体と衝突すれば、衝突する点の位置を検出する段階をさらに含むことを特徴とする請求項18に記載の3次元グラフィックデータのレンダリング方法。
  20. 請求項15から請求項19のいずれか1項に記載の方法を実行するプログラムを記録したことを特徴とするコンピュータ可読記録媒体。

JP2005052505A 2004-02-26 2005-02-28 織物組織アニメーション表現のためのデータ構造、これを用いた3次元グラフィックデータのレンダリング装置及び方法 Withdrawn JP2005243034A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040012985 2004-02-26
KR1020040015607A KR100571838B1 (ko) 2004-02-26 2004-03-08 직물 조직 애니메이션 표현을 위한 데이터 구조의 정의방법, 및 이를 이용한 3차원 그래픽 데이터의 렌더링 장치 및 방법

Publications (1)

Publication Number Publication Date
JP2005243034A true JP2005243034A (ja) 2005-09-08

Family

ID=34752263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005052505A Withdrawn JP2005243034A (ja) 2004-02-26 2005-02-28 織物組織アニメーション表現のためのデータ構造、これを用いた3次元グラフィックデータのレンダリング装置及び方法

Country Status (4)

Country Link
US (1) US20050197731A1 (ja)
EP (1) EP1569172A3 (ja)
JP (1) JP2005243034A (ja)
CN (1) CN1661633A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080246765A1 (en) * 2005-05-06 2008-10-09 Desmond Grenfell Method and apparatus for constraint-based texture generation
US7792593B2 (en) * 2006-11-17 2010-09-07 Siemens Aktiengesellschaft Method and system for patient-specific production of a cardiac electrode
US8140304B2 (en) * 2007-07-13 2012-03-20 Hyeong-Seok Ko Method of cloth simulation using linear stretch/shear model
JP5234809B2 (ja) 2009-06-24 2013-07-10 任天堂株式会社 情報処理プログラムおよび情報処理装置
US10025099B2 (en) 2015-06-10 2018-07-17 Microsoft Technology Licensing, Llc Adjusted location hologram display
CN105653786B (zh) * 2015-12-29 2018-09-25 中国电建集团贵阳勘测设计研究院有限公司 一种考虑封闭框架剪切变形和刚性节点的内力计算方法
CN105631136B (zh) * 2015-12-29 2018-09-07 中国电建集团贵阳勘测设计研究院有限公司 一种考虑封闭框架剪切变形和刚性节点的内力计算方法
CN105862217A (zh) * 2016-05-17 2016-08-17 沙洲职业工学院 一种小提花织物的动态模拟方法
US11069116B2 (en) * 2018-02-21 2021-07-20 Autodesk, Inc. Hybrid structural-geometric technique for performing draping simulation of woven fabric composites

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5777619A (en) * 1996-01-02 1998-07-07 Silicon Graphics, Inc. Method for simulating hair using particle emissions
US6310627B1 (en) * 1998-01-20 2001-10-30 Toyo Boseki Kabushiki Kaisha Method and system for generating a stereoscopic image of a garment
US6909431B1 (en) * 1999-03-01 2005-06-21 Lucas Digital Ltd. Position and shape control for cloth and soft body animation
US6509899B1 (en) * 1999-03-01 2003-01-21 Lucas Digital Ltd. Time differencing for improved cloth animation
US6532014B1 (en) * 2000-01-13 2003-03-11 Microsoft Corporation Cloth animation modeling
US6573897B1 (en) * 2000-02-09 2003-06-03 California Institute Of Technology Real-time, interactive animation of deformable two- and three-dimensional objects
US20030184544A1 (en) * 2000-07-24 2003-10-02 Prudent Jean Nicholson Modeling human beings by symbol manipulation
GB2389293B (en) * 2000-12-06 2004-10-13 Sun Microsystems Inc Using ancillary geometry for visibility determination
US20020126132A1 (en) * 2001-01-24 2002-09-12 Harry Karatassos Targeted force application in clothing simulations
US7363199B2 (en) * 2001-04-25 2008-04-22 Telekinesys Research Limited Method and apparatus for simulating soft object movement
US6961058B2 (en) * 2001-08-10 2005-11-01 Microsoft Corporation Macrostructure modeling with microstructure reflectance slices
GB0120039D0 (en) * 2001-08-16 2001-10-10 Univ London Method for dressing and animating dressed beings
US7619633B2 (en) * 2002-06-27 2009-11-17 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7095423B2 (en) * 2002-07-19 2006-08-22 Evans & Sutherland Computer Corporation System and method for combining independent scene layers to form computer generated environments
KR100511228B1 (ko) * 2003-01-10 2005-08-31 최광진 직물의 움직음을 시뮬레이션하는 방법 및 이 방법을 실행하는 프로그램을 기록한 컴퓨터 판독가능한 기록매체
KR100500897B1 (ko) * 2003-09-03 2005-07-14 한국전자통신연구원 방향을 갖는 질점과 일반화된 스프링 모델을 이용한비정형 물체의 애니메이션 방법

Also Published As

Publication number Publication date
EP1569172A3 (en) 2006-10-04
EP1569172A2 (en) 2005-08-31
US20050197731A1 (en) 2005-09-08
CN1661633A (zh) 2005-08-31

Similar Documents

Publication Publication Date Title
JP2005243034A (ja) 織物組織アニメーション表現のためのデータ構造、これを用いた3次元グラフィックデータのレンダリング装置及び方法
US8666712B2 (en) Physical simulations on a graphics processor
US6023279A (en) Method and apparatus for rapidly rendering computer generated images of complex structures
US7289119B2 (en) Statistical rendering acceleration
JP4364409B2 (ja) リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法
KR100999384B1 (ko) 근방 입자 탐색에 사용하는 데이터 구조의 구축 방법, 그프로그램, 및 그 프로그램을 저장한 기억 매체
House et al. Foundations of physically based modeling and animation
US6307558B1 (en) Method of hierarchical static scene simplification
JP4942517B2 (ja) 衝突感知装置及び方法
US10360720B1 (en) Hybrid raytracing approach for modeling light reflection
CN102496177B (zh) 三维水墨动画的制作方法
TW200525429A (en) Method and program solving LCPs for rigid body dynamics
KR20230005312A (ko) 평면도를 생성하기 위한 방법 및 장치
JP2002352274A (ja) 複数のモデル間の相互作用をモデリングするための方法
Rogers et al. Future Virtual Heritage-Techniques
KR100571838B1 (ko) 직물 조직 애니메이션 표현을 위한 데이터 구조의 정의방법, 및 이를 이용한 3차원 그래픽 데이터의 렌더링 장치 및 방법
O'Brien et al. Animating fracture
JP2001195606A (ja) 物体の荷重伝達変位を表示する方法
Zhang et al. A new self-collision detection method for cloth simulation
KOLCHYNA INTERACTIVE TOOL FOR CLOTH SIMULATION
Zheng An Experimental Fast Approach of Self-Collision Handling in Cloth Simulation Using GPU
Xu et al. Physically based real-time animation of curtains
Kaliappan Hierarchical Clustering for Enhanced Elastic Behavior in Clustered Shape Matching
Nylén et al. The Red-Black Physics Engine: A Parallel Framework for Interactive Soft Body Dynamics
Steen Real-time river simulation using metaballs

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061114

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080212

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090520