JP4364409B2 - リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法 - Google Patents

リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法 Download PDF

Info

Publication number
JP4364409B2
JP4364409B2 JP2000191191A JP2000191191A JP4364409B2 JP 4364409 B2 JP4364409 B2 JP 4364409B2 JP 2000191191 A JP2000191191 A JP 2000191191A JP 2000191191 A JP2000191191 A JP 2000191191A JP 4364409 B2 JP4364409 B2 JP 4364409B2
Authority
JP
Japan
Prior art keywords
surfel
surfels
surface element
surface elements
linked
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
JP2000191191A
Other languages
English (en)
Other versions
JP2001084410A (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.)
Mitsubishi Electric Research Laboratories Inc
Original Assignee
Mitsubishi Electric Research Laboratories Inc
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 Mitsubishi Electric Research Laboratories Inc filed Critical Mitsubishi Electric Research Laboratories Inc
Publication of JP2001084410A publication Critical patent/JP2001084410A/ja
Application granted granted Critical
Publication of JP4364409B2 publication Critical patent/JP4364409B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は概してグラフィックシステムに関し、さらに詳細には接続されたゼロ次元のポイントで表現されるグラフィックオブジェクトのモデリングに関する。
【0002】
【従来の技術】
コンピュータグラフィックスにおいて、様々な一次元グラフィックエレメントを使用して多くの異なる方法で三次元空間でオブジェクトを表現することができる。グラフィックオブジェクトを表現するのに通常利用する公知の表現は陰表現、幾何学的表現、容積表現、及びパーティクル表現である。
【0003】
陰表現
陰表現では、グラフィックオブジェクトは任意の数学的関数や物理的関数から生成することができる。たとえば、中空の球体のアウトラインを描く場合、レンダリングエンジンに(デカルト座標で)関数x2+y2+z2=rを加えるだけであり、中実の球体の場合は関数はx2+y2+z2≦rである。色やそのほかのマテリアルのプロパティも、同様に、合成して生成することができる。関数を使用すると、様々な幾何学的形状、物理的オブジェクト、実在のまたは想像上のモデルを描くことができる。陰関数は、人物像などの複雑なオブジェクトの合成には適していない。
【0004】
幾何学的表現
これまで、三次元オブジェクトはポリゴンのファセットのメッシュとして幾何学的にモデリングされてきた。通常、ポリゴンは三角形をしている。各ファセットのサイズは、ファセットの部分においてオブジェクトの湾曲度に対応するようになっている。オブジェクトの湾曲度が高く、比較的平坦な部分が少ないほど、多くのポリゴンが必要である。ポリゴンのモデルは多くの用途、たとえば仮想トレーニング環境、三次元モデリングツール、及びビデオゲームなどに使用される。幾何学的表現は、特徴として、グラフィックオブジェクトのサーフェスの特徴を処理するにすぎない。
【0005】
しかし、変形オブジェクトの部分的な湾曲度にファセットのサイズが対応できないために、ポリゴンのモデルが変形する場合に問題が生じる。さらに、変形により部分的な相対的解像度が変化することがある。どちらの場合も、変形した湾曲によってオブジェクトを再メッシュしなければならなくなる。計算の時間に関して、再メッシュ(ポリゴン化(polygonization))は比較的高くつくため、前処理ステップとして通常行われる。したがって、ポリゴンのモデルは動的に変形しなければならないオブジェクトにはあまり適していない。
【0006】
容積表現
別の表現では、三次元空間でオブジェクトをサンプリングし、MRIやCTスキャンなどの容積データセットを生成する。各サンプルをボクセルという。典型的なデータセットは何百万というボクセルを含むことができる。容積データセットをレンダリングするには、オブジェクトはセグメント化されるのが普通である。等サーフェス(Iso-surfaces)を識別して特定の容積部分にフォーカスすることができる。たとえば、人間の頭の容積データセットでは、骨や軟組織などのマテリアルのプロパティによってボクセルをセグメント化することができる。
【0007】
ボクセルの数は大量であるため、容積データセットを物理ベースでモデリングしたり変形したりするのは、いまだに計算としては大変費用のかかる演算である。サーフェスの特徴にのみ関心が向けられることが多いため、オブジェクトの内部は効率を考えると無視することができる。
【0008】
パーティクル表現
オブジェクトのパーティクル表現は、風洞のシミュレーションなど、流体の流れをモデリングするのに使用されることが多い。方向の速度など、ある属性をパーティクルに与えて、流体の流れを通して個々のパーティクルを追跡したり、完全な流れを視覚化したりする。
【0009】
パーティクル表現の別の応用として、煙、塵、または霧などの「雲状の(cloud like)」オブジェクトの視覚化が挙げられる。シェーディングされたモデルを、発光するパーティクルに適用すると雲状のオブジェクトをレンダリングすることができる。また、エネルギー関数を利用して部分空間にパーティクルを押しこめることでサーフェスをモデリングすることもできる。パーティクルの雲の利点は、雲が非常に変形しやすいということである。欠点としては、雲のパーティクルが連結されておらず、力を加えられると別々に動いてしまうということである。さらに、パーティクルは、中実のオブジェクトまたはモデルのサーフェスの構造を表すにはまったく不向きである。
【0010】
モデリングの留意点
様々な表現におけるグラフィックオブジェクトの非物理的モデリング及び物理的モデリングのために、多くの技術が公知である。非物理ベースのモデルは、スプライン関数、ベジエ曲線などを使うことが多い。このとき、コントロールポイントを操作することで所望の変形度にする。
【0011】
物理的な技術は、主に二つのカテゴリ、つまり剛体力学、及び動的変形とに分けられる。剛体力学は、通常、ニュートン力学の結果である微分方程式を解く。コンピュータシステムでは、数値的には、積分器を使用して微分方程式を解くことができる。有限要素法(FEM: finite element method)またはマススプリングシステムによって、動的な変形をモデリングすることができる。
【0012】
レンダリングの留意点
こうした従来の基関数(primitives)のレンダリング時間は、モデリングするオブジェクトの複雑度によって変わる。たとえば、複雑なオブジェクトを幾何学的に表現するには、ポリゴンは通常、ピクセルのサイズほどに非常に小さくなり、オブジェクトは多くのポリゴンによって表現される。ポリゴンは通常、三角形を定義する頂点で表現される。
【0013】
ポリゴンをレンダリングするには、三角形の突起をスキャン変換(ラスタ化)して、投影内におさまる各ピクセルの密度を計算する。これは、約一個以下のピクセルをポリゴンで覆う場合、比較的時間のかかる演算である。ポリゴンをポイントサンプルと取り替えたり、ポイントサンプルをスクリーンに投影したりして、オブジェクトをレンダリングする技術としてより効率的にすることができる。
【0014】
ボリュームをレンダリングするには多くの技術が公知である。概して、ボリュームレンダリングはかなり複雑である。ボクセル数が制限されていない限り、リアルタイムレンダリングは時間がかかるものである。
【0015】
リアルタイムレンダリングシステムは、Ponomarovらに1998年7月14日付与された米国特許第5,781,194号“Real-time Projection of Voxel-based Object”に記載されており、サーフェスボクセル間で増分的なベクトルを用いて一連のサーフェスボクセルを構成する。こうした表現は、かなり詳細なサーフェス部分を表すオブジェクトのモデリング及び表現をできるようにする。剛体の動きのモデリングは、物理ベースの方法が使えないため、現実感に欠けるスクリプト機構を使って行われる。この方法では、オブジェクトが現実には変形する可能性を考慮していない。オブジェクトは、衝突及びその他の変形力に反応しない空間における剛体としている。
【0016】
従来技術では、別々のパーティクルまたはポイントは、グラフィックシステムにおけるメタ基関数(meta-primitive)として使われてきた(例として、Levoyらの“The Use of Points as a Display Primitive”University of North Carolina Technical Report 85-022, 1985参照)。これには、オブジェクトをポイント表現に変換するプロセスが説明されている。ここで、各ポイントはポジション及び色を有している。また、滑らかなサーフェスとしてポイントをレンダリングするプロセスについても説明している。
【0017】
ポイントはゼロ次元の密度サンプルとしてモデリングされ、オブジェクト順の投影を用いてレンダリングされる。レンダリング時に、複数のポイントを同一のピクセルに投影することができ、こうしたポイントの密度をフィルタリングして、問題のピクセルに最終的な密度を得られるようにしなければならない場合もある。このフィルタリングは、スクリーン上に投影したポイントのポジションから、それに相当するピクセルの中心までの距離に比例する密度を重みづけして行う。重みづけは、ガウシアンフィルタでモデリングされる。高度な深度バッファ(Zバッファ)を使うと、深度値の狭い領域においてポイントのブレンドを行うことができる公差で深さの比較を行うことができる。利点として、こうしたポイント表現によるとどんな視点からでもオブジェクトのレンダリングを行うことができる、ということがある。
【0018】
別の技術においては、1998年7月の、Grossmanらによる、“Sample Rendering,”Proceedings of the Eurographics Workshop '98, Rendering Techniques 1998, Drettakis, G., Max, N.(eds.), 181ページから192ページに記載されているように、ポイントサンプルは、正三角形の格子における三角形のメッシュの垂直な投影をサンプリングすることで得られる。三角形のメッシュの投影により覆われる格子の三角形ごとに、サンプルポイントが追加される。正三角形の格子を選択して、各ピクセルが少なくとも一つのサンプルによって覆われるように保証するのに十分密度の高い適切なサンプリングを行う。
【0019】
【発明が解決しようとする課題】
公知の表現にはすべて、いくつかの制限がある。したがって、最良の特徴を組み込み、モデリング及びレンダリングを簡略にする表現が所望されている。
【0020】
この発明は、上記のような課題を解決するためになされたもので、モデリングを簡略にすることが可能なリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法を得ることを目的とする。
【0021】
【課題を解決するための手段】
この発明に係るリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法は、グラフィックオブジェクトの表現をメモリに生成する方法であって、オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、オブジェクトのサーフェスに位置する各セルのゼロ次元サーフェスエレメントをメモリに格納し、サーフェスエレメントのサブセットを第1のサーフェスエレメントとして選択し、選択されないサーフェスエレメントを第2のサーフェスエレメントとして識別し、隣り合う第1のサーフェスエレメントをリンクによって接続し、関連する第1のサーフェスエレメントおよび関連する第1のサーフェスエレメントのリンクに、特定のセル内に含まれるオブジェクト部分の第1の属性を割り当て、各第1のサーフェスエレメント毎に1グループ存在するように、選択されないサーフェスエレメントをグループに分割し、関連する第2のサーフェスエレメントに、特定のセル内に含まれるオブジェクト部分の第2の属性を割り当てる。
【0022】
また、セルはそれぞれ、画像面の解像度に関連する8個のグリッドポイントが境界とされる。
【0023】
また、各第1のサーフェスエレメントに割り当てられた第1の属性は、対応するセル内のオブジェクト部分の物理的特徴、オブジェクトのサーフェス上の第1のサーフェスエレメントのポジション、対応するセル内のオブジェクト部分の色および不透明度、および対応するセル内のサーフェスに対する法線を含む。
【0024】
また、第1のサーフェスエレメントそれぞれに割り当てられた第2のオブジェクト属性は、第1のサーフェスエレメントからのオフセット、対応するセル内のオブジェクト部分の色および不透明度、および対応するセル内のサーフェスに対する法線を含む。
【0025】
また、特定の第1のサーフェスエレメントを選択するステップと、 オブジェクトに作用する物理的な力に従って、特定の第1のサーフェスエレメントのロケーションを移動するステップと、
関連する特定の第1のサーフェスエレメントに従って、第2のサーフェスエレメントの特定のグループを移動するステップと
をさらに含む。
【0026】
また、サーフェスエレメントの移動は、ガウス曲線に従う。
【0027】
また、ガウス曲線の高さおよび伸張は、マウスおよびカーソルで選択される。
【0028】
また、移動が所定のしきい値よりも大きい場合に、第3のサーフェスエレメントを生成する。
【0029】
また、第3のサーフェスエレメントは、第1のサーフェスエレメントを制御ポイントとして有するベジェパッチとして生成される。
【0030】
また、ベジェパッチは、4×4アレイの制御ポイントを有する。
【0031】
また、第3のサーフェスエレメントの属性は、第1および第2の属性から導出される。
【0032】
また、各第1のサーフェスエレメントの静止位置を格納するステップと、
移動後に、第1のおよび第2のサーフェスエレメントをそれぞれ静止位置に回復するステップと
をさらに含む。
【0033】
また、静止位置への回復は、減衰振動に従う。
【0034】
また、特定の第1のサーフェスエレメントを選択するステップと、
選択された第1のサーフェスエレメントの所定の半径内にあるすべての第1のサーフェスエレメントを着色するステップと、
着色された第1のサーフェスエレメントに関連する第2のサーフェスエレメントのグループを着色するステップと
をさらに含む。
【0035】
【発明の実施の形態】
実施の形態1.
1.序論及び概観
サーフェスエレメント、すなわち「サーフェル(surfels)」として表されるグラフィックオブジェクトの生成、モデリング、及びレンダリングについて説明する。サーフェルの定義は、三次元サーフェルグリッドにおいて接続したゼロ次元のポイントサンプルである。本発明によると、三次元のグリッドとは、オブジェクト空間への画像面解像度の投影であり、これによってサーフェルがピクセルサイズの間隔をおいた三次元ボリュームが生じる。対して、従来技術のレンダリング基関数は、オブジェクト空間においてサンプリングされるのが普通である。
【0036】
各サーフェルは、画像面のピクセルに投影を行う。サーフェルは整数のグリッドポジションである8つのノードによって定義される「セル(cell)」のいずれかの場所に位置する。これは、水平の走査線及び垂直の走査線の交差する点が整数のピクセル位置にあると考えられ、またこうした四つのポジションで結ばれたエリアがピクセルで表される場合の、画像面上のピクセルの定義と類似している。
【0037】
サーフェルは、ポジション・色・不透明度・ポイントのポジションにおけるサーフェスの法線についての情報(属性(attributes))を格納する。速度や残りの容積など、追加の属性は、物理的オブジェクトまたはモデルを表現するサーフェルに属することができる。
【0038】
隣り合うサーフェルは互いに「リンク(links)」によって接続されている。リンクの残りの長さはサーフェルの相対的な間隔を定義する。なお、サーフェルはセルのいずれの場所にも配置することができる。弾性やダンピング(damping)など、さらなる属性を、オブジェクトが変形可能である場合にリンクに付加することができる。サーフェルやリンクの属性を格納するデータ構造はポインタにより接続されるアイテムのリストである。6つの隣り合うサーフェルは8つ接続されているものとする。
【0039】
こうした表現により、サーフェル及びピクセル間を一対一でマッピングすることを定義することでオブジェクト空間及び画像空間を結びつける。サーフェルは、スクリーンの解像度に応じて生成される。このため、各サーフェルが一つのピクセルにマップされる場合には、いかなるピクセルよりも小さいディテールは考慮されない。
【0040】
オブジェクト空間と画像空間とを結合するのは、簡単で、効率的で、高速なレンダリングを提供するためである。
【0041】
サーフェルは、一般的なレンダリング基関数として使用することができる。従来技術の表現(陰関数、幾何学、ボクセル及びパーティクル)からサーフェルを生成する技術を提供する。最も近接する補間を使用したオブジェクト順の投影プロセスによって、それに対応するピクセルにサーフェルを投影することを提案する。
【0042】
本表現において、サーフェルオブジェクトは互いに相互作用して、「物理的にもっともらしい変形(physically plausible deformations)」となることができる。変形できるようにするに、各サーフェルに容積を割り当て、かつ各サーフェルをスプリングによって隣り合うサーフェルに接続する場合に、サーフェルオブジェクトをマススプリングシステムとしてモデリングすることができる。
【0043】
さらに、たとえば、回転または内部及び外部の力によってセルから「引っ張られた(pulled)」サーフェルのためにサーフェスに「穴(holes)」ができる場合の、画質を高める技術についても説明する。こうした技術には、ビュー変換の剪断のゆがみ、オブジェクトのスーパーサンプリングまたはスケーリング、及びスプラッティングがある。
【0044】
1.1 サーフェル
図1に示されているように、オブジェクトを表現、モデリング、及びレンダリングするのに使用可能なグラフィック基関数について説明する。この基関数をサーフェスエレメント、または省略して「サーフェル(surfel)」100という。サーフェルは上記の表現、すなわち陰関数101、ポリゴン102、ボクセル103、及びパーティクル104に関連付けることができる。サーフェル100は、画像面の解像度を有する三次元グリッドで定義されるセルのゼロ次元のポイントサンプルとして定義する。ポジション、色、容積などの属性は、サーフェルに割り当て可能である。
【0045】
複数のサーフェルを互いに接続して、オブジェクトの任意の二次元面などの二次元多様体を形成することができる。サーフェル多様体は互いに接続してより複雑な二次元多様体を形成することができる。この多様体は、現実のまたは想像上の任意のオブジェクトの「アウトラインを描く(outline)」ことができる。
【0046】
1.2 スクリーンの解像度
図2に示すように、サーフェル100(中実:solid)は、整数のグリッドポジションである8つのノード201(オープン:open)によって定義されるセル200のいずれかの場所に配置することができる。図3に示すように、各サーフェルは6つの隣接するサーフェルを持ち、各セルごとに一つが各セル200の面に隣り合っている。グリッドポジションは、画像面203のピクセル202のサイズ及びロケーションに相当する。言いかえると、ゼロ次元のサーフェルのロケーションの境界を定義するグリッドは、画像面またはディスプレイスクリーンの解像度で定義される。
【0047】
スクリーンの解像度によるサンプリングによって、オブジェクト空間及び画像空間の間に直接的な対応が提供される。このようにサーフェルを定義することで、オブジェクトの変形は、たびたびサンプリングをしなくてよいという意味でより容易なものになる。「サーフェル化した(surfelized)」オブジェクトの処理にかかる時間が短縮される。ピクセルサイズの間隔をあけたサーフェルグリッドによって、オフセットでサーフェルを格納できるようになり、また予め計算したビュー変換したオフセットを使用することで効率的にサーフェルオブジェクトをレンダリングすることができるようになる。
【0048】
1.3 サーフェルリンク
図4に示すように、グラフィックオブジェクトを、リンク300で接続される三次元のサーフェル100の集合として示す。したがって、6つの隣り合うサーフェルは8つ接続される。言いかえると、サーフェルがセルのいずれかの場所にある場合、サーフェルはセルの6つの面を通り、対角線にそって接続している。対角線に沿ってリンクを接続することにより、メッシュの「崩壊(collapsing)」が防止される。6つの隣り合う、8つの接続されたサーフェルは、グラフィックオブジェクトの表面または二次元多様体を表現する。
【0049】
表1において、従来技術のポリゴン、ボクセル、及びパーティクルを本発明によるサーフェルと比較する。この表は、公知の従来技術の表現の基関数と同様の属性を有するサーフェルを示す。
【0050】
【表1】
Figure 0004364409
【0051】
方法によっては、ポリゴンがおよそ1ピクセルのサイズである場合、変換したポリゴンのピクセルの属性をサーフェルが有する。サーフェルは、サーフェルが位置するセルが1×1×1ピクセルの大きさであり、6つの隣り合うサーフェルを有する場合、抽出した8つの接続したサーフェスボクセルとして考えることもできる。サーフェルオブジェクトは、スクリーンまたはイメージグリッドの解像度において定義されるパーティクルの雲のマッピングとして考えることもできる。
【0052】
サーフェルは、また、他とは異なる点をもつ。たとえば、サーフェルは、幾何学形状においてボクセルやパーティクルとは異なっている。サーフェルはグリッドの点でポリゴンやパーティクルと異なる。サーフェルはリンク方法の点でボクセルやパーティクルと異なる。そして、サーフェルは変形方法の点でポリゴンやボクセルと異なる。
【0053】
従来技術の基関数と比較して、サーフェスエレメントの定義方法における最も重要な違いは、それがスクリーンの解像度によってサンプリングされるということである。ボクセル及びパーティクルは、通常、オブジェクトの解像度によってサンプリングされる。ポリゴンはスクリーンの解像度でサンプリングすることができる。しかし、オブジェクトが変形している場合、投影またはレンダリングの直前にサンプリングを行わなければならない。サーフェルについては、スクリーンの解像度へのサンプリングは前処理のステップにおいて1度行うことができる。
【0054】
本発明によるスクリーンの解像度のサンプリングにおいて、グラフィックオブジェクトは、各最も近いピクセルに各サーフェルを投影するだけでオブジェクトのサーフェスを再構成するのに十分なサーフェルを含む。たとえば、100のサーフェルによる100の矩形のサーフェルポリゴンは、スクリーン上に100のピクセルによる100の画像面を作り出す。サーフェルはピクセルに直接マッピングする。サーフェルのスクリーンへの貢献(contribution)は、1ピクセル以上でも以下でもない。
【0055】
2.サーフェルオブジェクトのデータ構造
図5に示すように、各サーフェル100は、関連するサーフェル属性401のセットを有し、各リンク300はリンク属性403を有する。オブジェクトのモデリング及びレンダリングに使われる属性は図6においてより詳細に示す。
【0056】
サーフェル属性401は、ポジション(x)、オフセット(o)、色(rgb)、不透明度(α)、法線(n)、角速度(ω)、法線(n)の残りの容積(m)、及び8つ以下のリンクを含むことができる。リンク属性403は、残りの長さ(l)、弾性定数(e)、ダンピング定数(d)、及び左右のサーフェルポインタ(p1及びpr)を含むことができる。
【0057】
法線を各サーフェルに格納するのは、レンダリング中に法線の補間を行わないようにするためである。代わりに、法線の補間はサーフェルの生成中に行われる。法線の格納とは、サーフェルオブジェクトに必要なレンダリングスピードと格納容量との間のトレードオフである。
【0058】
各サーフェルはまた、モデリング中にサーフェルオブジェクトの動的状態を表すさらなる属性を有することもできる。これらは図17及び図19を参照してより詳細に説明する。
【0059】
2.1 サーフェルリスト
図7に示されるように、処理中のトラバースを最小限に抑えるためにシーケンシャルリスト600としてサーフェルデータを構成する。リスト600において、リストにおける二つの隣り合うサーフェルはサーフェルオブジェクトにおいて隣接している。リスト600を生成するために、サーフェルSoから開始する。ポジション(x、y)における「最初の(first)」サーフェルとして、サーフェルSoで始めると、各隣り合うサーフェルをリストに追加し、最後のサーフェルSnで終わる。リスト600のサーフェルにオフセットでアクセスする。オフセットは二つのサーフェルのポジション間の差分ベクトルである。
【0060】
前のサーフェルに対するオフセットを格納して、サーフェルの投影を可能にする。オフセットを格納する場合、ビューイングマトリックス(viewing matrix)を使用して各サーフェルのビュー座標を計算する必要をなくすことができる。オフセットを格納するため、サーフェルはシーケンシャルリストまたはアレイとして格納することができる。リストにおいて隣り合うサーフェルはオブジェクトにおいても隣り合う。
【0061】
サーフェルは8つ接続しているため、サーフェルをピクセルの間隔で配置すると、オフセットは、{±1,0,0}、{0,±1,0}または{0, 0,±1}のいずれかである。オフセットは特定のビューのために予め計算することができ、また、ルックアップテーブルに格納することができる。サーフェルのオブジェクト座標は、リンクしたリスト600で前のサーフェルポジションにオフセットを加えることで生成できる。
【0062】
どのサーフェルを最初に選択するかは、オブジェクトによって決まる。たとえば、球体では、第1のサーフェルは球体の「上部(top)」にすることができ、リストは球体を「包み込む(around)」。なお、「左(left)」及び「右(right)」の隣り合うサーフェルはリストで隣り合っても良いが、「上(up)」及び「下(down)」の隣り合うサーフェルはシーケンシャルリストのいずれの場所に配置しても良い。リストにおいて隣り合うサーフェルがオブジェクトにおいては隣り合っていない場合、サーフェルはリスト600のいずれの場所にも配置することができる。
【0063】
サーフェルは6つの面のセル、つまりピクセルサイズの間隔をおいた三次元グリッドにおいてゼロ次元のポイントとして定義されるため、隣り合うサーフェルのセル間のオフセットは多くのサーフェルと同じになる。画像面への投影のスピードをアップさせるため、各オフセットは1度しかスクリーン空間オフセットに変わらず、その後ルックアップテーブルに格納される。ルックアップテーブルは予め計算することができる。投影中において、各サーフェルの各ビュー座標は、テーブルルックアップを使用して見つけられる。
【0064】
3.サーフェル及びサーフェルオブジェクトの生成
サーフェル及びサーフェルオブジェクトの生成のために、考えられる多くの方法を説明する。
【0065】
3.1 合成
陰サーフェスからの合成は、通常、球体・平面・立方体などのオブジェクトまたは分析的に定義可能なその他のオブジェクトに使用できる。本データ表現によって合成サーフェルオブジェクトを生成することは、本明細書中に記載されているデータ構造の詳細な説明を読めば当業者には明らかである。主要な概念は、サーフェルの合成が画像面の解像度において行われるということであり、また隣り合うサーフェルはリンクによって接続されているということである。
【0066】
3.2 変換
ポリゴンなどの任意の幾何学的オブジェクトは、ポリゴンを生成するために変換しなければならない。これをプロセスの変換という。
【0067】
図8は、グリッドポジション(x、y)で始まるひとつの二次元平面710でサーフェルを生成することができ、かつ(x+l,y)が次となる順番を示す。矢印711は、隣り合う列の交互の方向を利用して前後、列順で生成する順を示す。第1の列は左から右へとサーフェルを生成して開始する。次の列のサーフェルは右から左に生成される。この順番により各方向のユニットステップ内で各サーフェルのオフセットが維持される。サーフェルはリスト600のために順次生成され、隣り合うサーフェルのセル間のオフセットはx、yにおいて(1,0,0)または(0,1,0)のいずれかである。
【0068】
3.2.1 三次元デジタル微分アナライザを使用した変換
三次元スキャン変換は、本発明によるサーフェルオブジェクトに従来技術のポリゴンオブジェクトを変換するのに使用できる。1986年のKaufmanらによって説明された、“3D Scan-conversion Process for Voxel-based Graphics,”Proceedings of the 1986 Workshop on Interactive 3D Graphics, Crow. F., Pizer. S.M. (eds.)45ページから75ページの方法を応用する。Kaufmanの方法はポリゴンをボクセルに変換する。Kaufmanは、主要面に平行な円を描くアルゴリズムを使用する。円は二つの部分、赤道線と極部分に描かれており、一方で、同時に両半球を生成することによりアルゴリズムを簡素化するために対称を使用している。対して、ポリゴンを、シーケンシャルリストに格納される6つの隣り合う8つの接続したサーフェルに変換する。
【0069】
本発明のポリゴンの三次元変換は、線の三次元スキャン変換をポリゴンのエッジに使用する。エッジ間を走るサーフェルは、塞いで最良の接続を提供する。本発明の方法では、ポリゴンエッジをyにおいてソートしなければならないが、これは走査線がy座標軸と平行であるためである。
【0070】
DDA(デジタル微分アナライザ)プロセスはもともと、二次元表現においてラインをラスタ化するために開発された。特定のラインで、始点及び終点のピクセルポジション、及び△x及び△yを計算する。次に、△x及び△yを二つのデルタの大きい方で割って、プロセスに必要なステップの数をこの最も大きいデルタと等しくする。最も大きいデルタの方向の各ステップについて、ピクセルのポジションを他の方向のデルタによって計算する。このプロセスは簡単であるが効果的である。
【0071】
図8に示すように、DDAプロセスは次のようにポリゴン700に適用される。三角形700の三つのエッジの一つを「ベースエッジ(base-edge)」701として選択し、残りの二つのエッジ702と703は「ガイダンスエッジ(guidance-edges)」として選択する。ベースエッジに平行なライン704はプロセスがガイダンスエッジに沿って別の増分的なステップを行う毎に三次元ラスタ化される。
【0072】
本発明のプロセスはKaufmanのアルゴリズムとは異なるが、これは本発明のベースエッジが三次元において任意に方向付けされることができるからである。Kaufmanのアルゴリズムでは、ポリゴンがxy座表面と一致していない限り(ベースエッジがxまたはzの座標軸のいずれかである場合)、ベースエッジはかならずy座標軸と平行である。
【0073】
ポリゴンのサーフェスの法線を計算して、ポリゴンが主軸でスパンされる平面と平行かどうかを調べる。この場合、特定の最適化をプロセスに対して行うことができる。
【0074】
ベースエッジ701では、△x、△y、及び△zの値を計算し、この三つの三角形の最大値△maxを求める。三つのインクリメントの合計を計算する。
【0075】
1)xincr = △x/△max.
2)yincr = △y/△max.
3)zincr = △z/△max
【0076】
x、y、またはzに沿って最大値の三角形の方向でステップを行うと、ベースエッジに沿って三次元のサンプルポジションが得られる。三角形700をスキャン変換すると、二つのガイダンスエッジのx方向、y方向、z方向のデルタが同様に求められる。もう一度エッジごとの三つの増分の合計を計算するが、今度はこのデルタを両方のガイダンスエッジの最大デルタで割る。これは、スキャン変換する平行なエッジのそれぞれについて、ベースエッジの向きをガイダンスエッジに沿うステップが確実に維持するようにするためである。
【0077】
二つのガイダンスエッジに沿った各増分的ステップの後、ベースエッジと平行なエッジの三次元ラスタ化を行う。ガイダンスエッジに沿って各増分的ステップを行うと、このエッジの長さは減少してしまう。エッジの三次元ラスタ化中にみられる各サンプルポジションにおいて、サーフェルはそのポジションで格納される。
【0078】
図9で見られるように、追加されて8つの接続を提供するサーフェルは、三角形700の内側に追加されるだけである。図9では、サーフェル801と802のどちらかをリスト600に追加することができる。どのサーフェルが内側にあるかを決めるために、ベースエッジ701に関する頂点710のポジションを決定する。これは、頂点710を指し、ベースエッジに垂直な内側方向のベクトル720を定義することで行われる。内向きのベクトル720によって、二つの候補のサーフェルのうちの一つ(この例ではサーフェル801)を選択する。
【0079】
サーフェルをシーケンシャルリストに追加するたびに、そのポジションは、ポジションに応じてハッシュテーブルに格納される。サーフェルを追加する前に、ハッシュテーブルをチェックして、そのポジションにおいてサーフェルがすでに存在するかどうかを判断する。
【0080】
3.2.2 距離マップを使った変換
従来技術では、距離マップはサンプリングしたボリュームのサーフェスボクセルを正確に表現するために使われてきた。ボリューム用の距離マップは、もともと三次元ボリュームである。各グリッドポジションでは、距離マップはオブジェクト表面への最短距離を格納する。こうした距離は分析的な描写から計算されるか、またはボリュームのバイナリセグメント化されたデータから抽出することができる。
【0081】
距離マップは、ボリュームからオブジェクト表面の正確な再構築を行うプロパティを有している。距離マップの勾配によってサーフェス法線の方向が生じる。距離のサインにより、ボリュームの内側と外側とを区別する。オブジェクト表面は距離マップの距離ゼロに配置される。距離マップはオブジェクト表面にわたってなめらかに変化し、これが高い空間周波数を防止するため、比較的低コストの再構築フィルタを使用したサーフェス再構築を行うことができる。
【0082】
図10は、距離マップを使ってオブジェクトをサーフェル化するプロセス900のステップを示す。ステップ910では、サーフェスポリゴン(たとえば、図11で示す三角形1000)を、サンプリングしたボリュームデータ901から推定する。ポリゴン1000はトリストラップを使って格納することができる。三角形メッシュの各ポリゴンは三つの頂点、たとえば1001から1003までを含む。n個の三角形を格納するには、n+2個のノードが必要である。
【0083】
ステップ920では、トリストリップ(tri-strip)データを読み込み、トリストラップのバウンディングボックスをステップ930において決定する。ピクセルサイズの間隔をあけたボリュームを、ステップ940のバウンディングボックスによってトリストラップ周辺に定義する。ボリュームの大きさはバウンディングボックスの大きさよりも少し大きく、ボリュームの境界のどれでもトリストラップと一致しない。この条件により、オブジェクト表面が位置している場所を特定することができるが、詳しくは以下で述べる。
【0084】
ステップ950において、ボリュームの各整数グリッドポイントポジションの三角形への最短距離を以下に詳述するように決定する。ステップ960において、ボリュームをトラバースし、(1/2)√2以下の距離を有するこうしたグリッドポイントにサーフェルを追加する。これは、サーフェルが含まれるセルの表面対角線の半分である。(1/2)√2スケーリング因数を選択して、以下に詳細に述べるように穴の発生を抑える。
【0085】
距離計算
トリストラップ1000で各三角形の距離を計算するには、より大きなボリュームの一部であるサブボリューム(拡大したバウンディングボックス)を、図12にもあるように上記の通り三角形周辺に定義する。サブボリュームの各グリッドポジションでは、三角形への距離を計算する。この方法は、ポイントPから頂点V0、V1、V2、及び法線Nをもつ三角形1100への三次元での最短距離を計算する。
【0086】
ポイントPから三角形までの三次元の距離を計算するには、平坦な三角形によって定義される平面へポイントPを垂直に投影して三角形の内側にあるかどうかを決定する。Pの投影が三角形の外側である場合、三次元最短距離はエッジまたは頂点の一つと垂直なPからベクトルの大きさである。Pの投影が三角形の内側である場合、三次元最短距離はPからその三角形の投影ポイントP’までのベクトルの大きさである。三角形表面へのPの投影を決定するには、PをP1及びNのドット積を計算することにより法線Nに投影する。投影したベクトルは、投影ポイントP’を生じるPから引く。
【0087】
図13及び図14は、三角形1100の二次元投影を示す。投影ポイントP’は、図13の三角形の内側である。エッジに垂直な全てのベクトルはこの場合、内側を指す。図14では、太い矢印で示されるエッジV01に垂直なベクトルは外側を指し、一方で他の二つのベクトルは内側を指す。この図は、また、エッジV01に最も近いP’を示している。三次元の場合、これは次のように決定される。
【0088】
jがエッジの終点でありViが始点である場合、ベクトルPViとベクトルVjiは、法線N’が決定される平面を定義する。この法線は、P’が内側である場合に三角形の内側を指し、そうでない場合には三角形から離れたポイントを指す。このことは、三角形法線N及びN’のドット積の符号を使って調べることができる。
【0089】
距離計算は、ストリップの各三角形、及びオブジェクトの全三角形ストリップのためのサブボリュームのあらゆるグリッドポジションについて行う。サブボリュームは重複しているため、ポジションによっては複数の距離計算をするものもある。この場合、最短距離を使用する。
【0090】
サーフェスオブジェクトは、距離がゼロのときのポジションに置かれる。この距離ゼロは8つのグリッドポジションで境界をおかれるセル内のいずれかの場所にある。そのため、ボリュームをトラバースする際、距離の絶対最大値がボリュームにあたるたびにサーフェルを追加する。これは、ボリュームの境界のいずれにもオブジェクトが一致してはならないからである。8つの接続でサーフェルを追加できるようにするため、サーフェルへの距離が(1/2)√2以下の距離である各グリッドポジションでサーフェルが追加される。
【0091】
図15は、(1/2)√2という値を選択した理由を説明するものである。8つのグリッドポイント1301から1308によって境界されるボリュームの6つの側面をもつセル1300について考えてみる。セル1300は、対角線の(奇数)グリッドポイントがないオブジェクトサーフェス1310で対角線に区分されている。言いかえると、対角線のグリッドポイントの距離はゼロに非常に近いが正確にゼロではない。サーフェルはこうしたポジションにおいて生成する必要がある。しかし、こうしたサーフェルは8つの接続ではなく、そのためさらに奇数のポジション1302及び1306か、またはポジション1304及び1308のサーフェルも生成しなければならない。たとえば、サーフェルが奇数のグリッドポイントを「残して(left of)」いるセルを切り通す場合、グリッドポイント1304及び1308の距離は(1/2)√2よりわずかに少なく、こうしたポジションのためにサーフェルを追加して8つの接続を提供する。
【0092】
しかし、サーフェルが奇数のグリッドポイントを正確に切り通す場合、及びこうしたポイントの距離がゼロである場合、偶数のグリッドポイントの距離は(1/2)√2であるため、サーフェルを8つ全てのグリッドポイントに追加しなければならない。これは最悪の場合である。これがオブジェクトの表面全体に関する場合、結果的に表面は一定の厚さ、たとえば、セルの表面対角線の長さ√2を有する。
【0093】
3.2.3 距離マップとDDAとの比較
三次元DDAのサーフェル化の利点は、その簡素化にある。このプロセスは整数演算で行われ、ラインに沿って新しいポジションを計算することができる。距離マップを使用したサーフェル化はより複雑であり、またよりメモリ集約的である。距離を計算するのに使うボリュームはサーフェル化中にメモリに格納しなければならない。こうしたボリュームはきわめて大きくなることがある。
【0094】
距離マップを使用した変換にはあらゆる整数グリッドポジションについて、三角形への距離を計算する変換が必要であるとは言え、ボリュームのセルは1度以上トラバースされないので、サーフェルがすでにあるかどうかをチェックする必要はない。このチェックは三次元DDAで変換することが必要になる。
【0095】
上記のように、レンダリングのためにサーフェルのリストを効率的にトラバースするため、リスト600に順次サーフェルを格納する。三次元DDAプロセスを適用することで、「左から右」から「右から左」への各増分的ステップでスキャン変換の方向を単に交互にすることで各三角形のサーフェルのシーケンシャルリストが生じる。距離マップを使用するサーフェル化で、サーフェルがリストに追加される順序は、ボリュームをトラバースする順序、層ごとに、及び各層内のサーフェルの順にしたがう。
【0096】
図16は、ポリゴンが凸面である限り、三次元DDAプロセスを拡張して任意のポリゴン1400でサーフェル化することができる方法を示す。これを達するためにポリゴンの頂点1401から1406をある順序で、たとえば時計回りに配置する。ベースエッジ1410及び二つのガイダンスエッジ1411から1412を選択する。サーフェル化ラインは凸面1405に達すると、ガイダンスエッジ1413をエッジ1412に取りかえる。同様に、凸面1412に達すると、エッジ1414をエッジ1411と取りかえ、最終的にエッジ1415を使用する。
【0097】
距離マップは任意の凸面ポリゴンで使用することもできる。三角形の三次元の距離を計算する同じプロセスを適用することができる。これにより、最も近いエッジまたは頂点を決定するために、より多くのエッジ及び頂点に対してグリッドポジションをチェックする余分なコストが導入される。
【0098】
3.3 ボクセルからサーフェルを抽出する
サーフェルは次のようにボリュームデータから生成可能である。第1のステップでは、ボクセルは画像面の解像度に再サンプリングされる。第2に、オブジェクトのサーフェス境界のボクセルを抽出し、抽出したボクセルは次にポイントサンプルまたはサーフェルに変換する。第3に、6つの隣り合うサーフェルをリンクで接続する。このステップは、さらにボクセルの抽出を必要とすることがあり、そうして8つの接続を提供する。最後のステップでは、ボリュームデータの欠如によるサーフェスにおけるギャップを補間で埋めることができる。
【0099】
3.4 パーティクルの雲をサーフェルにマッピングする
パーティクルの雲を次のようにサーフェルにマッピングすることができる。第1に、スクリーンの解像度のグリッドを雲のまわりに配置する。各セルを調べる。セルが正確に一つのパーティクルを含む場合、そのパーティクルをサーフェルに直接マッピングすることができる。セルが一つ以上のパーティクルを含む場合、そのパーティクルを一つのサーフェルに統合しなければならない。セルにパーティクルが含まれていない場合、サーフェルは隣り合うセルにおいてパーティクルから補間されなければならない。
【0100】
3.5 デティルのレベルの生成
サーフェルの表現は「ズーム(zooming)」をしやすくするためにデティルの異なるレベルにする、すなわち投影中の画像面とオブジェクト間の差を変えることができる。サーフェル生成後、または生成中に、フィルタを適用してデティルの異なるレベルを生成することができる。通常、これは、レンダリング前の前処理ステップとして行われる。フィルタリングとダウンサンプリングを行うことにより、サンプルオブジェクトは解像度が低く(粗く)なり、アップサンプリングとフィルタリングを行うことによりサーフェルオブジェクトは解像度が高く(細かく)なる。たとえば、図2に示される四つの隣り合うサーフェル100に属する値を、ディティルオブジェクトのより低いレベルのサーフェルに平均化することができる。その他のフィルタリングまたはサンプリングの技術を異なる組み合わせのサーフェルに適用して色々なレベルのディティル、たとえば、16、4、1、1/4、1/16、1/256などを提供することができる。
【0101】
4. グラフィックオブジェクトの物理ベースのモデリング
グラフィックオブジェクト間の相互作用の物理ベースの現実的なシミュレーションにおいて、剛体力学と動的変形の二つのタイプのモデリングが主に使われている。
【0102】
剛体力学では、グラフィックオブジェクトは、外部からの力やトルクを受けても剛性を失わない。ポジション、向き、速度、容量の中心及び慣性因数などのパラメータを使用して、ニュートン力学による空間及び時間を通してオブジェクトの通り道をシミュレートする。剛体力学の特徴として、オブジェクトの形状はいつでも変わらないということがある。
【0103】
さらに、力学は圧迫したり圧迫させないようにしたりすることができる。圧迫された剛体力学において、オブジェクト間の相互作用、たとえば衝突などが起きることがある。圧迫されていない剛体力学において、オブジェクトは別のオブジェクトの動きに関係なく動く。
【0104】
動的変形において、オブジェクトは容積、ポジション、及び潜在的にオブジェクトの全てのサーフェルエレメントの速度を利用して、内部の力及び外部の力を受ける。マススプリングシステムを利用して、サーフェルオブジェクトに動的変形の物理ベースのモデリングを適用する。サーフェルはポイント容積であり、サーフェルを接続するリンクは、容積の現実的な物理的な動きをモデルへのスプリングとして作用する。
【0105】
4.1 サーフェルオブジェクトの剛体力学
剛体の物理ベースの力学のシミュレーションは、自然の法則による現実ワールドの動きをするオブジェクトの動きに関連している。重力やトルクなどの力をオブジェクトが受けるときの現実の動きを模倣する。動きが圧力を受けていない場合、こうしたオブジェクトは、他のオブジェクトとの衝突に影響されることなく、どこにでもまったく自由に動く。また、衝突などの圧力を受ける剛体のシミュレーションを処理するためにこのモデルを拡張する。
【0106】
図17に示されるように、剛体の状態を使用してサーフェルオブジェクトに剛体力学を実施する。
【0107】
ポジション及び向き
剛性のサーフェルオブジェクトのポジションを、ある時間tにおいて、x(t):(x,y,z)のベクトルで説明する。このベクトルは、「ワールド空間(world space)」座標系の原点からオブジェクトの現在のポジションまでのオブジェクトの移動を指定する。オブジェクトの向きは、「四元数(quaternion)」と呼ばれる四つの変数の集合で定義される。この集合は、それ自体のローカルな座標系の三つの軸を中心にしてオブジェクトを回転させる、回転マトリックスR(t)、3×3マトリックスを反映する。
【0108】
式 p(t)= R(t)p0+x(t)
【0109】
は、ローカルな座標系の剛性サーフェルオブジェクトの面におけるポイントp0のポジションを、ワールド座標系(world coordinate system)のポイントpに定義する。
【0110】
通常の回転マトリックスの代わりに四元数を使う。四元数は、q(t)=(qs,qx,qy,qz)と書く四つの数のリストである。この四元数を現実のパートqs、及び想像上の(x,y,z)に分ける。四元数を使うのには、二つの理由がある。
【0111】
第1に、9つの回転マトリックスの代わりに4つの変数しか必要としないため、状態ベクトルのサイズが小さくなり、計算も少なくてすむ。第2に、数値的に、状態ベクトルを積分して解をすすめるため、変数が数値エラーの蓄積を意味する数値ドリフトを受けやすくなる。四元数は回転マトリックスよりもドリフトの発生がはるかに少ない。さらに、四元数の大きさを正規化するので、四元数の再正規化によるエラー修復が容易である。
【0112】
四元数には他の利点もある。現実の部分や想像上の部分に四元数を分割することで、回転角や回転軸の識別に役立つ。四元数が正規化されるということは、その大きさが1と等しくなるということである。想像上の部分が、オブジェクトが回転する中心となる軸を定義する。回転部分はラジアンで表す。たとえば、ユニット軸uを中心とするラジアンの回転θは、
【0113】
cos(θ/2),sin(θ/2)u.
【0114】
で表す。
【0115】
四元数は、数値の積分のときに使う。マトリックスを実際に回転させてレンダリングを行わなければならないとき、四元数を回転マトリックスに変換する。積分を用いて差分式のセットを解かなければならないとき、ふたたびマトリックスを四元数に変換する。
【0116】
速度及び角速度
時間の経過に伴うオブジェクトのポジションは、その速度による。オブジェクトの速度は、x(t)の微分係数をとって決定する。
【0117】
v(t)=x’(t)=dx/dt
【0118】
サーフェルオブジェクトの向きを固定すると、ワールド空間を通るオブジェクトの動きはその線形速度による。オブジェクトが回転する場合、x’(t)であるときのq’(t)の類似するパラメータを決める。
【0119】
サーフェルオブジェクトの角速度をw(t)といい、w(t)は、向きによってサーフェルオブジェクトが回転する中心の軸を与えるベクトルである。w(t)の大きさ、|w(t)|は、オブジェクトが回転する速度を特定する。q(t)の微分係数q’(t)は、w(t)として想像上のパートをとることでw(t)から四元数を生じさせることでわかり、現実のパートにゼロの値を加える。
【0120】
w(t)=(0,wx,wy,wz
q’(t)=1/2qw(t)q(t)
【0121】
w(t)q(t)は、四元数qw(t)及びq(t)の積である。合わせると、ポジション、向き、速度、及び角速度は、剛体シミュレーションの状態ベクトルを含む。状態ベクトルは、全部で13個の変数を含んでいる。
【0122】
x(t)=qs,qx,qv,qz,xx,xv,xz,vx,vv,vz,wx,wv,wz
【0123】
これら13個の変数は、積分中の各時間的なステップごとに更新される。サーフェルオブジェクトの動きを示す積分方程式、すなわち時間の経過にともなう状態ベクトルの値をたてると、数値積分を使って方程式を解くことができる。
【0124】
x’(t)=f(x,t)
【0125】
ここで、関数fはx(t)の微分係数を計算する。関数fは、時間tの後の状態ベクトルxの状態を説明する。関数fがわかると、ワールド空間のサーフェルオブジェクトの新しいポジション、向き、速度、及び角速度を導くことができる。関数fを解くために、状態ベクトルxの微分係数を計算する。
【0126】
その他の量
さらにいくつかの状態変数を使って、x(t)からx’(t)を計算する。オブジェクトが加速する場合、サーフェルオブジェクトの新しい速度を計算する。例の力として、ユーザ入力から得られる重力または力がある。速度vは加速度aと等しいため、
【0127】
F=ma または a=F/m
【0128】
を使う。
【0129】
加速度aを計算するには、サーフェルオブジェクトの容積を知る必要がある。サーフェルオブジェクトの容積はシミュレーション中は変化しないので、シミュレーションの前処理状態において全てのサーフェルの容積を蓄積することでサーフェルオブジェクトの全体の容積を計算することができる。
【0130】
角度の加速度の計算のための力Fにあたるものとしてトルクがある。トルクはそれを回転させるオブジェクトに作用する。この力を重心に整列させると何も起こらないが、力がオブジェクトのどこか他の場所のポイントにかかるとすぐに、力によってオブジェクトは回転する。
【0131】
角度の加速度を計算するため、角速度の微分係数を使う。容積と類似したエンティティを使って、サーフェルオブジェクトに作用しているトルクT(t)から角度の加速度を決定する。このエンティティは慣性テンソルI(t)という3×3のマトリックスである。このテンソルは、時間が経つにつれて変化しないため、シミュレーションを開始する前に普通計算する。テンソルは、オブジェクトのボリュームにそってサーフェルオブジェクトの容積を配分する方法を述べる。実際に、この3×3のマトリックスは3つのエンティティのベクトルに導くことができる。
【0132】
角度の加速度の式を導き出すために、角度の運動量L(t)を使う。
【0133】
L(t)=I(t)w(t)
【0134】
及びその微分係数
【0135】
L’(t)=T(t)
【0136】
w’(t)の式を導くためには、
【0137】
w’(t)=(T(t)―I’(t)w(t))/I(t)
【0138】
剛体シミュレーション
図18に示すように、時間に依存するオブジェクト1601の剛性の状態1600を状態ベクトル1602にコピーする。状態ベクトルは、ある時間ステップhの新しい状態ベクトル1603を生じる数値的積分器1610の入力としてはたらく。状態ベクトル1603はサーフェルオブジェクトの状態1600に再びコピーされて、空間及び時間のオブジェクトの新しいポジション及び向きが次の処理ステップに知られる。
【0139】
衝突検出及び接触力
次に、圧力かかっていない剛性サーフェルオブジェクトの動きを説明する。オブジェクトを衝突に反応させたい場合、物理的な法則による二つのオブジェクト間のエネルギー及び慣性の交換を計算する。これにより、オブジェクトが衝突後に空間を通る新しい通路をたどる剛体の動きを生じる。計算した力はオブジェクトに吸収されず、全ての力は新しい向き及び新しい速度でオブジェクトを方向付けるのに使用される。マテリアルのプロパティによりオブジェクトの動的な変形が可能になる場合、衝突時にエネルギーを発散及び吸収可能であるため、エネルギー交換の計算も行う。
【0140】
二つのサーフェルオブジェクト間の衝突検出には、大量の計算的な手間が必要な場合があるが、これは他のオブジェクトの全てのサーフェルと一つのオブジェクトの各サーフェルを比較しなければならないからである。この問題を避けるために、たとえば球面に対する12面体など、各サーフェルオブジェクトについて多面体バウンディングボックスを生成する。適当な量のポリゴンを有するバウンディングボックスは、ある精度までサーフェルオブジェクトの面を近づけることが出来、衝突しないようチェックする必要のあるポリゴンの数を減らすことができる。
【0141】
二つのサーフェルオブジェクト間の衝突を検出する場合、オブジェクトのサーフェスの問題の部分(ポリゴン)を決定し、実際の衝突するサーフェルの検索を開始するので、一つおきのサーフェルでそれぞれのサーフェルをチェックすると言う最初のタスクが減る。衝突に参加するサーフェルを見つけると、サーフェルオブジェクトの状態ベクトルの属性から接触力を導出することができる。
【0142】
サーフェルレベルで接触力を決定した後、新しい速度または向きなどの衝突から生じる状態の変化を計算することができる。また、以下に述べるマススプリングシステムなどを使ってサーフェルオブジェクトを変形し始めることができる。
【0143】
4.2 サーフェルオブジェクトの変形の動的モデリング
剛体モデリングは、オブジェクトの動的な変形を扱わない。オブジェクトに作用する力によってオブジェクトの形が変わる場合、サーフェルオブジェクト内の個々のサーフェルを処理するモデルを使う。サーフェルオブジェクトは別々のポイントサンプルから構成されるため、サーフェルオブジェクトの動的変形のシミュレーションはオブジェクトの各サーフェルの動きをシミュレートすることで行う。
【0144】
特に、各サーフェルはポジション、速度、力、及び図19で示されるサーフェルに作用する容積を有する。したがって各サーフェルについて、次のように定義する。
【0145】
x’(t)=v(t)
v’(t)=f/m=a
【0146】
上記のように、これらは剛体力学と同じである。
【0147】
また、剛体力学と類似して、シミュレーションを生じさせることができるサーフェルオブジェクトの状態のスナップショットを撮る。サーフェルオブジェクトに存在する各ひとつのサーフェルの状態を反映する状態ベクトルを生成する。剛体力学と同じく、数値的積分器にこの状態ベクトルを加えて、時間間隔hの終わりの各サーフェルの新しい状態を反映する新しい状態ベクトルを計算する。
【0148】
図19は、変形シミュレーション中にサーフェルオブジェクト1702の各サーフェル1701と関連付ける変数1700を示す。サーフェルはゼロ次元のポイントとしてモデリングされるため、サーフェルの向きを格納する必要はない。サーフェルの状態のコンテンツに依存する時間は、状態ベクトルを定義する。
【0149】
x(t)=(xx,xy,xz,vx,vy,vz
【0150】
サーフェルを置換すると力が生じ、サーフェルリンクでモデリングされる二つのサーフェル間の自然の距離で分裂を生じさせる。こうしたサーフェルの置換は、サーフェルオブジェクト間の衝突や、ユーザ入力による結果として起こり得る。
【0151】
4.2.1 マススプリングシステム
図20は、マススプリングシステムにおいてリンク1802によって接続されるサーフェル1801の格子としてモデリングされるサーフェルオブジェクトの部分1800を示す。サーフェル1801は容積を有し、リンクはオブジェクトをこえる力を伝播する。力が一時的なものであると、オブジェクトは、力がかかる前に有していた形状に戻ろうとする。この場合、オブジェクトはメモリを有している。
【0152】
メモリはリンクに格納される。サーフェルオブジェクトを生成する場合、共通リンクを共有する二つのサーフェル間の自然の距離を決定する。これは、サーフェルリンクの属性の一つとして格納される残りの長さ420である(図5参照)。リンクを共有する二つのサーフェル間の距離の分配は、自然のリンクの長さの違反を意味する。これによりサーフェルレベルの力が発生する。この力はひとつのサーフェルについて計算されるためバイナリ力という。これは、フックの法則をスプリングに応用することで行うことができる。
【0153】
i=[ks(|d|−l0)+kd|d’|]d*
j=−fi
【0154】
ここで、fiはサーフェルiに作用する力であり、ksはリンクの弾性成分であり、kdはダンピング因数である。残りの長さはl0である。リンクは二つのサーフェルと接続するため、逆の力を別の端のサーフェルjにかけることができる。d=(xi−xj)を計算して、リンクの両終点間のベクトルを定義する。
【0155】
|d|の値は、d*=d/|d|がその方向における単位ベクトルであるときにそのベクトルの長さを定義する。最後に、|d’|はリンクの長さの瞬間の変化である。これは、速度を引いてその結果をd:(vi−vj)d*の単位ベクトルでかけて、計算する。
【0156】
量(|d|−l0)は、残りの長さl0を違反しない場合に、ゼロになる。この値がゼロでない場合、この違反の量をかけるリンクの弾性因数に依存する。
リンクを共有する二つのサーフェルが別の方向に動くとき、二つのサーフェル間の距離に変化が生じる。この距離が残りの長さと異なるとき、リンクの自然な長さが乱されるため、力は両方のサーフェルに作用する。リンクは二つのサーフェルを元の場所に戻すよう試みる。
【0157】
図21は8つ以下のその他のサーフェルに接続するサーフェルの力を蓄積するのに使うことができる処理過程1900を示す。この処理過程は、シーケンシャルリスト600(図7)の各サーフェルに実施して既存のリンクをチェックする。
【0158】
リンクが見つかると、Compute_Force関数を呼び出して、共通リンクで接続される両サーフェルに作用する力を計算する。各ひとつのサーフェルの各力を決定した後、積分器の微分係数を生じさせる。
【0159】
リンクの弾性因数とダンピング因数の両方を使って、モデリングしたサーフェルオブジェクトのマテリアルプロパティを調整することができる。こうした量は自然な張力の動きを考慮し、それに従って弾性因数を選択する試行錯誤によって求めることができる。
【0160】
ダンピングは、振動のためにマテリアルが分解しないようにする弾性因数と関連しなければならない。システムは、kd=2√(m’ks)であるときに臨界減衰するといわれている。m’の値は等しい量である。リンクの各端においてリンクがサーフェルに重み付けされるため、こうした二つの量を「見る(sees)」リンク、すなわちm’=m/2を仮定することができる。実際には、等しい量は、積分器を通して他のサーフェルに貢献するリンクが通過するために、より高くなる。
【0161】
両因数を選択するのには注意が必要である。弾性及びダンピングが適切に一致していない場合、振動が生じて、各積算ステップにおいて集中する力のチェーン反応を生じさせ、最終結果としてサーフェルの破壊が起きることがある。このようになるのは、ダンピング因数が足りなくて、互いに離れるサーフェルをコントロールできない場合である。
【0162】
シミュレーションの実行
図22は、たとえば衝突などによりサーフェルオブジェクトに物理ベースの動的変形がおこったプロセス2000を示す。サーフェルオブジェクト2001は、リンク2003によって接続される複数のサーフェル2002を含む。サーフェルオブジェクトには多くのサーフェルがあるため、各サーフェルの状態ベクトルを連結して、サーフェルポジション及び完全なサーフェルオブジェクト2001の速度の1つの大きな状態ベクトル2010、を形成する。
【0163】
これにより、nがオブジェクトのサーフェル数である場合、長さ6nの結合した状態ベクトルが生じる。この力は処理過程1900で蓄積され、またステップ2020で集積されて、個々のサーフェル2002の状態を更新するのに使用可能な新しい状態ベクトル2030を生成する。
【0164】
図23は、図22の処理過程2000で使用可能なラッパー(wrapper)処理過程2100を示す。この処理過程により状態ベクトル2010が発生し、各サーフェルにおける力を蓄積するプロセス1900を呼び出す。ラッパー2100は積分器2020も呼び出す。この中でエラースケール(err-scale)は許容可能なエラーの量を測定する。
【0165】
4.2.2 変形後のサーフェル法線の決定
サーフェルが変形中にピクセルグリッドに対して圧力を受けなくなるため、変形後にサーフェルオフセットと法線を再び考えなければならなくなる場合がある。サーフェルオフセットは変化することがあるが、これはオフセットがシーケンシャルリストの前のサーフェルへの距離を測定するからであり、こうして新しいポジションを有するどんなサーフェルにも再計算を行うことができる。
【0166】
さらに大きい問題として、図24乃至図26に示されている通り、変形のシミュレーション中にサーフェル法線が変化しない、ということがある。図24は、サーフェル法線2211のサーフェル化したポリゴンの部分2210を示す。図24乃至図26に示すように変形した部分2220では、サーフェル法線2211は、シミュレーション前と変わらない。これにより、サーフェルオブジェクトがレンダリングされると間違った表現がされることは明らかである。部分のための正しい法線2221は図26に示されている。
【0167】
法線2221は、変形したサーフェルを通過する接平面から見つけられる。サーフェルは接続されているため、接平面にある二つの非同一線形ベクトルは、二つの最も近い隣り合う二つのサーフェルで見つかる。最も近い隣り合うサーフェルは、サーフェルリンクから見つけることができる。
【0168】
5.サーフェスエレメントのレンダリング
サーフェルオブジェクトをモデリングすると、表示機器またはプリンタにおいてレンダリングを行うことができる。上記で述べたように、サーフェルは(サーフェル)ボクセルと近い類似性を有している。両方とも、グリッドにおいて定義される。ボクセルの典型的な定義は、ボリュームの整数のグリッドポジションに配置されている、値またはサンプルと考えることができる。本発明によると、各サーフェルは、画像面に1ピクセルに投影する。全体的に、オブジェクト順レンダリング投影プロセスを使う。ピクセルへのサーフェルの一対一のマッピングのため、ラスタ化は不要である。
【0169】
デティルの様々なレベルにおいてサーフェルの表現を行うことにより、ズーム、すなわちサーフェルオブジェクトと画像面との距離の変更を容易にすることができる。この場合、1ピクセル以上または未満のピクセルを1ピクセルに投影すると、デティルの対応するレベルの表現を選択して、サーフェル及びピクセル間の一対一のマッピングを維持することができる。
【0170】
図27は、サーフェルオブジェクトのレンダリングパイプライン2300を示す。パイプライン2300は、相当する座標空間で作用する5つの段階2301から2305を有する。レンダリング中は、各サーフェルSは13個1組のベクトルとして定義することができる。このベクトルは以下の式を含む。
【0171】
S={x,y,z,ox,oy,oz,nx,ny,nz,r,g,b,α}
【0172】
ここで、x,y,zはサーフェルのポジションであり、oはオフセットであり、nはサーフェス法線であり、r,g,bはサーフェルの色であり、αはサーフェルの不透明度である(図5,6参照)。
【0173】
レンダリング装置2300は、図7のリスト600において第一のサーフェルで開始する。このサーフェルをカメラの位置のためクリップしない場合、サーフェルのポジションはワールド座標から、ビューイングマトリックスMによって変わる。
【0174】
平行な投影のみを考慮するため、変形はアフィン変換であり、透視図の分割は不要である。第1のサーフェルでは、ビュー座標はカメラによって決定されるクリッピング境界に対してクリップされる。クリッピング境界には、近い面と遠い面と、さらにカメラの描写を提供するビューポート大きさが含まれている。サーフェルがこうしたクリッピング境界内にある場合、サーフェルを深度バッファに対してチェックする。
【0175】
光源によるサーフェスの照射をシミュレートするには、シェーディングの計算をサーフェルに対して行う。光源の照射をモデリングする方法の一つとして、各サーフェルにローカルの照射モデルを適用することがある。ローカルの照射モデルの最も良い結果が得られるのは、フォンシェーディングとして公知の、ここで使用するものである。フォンシェーディングは計算においてオブジェクトのマテリアルプロパティを使用して、オブジェクトに高品質のシェーディングを提供する。
【0176】
5.1 オブジェクト順の投影
どのピクセルにサーフェルを投影させるかを決定するには、0番目、または最も近接する補間を行う。ピクセル(x、y)の中心が、(x+0.5、y+0.5)に位置していると考える。この場合最も近接する補間とは、サーフェルのx及びyのビュー座標の整数部分を考慮するだけでわかるピクセルポジションを意味する。
【0177】
各連続するサーフェルのビュー座標は、スクリーン空間のオフセットにサーフェルのオフセットを変換することでわかる。問題となっているサーフェルのビュー座標を、次に、前のサーフェルのビュー座標に関連付ける。上記に述べたように、こうしたオフセットの多くは同じであるため、すでに変換したオフセットをルックアップテーブルに格納したり、必要に応じて検索したりすることができる。このルックアップテーブルへインデックスを計算するのに、ビューイングマトリックスを直接使用してビュー座標を計算することが必要である。同様の座標を、平行投影を用いて直接ビュー座標に変形させるには、全部で18の操作(乗算及び加算)が必要である。
【0178】
オフセットを使ってサーフェルのビュー座標を決定するには、ビューイングマトリックスを使って第1のサーフェルの変換を行わなければならない。直交投影には、各隣のサーフェルのビュー座標を、ビュー変換させたオフセットを加えることで見つけることができる。8つの接続を有するサーフェルでは、考えられるオフセットの組み合わせは、{±1,0,0}、{0,±1,0}、{0,0,±1}である。
【0179】
ビュー変換したオフセットは予め計算されて、たとえば、下の式のような独自にインデックスされたルックアップテーブルに格納することができる。
【0180】
index = ox+3・oy+5・oz+5
【0181】
このとき、oはオフセットを示す。このルックアップテーブルには、二回の積算と三回の加算のみが必要である。さらに3回の加算が必要になり、ビュー変化したオフセットを追加してビュー座標を得るので、サーフェルにつき全部で8つの操作が必要になる。
【0182】
5.2 ぎざぎざのエッジ、テラス、及び穴
サーフェル表現から生じた画像は、図28に示されているように、ぎざぎざのエッジはテラス効果2400などのエイリアジングアーチファクトという難点がある。これには二つの理由がある。第1に、サーフェルはピクセルの大きさでセルに配置されているポイントサンプルだと考えられていること。投影のサンプリング率は、ぎざぎざのエッジなしでは形を再構成するほど高くはないのである。
【0183】
第2に、オブジェクトのある方向においてはより多くのサーフェルをピクセルに投影するとはいえ、一つのサーフェルしかピクセルに投影しないため、結果的に一つしかピクセルに対して値を貢献しない。その他のサーフェル(隠れサーフェスエレメント)は、深度バッファによって排除される。ぎざぎざのエッジは深度バッファを使うことの公知の問題である。「ぎざぎざ(jaggies)」及びテラスは、オブジェクトの色における高い空間周波数(spatial frequencies)を有する場所に現れうる。エイリアジングアーチファクトは、以下により詳細に述べるスプラット技術によって減らすことができる。
【0184】
図29及び図30に示すように、最も近接する補間投影を使う変形したサーフェルのレンダリングのもう一つの問題に、穴がある。ビューイング方向にほとんど平行な軸を中心にオブジェクトが回転するとき、またはオブジェクトが変形するときに穴ができる。「穴(holes)」の問題に対しては、次の解決法を提示する。
【0185】
図29において、オープンサーフェルの破線のグリッドは元のポジションであり、ソリッドサーフェルの実線のグリッドは、再方向付けのあとのポジションである。方向付けの後、中心のグリッドポジション(ピクセル)は、対応するサーフェルがなくなってしまう。これにより、レンダリングした画像に穴があくのである。図30では、グリッドの一部が二方向に変形してスクリーン(ピクセル)ポジションに穴があいてしまっている。
【0186】
穴は、隣り合うサーフェルを使用して「ふさが(filled)」なければならないため、サーフェルへの画像面の一対一のマッピングにとって重要な短所である。これには、サーフェルごとにさらなる操作を必要とする場合があり、そのため処理時間がかかる。以下の説明において、「穴」の問題に対する解決法を示す。
【0187】
5.3 サーフェルの剪断ゆがみレンダリング
ある解決法では、剪断ゆがみ因数化(因数分解)を利用してサーフェルオブジェクトのレンダリングを行う。剪断ゆがみ因数化は、ビュー変換は二つの別のステージに分けられるという観点にたっており、剪断の後ゆがみがおこる。
【0188】
view=P・S・Mwarp
【0189】
ここで、Pは順列マトリックスと言い、Sは剪断マトリックス、またMwarpはゆがみマトリックスである。剪断オブジェクト空間において、ベース面への投影は、いわゆるベース面と直交している。
【0190】
図31に示すように、因数化は、一般に、三つのステップを含んでいる。第1に、ボリューム2500では、ビューイング方向2501と最も平行な主軸(x0)が決定され、また主軸が直交するベース面2502または中間画像を定義する。この軸はベース面のビューイング方向に割り当てられる。この空間での座標の定義は、Pを使った順列によって行われる。この空間は順列空間と呼ばれる。このベース面は、バウンディングボックスの面の一つと一致しており、従ってオブジェクトの一部とも一致する。
【0191】
ベース面とボクセルの各スライスとに垂直なビューイング方向の定義には、図32及び図33に示すように、オブジェクトを剪断しなければならない。図32及び図33で、ライン2601はビューイング方向であり、平行なライン2602はスライスである。剪断は−Vx/Vzによって計算する。三次元では、剪断は同様に、y方向にも行われる。オブジェクトの座標は、Sを使用する剪断された座標空間に変換される。ボリュームの剪断には、ボクセルの再サンプリングが必要である。
【0192】
第2に、オブジェクトをベース面2502に投影して、中間画像を生じさせる。剪断ゆがみの変形がもともと起こるオブジェクトでは、剪断されたボリュームのいくつかのプロパティを活かすことができ、レンダリングの速度をあげる。こうしたプロパティの一つに、スライスはベース面のピクセルの流れに対して平行であるということがある。
【0193】
第3に、図34に示すように、中間画像を歪みマトリックスに応じて最終的な画像まで歪ませる。図34では、矢印2701は剪断であり、矢印2702は投影であり、矢印2703は歪みであり、楕円2700はもともと球体のオブジェクトであり、ライン2704はベース面であり、ライン2705は画像面である。剪断歪み因数化をサーフェルオブジェクトへと、次のように適用する。剪断ステップはオブジェクトの形を変える。しかし、ベース面画像には穴はできない。これは、図35,36を使って説明することができる。2次元におけるビューイング方向の傾斜は、VxとVzが等しい場合に最大値1.0である。言いかえると、オブジェクトに垂直な方向のビューイング方向の角度は最大で45度であり、これは角度が大きくなるにつれて異なる主軸を、オブジェクトに垂直な軸にするようにとるからである。
【0194】
オブジェクトは傾斜に応じて剪断されるため、ある方向における剪断も最大で1.0であり、これによって、ライン2801がベース面であり、矢印2802がビューイング方向であり、グリッド2810がオブジェクト空間にあり、グリッド2802が剪断空間のピクセルグリッドである図35及び図36に示すように、全てのピクセルはサーフェルからの貢献を得る。剪断歪みの異なる段階を実行すると、最終的にビュー変換が生じる。
【0195】
最終的な画像の穴は、穴を含まないベース面の画像をテクスチャマップとなるように定義することにより防止できる。次にこのテクスチャマップを面でのテクスチャマッピングに使用し、この面を歪ませて最終的な画像にする。この歪みは、歪みマトリックスに応じて変わるオブジェクト空間で定義されるある面として考えることができる。この変わった、テクスチャマップされた面は、次にスクリーンにレンダリングされる。
【0196】
5.4 スケーリング
画像面のサーフェルオブジェクトの範囲内にある各ピクセルが、最も近接するフィルタリングを保持する間、それと関連する少なくとも一つのサーフェルを有することを確実にするために、オブジェクトをスケーリングすることもできる。このスケーリングは、三つの方向すべてにおいてピクセルサイズの間隔を維持するよう均一にすべきである。決定しなければならないのは、オブジェクトを最小限にスケーリングしなければならないスケール因数である。
【0197】
オブジェクトにおける穴のパターンは、回転角度に依存する。45度と90度との間の回転に現れるパターンは、0度と45度との間の回転に現れるパターンと同じであるが、一方でこれらは、45度の回転のラインに対して反映される。各45度の回転インターバルでは、穴のパターンはインターバル0度から45度のパターンとまったく同じであるか、または反映されたパターンと同じで再び現れる、完全な360度の回転に当てはまる。
【0198】
ここで、マッピングされたサーフェルを含むセルでピクセルを考えることにより、スケール因数を決めることができる。セルの2次元投影は、セルが回転していない場合にはピクセルのサイズと完全に一致する。しかし、セルの2次元投影をピクセルの中心で回転させると、セルのコーナーはピクセル境界の外側になる(図37乃至図39参照)。
【0199】
図37では、サーフェルはピクセルにマッピングされ、図38ではサーフェルは45度で回転し、図39ではサーフェルは(1/2)√2によってスケーリングされる。
【0200】
セルの、ピクセル境界への2次元のコーナーの最大距離は、45度の回転において生じる。ピクセルが単位正方形(unit squire)であると仮定すると、この場合のピクセルの中心からコーナーへの距離は(1/2)√2である。投影のコーナーをピクセル境界にするためには、スケール因数も(1/2)√2でなければならない。ピクセルの中心からセルの投影のコーナーまでの距離をこの因数でスケーリングすると、(1/2)√2である。これによって、ピクセルごとに少なくとも一つのサーフェルをオブジェクトの範囲において各ピクセルごとに値に貢献するようにするのである。
【0201】
スケーリングによって、スクリーンにおけるオブジェクトが小さくなることは明らかであり、そのためオブジェクトのサイズを維持するためには、より大きなオブジェクトを生成しなければならない。たとえば、100のサーフェルの半径をもつ球体は、スケーリングなしでは100のピクセルの半径を有する。球体をスケーリングする場合、100ピクセルの半径のレンダリングした球体を得るには、球体の半径を100・√2にしなければならない。
【0202】
より解像度の高いオブジェクトを生成して次により解像度の低いオブジェクトをレンダリングする原理は、スーパーサンプリングと同じである。ここで、ワードスケーリングを使用して、スーパーサンプリングがサーフェルオブジェクトに適用されることを示す。
【0203】
5.5 スプラッティング
エイリアジング及び穴の問題の第3の解決法としては、図40及び図41に示されるスプラッティングを使用するということがある。図40及び図41で、ピクセルグリッド3000は、サーフェル3001にマッピングされる。グリッドロケーション3002には「穴」がある。図41では、サーフェルは、穴を埋めるために、それに比例して拡大されている。
【0204】
スプラッティングで、再構成「核(kernel)」に応じてサーフェルの貢献を複数のピクセルに拡大または「伸張(spread)」する。このプロセスは、デジタル画像処理からの技術に基づいたものであり、この場合、再構成関数を使ってサンプリングしたデータから信号を再構成するのに使う。
【0205】
サンプルでは、単位球体(ユニット部分の球体)を定義する。球体は、三次元において再構成核を示す。サンプルをスクリーンに投影すると、球体の範囲は円になる。円内の各ピクセル(x、y)では、サンプルの貢献を、z軸、すなわちビューイング軸に沿って再構成核を統合して計算する。オフセットを除いては、この範囲はサンプルとまったく同様であるため、積分を、いわゆる一般的なフットプリントテーブルと置換することができる。
【0206】
再構成フィルタの積分は、exp(−x2+y2/2σ2)の形のガウシアン関数により近似される。この関数は回転的に対称であり、これは線形的には各方向で別々に積分可能であることを意味し、その結果を乗算することで合計の積分を得ることができる。こうしたプロパティは、ガウシアンを使って一般的なフットプリントテーブルを作成するのに必要である。
【0207】
一般的なテーブルを作成するには、三次元核、すなわちユニット領域の球体、を平面に投影し、この投影は円つまりユニット領域の円である。次にユニット領域の円を、多くの入力、たとえば100×100を、ガウシアンフィルタを使ってテーブルにサンプリングするが、この場合、ユニット領域の円に対応しないテーブル入力の値はゼロである。
【0208】
ボリュームは必ずしも三つすべての方向において等間隔を有している訳ではないため、ユニット領域の球体を特定のビューにおいて長円体になるようにしてもよく、したがって特定のビューにおけるフィルタの投影を楕円にすることができる。楕円の一般的なフットプリントテーブルを使用するかわりに、いわゆるビュー変換したフットプリントテーブルを一般的なフットプリントテーブルからいったん作成する。
【0209】
ビュー変換したテーブルを使用するためには、レンダリング装置で二回の計算が必要である。まず、ピクセルの範囲を、ビュー変換したフットプリントテーブルで計算しなければならない。次に、ビュー変換したフットプリントテーブルから一般的なフットプリントテーブルへのマッピングを計算しなければならない。
【0210】
ピクセルの範囲は、核またはスプレッド(spread)の幅を用いて計算する。ビュー変換したテーブルから一般的なテーブルへのマッピングは、円から円へのマッピング、またはユニット領域球体を特定のビューで長円体に変換する場合には、楕円から円へのマッピング、のいずれかである。
【0211】
レンダリング中には、ビュー変換したフットプリントテーブルがサンプルの画像ポジションの中心になる。もう一つのパラメータが、ビュー変換したフットプリントを使うのに必要であり、これがテーブルの大きさである。大きさはテーブルの範囲とは異なっている。テーブルの大きさにより、ビュー変換したテーブルの入力数が決まる。ビュー変換したテーブルの大きさはそれがカバーするピクセル数より大きくなければならず、大きくない場合にはエイリアジングアーチファクトを画像に生じる。広い大きさと同様に、大きな範囲を有するビュー変換したテーブルによって、オブジェクトのぼんやりした画像が生じる。ビュー変換したフットプリントテーブルは、ビュー変換したフットプリントテーブルの範囲内にあるピクセルの各ピクセル中心にサンプリングされ、特定のテーブル入力における重みはピクセルへの貢献を計算するのに使われる。
【0212】
サーフェルに一般的なスプラッティングプロセスを以下のように適用する。ボリュームにおいて、図40に示されるように、グリッド間隔は三方向すべてにおいてかならずしも等しくなく、獲得の種類によって変わる。また、出力サンプル(ピクセル)の解像度は、入力サンプル(ボクセル)の解像度よりも高いのが普通である。この理由により、グリッドスケールの因数及びピクセル対ボクセルの比率を公式に表し、ビュー変換したテーブルの範囲を計算する。
【0213】
しかし、サーフェルでは、こうした二つの因数は二つとも1に等しい。したがって、ビュー変換したフットプリントテーブルの大きさは比較的小さくすることができる。半径の範囲が1.5の再構成核は、スクリーンの範囲を3ピクセルにする。5×5から10×10の大きさでは、サーフェルに適用するスプラッティングには十分である。
【0214】
レンダリング装置は、スクリーンへサーフェルを投影することで開始し、ビュー変換したフットプリントテーブルをスクリーンのx、yポジションを中心にする。テーブルの範囲内にある各ピクセルの中心では、そのピクセルのテーブル入力を決定し、そしてその入力の重みをピクセルの値に適用する。
【0215】
剪断ゆがみ、スケーリング、及びスプラッティングの比較
剪断ゆがみには、ベース面へのオブジェクトの投影が、軸によってベース面と整列する三次元グリッドで行われるという利点がある。最終画像に穴が生じないようにするため、ゆがんだベース面画像には、そのピクセル値を補間する必要がある。剪断ゆがみの欠点としては、シーンにおける各オブジェクトは別々の画像にレンダリングする必要があり、結果できた画像をブレンドして最終的なシーンを構成しなければならない。これは複雑であり、オーバーヘッドとなる。
【0216】
レンダリング前にオブジェクトをスケーリングすることで、複数のサーフェルをひとつのピクセルに投影する。もとのレンダリングプロセスはオブジェクトをレンダリングするのに適用され、プロパティは、一つのサーフェルが最終的にピクセルにその値に貢献し、サーフェルが最も小さい深度値で1になる、というものである。因数(1/2)√2でオブジェクトをスケーリングすると、ピクセルにつき少なくとも一つのサーフェルができる。スケーリングをすると画像面のオブジェクトが小さくなるため、スケーリングでは、最初に大きいオブジェクトを生成しなければならない。
【0217】
穴の問題に対する最後の解決法として、周辺のピクセルへのサーフェルの貢献をスプラッティングすることがある。サーフェルの値は、各サーフェルに関連するフィルタに応じて重みづけされ、この重みづけられた値をピクセルに割り当てる。画像は、全ての貢献をピクセルに蓄積することで生じる。このようにして、穴は、ピクセルに周辺のサーフェルを貢献することによって埋められるが、これは周辺サーフェルのスプレッドが十分広いということを条件とする。スプラッティングすると、スプラッティングがもともとオブジェクトの色をぼやけさせるので、オブジェクトのサーフェスのぎざぎざのエッジ及びテラスをアンチエイリアジングさせる。サーフェルのスプレッドが大きくなりすぎた場合、ぼやける度合いも大きくなりすぎる。
【0218】
スプラッティングの技術を使って、高速レンダリング技術を有するサーフェル表現をおこなったり、コンスタントな再サンプリングをせずにオブジェクトの変形を行うことができる。最初は、オブジェクトのサーフェルは8個の接続であり、したがって、互いに離れている多くとも一つのピクセルでは、スプラッティングに使われるテーブルは比較的小さいままにすることができる。6×6及び8×8ピクセルの範囲のテーブルは、穴を埋めるのに十分である。
【0219】
オブジェクトが変形して大きな穴がサーフェスに生じてしまった場合、オブジェクトをすぐに再サンプリングする必要はない。まず、より大きな穴も埋めることができるように、核をスプラッティングする範囲を拡大する。大きすぎる範囲は、レンダリングをかなりスローダウンさせるため、オブジェクトを時々再サンプリングすることが必要であり、またはサーフェルの大きな穴のポジションでサーフェルを部分的に生成させることが必要である。
【0220】
6.0 第1、第2、および第3のサーフェル
これまでに、すべてのサーフェルが作成されて等しく処理された。すなわち、各サーフェル100は、サーフェル属性の完全なセットを有し、隣り合うサーフェルすべてとリンク300によってリンクされ、各リンクはリンク属性の完全なセットを有する。サーフェルがシミュレーションで使用される場合、すべてのサーフェルがモデリングされ、かつすべてのサーフェルがレンダリングされる。
【0221】
モデリング等、いくつかのレンダリングに関連する動作では、すべてのサーフェルを処理するので、リアルタイム対話性の達成が困難になる。リアルタイム対話性には、サーフェルを約30フレーム/秒でレンダリングする必要がある。さらに、すべてのサーフェルおよびリンク属性を格納すると、記憶領域(storage)を消費する。従って、用途によっては他のクラスのサーフェルが必要になる。
【0222】
図42は、(オープン)第1のサーフェル3101と、(クローズド(closed))第2のサーフェル3102のグループとを示す。各第1のサーフェルは、上述したように完全に属しており、かつ完全にリンクされている。第2のサーフェルの各グループは部分的に属しており、かつ1つの第1のサーフェルのみにリンクされている。例えば、各第1のサーフェルは、関連する第2のサーフェルを15個有する。1:35または1:63等ほかの比率もまた使用できる。各第2のサーフェルは、レンダリング、すなわちポジション、色、および法線に必要な属性3110のみを含み、リンクはない。第2のサーフェルのポジションは、それらの第1のサーフェルからのオフセットとして格納できる。第2のサーフェルは、第1のサーフェルと同時に、かつ第1のサーフェルと同様にして生成される。これらの例において、第1のサーフェルは、その第2のサーフェルグループの角に配置される。あるいは、第2のサーフェルは、第1のサーフェルを中央に有することにより「バランスをとる」ことができる。
【0223】
利点として、このデータ表現は、レンダリングした画像の質を変えることなく、より少ない記憶容量を使用する。より重要なこととして、この表現では、処理にかかる時間がより短い。例えば、第1のサーフェルしか持たないオブジェクトを1フレーム/秒の速度でモデリングできる場合、第1のサーフェルしか処理しないため、1:35比を有する同一オブジェクトを30フレーム/秒よりも良好にリアルタイムでインタラクティブにモデリングできる。モデリングにサーフェルのスペーサセットを使用することは、最終結果に最小限の影響しか持たない。図43および図44は、変形前後のサーフェルを示す。第2のサーフェルのグループがそれらの制御第1のサーフェルとともに移動し、かつスケーリングされる。第2のサーフェルは所定のしきい値までしか移動およびスケーリングされない。
【0224】
穴が形成されるほど変形が大きい場合、一時的な使用のために第3のサーフェルが生成される。図45は、どのようにして第3のサーフェルを処理するかを示す。第1のサーフェルの4×4アレイは、ベジェパッチ3300の制御ポイントとして使用される。一時的な第3のサーフェル3301は、必要とされる任意の密度で、パッチの(滑らかな)サーフェス3302上に生成される。各第3のサーフェルの属性(ポジション、色、および法線)は、16個の制御サーフェルから得られる。第1のサーフェルもまた第2のサーフェルに関連している場合、第3のサーフェルの属性値を計算する際に、第2のサーフェルの属性を考慮に入れる。なお、フレームがレンダリングされるとすぐに、第3のサーフェルは破棄され、必要であれば、新たな第3のサーフェルが次のフレーム用に生成される。
【0225】
第1および第2のサーフェルの変形
図46〜図48は、どのようにしてサーフェル化したサーフェス3400を変形することができるかを示す。これらの図面において、オープンドットは第1のサーフェルを示し、クローズドドットは第2のサーフェルを示す。上向きの矢印は、サーフェス法線である。ここでは、サーフェスをエッジから見ている。マウスを使用して、カーソル3401は変形ポイントを選択できる。次に、カーソルはサーフェスを「上」、「下」、「横」等に「ドラッグ」できる。(第2の元における)変形の形状は、ガウシアンにより定式化される。
【0226】
【数1】
Figure 0004364409
【0227】
変形の高さ(h)3402および伸張(s)3403もまた、マウスで制御できる。第3の元において、変形は、パナマ帽の形状、または逆には小さなへこみの形状を有する。すなわち、ガウシアンの伸張内のサーフェルだけが更新の対象となる。
【0228】
変形は永久的にでもよく、あるいは変形されたサーフェスがその通常の静止状態にはじきもどされてもよい。サーフェルをその静止状態に戻すには、図19の動的状態属性1701もまた、該サーフェルの静止位置を含む。1つの変形において、サーフェスは、減衰振動を使用して回復される。振動の程度は、それらの静止位置からの変位量に従ってサーフェル上に作用する力により制御できる。
【0229】
選択された特定のサーフェルを識別するために、サーフェルオブジェクトを包含するバウンディングボックスを通しての視点(カメラポジション)からラインをトレースする。バウンディングボックス内のライン部分は、ワールド座標系からサーフェルのポジションを示すために使用されるローカル座標系(x,y,z)に変換される。ラインはサーフェルオブジェクトと交差し、視点に最も近いサーフェルが選択される。
【0230】
サーフェルオブジェクトは、サーフェスを通して穴を開けることにより同様に「湾曲」しうる。穴のロケーションおよびサイズは、マウスおよびカーソルにより制御できる。また、同様にマウスを使用して、サーフェルオブジェクトを異なる色に「ペイント」できる。一色が選択され、選択されたサーフェルの選択された半径内のサーフェルが色づけされる。
【0231】
以上のように、本実施の形態においては、オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、オブジェクトのサーフェスに位置する各セルのゼロ次元サーフェスエレメントをメモリに格納し、サーフェスエレメントのサブセットを第1のサーフェスエレメントとして選択し、選択されなかったサーフェスエレメントを第2のサーフェスエレメントとして識別し、隣り合う第1のサーフェスエレメントをリンクによって接続し、関連する第1のサーフェスエレメントおよび関連する第1のサーフェスエレメントのリンクに対して、特定のセルに含まれているオブジェクト部分の第1の属性を割り当てる。
【0232】
各第1のサーフェスエレメント毎に1つのグループがあるように、選択されないサーフェスエレメントはグループに分割され、特定のセルに含まれるオブジェクト部分の第2の属性は、関連する第2のサーフェスエレメントに割り当てられる。
【0233】
各サーフェスエレメントに割り当てられたオブジェクト属性は、オブジェクトサーフェスにおけるサーフェスエレメントのポジション、エレメントの速度、対応するセルに含まれるオブジェクト部分の容積を含むことができ、各リンクに割り当てられる属性は、リンクによって接続された隣り合う2つのサーフェスエレメントの間の残りの長さを含むことができる。
【0234】
本発明は、特定の用語及び実施の形態を使って説明している。様々なほかの応用例及び修正例を、本発明の精神及び範囲内において行うことができる。したがって、添付の特許請求の範囲の目的は、発明の真の精神及び範囲内におけるこうした変更例及び修正例をすべてカバーすることである。
【0235】
【発明の効果】
この発明に係るグラフィックオブジェクトの表現をモデリングする方法は、オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、オブジェクトのサーフェスに位置する各セルのゼロ次元サーフェスエレメントをメモリに格納し、サーフェスエレメントのサブセットを第1のサーフェスエレメントとして選択し、選択されなかったサーフェスエレメントを第2のサーフェスエレメントとして識別し、隣り合う第1のサーフェスエレメントをリンクによって接続し、関連する第1のサーフェスエレメントおよび関連する第1のサーフェスエレメントのリンクに対して、特定のセルに含まれているオブジェクト部分の第1の属性を割り当てる。
【0236】
各第1のサーフェスエレメント毎に1つのグループがあるように、選択されないサーフェスエレメントはグループに分割され、特定のセルに含まれるオブジェクト部分の第2の属性は、関連する第2のサーフェスエレメントに割り当てられる。
【0237】
各サーフェスエレメントに割り当てられたオブジェクト属性は、オブジェクトサーフェスにおけるサーフェスエレメントのポジション、エレメントの速度、対応するセルに含まれるオブジェクト部分の容積を含むことができ、各リンクに割り当てられる属性は、リンクによって接続された隣り合う2つのサーフェスエレメントの間の残りの長さを含むことができる。その結果、レンダリングした画像の質を変えることなく、より少ない記憶容量を使用することにより、処理にかかる時間をより短くすることができ、モデリングを簡略にすることが可能な、リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法を得ることができる。
【図面の簡単な説明】
【図1】 陰表現、ポリゴン表現、ボクセル表現、及びパーティクル表現から合成、変換、マッピング、及び抽出によって生成可能なサーフェスエレメント(サーフェル)を示す図である。
【図2】 隣り合うセルを定義するオブジェクトに投影する画像面解像度を有するグリッドを示す図である。
【図3】 隣り合うセルを定義するオブジェクトに投影する画像面解像度を有するグリッドを示す図である。
【図4】 6つに隣り合い8つが接続されたサーフェルのメッシュを示す図である。
【図5】 サーフェルのデータ構造を示すブロック図である。
【図6】 サーフェルの属性を示すブロック図である。
【図7】 サーフェルリストのブロック図である。
【図8】 サーフェルにポリゴンをスキャン変換するポリゴンを示す図である。
【図9】 内側のサーフェル及び外側のサーフェルを有するポリゴンを示す図である。
【図10】 距離マップを使用したサーフェル化プロセスの流れ図である。
【図11】 ポリゴンのトリストリップを示す図である。
【図12】 投影した距離を示す図である。
【図13】 内側に投影したポイントを示す図である。
【図14】 外側に投影したポイントを示す図である。
【図15】 平坦面によって区分けされたサーフェルのセルを示す図である。
【図16】 サーフェル化される任意のポリゴンを示す図である。
【図17】 剛体の状態を示すブロック図である。
【図18】 サーフェルオブジェクトの剛体のモデリングを行うプロセスの流れ図である。
【図19】 変形可能なサーフェルオブジェクトの動的な状態の図である。
【図20】 マススプリングシステムとしてモデリングされたサーフェルオブジェクトのメッシュを示す図である。
【図21】 サーフェルオブジェクト上に力を蓄積する過程を示すプログラムリストである。
【図22】 サーフェルオブジェクトを変形するプロセスの流れ図である。
【図23】 動的な状態のベクトルを生成する過程を示すプログラムリストである。
【図24】 変形中のサーフェスの法線を示す図である。
【図25】 変形中のサーフェスの法線を示す図である。
【図26】 変形中のサーフェスの法線を示す図である。
【図27】 サーフェルレンダリングパイプラインを示す流れ図である。
【図28】 レンダリングの作為を示す図である。
【図29】 レンダリングの作為を示す図である。
【図30】 レンダリングの作為を示す図である。
【図31】 剪断ゆがみ因数分解(factorization)を示す図である。
【図32】 剪断前のボクセルのスライスを示す図である。
【図33】 剪断後のボクセルのスライスを示す図である。
【図34】 画像面のゆがみを示す図である。
【図35】 剪断でゆがんだピクセルグリッドを示す図である。
【図36】 剪断でゆがんだピクセルグリッドを示す図である。
【図37】 スケーリングしたサーフェルを示す図である。
【図38】 スケーリングしたサーフェルを示す図である。
【図39】 スケーリングしたサーフェルを示す図である。
【図40】 スプラッティングされたサーフェルを示す図である。
【図41】 スプラッティングされたサーフェルを示す図である。
【図42】 第1のサーフェルおよび第2のサーフェルのブロック図である。
【図43】 静止しているサーフェル、および変形位置におけるサーフェルのブロック図である。
【図44】 静止しているサーフェル、および変形位置におけるサーフェルのブロック図である。
【図45】 パラメトリックパッチに分散したサーフェルのブロック図である。
【図46】 変形中のサーフェスの断面図である。
【図47】 さらに変形中のサーフェスの断面図である。
【図48】 さらに変形中のサーフェスの断面図である。
【符号の説明】
100 サーフェル(surfel)、101 陰関数、102 ポリゴン、103ボクセル、104 パーティクル、200 セル、201 ノード、202 ピクセル、203 画像面、300 リンク、401 サーフェル属性、403リンク属性、600 シーケンシャルリスト、700 ポリゴン、701 ベースエッジ、702,703 ガイダンスエッジ、720 内側方向のベクトル、1000 ポリゴン、1300 セル、1301〜1308 グリッドポイント、1310 オブジェクトサーフェス、1401〜1406 頂点、1410〜1412 エッジ、1600 剛性の状態、1601 オブジェクト、1600 剛性の状態、1602,1603 状態ベクトル、1610 数値的積分器、1800 サーフェルオブジェクトの部分、1801 サーフェル、1802リンク、2000 プロセス、2001 サーフェルオブジェクト、2002サーフェル、2003 リンク、2030,2010 状態ベクトル、2300 レンダリングパイプライン、2400 テラス効果、2500 ボリューム、2501 ビューイング方向、2502 ベース面、2700 楕円、3101 第1のサーフェスエレメント、3102 第2のサーフェスエレメント3102。

Claims (14)

  1. グラフィックオブジェクトの表現をメモリに生成する方法であって、
    前記オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、
    前記オブジェクトの前記サーフェスに位置する各セルのゼロ次元サーフェスエレメントを前記メモリに格納し、
    前記サーフェスエレメントのサブセットを第1のサーフェスエレメントとして選択し、
    選択されないサーフェスエレメントを第2のサーフェスエレメントとして識別し、
    隣り合う第1のサーフェスエレメントをリンクによって接続し、
    前記関連する第1のサーフェスエレメントおよび該関連する第1のサーフェスエレメントの前記リンクに、特定のセル内に含まれるオブジェクト部分の第1の属性を割り当て、
    各第1のサーフェスエレメント毎に1グループ存在するように、前記選択されないサーフェスエレメントをグループに分割し、
    前記関連する第2のサーフェスエレメントに、特定のセル内に含まれるオブジェクト部分の第2の属性を割り当てる
    ことを特徴とするリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  2. 前記セルはそれぞれ、画像面の解像度に関連する8個のグリッドポイントが境界とされる
    ことを特徴とする請求項1記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  3. 各第1のサーフェスエレメントに割り当てられた前記第1の属性は、対応するセル内の前記オブジェクト部分の物理的特徴、前記オブジェクトの前記サーフェス上の前記第1のサーフェスエレメントのポジション、前記対応するセル内の前記オブジェクト部分の色および不透明度、および前記対応するセル内の前記サーフェスに対する法線を含む
    ことを特徴とする請求項1記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  4. 前記第1のサーフェスエレメントそれぞれに割り当てられた前記第2のオブジェクト属性は、前記第1のサーフェスエレメントからのオフセット、前記対応するセル内の前記オブジェクト部分の色および不透明度、および前記対応するセル内の前記サーフェスに対する法線を含む
    ことを特徴とする請求項1記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  5. 特定の第1のサーフェスエレメントを選択するステップと、
    前記オブジェクトに作用する物理的な力に従って、前記特定の第1のサーフェスエレメントのロケーションを移動するステップと、
    前記関連する特定の第1のサーフェスエレメントに従って、第2のサーフェスエレメントの特定のグループを移動するステップと
    をさらに含むことを特徴とする請求項1記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  6. 前記サーフェスエレメントの前記移動は、ガウス曲線に従うことを特徴とする請求項5記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  7. 前記ガウス曲線の高さおよび伸張は、マウスおよびカーソルで選択される
    ことを特徴とする請求項6記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  8. 前記移動が所定のしきい値よりも大きい場合に、第3のサーフェスエレメントを生成する
    ことを特徴とする請求項5記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  9. 前記第3のサーフェスエレメントは、第1のサーフェスエレメントを制御ポイントとして有するベジェパッチとして生成される
    ことを特徴とする請求項8記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  10. 前記ベジェパッチは、4×4アレイの制御ポイントを有する
    ことを特徴とする請求項9記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  11. 前記第3のサーフェスエレメントの属性は、前記第1および第2の属性から導出される
    ことを特徴とする請求項8記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  12. 各第1のサーフェスエレメントの静止位置を格納するステップと、
    移動後に、第1のおよび第2のサーフェスエレメントをそれぞれ前記静止位置に回復するステップと
    をさらに含むことを特徴とする請求項5記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  13. 前記静止位置への回復は、減衰振動に従う
    ことを特徴とする請求項12記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
  14. 特定の第1のサーフェスエレメントを選択するステップと、
    前記選択された第1のサーフェスエレメントの所定の半径内にあるすべての第1のサーフェスエレメントを着色するステップと、
    該着色された第1のサーフェスエレメントに関連する第2のサーフェスエレメントのグループを着色するステップと
    をさらに含むことを特徴とする請求項1記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
JP2000191191A 1999-09-01 2000-06-26 リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法 Expired - Fee Related JP4364409B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/388,339 US6342886B1 (en) 1999-01-29 1999-09-01 Method for interactively modeling graphical objects with linked and unlinked surface elements
US09/388339 1999-09-01

Publications (2)

Publication Number Publication Date
JP2001084410A JP2001084410A (ja) 2001-03-30
JP4364409B2 true JP4364409B2 (ja) 2009-11-18

Family

ID=23533720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000191191A Expired - Fee Related JP4364409B2 (ja) 1999-09-01 2000-06-26 リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法

Country Status (3)

Country Link
US (1) US6342886B1 (ja)
EP (1) EP1081656A3 (ja)
JP (1) JP4364409B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6509899B1 (en) * 1999-03-01 2003-01-21 Lucas Digital Ltd. Time differencing for improved cloth animation
JP2001149642A (ja) * 1999-12-01 2001-06-05 Namco Ltd ゲーム装置及びゲーム装置の残像表示方法
US6509902B1 (en) * 2000-02-28 2003-01-21 Mitsubishi Electric Research Laboratories, Inc. Texture filtering for surface elements
EP1187066A3 (en) * 2000-09-01 2004-04-21 Sony Computer Entertainment Inc. Method and apparatus for image enlargement/reduction
JP3386803B2 (ja) * 2001-06-20 2003-03-17 株式会社ソニー・コンピュータエンタテインメント 画像処理プログラム、画像処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体、画像処理方法、及び画像処理装置
WO2003023720A1 (en) * 2001-09-12 2003-03-20 Volume Interactions Pte Ltd. Interaction with a three-dimensional computer model
CN1295659C (zh) * 2001-12-29 2007-01-17 田捷 利用半边数据结构实现三维网格模型的简化方法
WO2003071488A1 (en) * 2002-02-19 2003-08-28 Siemens Corporate Research, Inc. Collision detection method for deformable objects in a scene
US6867773B2 (en) * 2002-05-13 2005-03-15 Intel Corporation Generating surface normals
EP1525558A2 (en) * 2002-07-19 2005-04-27 Philips Intellectual Property & Standards GmbH Simultaneous segmentation of multiple or composed objects by mesh adaptation
US7250948B2 (en) * 2002-11-15 2007-07-31 Sunfish Studio, Llc System and method visible surface determination in computer graphics using interval analysis
US7230617B2 (en) * 2003-01-07 2007-06-12 Intel Corporation Voxel center smoothing
US7173615B2 (en) * 2003-01-07 2007-02-06 Intel Corporation Generating a mesh
JP3855053B2 (ja) * 2003-01-30 2006-12-06 国立大学法人 東京大学 画像処理装置、画像処理方法、及び画像処理プログラム
US20050017968A1 (en) * 2003-07-21 2005-01-27 Stephan Wurmlin Differential stream of point samples for real-time 3D video
KR100500897B1 (ko) * 2003-09-03 2005-07-14 한국전자통신연구원 방향을 갖는 질점과 일반화된 스프링 모델을 이용한비정형 물체의 애니메이션 방법
US8269777B2 (en) * 2003-12-12 2012-09-18 Presisio Labs, Inc. Method and system for system visualization
US7304645B2 (en) * 2004-07-15 2007-12-04 Harris Corporation System and method for improving signal to noise ratio in 3-D point data scenes under heavy obscuration
US7606688B2 (en) * 2004-07-27 2009-10-20 The Boeing Company Object oriented finite element modeling tools
JP4557629B2 (ja) 2004-08-06 2010-10-06 株式会社東芝 画像処理方法、画像処理プログラム、及び画像処理コンピュータ
JP4508776B2 (ja) * 2004-08-18 2010-07-21 任天堂株式会社 画像処理プログラムおよび画像処理装置
JP4472467B2 (ja) * 2004-08-27 2010-06-02 任天堂株式会社 画像処理プログラムおよび画像処理装置
DE102005024949A1 (de) * 2005-05-31 2006-12-07 Friedrich-Alexander-Universität Erlangen-Nürnberg Verfahren zur Darstellung von Strukturen innerhalb von Volumendatensätzen
US7884835B2 (en) * 2005-10-12 2011-02-08 Autodesk, Inc. Techniques for projecting data sets between high-resolution and low-resolution objects
US8180605B1 (en) * 2005-11-23 2012-05-15 Livermore Software Technology Corporation Methods and systems for creating a smooth contact-impact interface in finite element analysis
JP4901222B2 (ja) * 2006-01-19 2012-03-21 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー 画像表示装置およびx線ct装置
KR100916219B1 (ko) 2006-02-28 2009-09-08 (주)엔브이엘소프트 3차원 영상 제작을 위한 그리드 설정 방법
FR2927184B1 (fr) * 2008-02-04 2010-04-02 Univ Joseph Fourier Procede et dispositif de simulation de contact par images a plan de profondeur.
US20100103439A1 (en) * 2008-10-27 2010-04-29 Xerox Corporation System and method for visual configuation of dynamic document hole placement
US20110154234A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Layout projection using non-linear constraints
US10055875B2 (en) * 2011-08-04 2018-08-21 Nvidia Corporation Real-time eulerian water simulation using a restricted tall cell grid
US9633458B2 (en) * 2012-01-23 2017-04-25 Nvidia Corporation Method and system for reducing a polygon bounding box
US20130215132A1 (en) * 2012-02-22 2013-08-22 Ming Fong System for reproducing virtual objects
JP5833958B2 (ja) * 2012-03-14 2015-12-16 富士フイルム株式会社 画像処理装置および方法並びにプログラム
US20140297014A1 (en) * 2013-03-31 2014-10-02 Microsoft Corporation Three-dimensional object fabrication using an implicit surface representation
US10120523B2 (en) * 2014-08-29 2018-11-06 Adobe Systems Incorporated User interface facilitating mesh generation
US10573070B1 (en) * 2015-10-02 2020-02-25 Ansys, Inc. Systems and methods for generating a surface that approximates one or more CAD surfaces
US9940689B2 (en) 2015-11-02 2018-04-10 Nvidia Corporation Latency-resistant sparse simulation technique, system and method
US10249053B2 (en) * 2016-08-04 2019-04-02 The Boeing Company Method and apparatus for rapid scanning of a three dimensional surface
KR102551097B1 (ko) * 2021-10-08 2023-07-04 주식회사 쓰리아이 3차원 가상모델 제공을 위한 홀 필링 방법 및 그를 위한 컴퓨팅 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1141468A (en) * 1979-06-15 1983-02-15 Martin J.P. Bolton Visual display apparatus
US4953087A (en) * 1988-10-24 1990-08-28 General Electric Company Three-dimensional images obtained from tomographic data having unequally spaced slices
US5187660A (en) * 1989-12-01 1993-02-16 At&T Bell Laboratories Arrangement for displaying on a display volumetric data
US5781194A (en) * 1996-08-29 1998-07-14 Animatek International, Inc. Real-time projection of voxel-based object
US6069634A (en) * 1997-01-08 2000-05-30 Mitsubishi Electric Information Technology Center America, Inl System for rapidly deforming a graphical object

Also Published As

Publication number Publication date
US6342886B1 (en) 2002-01-29
EP1081656A2 (en) 2001-03-07
EP1081656A3 (en) 2003-07-02
JP2001084410A (ja) 2001-03-30

Similar Documents

Publication Publication Date Title
JP4364409B2 (ja) リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法
JP3285565B2 (ja) サーフェスエレメントで表現されるグラフィックオブジェクトをレンダリングする方法
US6498607B1 (en) Method for generating graphical object represented as surface elements
Gallagher et al. Computer visualization: graphics techniques for engineering and scientific analysis
JP3285564B2 (ja) サーフェスエレメントで表現されるグラフィックオブジェクトをモデリングする方法及びサーフェスエレメントで表現されるグラフィックオブジェクトをモデリングするシステム
JP3285566B2 (ja) オブジェクトをグラフィックで表現する方法
US6583787B1 (en) Rendering pipeline for surface elements
EP1128330B1 (en) Visibility splatting and image reconstruction for surface elements
EP1128375B1 (en) Texture filtering for surface elements
EP1128331B1 (en) Hierarchical data structures for surface elements
Li et al. A GPU-based voxelization approach to 3D Minkowski sum computation
US6897863B2 (en) System and method for hidden object removal
Upson Volumetric visualization techniques
Romanyuk et al. Blending functionally defined surfaces
Sud et al. Surface distance maps
Zink et al. Cloth simulation and collision detection using geometry images
Ueng et al. LoD volume rendering of FEA data
Jacobsson Hardware Accelerated Point-based Rendering of Granular Matter for Interactive Applications
Gregorski et al. Multiresolution representation of datasets with material interfaces
Clack et al. Physical simulation of an embedded surface mesh involving deformation and fracture
Paradinas Salsón Simplification, approximation and deformation of large models
Faconti et al. Graphical visualization of physical phenomena simulated with the finite element method
Vyatkin Complex Surface Creation Using Perturbation Functions
Kaufman Volume synthesis
Widjaya Accurate incremental voxelization in common sampling lattices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090727

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: 20090811

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: 20090819

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

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees