(57)【特許請求の範囲】
【請求項１】
グラフィックオブジェクトの表現をメモリに生成する方法であって、
前記オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、
前記オブジェクトの前記サーフェスに位置する各セルのゼロ次元サーフェスエレメントを前記メモリに格納し、
前記サーフェスエレメントのサブセットを第１のサーフェスエレメントとして選択し、
選択されないサーフェスエレメントを第２のサーフェスエレメントとして識別し、
隣り合う第１のサーフェスエレメントをリンクによって接続し、
前記関連する第１のサーフェスエレメントおよび該関連する第１のサーフェスエレメントの前記リンクに、特定のセル内に含まれるオブジェクト部分の第１の属性を割り当て、
各第１のサーフェスエレメント毎に１グループ存在するように、前記選択されないサーフェスエレメントをグループに分割し、
前記関連する第２のサーフェスエレメントに、特定のセル内に含まれるオブジェクト部分の第２の属性を割り当てる
ことを特徴とするリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項２】
前記セルはそれぞれ、画像面の解像度に関連する８個のグリッドポイントが境界とされる
ことを特徴とする請求項１記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項３】
各第１のサーフェスエレメントに割り当てられた前記第１の属性は、対応するセル内の前記オブジェクト部分の物理的特徴、前記オブジェクトの前記サーフェス上の前記第１のサーフェスエレメントのポジション、前記対応するセル内の前記オブジェクト部分の色および不透明度、および前記対応するセル内の前記サーフェスに対する法線を含む
ことを特徴とする請求項１記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項４】
前記第１のサーフェスエレメントそれぞれに割り当てられた前記第２のオブジェクト属性は、前記第１のサーフェスエレメントからのオフセット、前記対応するセル内の前記オブジェクト部分の色および不透明度、および前記対応するセル内の前記サーフェスに対する法線を含む
ことを特徴とする請求項１記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項５】
特定の第１のサーフェスエレメントを選択するステップと、
前記オブジェクトに作用する物理的な力に従って、前記特定の第１のサーフェスエレメントのロケーションを移動するステップと、
前記関連する特定の第１のサーフェスエレメントに従って、第２のサーフェスエレメントの特定のグループを移動するステップと
をさらに含むことを特徴とする請求項１記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項６】
前記サーフェスエレメントの前記移動は、ガウス曲線に従うことを特徴とする請求項５記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項７】
前記ガウス曲線の高さおよび伸張は、マウスおよびカーソルで選択される
ことを特徴とする請求項６記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項８】
前記移動が所定のしきい値よりも大きい場合に、第３のサーフェスエレメントを生成する
ことを特徴とする請求項５記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項９】
前記第３のサーフェスエレメントは、第１のサーフェスエレメントを制御ポイントとして有するベジェパッチとして生成される
ことを特徴とする請求項８記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項１０】
前記ベジェパッチは、４×４アレイの制御ポイントを有する
ことを特徴とする請求項９記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項１１】
前記第３のサーフェスエレメントの属性は、前記第１および第２の属性から導出される
ことを特徴とする請求項８記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項１２】
各第１のサーフェスエレメントの静止位置を格納するステップと、
移動後に、第１のおよび第２のサーフェスエレメントをそれぞれ前記静止位置に回復するステップと
をさらに含むことを特徴とする請求項５記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項１３】
前記静止位置への回復は、減衰振動に従う
ことを特徴とする請求項１２記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【請求項１４】
特定の第１のサーフェスエレメントを選択するステップと、
前記選択された第１のサーフェスエレメントの所定の半径内にあるすべての第１のサーフェスエレメントを着色するステップと、
該着色された第１のサーフェスエレメントに関連する第２のサーフェスエレメントのグループを着色するステップと
をさらに含むことを特徴とする請求項１記載のリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は概してグラフィックシステムに関し、さらに詳細には接続されたゼロ次元のポイントで表現されるグラフィックオブジェクトのモデリングに関する。
【０００２】
【従来の技術】
コンピュータグラフィックスにおいて、様々な一次元グラフィックエレメントを使用して多くの異なる方法で三次元空間でオブジェクトを表現することができる。グラフィックオブジェクトを表現するのに通常利用する公知の表現は陰表現、幾何学的表現、容積表現、及びパーティクル表現である。
【０００３】
陰表現
陰表現では、グラフィックオブジェクトは任意の数学的関数や物理的関数から生成することができる。たとえば、中空の球体のアウトラインを描く場合、レンダリングエンジンに（デカルト座標で）関数ｘ2＋ｙ2＋ｚ2＝ｒを加えるだけであり、中実の球体の場合は関数はｘ2＋ｙ2＋ｚ2≦ｒである。色やそのほかのマテリアルのプロパティも、同様に、合成して生成することができる。関数を使用すると、様々な幾何学的形状、物理的オブジェクト、実在のまたは想像上のモデルを描くことができる。陰関数は、人物像などの複雑なオブジェクトの合成には適していない。
【０００４】
幾何学的表現
これまで、三次元オブジェクトはポリゴンのファセットのメッシュとして幾何学的にモデリングされてきた。通常、ポリゴンは三角形をしている。各ファセットのサイズは、ファセットの部分においてオブジェクトの湾曲度に対応するようになっている。オブジェクトの湾曲度が高く、比較的平坦な部分が少ないほど、多くのポリゴンが必要である。ポリゴンのモデルは多くの用途、たとえば仮想トレーニング環境、三次元モデリングツール、及びビデオゲームなどに使用される。幾何学的表現は、特徴として、グラフィックオブジェクトのサーフェスの特徴を処理するにすぎない。
【０００５】
しかし、変形オブジェクトの部分的な湾曲度にファセットのサイズが対応できないために、ポリゴンのモデルが変形する場合に問題が生じる。さらに、変形により部分的な相対的解像度が変化することがある。どちらの場合も、変形した湾曲によってオブジェクトを再メッシュしなければならなくなる。計算の時間に関して、再メッシュ（ポリゴン化（polygonization））は比較的高くつくため、前処理ステップとして通常行われる。したがって、ポリゴンのモデルは動的に変形しなければならないオブジェクトにはあまり適していない。
【０００６】
容積表現
別の表現では、三次元空間でオブジェクトをサンプリングし、ＭＲＩやＣＴスキャンなどの容積データセットを生成する。各サンプルをボクセルという。典型的なデータセットは何百万というボクセルを含むことができる。容積データセットをレンダリングするには、オブジェクトはセグメント化されるのが普通である。等サーフェス（Iso-surfaces）を識別して特定の容積部分にフォーカスすることができる。たとえば、人間の頭の容積データセットでは、骨や軟組織などのマテリアルのプロパティによってボクセルをセグメント化することができる。
【０００７】
ボクセルの数は大量であるため、容積データセットを物理ベースでモデリングしたり変形したりするのは、いまだに計算としては大変費用のかかる演算である。サーフェスの特徴にのみ関心が向けられることが多いため、オブジェクトの内部は効率を考えると無視することができる。
【０００８】
パーティクル表現
オブジェクトのパーティクル表現は、風洞のシミュレーションなど、流体の流れをモデリングするのに使用されることが多い。方向の速度など、ある属性をパーティクルに与えて、流体の流れを通して個々のパーティクルを追跡したり、完全な流れを視覚化したりする。
【０００９】
パーティクル表現の別の応用として、煙、塵、または霧などの「雲状の（cloud like）」オブジェクトの視覚化が挙げられる。シェーディングされたモデルを、発光するパーティクルに適用すると雲状のオブジェクトをレンダリングすることができる。また、エネルギー関数を利用して部分空間にパーティクルを押しこめることでサーフェスをモデリングすることもできる。パーティクルの雲の利点は、雲が非常に変形しやすいということである。欠点としては、雲のパーティクルが連結されておらず、力を加えられると別々に動いてしまうということである。さらに、パーティクルは、中実のオブジェクトまたはモデルのサーフェスの構造を表すにはまったく不向きである。
【００１０】
モデリングの留意点
様々な表現におけるグラフィックオブジェクトの非物理的モデリング及び物理的モデリングのために、多くの技術が公知である。非物理ベースのモデルは、スプライン関数、ベジエ曲線などを使うことが多い。このとき、コントロールポイントを操作することで所望の変形度にする。
【００１１】
物理的な技術は、主に二つのカテゴリ、つまり剛体力学、及び動的変形とに分けられる。剛体力学は、通常、ニュートン力学の結果である微分方程式を解く。コンピュータシステムでは、数値的には、積分器を使用して微分方程式を解くことができる。有限要素法（FEM: finite element method）またはマススプリングシステムによって、動的な変形をモデリングすることができる。
【００１２】
レンダリングの留意点
こうした従来の基関数（primitives）のレンダリング時間は、モデリングするオブジェクトの複雑度によって変わる。たとえば、複雑なオブジェクトを幾何学的に表現するには、ポリゴンは通常、ピクセルのサイズほどに非常に小さくなり、オブジェクトは多くのポリゴンによって表現される。ポリゴンは通常、三角形を定義する頂点で表現される。
【００１３】
ポリゴンをレンダリングするには、三角形の突起をスキャン変換（ラスタ化）して、投影内におさまる各ピクセルの密度を計算する。これは、約一個以下のピクセルをポリゴンで覆う場合、比較的時間のかかる演算である。ポリゴンをポイントサンプルと取り替えたり、ポイントサンプルをスクリーンに投影したりして、オブジェクトをレンダリングする技術としてより効率的にすることができる。
【００１４】
ボリュームをレンダリングするには多くの技術が公知である。概して、ボリュームレンダリングはかなり複雑である。ボクセル数が制限されていない限り、リアルタイムレンダリングは時間がかかるものである。
【００１５】
リアルタイムレンダリングシステムは、Ponomarovらに１９９８年７月１４日付与された米国特許第５，７８１，１９４号“Real-time Projection of Voxel-based Object”に記載されており、サーフェスボクセル間で増分的なベクトルを用いて一連のサーフェスボクセルを構成する。こうした表現は、かなり詳細なサーフェス部分を表すオブジェクトのモデリング及び表現をできるようにする。剛体の動きのモデリングは、物理ベースの方法が使えないため、現実感に欠けるスクリプト機構を使って行われる。この方法では、オブジェクトが現実には変形する可能性を考慮していない。オブジェクトは、衝突及びその他の変形力に反応しない空間における剛体としている。
【００１６】
従来技術では、別々のパーティクルまたはポイントは、グラフィックシステムにおけるメタ基関数（meta-primitive）として使われてきた（例として、Levoyらの“The Use of Points as a Display Primitive”University of North Carolina Technical Report 85-022, 1985参照）。これには、オブジェクトをポイント表現に変換するプロセスが説明されている。ここで、各ポイントはポジション及び色を有している。また、滑らかなサーフェスとしてポイントをレンダリングするプロセスについても説明している。
【００１７】
ポイントはゼロ次元の密度サンプルとしてモデリングされ、オブジェクト順の投影を用いてレンダリングされる。レンダリング時に、複数のポイントを同一のピクセルに投影することができ、こうしたポイントの密度をフィルタリングして、問題のピクセルに最終的な密度を得られるようにしなければならない場合もある。このフィルタリングは、スクリーン上に投影したポイントのポジションから、それに相当するピクセルの中心までの距離に比例する密度を重みづけして行う。重みづけは、ガウシアンフィルタでモデリングされる。高度な深度バッファ（Ｚバッファ）を使うと、深度値の狭い領域においてポイントのブレンドを行うことができる公差で深さの比較を行うことができる。利点として、こうしたポイント表現によるとどんな視点からでもオブジェクトのレンダリングを行うことができる、ということがある。
【００１８】
別の技術においては、１９９８年７月の、Grossmanらによる、“Sample Rendering,”Proceedings of the Eurographics Workshop '98, Rendering Techniques 1998, Drettakis, G., Max, N.(eds.), １８１ページから１９２ページに記載されているように、ポイントサンプルは、正三角形の格子における三角形のメッシュの垂直な投影をサンプリングすることで得られる。三角形のメッシュの投影により覆われる格子の三角形ごとに、サンプルポイントが追加される。正三角形の格子を選択して、各ピクセルが少なくとも一つのサンプルによって覆われるように保証するのに十分密度の高い適切なサンプリングを行う。
【００１９】
【発明が解決しようとする課題】
公知の表現にはすべて、いくつかの制限がある。したがって、最良の特徴を組み込み、モデリング及びレンダリングを簡略にする表現が所望されている。
【００２０】
この発明は、上記のような課題を解決するためになされたもので、モデリングを簡略にすることが可能なリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法を得ることを目的とする。
【００２１】
【課題を解決するための手段】
この発明に係るリンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法は、グラフィックオブジェクトの表現をメモリに生成する方法であって、オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、オブジェクトのサーフェスに位置する各セルのゼロ次元サーフェスエレメントをメモリに格納し、サーフェスエレメントのサブセットを第１のサーフェスエレメントとして選択し、選択されないサーフェスエレメントを第２のサーフェスエレメントとして識別し、隣り合う第１のサーフェスエレメントをリンクによって接続し、関連する第１のサーフェスエレメントおよび関連する第１のサーフェスエレメントのリンクに、特定のセル内に含まれるオブジェクト部分の第１の属性を割り当て、各第１のサーフェスエレメント毎に１グループ存在するように、選択されないサーフェスエレメントをグループに分割し、関連する第２のサーフェスエレメントに、特定のセル内に含まれるオブジェクト部分の第２の属性を割り当てる。
【００２２】
また、セルはそれぞれ、画像面の解像度に関連する８個のグリッドポイントが境界とされる。
【００２３】
また、各第１のサーフェスエレメントに割り当てられた第１の属性は、対応するセル内のオブジェクト部分の物理的特徴、オブジェクトのサーフェス上の第１のサーフェスエレメントのポジション、対応するセル内のオブジェクト部分の色および不透明度、および対応するセル内のサーフェスに対する法線を含む。
【００２４】
また、第１のサーフェスエレメントそれぞれに割り当てられた第２のオブジェクト属性は、第１のサーフェスエレメントからのオフセット、対応するセル内のオブジェクト部分の色および不透明度、および対応するセル内のサーフェスに対する法線を含む。
【００２５】
また、特定の第１のサーフェスエレメントを選択するステップと、  オブジェクトに作用する物理的な力に従って、特定の第１のサーフェスエレメントのロケーションを移動するステップと、
関連する特定の第１のサーフェスエレメントに従って、第２のサーフェスエレメントの特定のグループを移動するステップと
をさらに含む。
【００２６】
また、サーフェスエレメントの移動は、ガウス曲線に従う。
【００２７】
また、ガウス曲線の高さおよび伸張は、マウスおよびカーソルで選択される。
【００２８】
また、移動が所定のしきい値よりも大きい場合に、第３のサーフェスエレメントを生成する。
【００２９】
また、第３のサーフェスエレメントは、第１のサーフェスエレメントを制御ポイントとして有するベジェパッチとして生成される。
【００３０】
また、ベジェパッチは、４×４アレイの制御ポイントを有する。
【００３１】
また、第３のサーフェスエレメントの属性は、第１および第２の属性から導出される。
【００３２】
また、各第１のサーフェスエレメントの静止位置を格納するステップと、
移動後に、第１のおよび第２のサーフェスエレメントをそれぞれ静止位置に回復するステップと
をさらに含む。
【００３３】
また、静止位置への回復は、減衰振動に従う。
【００３４】
また、特定の第１のサーフェスエレメントを選択するステップと、
選択された第１のサーフェスエレメントの所定の半径内にあるすべての第１のサーフェスエレメントを着色するステップと、
着色された第１のサーフェスエレメントに関連する第２のサーフェスエレメントのグループを着色するステップと
をさらに含む。
【００３５】
【発明の実施の形態】
実施の形態１．
１．序論及び概観
サーフェスエレメント、すなわち「サーフェル（surfels）」として表されるグラフィックオブジェクトの生成、モデリング、及びレンダリングについて説明する。サーフェルの定義は、三次元サーフェルグリッドにおいて接続したゼロ次元のポイントサンプルである。本発明によると、三次元のグリッドとは、オブジェクト空間への画像面解像度の投影であり、これによってサーフェルがピクセルサイズの間隔をおいた三次元ボリュームが生じる。対して、従来技術のレンダリング基関数は、オブジェクト空間においてサンプリングされるのが普通である。
【００３６】
各サーフェルは、画像面のピクセルに投影を行う。サーフェルは整数のグリッドポジションである８つのノードによって定義される「セル（cell）」のいずれかの場所に位置する。これは、水平の走査線及び垂直の走査線の交差する点が整数のピクセル位置にあると考えられ、またこうした四つのポジションで結ばれたエリアがピクセルで表される場合の、画像面上のピクセルの定義と類似している。
【００３７】
サーフェルは、ポジション・色・不透明度・ポイントのポジションにおけるサーフェスの法線についての情報（属性（attributes））を格納する。速度や残りの容積など、追加の属性は、物理的オブジェクトまたはモデルを表現するサーフェルに属することができる。
【００３８】
隣り合うサーフェルは互いに「リンク（links）」によって接続されている。リンクの残りの長さはサーフェルの相対的な間隔を定義する。なお、サーフェルはセルのいずれの場所にも配置することができる。弾性やダンピング（damping）など、さらなる属性を、オブジェクトが変形可能である場合にリンクに付加することができる。サーフェルやリンクの属性を格納するデータ構造はポインタにより接続されるアイテムのリストである。６つの隣り合うサーフェルは８つ接続されているものとする。
【００３９】
こうした表現により、サーフェル及びピクセル間を一対一でマッピングすることを定義することでオブジェクト空間及び画像空間を結びつける。サーフェルは、スクリーンの解像度に応じて生成される。このため、各サーフェルが一つのピクセルにマップされる場合には、いかなるピクセルよりも小さいディテールは考慮されない。
【００４０】
オブジェクト空間と画像空間とを結合するのは、簡単で、効率的で、高速なレンダリングを提供するためである。
【００４１】
サーフェルは、一般的なレンダリング基関数として使用することができる。従来技術の表現（陰関数、幾何学、ボクセル及びパーティクル）からサーフェルを生成する技術を提供する。最も近接する補間を使用したオブジェクト順の投影プロセスによって、それに対応するピクセルにサーフェルを投影することを提案する。
【００４２】
本表現において、サーフェルオブジェクトは互いに相互作用して、「物理的にもっともらしい変形（physically plausible deformations）」となることができる。変形できるようにするに、各サーフェルに容積を割り当て、かつ各サーフェルをスプリングによって隣り合うサーフェルに接続する場合に、サーフェルオブジェクトをマススプリングシステムとしてモデリングすることができる。
【００４３】
さらに、たとえば、回転または内部及び外部の力によってセルから「引っ張られた（pulled）」サーフェルのためにサーフェスに「穴（holes）」ができる場合の、画質を高める技術についても説明する。こうした技術には、ビュー変換の剪断のゆがみ、オブジェクトのスーパーサンプリングまたはスケーリング、及びスプラッティングがある。
【００４４】
１．１  サーフェル
図１に示されているように、オブジェクトを表現、モデリング、及びレンダリングするのに使用可能なグラフィック基関数について説明する。この基関数をサーフェスエレメント、または省略して「サーフェル（surfel）」１００という。サーフェルは上記の表現、すなわち陰関数１０１、ポリゴン１０２、ボクセル１０３、及びパーティクル１０４に関連付けることができる。サーフェル１００は、画像面の解像度を有する三次元グリッドで定義されるセルのゼロ次元のポイントサンプルとして定義する。ポジション、色、容積などの属性は、サーフェルに割り当て可能である。
【００４５】
複数のサーフェルを互いに接続して、オブジェクトの任意の二次元面などの二次元多様体を形成することができる。サーフェル多様体は互いに接続してより複雑な二次元多様体を形成することができる。この多様体は、現実のまたは想像上の任意のオブジェクトの「アウトラインを描く（outline）」ことができる。
【００４６】
１．２  スクリーンの解像度
図２に示すように、サーフェル１００（中実：solid）は、整数のグリッドポジションである８つのノード２０１（オープン：open）によって定義されるセル２００のいずれかの場所に配置することができる。図３に示すように、各サーフェルは６つの隣接するサーフェルを持ち、各セルごとに一つが各セル２００の面に隣り合っている。グリッドポジションは、画像面２０３のピクセル２０２のサイズ及びロケーションに相当する。言いかえると、ゼロ次元のサーフェルのロケーションの境界を定義するグリッドは、画像面またはディスプレイスクリーンの解像度で定義される。
【００４７】
スクリーンの解像度によるサンプリングによって、オブジェクト空間及び画像空間の間に直接的な対応が提供される。このようにサーフェルを定義することで、オブジェクトの変形は、たびたびサンプリングをしなくてよいという意味でより容易なものになる。「サーフェル化した（surfelized）」オブジェクトの処理にかかる時間が短縮される。ピクセルサイズの間隔をあけたサーフェルグリッドによって、オフセットでサーフェルを格納できるようになり、また予め計算したビュー変換したオフセットを使用することで効率的にサーフェルオブジェクトをレンダリングすることができるようになる。
【００４８】
１．３  サーフェルリンク
図４に示すように、グラフィックオブジェクトを、リンク３００で接続される三次元のサーフェル１００の集合として示す。したがって、６つの隣り合うサーフェルは８つ接続される。言いかえると、サーフェルがセルのいずれかの場所にある場合、サーフェルはセルの６つの面を通り、対角線にそって接続している。対角線に沿ってリンクを接続することにより、メッシュの「崩壊（collapsing）」が防止される。６つの隣り合う、８つの接続されたサーフェルは、グラフィックオブジェクトの表面または二次元多様体を表現する。
【００４９】
表１において、従来技術のポリゴン、ボクセル、及びパーティクルを本発明によるサーフェルと比較する。この表は、公知の従来技術の表現の基関数と同様の属性を有するサーフェルを示す。
【００５０】
【表１】
0004364409.tif 000002
【００５１】
方法によっては、ポリゴンがおよそ１ピクセルのサイズである場合、変換したポリゴンのピクセルの属性をサーフェルが有する。サーフェルは、サーフェルが位置するセルが１×１×１ピクセルの大きさであり、６つの隣り合うサーフェルを有する場合、抽出した８つの接続したサーフェスボクセルとして考えることもできる。サーフェルオブジェクトは、スクリーンまたはイメージグリッドの解像度において定義されるパーティクルの雲のマッピングとして考えることもできる。
【００５２】
サーフェルは、また、他とは異なる点をもつ。たとえば、サーフェルは、幾何学形状においてボクセルやパーティクルとは異なっている。サーフェルはグリッドの点でポリゴンやパーティクルと異なる。サーフェルはリンク方法の点でボクセルやパーティクルと異なる。そして、サーフェルは変形方法の点でポリゴンやボクセルと異なる。
【００５３】
従来技術の基関数と比較して、サーフェスエレメントの定義方法における最も重要な違いは、それがスクリーンの解像度によってサンプリングされるということである。ボクセル及びパーティクルは、通常、オブジェクトの解像度によってサンプリングされる。ポリゴンはスクリーンの解像度でサンプリングすることができる。しかし、オブジェクトが変形している場合、投影またはレンダリングの直前にサンプリングを行わなければならない。サーフェルについては、スクリーンの解像度へのサンプリングは前処理のステップにおいて１度行うことができる。
【００５４】
本発明によるスクリーンの解像度のサンプリングにおいて、グラフィックオブジェクトは、各最も近いピクセルに各サーフェルを投影するだけでオブジェクトのサーフェスを再構成するのに十分なサーフェルを含む。たとえば、１００のサーフェルによる１００の矩形のサーフェルポリゴンは、スクリーン上に１００のピクセルによる１００の画像面を作り出す。サーフェルはピクセルに直接マッピングする。サーフェルのスクリーンへの貢献（contribution）は、１ピクセル以上でも以下でもない。
【００５５】
２．サーフェルオブジェクトのデータ構造
図５に示すように、各サーフェル１００は、関連するサーフェル属性４０１のセットを有し、各リンク３００はリンク属性４０３を有する。オブジェクトのモデリング及びレンダリングに使われる属性は図６においてより詳細に示す。
【００５６】
サーフェル属性４０１は、ポジション（ｘ）、オフセット（ｏ）、色（ｒｇｂ）、不透明度（α）、法線（ｎ）、角速度（ω）、法線（ｎ）の残りの容積（ｍ）、及び８つ以下のリンクを含むことができる。リンク属性４０３は、残りの長さ（ｌ）、弾性定数（ｅ）、ダンピング定数（ｄ）、及び左右のサーフェルポインタ（ｐ1及びｐr）を含むことができる。
【００５７】
法線を各サーフェルに格納するのは、レンダリング中に法線の補間を行わないようにするためである。代わりに、法線の補間はサーフェルの生成中に行われる。法線の格納とは、サーフェルオブジェクトに必要なレンダリングスピードと格納容量との間のトレードオフである。
【００５８】
各サーフェルはまた、モデリング中にサーフェルオブジェクトの動的状態を表すさらなる属性を有することもできる。これらは図１７及び図１９を参照してより詳細に説明する。
【００５９】
２．１  サーフェルリスト
図７に示されるように、処理中のトラバースを最小限に抑えるためにシーケンシャルリスト６００としてサーフェルデータを構成する。リスト６００において、リストにおける二つの隣り合うサーフェルはサーフェルオブジェクトにおいて隣接している。リスト６００を生成するために、サーフェルＳoから開始する。ポジション（ｘ、ｙ）における「最初の（first）」サーフェルとして、サーフェルＳoで始めると、各隣り合うサーフェルをリストに追加し、最後のサーフェルＳnで終わる。リスト６００のサーフェルにオフセットでアクセスする。オフセットは二つのサーフェルのポジション間の差分ベクトルである。
【００６０】
前のサーフェルに対するオフセットを格納して、サーフェルの投影を可能にする。オフセットを格納する場合、ビューイングマトリックス（viewing matrix）を使用して各サーフェルのビュー座標を計算する必要をなくすことができる。オフセットを格納するため、サーフェルはシーケンシャルリストまたはアレイとして格納することができる。リストにおいて隣り合うサーフェルはオブジェクトにおいても隣り合う。
【００６１】
サーフェルは８つ接続しているため、サーフェルをピクセルの間隔で配置すると、オフセットは、｛±1,0,0｝、｛0,±1,0｝または｛0, 0,±1｝のいずれかである。オフセットは特定のビューのために予め計算することができ、また、ルックアップテーブルに格納することができる。サーフェルのオブジェクト座標は、リンクしたリスト６００で前のサーフェルポジションにオフセットを加えることで生成できる。
【００６２】
どのサーフェルを最初に選択するかは、オブジェクトによって決まる。たとえば、球体では、第１のサーフェルは球体の「上部（top）」にすることができ、リストは球体を「包み込む（around）」。なお、「左（left）」及び「右（right）」の隣り合うサーフェルはリストで隣り合っても良いが、「上（up）」及び「下（down）」の隣り合うサーフェルはシーケンシャルリストのいずれの場所に配置しても良い。リストにおいて隣り合うサーフェルがオブジェクトにおいては隣り合っていない場合、サーフェルはリスト６００のいずれの場所にも配置することができる。
【００６３】
サーフェルは６つの面のセル、つまりピクセルサイズの間隔をおいた三次元グリッドにおいてゼロ次元のポイントとして定義されるため、隣り合うサーフェルのセル間のオフセットは多くのサーフェルと同じになる。画像面への投影のスピードをアップさせるため、各オフセットは１度しかスクリーン空間オフセットに変わらず、その後ルックアップテーブルに格納される。ルックアップテーブルは予め計算することができる。投影中において、各サーフェルの各ビュー座標は、テーブルルックアップを使用して見つけられる。
【００６４】
３．サーフェル及びサーフェルオブジェクトの生成
サーフェル及びサーフェルオブジェクトの生成のために、考えられる多くの方法を説明する。
【００６５】
３．１  合成
陰サーフェスからの合成は、通常、球体・平面・立方体などのオブジェクトまたは分析的に定義可能なその他のオブジェクトに使用できる。本データ表現によって合成サーフェルオブジェクトを生成することは、本明細書中に記載されているデータ構造の詳細な説明を読めば当業者には明らかである。主要な概念は、サーフェルの合成が画像面の解像度において行われるということであり、また隣り合うサーフェルはリンクによって接続されているということである。
【００６６】
３．２  変換
ポリゴンなどの任意の幾何学的オブジェクトは、ポリゴンを生成するために変換しなければならない。これをプロセスの変換という。
【００６７】
図８は、グリッドポジション（ｘ、ｙ）で始まるひとつの二次元平面７１０でサーフェルを生成することができ、かつ（ｘ＋ｌ,ｙ）が次となる順番を示す。矢印７１１は、隣り合う列の交互の方向を利用して前後、列順で生成する順を示す。第１の列は左から右へとサーフェルを生成して開始する。次の列のサーフェルは右から左に生成される。この順番により各方向のユニットステップ内で各サーフェルのオフセットが維持される。サーフェルはリスト６００のために順次生成され、隣り合うサーフェルのセル間のオフセットはｘ、ｙにおいて（１，０，０）または（０，１，０）のいずれかである。
【００６８】
３．２．１  三次元デジタル微分アナライザを使用した変換
三次元スキャン変換は、本発明によるサーフェルオブジェクトに従来技術のポリゴンオブジェクトを変換するのに使用できる。１９８６年のKaufmanらによって説明された、“3D Scan-conversion Process for Voxel-based Graphics,”Proceedings of the 1986 Workshop on Interactive 3D Graphics, Crow. F., Pizer. S.M. (eds.)４５ページから７５ページの方法を応用する。Kaufmanの方法はポリゴンをボクセルに変換する。Kaufmanは、主要面に平行な円を描くアルゴリズムを使用する。円は二つの部分、赤道線と極部分に描かれており、一方で、同時に両半球を生成することによりアルゴリズムを簡素化するために対称を使用している。対して、ポリゴンを、シーケンシャルリストに格納される６つの隣り合う８つの接続したサーフェルに変換する。
【００６９】
本発明のポリゴンの三次元変換は、線の三次元スキャン変換をポリゴンのエッジに使用する。エッジ間を走るサーフェルは、塞いで最良の接続を提供する。本発明の方法では、ポリゴンエッジをｙにおいてソートしなければならないが、これは走査線がｙ座標軸と平行であるためである。
【００７０】
ＤＤＡ（デジタル微分アナライザ）プロセスはもともと、二次元表現においてラインをラスタ化するために開発された。特定のラインで、始点及び終点のピクセルポジション、及び△ｘ及び△ｙを計算する。次に、△ｘ及び△ｙを二つのデルタの大きい方で割って、プロセスに必要なステップの数をこの最も大きいデルタと等しくする。最も大きいデルタの方向の各ステップについて、ピクセルのポジションを他の方向のデルタによって計算する。このプロセスは簡単であるが効果的である。
【００７１】
図８に示すように、ＤＤＡプロセスは次のようにポリゴン７００に適用される。三角形７００の三つのエッジの一つを「ベースエッジ（base-edge）」７０１として選択し、残りの二つのエッジ７０２と７０３は「ガイダンスエッジ（guidance-edges）」として選択する。ベースエッジに平行なライン７０４はプロセスがガイダンスエッジに沿って別の増分的なステップを行う毎に三次元ラスタ化される。
【００７２】
本発明のプロセスはKaufmanのアルゴリズムとは異なるが、これは本発明のベースエッジが三次元において任意に方向付けされることができるからである。Kaufmanのアルゴリズムでは、ポリゴンがｘｙ座表面と一致していない限り（ベースエッジがｘまたはｚの座標軸のいずれかである場合）、ベースエッジはかならずｙ座標軸と平行である。
【００７３】
ポリゴンのサーフェスの法線を計算して、ポリゴンが主軸でスパンされる平面と平行かどうかを調べる。この場合、特定の最適化をプロセスに対して行うことができる。
【００７４】
ベースエッジ７０１では、△ｘ、△ｙ、及び△ｚの値を計算し、この三つの三角形の最大値△maxを求める。三つのインクリメントの合計を計算する。
【００７５】
１）ｘincr ＝ △ｘ／△max.、
２）ｙincr ＝ △ｙ／△max.、
３）ｚincr ＝ △ｚ／△max。
【００７６】
ｘ、ｙ、またはｚに沿って最大値の三角形の方向でステップを行うと、ベースエッジに沿って三次元のサンプルポジションが得られる。三角形７００をスキャン変換すると、二つのガイダンスエッジのｘ方向、ｙ方向、ｚ方向のデルタが同様に求められる。もう一度エッジごとの三つの増分の合計を計算するが、今度はこのデルタを両方のガイダンスエッジの最大デルタで割る。これは、スキャン変換する平行なエッジのそれぞれについて、ベースエッジの向きをガイダンスエッジに沿うステップが確実に維持するようにするためである。
【００７７】
二つのガイダンスエッジに沿った各増分的ステップの後、ベースエッジと平行なエッジの三次元ラスタ化を行う。ガイダンスエッジに沿って各増分的ステップを行うと、このエッジの長さは減少してしまう。エッジの三次元ラスタ化中にみられる各サンプルポジションにおいて、サーフェルはそのポジションで格納される。
【００７８】
図９で見られるように、追加されて８つの接続を提供するサーフェルは、三角形７００の内側に追加されるだけである。図９では、サーフェル８０１と８０２のどちらかをリスト６００に追加することができる。どのサーフェルが内側にあるかを決めるために、ベースエッジ７０１に関する頂点７１０のポジションを決定する。これは、頂点７１０を指し、ベースエッジに垂直な内側方向のベクトル７２０を定義することで行われる。内向きのベクトル７２０によって、二つの候補のサーフェルのうちの一つ（この例ではサーフェル８０１）を選択する。
【００７９】
サーフェルをシーケンシャルリストに追加するたびに、そのポジションは、ポジションに応じてハッシュテーブルに格納される。サーフェルを追加する前に、ハッシュテーブルをチェックして、そのポジションにおいてサーフェルがすでに存在するかどうかを判断する。
【００８０】
３．２．２  距離マップを使った変換
従来技術では、距離マップはサンプリングしたボリュームのサーフェスボクセルを正確に表現するために使われてきた。ボリューム用の距離マップは、もともと三次元ボリュームである。各グリッドポジションでは、距離マップはオブジェクト表面への最短距離を格納する。こうした距離は分析的な描写から計算されるか、またはボリュームのバイナリセグメント化されたデータから抽出することができる。
【００８１】
距離マップは、ボリュームからオブジェクト表面の正確な再構築を行うプロパティを有している。距離マップの勾配によってサーフェス法線の方向が生じる。距離のサインにより、ボリュームの内側と外側とを区別する。オブジェクト表面は距離マップの距離ゼロに配置される。距離マップはオブジェクト表面にわたってなめらかに変化し、これが高い空間周波数を防止するため、比較的低コストの再構築フィルタを使用したサーフェス再構築を行うことができる。
【００８２】
図１０は、距離マップを使ってオブジェクトをサーフェル化するプロセス９００のステップを示す。ステップ９１０では、サーフェスポリゴン（たとえば、図１１で示す三角形１０００）を、サンプリングしたボリュームデータ９０１から推定する。ポリゴン１０００はトリストラップを使って格納することができる。三角形メッシュの各ポリゴンは三つの頂点、たとえば１００１から１００３までを含む。ｎ個の三角形を格納するには、ｎ＋２個のノードが必要である。
【００８３】
ステップ９２０では、トリストリップ（tri-strip）データを読み込み、トリストラップのバウンディングボックスをステップ９３０において決定する。ピクセルサイズの間隔をあけたボリュームを、ステップ９４０のバウンディングボックスによってトリストラップ周辺に定義する。ボリュームの大きさはバウンディングボックスの大きさよりも少し大きく、ボリュームの境界のどれでもトリストラップと一致しない。この条件により、オブジェクト表面が位置している場所を特定することができるが、詳しくは以下で述べる。
【００８４】
ステップ９５０において、ボリュームの各整数グリッドポイントポジションの三角形への最短距離を以下に詳述するように決定する。ステップ９６０において、ボリュームをトラバースし、（１／２）√２以下の距離を有するこうしたグリッドポイントにサーフェルを追加する。これは、サーフェルが含まれるセルの表面対角線の半分である。（１／２）√２スケーリング因数を選択して、以下に詳細に述べるように穴の発生を抑える。
【００８５】
距離計算
トリストラップ１０００で各三角形の距離を計算するには、より大きなボリュームの一部であるサブボリューム（拡大したバウンディングボックス）を、図１２にもあるように上記の通り三角形周辺に定義する。サブボリュームの各グリッドポジションでは、三角形への距離を計算する。この方法は、ポイントＰから頂点Ｖ0、Ｖ1、Ｖ2、及び法線Ｎをもつ三角形１１００への三次元での最短距離を計算する。
【００８６】
ポイントＰから三角形までの三次元の距離を計算するには、平坦な三角形によって定義される平面へポイントＰを垂直に投影して三角形の内側にあるかどうかを決定する。Ｐの投影が三角形の外側である場合、三次元最短距離はエッジまたは頂点の一つと垂直なＰからベクトルの大きさである。Ｐの投影が三角形の内側である場合、三次元最短距離はＰからその三角形の投影ポイントＰ’までのベクトルの大きさである。三角形表面へのＰの投影を決定するには、ＰをＰ1及びＮのドット積を計算することにより法線Ｎに投影する。投影したベクトルは、投影ポイントＰ’を生じるＰから引く。
【００８７】
図１３及び図１４は、三角形１１００の二次元投影を示す。投影ポイントＰ’は、図１３の三角形の内側である。エッジに垂直な全てのベクトルはこの場合、内側を指す。図１４では、太い矢印で示されるエッジＶ0Ｖ1に垂直なベクトルは外側を指し、一方で他の二つのベクトルは内側を指す。この図は、また、エッジＶ0Ｖ1に最も近いＰ’を示している。三次元の場合、これは次のように決定される。
【００８８】
Ｖjがエッジの終点でありＶiが始点である場合、ベクトルＰＶiとベクトルＶjＶiは、法線Ｎ’が決定される平面を定義する。この法線は、Ｐ’が内側である場合に三角形の内側を指し、そうでない場合には三角形から離れたポイントを指す。このことは、三角形法線Ｎ及びＮ’のドット積の符号を使って調べることができる。
【００８９】
距離計算は、ストリップの各三角形、及びオブジェクトの全三角形ストリップのためのサブボリュームのあらゆるグリッドポジションについて行う。サブボリュームは重複しているため、ポジションによっては複数の距離計算をするものもある。この場合、最短距離を使用する。
【００９０】
サーフェスオブジェクトは、距離がゼロのときのポジションに置かれる。この距離ゼロは８つのグリッドポジションで境界をおかれるセル内のいずれかの場所にある。そのため、ボリュームをトラバースする際、距離の絶対最大値がボリュームにあたるたびにサーフェルを追加する。これは、ボリュームの境界のいずれにもオブジェクトが一致してはならないからである。８つの接続でサーフェルを追加できるようにするため、サーフェルへの距離が（１／２）√２以下の距離である各グリッドポジションでサーフェルが追加される。
【００９１】
図１５は、（１／２）√２という値を選択した理由を説明するものである。８つのグリッドポイント１３０１から１３０８によって境界されるボリュームの６つの側面をもつセル１３００について考えてみる。セル１３００は、対角線の（奇数）グリッドポイントがないオブジェクトサーフェス１３１０で対角線に区分されている。言いかえると、対角線のグリッドポイントの距離はゼロに非常に近いが正確にゼロではない。サーフェルはこうしたポジションにおいて生成する必要がある。しかし、こうしたサーフェルは８つの接続ではなく、そのためさらに奇数のポジション１３０２及び１３０６か、またはポジション１３０４及び１３０８のサーフェルも生成しなければならない。たとえば、サーフェルが奇数のグリッドポイントを「残して（left of）」いるセルを切り通す場合、グリッドポイント１３０４及び１３０８の距離は（１／２）√２よりわずかに少なく、こうしたポジションのためにサーフェルを追加して８つの接続を提供する。
【００９２】
しかし、サーフェルが奇数のグリッドポイントを正確に切り通す場合、及びこうしたポイントの距離がゼロである場合、偶数のグリッドポイントの距離は（１／２）√２であるため、サーフェルを８つ全てのグリッドポイントに追加しなければならない。これは最悪の場合である。これがオブジェクトの表面全体に関する場合、結果的に表面は一定の厚さ、たとえば、セルの表面対角線の長さ√２を有する。
【００９３】
３．２．３  距離マップとＤＤＡとの比較
三次元ＤＤＡのサーフェル化の利点は、その簡素化にある。このプロセスは整数演算で行われ、ラインに沿って新しいポジションを計算することができる。距離マップを使用したサーフェル化はより複雑であり、またよりメモリ集約的である。距離を計算するのに使うボリュームはサーフェル化中にメモリに格納しなければならない。こうしたボリュームはきわめて大きくなることがある。
【００９４】
距離マップを使用した変換にはあらゆる整数グリッドポジションについて、三角形への距離を計算する変換が必要であるとは言え、ボリュームのセルは１度以上トラバースされないので、サーフェルがすでにあるかどうかをチェックする必要はない。このチェックは三次元ＤＤＡで変換することが必要になる。
【００９５】
上記のように、レンダリングのためにサーフェルのリストを効率的にトラバースするため、リスト６００に順次サーフェルを格納する。三次元ＤＤＡプロセスを適用することで、「左から右」から「右から左」への各増分的ステップでスキャン変換の方向を単に交互にすることで各三角形のサーフェルのシーケンシャルリストが生じる。距離マップを使用するサーフェル化で、サーフェルがリストに追加される順序は、ボリュームをトラバースする順序、層ごとに、及び各層内のサーフェルの順にしたがう。
【００９６】
図１６は、ポリゴンが凸面である限り、三次元ＤＤＡプロセスを拡張して任意のポリゴン１４００でサーフェル化することができる方法を示す。これを達するためにポリゴンの頂点１４０１から１４０６をある順序で、たとえば時計回りに配置する。ベースエッジ１４１０及び二つのガイダンスエッジ１４１１から１４１２を選択する。サーフェル化ラインは凸面１４０５に達すると、ガイダンスエッジ１４１３をエッジ１４１２に取りかえる。同様に、凸面１４１２に達すると、エッジ１４１４をエッジ１４１１と取りかえ、最終的にエッジ１４１５を使用する。
【００９７】
距離マップは任意の凸面ポリゴンで使用することもできる。三角形の三次元の距離を計算する同じプロセスを適用することができる。これにより、最も近いエッジまたは頂点を決定するために、より多くのエッジ及び頂点に対してグリッドポジションをチェックする余分なコストが導入される。
【００９８】
３．３  ボクセルからサーフェルを抽出する
サーフェルは次のようにボリュームデータから生成可能である。第１のステップでは、ボクセルは画像面の解像度に再サンプリングされる。第２に、オブジェクトのサーフェス境界のボクセルを抽出し、抽出したボクセルは次にポイントサンプルまたはサーフェルに変換する。第３に、６つの隣り合うサーフェルをリンクで接続する。このステップは、さらにボクセルの抽出を必要とすることがあり、そうして８つの接続を提供する。最後のステップでは、ボリュームデータの欠如によるサーフェスにおけるギャップを補間で埋めることができる。
【００９９】
３．４  パーティクルの雲をサーフェルにマッピングする
パーティクルの雲を次のようにサーフェルにマッピングすることができる。第１に、スクリーンの解像度のグリッドを雲のまわりに配置する。各セルを調べる。セルが正確に一つのパーティクルを含む場合、そのパーティクルをサーフェルに直接マッピングすることができる。セルが一つ以上のパーティクルを含む場合、そのパーティクルを一つのサーフェルに統合しなければならない。セルにパーティクルが含まれていない場合、サーフェルは隣り合うセルにおいてパーティクルから補間されなければならない。
【０１００】
３．５  デティルのレベルの生成
サーフェルの表現は「ズーム（zooming）」をしやすくするためにデティルの異なるレベルにする、すなわち投影中の画像面とオブジェクト間の差を変えることができる。サーフェル生成後、または生成中に、フィルタを適用してデティルの異なるレベルを生成することができる。通常、これは、レンダリング前の前処理ステップとして行われる。フィルタリングとダウンサンプリングを行うことにより、サンプルオブジェクトは解像度が低く（粗く）なり、アップサンプリングとフィルタリングを行うことによりサーフェルオブジェクトは解像度が高く（細かく）なる。たとえば、図２に示される四つの隣り合うサーフェル１００に属する値を、ディティルオブジェクトのより低いレベルのサーフェルに平均化することができる。その他のフィルタリングまたはサンプリングの技術を異なる組み合わせのサーフェルに適用して色々なレベルのディティル、たとえば、１６、４、１、１／４、１／１６、１／２５６などを提供することができる。
【０１０１】
４．  グラフィックオブジェクトの物理ベースのモデリング
グラフィックオブジェクト間の相互作用の物理ベースの現実的なシミュレーションにおいて、剛体力学と動的変形の二つのタイプのモデリングが主に使われている。
【０１０２】
剛体力学では、グラフィックオブジェクトは、外部からの力やトルクを受けても剛性を失わない。ポジション、向き、速度、容量の中心及び慣性因数などのパラメータを使用して、ニュートン力学による空間及び時間を通してオブジェクトの通り道をシミュレートする。剛体力学の特徴として、オブジェクトの形状はいつでも変わらないということがある。
【０１０３】
さらに、力学は圧迫したり圧迫させないようにしたりすることができる。圧迫された剛体力学において、オブジェクト間の相互作用、たとえば衝突などが起きることがある。圧迫されていない剛体力学において、オブジェクトは別のオブジェクトの動きに関係なく動く。
【０１０４】
動的変形において、オブジェクトは容積、ポジション、及び潜在的にオブジェクトの全てのサーフェルエレメントの速度を利用して、内部の力及び外部の力を受ける。マススプリングシステムを利用して、サーフェルオブジェクトに動的変形の物理ベースのモデリングを適用する。サーフェルはポイント容積であり、サーフェルを接続するリンクは、容積の現実的な物理的な動きをモデルへのスプリングとして作用する。
【０１０５】
４．１  サーフェルオブジェクトの剛体力学
剛体の物理ベースの力学のシミュレーションは、自然の法則による現実ワールドの動きをするオブジェクトの動きに関連している。重力やトルクなどの力をオブジェクトが受けるときの現実の動きを模倣する。動きが圧力を受けていない場合、こうしたオブジェクトは、他のオブジェクトとの衝突に影響されることなく、どこにでもまったく自由に動く。また、衝突などの圧力を受ける剛体のシミュレーションを処理するためにこのモデルを拡張する。
【０１０６】
図１７に示されるように、剛体の状態を使用してサーフェルオブジェクトに剛体力学を実施する。
【０１０７】
ポジション及び向き
剛性のサーフェルオブジェクトのポジションを、ある時間ｔにおいて、ｘ（ｔ）：（ｘ,ｙ,ｚ）のベクトルで説明する。このベクトルは、「ワールド空間（world space）」座標系の原点からオブジェクトの現在のポジションまでのオブジェクトの移動を指定する。オブジェクトの向きは、「四元数（quaternion）」と呼ばれる四つの変数の集合で定義される。この集合は、それ自体のローカルな座標系の三つの軸を中心にしてオブジェクトを回転させる、回転マトリックスＲ（ｔ）、３×３マトリックスを反映する。
【０１０８】
式    ｐ（ｔ）＝  Ｒ（ｔ）ｐ0＋ｘ（ｔ）
【０１０９】
は、ローカルな座標系の剛性サーフェルオブジェクトの面におけるポイントｐ0のポジションを、ワールド座標系（world coordinate system）のポイントｐに定義する。
【０１１０】
通常の回転マトリックスの代わりに四元数を使う。四元数は、ｑ（ｔ）＝（ｑs，ｑx，ｑy，ｑz）と書く四つの数のリストである。この四元数を現実のパートｑs、及び想像上の（ｘ，ｙ，ｚ）に分ける。四元数を使うのには、二つの理由がある。
【０１１１】
第１に、９つの回転マトリックスの代わりに４つの変数しか必要としないため、状態ベクトルのサイズが小さくなり、計算も少なくてすむ。第２に、数値的に、状態ベクトルを積分して解をすすめるため、変数が数値エラーの蓄積を意味する数値ドリフトを受けやすくなる。四元数は回転マトリックスよりもドリフトの発生がはるかに少ない。さらに、四元数の大きさを正規化するので、四元数の再正規化によるエラー修復が容易である。
【０１１２】
四元数には他の利点もある。現実の部分や想像上の部分に四元数を分割することで、回転角や回転軸の識別に役立つ。四元数が正規化されるということは、その大きさが１と等しくなるということである。想像上の部分が、オブジェクトが回転する中心となる軸を定義する。回転部分はラジアンで表す。たとえば、ユニット軸ｕを中心とするラジアンの回転θは、
【０１１３】
ｃｏｓ（θ／２），ｓｉｎ（θ／２）ｕ．
【０１１４】
で表す。
【０１１５】
四元数は、数値の積分のときに使う。マトリックスを実際に回転させてレンダリングを行わなければならないとき、四元数を回転マトリックスに変換する。積分を用いて差分式のセットを解かなければならないとき、ふたたびマトリックスを四元数に変換する。
【０１１６】
速度及び角速度
時間の経過に伴うオブジェクトのポジションは、その速度による。オブジェクトの速度は、ｘ（ｔ）の微分係数をとって決定する。
【０１１７】
ｖ（ｔ）＝ｘ’（ｔ）＝ｄｘ／ｄｔ
【０１１８】
サーフェルオブジェクトの向きを固定すると、ワールド空間を通るオブジェクトの動きはその線形速度による。オブジェクトが回転する場合、ｘ’（ｔ）であるときのｑ’（ｔ）の類似するパラメータを決める。
【０１１９】
サーフェルオブジェクトの角速度をｗ（ｔ）といい、ｗ（ｔ）は、向きによってサーフェルオブジェクトが回転する中心の軸を与えるベクトルである。ｗ（ｔ）の大きさ、|ｗ（ｔ）|は、オブジェクトが回転する速度を特定する。ｑ（ｔ）の微分係数ｑ’（ｔ）は、ｗ（ｔ）として想像上のパートをとることでｗ（ｔ）から四元数を生じさせることでわかり、現実のパートにゼロの値を加える。
【０１２０】
ｑw（ｔ）＝（０，ｗx，ｗy，ｗz）
ｑ’（ｔ）＝１／２ｑw（ｔ）ｑ（ｔ）
【０１２１】
ｑw（ｔ）ｑ（ｔ）は、四元数ｑw（ｔ）及びｑ（ｔ）の積である。合わせると、ポジション、向き、速度、及び角速度は、剛体シミュレーションの状態ベクトルを含む。状態ベクトルは、全部で１３個の変数を含んでいる。
【０１２２】
ｘ（ｔ）＝ｑs，ｑx，ｑv，ｑz，ｘx，ｘv，ｘz，ｖx，ｖv，ｖz，ｗx，ｗv，ｗz
【０１２３】
これら１３個の変数は、積分中の各時間的なステップごとに更新される。サーフェルオブジェクトの動きを示す積分方程式、すなわち時間の経過にともなう状態ベクトルの値をたてると、数値積分を使って方程式を解くことができる。
【０１２４】
ｘ’（ｔ）＝ｆ（ｘ，ｔ）
【０１２５】
ここで、関数ｆはｘ（ｔ）の微分係数を計算する。関数ｆは、時間ｔの後の状態ベクトルｘの状態を説明する。関数ｆがわかると、ワールド空間のサーフェルオブジェクトの新しいポジション、向き、速度、及び角速度を導くことができる。関数ｆを解くために、状態ベクトルｘの微分係数を計算する。
【０１２６】
その他の量
さらにいくつかの状態変数を使って、ｘ（ｔ）からｘ’（ｔ）を計算する。オブジェクトが加速する場合、サーフェルオブジェクトの新しい速度を計算する。例の力として、ユーザ入力から得られる重力または力がある。速度ｖは加速度ａと等しいため、
【０１２７】
Ｆ＝ｍａ  または  ａ＝Ｆ／ｍ
【０１２８】
を使う。
【０１２９】
加速度ａを計算するには、サーフェルオブジェクトの容積を知る必要がある。サーフェルオブジェクトの容積はシミュレーション中は変化しないので、シミュレーションの前処理状態において全てのサーフェルの容積を蓄積することでサーフェルオブジェクトの全体の容積を計算することができる。
【０１３０】
角度の加速度の計算のための力Ｆにあたるものとしてトルクがある。トルクはそれを回転させるオブジェクトに作用する。この力を重心に整列させると何も起こらないが、力がオブジェクトのどこか他の場所のポイントにかかるとすぐに、力によってオブジェクトは回転する。
【０１３１】
角度の加速度を計算するため、角速度の微分係数を使う。容積と類似したエンティティを使って、サーフェルオブジェクトに作用しているトルクＴ（ｔ）から角度の加速度を決定する。このエンティティは慣性テンソルＩ（ｔ）という３×３のマトリックスである。このテンソルは、時間が経つにつれて変化しないため、シミュレーションを開始する前に普通計算する。テンソルは、オブジェクトのボリュームにそってサーフェルオブジェクトの容積を配分する方法を述べる。実際に、この３×３のマトリックスは３つのエンティティのベクトルに導くことができる。
【０１３２】
角度の加速度の式を導き出すために、角度の運動量Ｌ（ｔ）を使う。
【０１３３】
Ｌ（ｔ）＝Ｉ（ｔ）ｗ（ｔ）
【０１３４】
及びその微分係数
【０１３５】
Ｌ’（ｔ）＝Ｔ（ｔ）
【０１３６】
ｗ’（ｔ）の式を導くためには、
【０１３７】
ｗ’（ｔ）＝（Ｔ（ｔ）―Ｉ’（ｔ）ｗ（ｔ））／Ｉ（ｔ）
【０１３８】
剛体シミュレーション
図１８に示すように、時間に依存するオブジェクト１６０１の剛性の状態１６００を状態ベクトル１６０２にコピーする。状態ベクトルは、ある時間ステップｈの新しい状態ベクトル１６０３を生じる数値的積分器１６１０の入力としてはたらく。状態ベクトル１６０３はサーフェルオブジェクトの状態１６００に再びコピーされて、空間及び時間のオブジェクトの新しいポジション及び向きが次の処理ステップに知られる。
【０１３９】
衝突検出及び接触力
次に、圧力かかっていない剛性サーフェルオブジェクトの動きを説明する。オブジェクトを衝突に反応させたい場合、物理的な法則による二つのオブジェクト間のエネルギー及び慣性の交換を計算する。これにより、オブジェクトが衝突後に空間を通る新しい通路をたどる剛体の動きを生じる。計算した力はオブジェクトに吸収されず、全ての力は新しい向き及び新しい速度でオブジェクトを方向付けるのに使用される。マテリアルのプロパティによりオブジェクトの動的な変形が可能になる場合、衝突時にエネルギーを発散及び吸収可能であるため、エネルギー交換の計算も行う。
【０１４０】
二つのサーフェルオブジェクト間の衝突検出には、大量の計算的な手間が必要な場合があるが、これは他のオブジェクトの全てのサーフェルと一つのオブジェクトの各サーフェルを比較しなければならないからである。この問題を避けるために、たとえば球面に対する１２面体など、各サーフェルオブジェクトについて多面体バウンディングボックスを生成する。適当な量のポリゴンを有するバウンディングボックスは、ある精度までサーフェルオブジェクトの面を近づけることが出来、衝突しないようチェックする必要のあるポリゴンの数を減らすことができる。
【０１４１】
二つのサーフェルオブジェクト間の衝突を検出する場合、オブジェクトのサーフェスの問題の部分（ポリゴン）を決定し、実際の衝突するサーフェルの検索を開始するので、一つおきのサーフェルでそれぞれのサーフェルをチェックすると言う最初のタスクが減る。衝突に参加するサーフェルを見つけると、サーフェルオブジェクトの状態ベクトルの属性から接触力を導出することができる。
【０１４２】
サーフェルレベルで接触力を決定した後、新しい速度または向きなどの衝突から生じる状態の変化を計算することができる。また、以下に述べるマススプリングシステムなどを使ってサーフェルオブジェクトを変形し始めることができる。
【０１４３】
４．２  サーフェルオブジェクトの変形の動的モデリング
剛体モデリングは、オブジェクトの動的な変形を扱わない。オブジェクトに作用する力によってオブジェクトの形が変わる場合、サーフェルオブジェクト内の個々のサーフェルを処理するモデルを使う。サーフェルオブジェクトは別々のポイントサンプルから構成されるため、サーフェルオブジェクトの動的変形のシミュレーションはオブジェクトの各サーフェルの動きをシミュレートすることで行う。
【０１４４】
特に、各サーフェルはポジション、速度、力、及び図１９で示されるサーフェルに作用する容積を有する。したがって各サーフェルについて、次のように定義する。
【０１４５】
ｘ’（ｔ）＝ｖ（ｔ）
ｖ’（ｔ）＝ｆ／ｍ＝ａ
【０１４６】
上記のように、これらは剛体力学と同じである。
【０１４７】
また、剛体力学と類似して、シミュレーションを生じさせることができるサーフェルオブジェクトの状態のスナップショットを撮る。サーフェルオブジェクトに存在する各ひとつのサーフェルの状態を反映する状態ベクトルを生成する。剛体力学と同じく、数値的積分器にこの状態ベクトルを加えて、時間間隔ｈの終わりの各サーフェルの新しい状態を反映する新しい状態ベクトルを計算する。
【０１４８】
図１９は、変形シミュレーション中にサーフェルオブジェクト１７０２の各サーフェル１７０１と関連付ける変数１７００を示す。サーフェルはゼロ次元のポイントとしてモデリングされるため、サーフェルの向きを格納する必要はない。サーフェルの状態のコンテンツに依存する時間は、状態ベクトルを定義する。
【０１４９】
ｘ（ｔ）＝（ｘx，ｘy，ｘz，ｖx，ｖy，ｖz）
【０１５０】
サーフェルを置換すると力が生じ、サーフェルリンクでモデリングされる二つのサーフェル間の自然の距離で分裂を生じさせる。こうしたサーフェルの置換は、サーフェルオブジェクト間の衝突や、ユーザ入力による結果として起こり得る。
【０１５１】
４．２．１  マススプリングシステム
図２０は、マススプリングシステムにおいてリンク１８０２によって接続されるサーフェル１８０１の格子としてモデリングされるサーフェルオブジェクトの部分１８００を示す。サーフェル１８０１は容積を有し、リンクはオブジェクトをこえる力を伝播する。力が一時的なものであると、オブジェクトは、力がかかる前に有していた形状に戻ろうとする。この場合、オブジェクトはメモリを有している。
【０１５２】
メモリはリンクに格納される。サーフェルオブジェクトを生成する場合、共通リンクを共有する二つのサーフェル間の自然の距離を決定する。これは、サーフェルリンクの属性の一つとして格納される残りの長さ４２０である（図５参照）。リンクを共有する二つのサーフェル間の距離の分配は、自然のリンクの長さの違反を意味する。これによりサーフェルレベルの力が発生する。この力はひとつのサーフェルについて計算されるためバイナリ力という。これは、フックの法則をスプリングに応用することで行うことができる。
【０１５３】
ｆi＝[ｋs（|ｄ|−ｌ0）＋ｋd|ｄ’|]ｄ*
ｆj＝−ｆi
【０１５４】
ここで、ｆiはサーフェルｉに作用する力であり、ｋsはリンクの弾性成分であり、ｋdはダンピング因数である。残りの長さはｌ0である。リンクは二つのサーフェルと接続するため、逆の力を別の端のサーフェルｊにかけることができる。ｄ＝（ｘi−ｘj）を計算して、リンクの両終点間のベクトルを定義する。
【０１５５】
|ｄ|の値は、ｄ*＝ｄ／|ｄ|がその方向における単位ベクトルであるときにそのベクトルの長さを定義する。最後に、|ｄ’|はリンクの長さの瞬間の変化である。これは、速度を引いてその結果をｄ：（ｖi−ｖj）ｄ*の単位ベクトルでかけて、計算する。
【０１５６】
量（|ｄ|−ｌ0）は、残りの長さｌ0を違反しない場合に、ゼロになる。この値がゼロでない場合、この違反の量をかけるリンクの弾性因数に依存する。
リンクを共有する二つのサーフェルが別の方向に動くとき、二つのサーフェル間の距離に変化が生じる。この距離が残りの長さと異なるとき、リンクの自然な長さが乱されるため、力は両方のサーフェルに作用する。リンクは二つのサーフェルを元の場所に戻すよう試みる。
【０１５７】
図２１は８つ以下のその他のサーフェルに接続するサーフェルの力を蓄積するのに使うことができる処理過程１９００を示す。この処理過程は、シーケンシャルリスト６００（図７）の各サーフェルに実施して既存のリンクをチェックする。
【０１５８】
リンクが見つかると、Compute_Force関数を呼び出して、共通リンクで接続される両サーフェルに作用する力を計算する。各ひとつのサーフェルの各力を決定した後、積分器の微分係数を生じさせる。
【０１５９】
リンクの弾性因数とダンピング因数の両方を使って、モデリングしたサーフェルオブジェクトのマテリアルプロパティを調整することができる。こうした量は自然な張力の動きを考慮し、それに従って弾性因数を選択する試行錯誤によって求めることができる。
【０１６０】
ダンピングは、振動のためにマテリアルが分解しないようにする弾性因数と関連しなければならない。システムは、ｋd＝２√（ｍ’ｋs）であるときに臨界減衰するといわれている。ｍ’の値は等しい量である。リンクの各端においてリンクがサーフェルに重み付けされるため、こうした二つの量を「見る（sees）」リンク、すなわちｍ’＝ｍ／２を仮定することができる。実際には、等しい量は、積分器を通して他のサーフェルに貢献するリンクが通過するために、より高くなる。
【０１６１】
両因数を選択するのには注意が必要である。弾性及びダンピングが適切に一致していない場合、振動が生じて、各積算ステップにおいて集中する力のチェーン反応を生じさせ、最終結果としてサーフェルの破壊が起きることがある。このようになるのは、ダンピング因数が足りなくて、互いに離れるサーフェルをコントロールできない場合である。
【０１６２】
シミュレーションの実行
図２２は、たとえば衝突などによりサーフェルオブジェクトに物理ベースの動的変形がおこったプロセス２０００を示す。サーフェルオブジェクト２００１は、リンク２００３によって接続される複数のサーフェル２００２を含む。サーフェルオブジェクトには多くのサーフェルがあるため、各サーフェルの状態ベクトルを連結して、サーフェルポジション及び完全なサーフェルオブジェクト２００１の速度の１つの大きな状態ベクトル２０１０、を形成する。
【０１６３】
これにより、ｎがオブジェクトのサーフェル数である場合、長さ６ｎの結合した状態ベクトルが生じる。この力は処理過程１９００で蓄積され、またステップ２０２０で集積されて、個々のサーフェル２００２の状態を更新するのに使用可能な新しい状態ベクトル２０３０を生成する。
【０１６４】
図２３は、図２２の処理過程２０００で使用可能なラッパー（wrapper）処理過程２１００を示す。この処理過程により状態ベクトル２０１０が発生し、各サーフェルにおける力を蓄積するプロセス１９００を呼び出す。ラッパー２１００は積分器２０２０も呼び出す。この中でエラースケール（err-scale）は許容可能なエラーの量を測定する。
【０１６５】
４．２．２  変形後のサーフェル法線の決定
サーフェルが変形中にピクセルグリッドに対して圧力を受けなくなるため、変形後にサーフェルオフセットと法線を再び考えなければならなくなる場合がある。サーフェルオフセットは変化することがあるが、これはオフセットがシーケンシャルリストの前のサーフェルへの距離を測定するからであり、こうして新しいポジションを有するどんなサーフェルにも再計算を行うことができる。
【０１６６】
さらに大きい問題として、図２４乃至図２６に示されている通り、変形のシミュレーション中にサーフェル法線が変化しない、ということがある。図２４は、サーフェル法線２２１１のサーフェル化したポリゴンの部分２２１０を示す。図２４乃至図２６に示すように変形した部分２２２０では、サーフェル法線２２１１は、シミュレーション前と変わらない。これにより、サーフェルオブジェクトがレンダリングされると間違った表現がされることは明らかである。部分のための正しい法線２２２１は図２６に示されている。
【０１６７】
法線２２２１は、変形したサーフェルを通過する接平面から見つけられる。サーフェルは接続されているため、接平面にある二つの非同一線形ベクトルは、二つの最も近い隣り合う二つのサーフェルで見つかる。最も近い隣り合うサーフェルは、サーフェルリンクから見つけることができる。
【０１６８】
５．サーフェスエレメントのレンダリング
サーフェルオブジェクトをモデリングすると、表示機器またはプリンタにおいてレンダリングを行うことができる。上記で述べたように、サーフェルは（サーフェル）ボクセルと近い類似性を有している。両方とも、グリッドにおいて定義される。ボクセルの典型的な定義は、ボリュームの整数のグリッドポジションに配置されている、値またはサンプルと考えることができる。本発明によると、各サーフェルは、画像面に１ピクセルに投影する。全体的に、オブジェクト順レンダリング投影プロセスを使う。ピクセルへのサーフェルの一対一のマッピングのため、ラスタ化は不要である。
【０１６９】
デティルの様々なレベルにおいてサーフェルの表現を行うことにより、ズーム、すなわちサーフェルオブジェクトと画像面との距離の変更を容易にすることができる。この場合、１ピクセル以上または未満のピクセルを１ピクセルに投影すると、デティルの対応するレベルの表現を選択して、サーフェル及びピクセル間の一対一のマッピングを維持することができる。
【０１７０】
図２７は、サーフェルオブジェクトのレンダリングパイプライン２３００を示す。パイプライン２３００は、相当する座標空間で作用する５つの段階２３０１から２３０５を有する。レンダリング中は、各サーフェルＳは１３個１組のベクトルとして定義することができる。このベクトルは以下の式を含む。
【０１７１】
Ｓ＝{ｘ，ｙ，ｚ，ｏx，ｏy，ｏz，ｎx，ｎy，ｎz，ｒ，ｇ，ｂ，α}
【０１７２】
ここで、ｘ，ｙ，ｚはサーフェルのポジションであり、ｏはオフセットであり、ｎはサーフェス法線であり、ｒ，ｇ，ｂはサーフェルの色であり、αはサーフェルの不透明度である（図５，６参照）。
【０１７３】
レンダリング装置２３００は、図７のリスト６００において第一のサーフェルで開始する。このサーフェルをカメラの位置のためクリップしない場合、サーフェルのポジションはワールド座標から、ビューイングマトリックスＭによって変わる。
【０１７４】
平行な投影のみを考慮するため、変形はアフィン変換であり、透視図の分割は不要である。第１のサーフェルでは、ビュー座標はカメラによって決定されるクリッピング境界に対してクリップされる。クリッピング境界には、近い面と遠い面と、さらにカメラの描写を提供するビューポート大きさが含まれている。サーフェルがこうしたクリッピング境界内にある場合、サーフェルを深度バッファに対してチェックする。
【０１７５】
光源によるサーフェスの照射をシミュレートするには、シェーディングの計算をサーフェルに対して行う。光源の照射をモデリングする方法の一つとして、各サーフェルにローカルの照射モデルを適用することがある。ローカルの照射モデルの最も良い結果が得られるのは、フォンシェーディングとして公知の、ここで使用するものである。フォンシェーディングは計算においてオブジェクトのマテリアルプロパティを使用して、オブジェクトに高品質のシェーディングを提供する。
【０１７６】
５．１  オブジェクト順の投影
どのピクセルにサーフェルを投影させるかを決定するには、０番目、または最も近接する補間を行う。ピクセル（ｘ、ｙ）の中心が、（ｘ＋０．５、ｙ＋０．５）に位置していると考える。この場合最も近接する補間とは、サーフェルのｘ及びｙのビュー座標の整数部分を考慮するだけでわかるピクセルポジションを意味する。
【０１７７】
各連続するサーフェルのビュー座標は、スクリーン空間のオフセットにサーフェルのオフセットを変換することでわかる。問題となっているサーフェルのビュー座標を、次に、前のサーフェルのビュー座標に関連付ける。上記に述べたように、こうしたオフセットの多くは同じであるため、すでに変換したオフセットをルックアップテーブルに格納したり、必要に応じて検索したりすることができる。このルックアップテーブルへインデックスを計算するのに、ビューイングマトリックスを直接使用してビュー座標を計算することが必要である。同様の座標を、平行投影を用いて直接ビュー座標に変形させるには、全部で１８の操作（乗算及び加算）が必要である。
【０１７８】
オフセットを使ってサーフェルのビュー座標を決定するには、ビューイングマトリックスを使って第１のサーフェルの変換を行わなければならない。直交投影には、各隣のサーフェルのビュー座標を、ビュー変換させたオフセットを加えることで見つけることができる。８つの接続を有するサーフェルでは、考えられるオフセットの組み合わせは、{±１，０，０}、{０，±１，０}、{０，０，±１}である。
【０１７９】
ビュー変換したオフセットは予め計算されて、たとえば、下の式のような独自にインデックスされたルックアップテーブルに格納することができる。
【０１８０】
index = ｏx＋３・ｏy＋５・ｏz＋５
【０１８１】
このとき、ｏはオフセットを示す。このルックアップテーブルには、二回の積算と三回の加算のみが必要である。さらに３回の加算が必要になり、ビュー変化したオフセットを追加してビュー座標を得るので、サーフェルにつき全部で８つの操作が必要になる。
【０１８２】
５．２  ぎざぎざのエッジ、テラス、及び穴
サーフェル表現から生じた画像は、図２８に示されているように、ぎざぎざのエッジはテラス効果２４００などのエイリアジングアーチファクトという難点がある。これには二つの理由がある。第１に、サーフェルはピクセルの大きさでセルに配置されているポイントサンプルだと考えられていること。投影のサンプリング率は、ぎざぎざのエッジなしでは形を再構成するほど高くはないのである。
【０１８３】
第２に、オブジェクトのある方向においてはより多くのサーフェルをピクセルに投影するとはいえ、一つのサーフェルしかピクセルに投影しないため、結果的に一つしかピクセルに対して値を貢献しない。その他のサーフェル（隠れサーフェスエレメント）は、深度バッファによって排除される。ぎざぎざのエッジは深度バッファを使うことの公知の問題である。「ぎざぎざ（jaggies）」及びテラスは、オブジェクトの色における高い空間周波数（spatial frequencies）を有する場所に現れうる。エイリアジングアーチファクトは、以下により詳細に述べるスプラット技術によって減らすことができる。
【０１８４】
図２９及び図３０に示すように、最も近接する補間投影を使う変形したサーフェルのレンダリングのもう一つの問題に、穴がある。ビューイング方向にほとんど平行な軸を中心にオブジェクトが回転するとき、またはオブジェクトが変形するときに穴ができる。「穴（holes）」の問題に対しては、次の解決法を提示する。
【０１８５】
図２９において、オープンサーフェルの破線のグリッドは元のポジションであり、ソリッドサーフェルの実線のグリッドは、再方向付けのあとのポジションである。方向付けの後、中心のグリッドポジション（ピクセル）は、対応するサーフェルがなくなってしまう。これにより、レンダリングした画像に穴があくのである。図３０では、グリッドの一部が二方向に変形してスクリーン（ピクセル）ポジションに穴があいてしまっている。
【０１８６】
穴は、隣り合うサーフェルを使用して「ふさが（filled）」なければならないため、サーフェルへの画像面の一対一のマッピングにとって重要な短所である。これには、サーフェルごとにさらなる操作を必要とする場合があり、そのため処理時間がかかる。以下の説明において、「穴」の問題に対する解決法を示す。
【０１８７】
５．３  サーフェルの剪断ゆがみレンダリング
ある解決法では、剪断ゆがみ因数化（因数分解）を利用してサーフェルオブジェクトのレンダリングを行う。剪断ゆがみ因数化は、ビュー変換は二つの別のステージに分けられるという観点にたっており、剪断の後ゆがみがおこる。
【０１８８】
Ｍview＝Ｐ・Ｓ・Ｍwarp’
【０１８９】
ここで、Ｐは順列マトリックスと言い、Ｓは剪断マトリックス、またＭwarpはゆがみマトリックスである。剪断オブジェクト空間において、ベース面への投影は、いわゆるベース面と直交している。
【０１９０】
図３１に示すように、因数化は、一般に、三つのステップを含んでいる。第１に、ボリューム２５００では、ビューイング方向２５０１と最も平行な主軸（ｘ0）が決定され、また主軸が直交するベース面２５０２または中間画像を定義する。この軸はベース面のビューイング方向に割り当てられる。この空間での座標の定義は、Ｐを使った順列によって行われる。この空間は順列空間と呼ばれる。このベース面は、バウンディングボックスの面の一つと一致しており、従ってオブジェクトの一部とも一致する。
【０１９１】
ベース面とボクセルの各スライスとに垂直なビューイング方向の定義には、図３２及び図３３に示すように、オブジェクトを剪断しなければならない。図３２及び図３３で、ライン２６０１はビューイング方向であり、平行なライン２６０２はスライスである。剪断は−Ｖx／Ｖzによって計算する。三次元では、剪断は同様に、ｙ方向にも行われる。オブジェクトの座標は、Ｓを使用する剪断された座標空間に変換される。ボリュームの剪断には、ボクセルの再サンプリングが必要である。
【０１９２】
第２に、オブジェクトをベース面２５０２に投影して、中間画像を生じさせる。剪断ゆがみの変形がもともと起こるオブジェクトでは、剪断されたボリュームのいくつかのプロパティを活かすことができ、レンダリングの速度をあげる。こうしたプロパティの一つに、スライスはベース面のピクセルの流れに対して平行であるということがある。
【０１９３】
第３に、図３４に示すように、中間画像を歪みマトリックスに応じて最終的な画像まで歪ませる。図３４では、矢印２７０１は剪断であり、矢印２７０２は投影であり、矢印２７０３は歪みであり、楕円２７００はもともと球体のオブジェクトであり、ライン２７０４はベース面であり、ライン２７０５は画像面である。剪断歪み因数化をサーフェルオブジェクトへと、次のように適用する。剪断ステップはオブジェクトの形を変える。しかし、ベース面画像には穴はできない。これは、図３５，３６を使って説明することができる。２次元におけるビューイング方向の傾斜は、ＶxとＶzが等しい場合に最大値１．０である。言いかえると、オブジェクトに垂直な方向のビューイング方向の角度は最大で４５度であり、これは角度が大きくなるにつれて異なる主軸を、オブジェクトに垂直な軸にするようにとるからである。
【０１９４】
オブジェクトは傾斜に応じて剪断されるため、ある方向における剪断も最大で１．０であり、これによって、ライン２８０１がベース面であり、矢印２８０２がビューイング方向であり、グリッド２８１０がオブジェクト空間にあり、グリッド２８０２が剪断空間のピクセルグリッドである図３５及び図３６に示すように、全てのピクセルはサーフェルからの貢献を得る。剪断歪みの異なる段階を実行すると、最終的にビュー変換が生じる。
【０１９５】
最終的な画像の穴は、穴を含まないベース面の画像をテクスチャマップとなるように定義することにより防止できる。次にこのテクスチャマップを面でのテクスチャマッピングに使用し、この面を歪ませて最終的な画像にする。この歪みは、歪みマトリックスに応じて変わるオブジェクト空間で定義されるある面として考えることができる。この変わった、テクスチャマップされた面は、次にスクリーンにレンダリングされる。
【０１９６】
５．４  スケーリング
画像面のサーフェルオブジェクトの範囲内にある各ピクセルが、最も近接するフィルタリングを保持する間、それと関連する少なくとも一つのサーフェルを有することを確実にするために、オブジェクトをスケーリングすることもできる。このスケーリングは、三つの方向すべてにおいてピクセルサイズの間隔を維持するよう均一にすべきである。決定しなければならないのは、オブジェクトを最小限にスケーリングしなければならないスケール因数である。
【０１９７】
オブジェクトにおける穴のパターンは、回転角度に依存する。４５度と９０度との間の回転に現れるパターンは、０度と４５度との間の回転に現れるパターンと同じであるが、一方でこれらは、４５度の回転のラインに対して反映される。各４５度の回転インターバルでは、穴のパターンはインターバル０度から４５度のパターンとまったく同じであるか、または反映されたパターンと同じで再び現れる、完全な３６０度の回転に当てはまる。
【０１９８】
ここで、マッピングされたサーフェルを含むセルでピクセルを考えることにより、スケール因数を決めることができる。セルの２次元投影は、セルが回転していない場合にはピクセルのサイズと完全に一致する。しかし、セルの２次元投影をピクセルの中心で回転させると、セルのコーナーはピクセル境界の外側になる（図３７乃至図３９参照）。
【０１９９】
図３７では、サーフェルはピクセルにマッピングされ、図３８ではサーフェルは４５度で回転し、図３９ではサーフェルは（１／２）√２によってスケーリングされる。
【０２００】
セルの、ピクセル境界への２次元のコーナーの最大距離は、４５度の回転において生じる。ピクセルが単位正方形（unit squire）であると仮定すると、この場合のピクセルの中心からコーナーへの距離は（１／２）√２である。投影のコーナーをピクセル境界にするためには、スケール因数も（１／２）√２でなければならない。ピクセルの中心からセルの投影のコーナーまでの距離をこの因数でスケーリングすると、（１／２）√２である。これによって、ピクセルごとに少なくとも一つのサーフェルをオブジェクトの範囲において各ピクセルごとに値に貢献するようにするのである。
【０２０１】
スケーリングによって、スクリーンにおけるオブジェクトが小さくなることは明らかであり、そのためオブジェクトのサイズを維持するためには、より大きなオブジェクトを生成しなければならない。たとえば、１００のサーフェルの半径をもつ球体は、スケーリングなしでは１００のピクセルの半径を有する。球体をスケーリングする場合、１００ピクセルの半径のレンダリングした球体を得るには、球体の半径を１００・√２にしなければならない。
【０２０２】
より解像度の高いオブジェクトを生成して次により解像度の低いオブジェクトをレンダリングする原理は、スーパーサンプリングと同じである。ここで、ワードスケーリングを使用して、スーパーサンプリングがサーフェルオブジェクトに適用されることを示す。
【０２０３】
５．５  スプラッティング
エイリアジング及び穴の問題の第３の解決法としては、図４０及び図４１に示されるスプラッティングを使用するということがある。図４０及び図４１で、ピクセルグリッド３０００は、サーフェル３００１にマッピングされる。グリッドロケーション３００２には「穴」がある。図４１では、サーフェルは、穴を埋めるために、それに比例して拡大されている。
【０２０４】
スプラッティングで、再構成「核（kernel）」に応じてサーフェルの貢献を複数のピクセルに拡大または「伸張（spread）」する。このプロセスは、デジタル画像処理からの技術に基づいたものであり、この場合、再構成関数を使ってサンプリングしたデータから信号を再構成するのに使う。
【０２０５】
サンプルでは、単位球体（ユニット部分の球体）を定義する。球体は、三次元において再構成核を示す。サンプルをスクリーンに投影すると、球体の範囲は円になる。円内の各ピクセル（ｘ、ｙ）では、サンプルの貢献を、ｚ軸、すなわちビューイング軸に沿って再構成核を統合して計算する。オフセットを除いては、この範囲はサンプルとまったく同様であるため、積分を、いわゆる一般的なフットプリントテーブルと置換することができる。
【０２０６】
再構成フィルタの積分は、ｅｘｐ（−ｘ2＋ｙ2／２σ2）の形のガウシアン関数により近似される。この関数は回転的に対称であり、これは線形的には各方向で別々に積分可能であることを意味し、その結果を乗算することで合計の積分を得ることができる。こうしたプロパティは、ガウシアンを使って一般的なフットプリントテーブルを作成するのに必要である。
【０２０７】
一般的なテーブルを作成するには、三次元核、すなわちユニット領域の球体、を平面に投影し、この投影は円つまりユニット領域の円である。次にユニット領域の円を、多くの入力、たとえば１００×１００を、ガウシアンフィルタを使ってテーブルにサンプリングするが、この場合、ユニット領域の円に対応しないテーブル入力の値はゼロである。
【０２０８】
ボリュームは必ずしも三つすべての方向において等間隔を有している訳ではないため、ユニット領域の球体を特定のビューにおいて長円体になるようにしてもよく、したがって特定のビューにおけるフィルタの投影を楕円にすることができる。楕円の一般的なフットプリントテーブルを使用するかわりに、いわゆるビュー変換したフットプリントテーブルを一般的なフットプリントテーブルからいったん作成する。
【０２０９】
ビュー変換したテーブルを使用するためには、レンダリング装置で二回の計算が必要である。まず、ピクセルの範囲を、ビュー変換したフットプリントテーブルで計算しなければならない。次に、ビュー変換したフットプリントテーブルから一般的なフットプリントテーブルへのマッピングを計算しなければならない。
【０２１０】
ピクセルの範囲は、核またはスプレッド（spread）の幅を用いて計算する。ビュー変換したテーブルから一般的なテーブルへのマッピングは、円から円へのマッピング、またはユニット領域球体を特定のビューで長円体に変換する場合には、楕円から円へのマッピング、のいずれかである。
【０２１１】
レンダリング中には、ビュー変換したフットプリントテーブルがサンプルの画像ポジションの中心になる。もう一つのパラメータが、ビュー変換したフットプリントを使うのに必要であり、これがテーブルの大きさである。大きさはテーブルの範囲とは異なっている。テーブルの大きさにより、ビュー変換したテーブルの入力数が決まる。ビュー変換したテーブルの大きさはそれがカバーするピクセル数より大きくなければならず、大きくない場合にはエイリアジングアーチファクトを画像に生じる。広い大きさと同様に、大きな範囲を有するビュー変換したテーブルによって、オブジェクトのぼんやりした画像が生じる。ビュー変換したフットプリントテーブルは、ビュー変換したフットプリントテーブルの範囲内にあるピクセルの各ピクセル中心にサンプリングされ、特定のテーブル入力における重みはピクセルへの貢献を計算するのに使われる。
【０２１２】
サーフェルに一般的なスプラッティングプロセスを以下のように適用する。ボリュームにおいて、図４０に示されるように、グリッド間隔は三方向すべてにおいてかならずしも等しくなく、獲得の種類によって変わる。また、出力サンプル（ピクセル）の解像度は、入力サンプル（ボクセル）の解像度よりも高いのが普通である。この理由により、グリッドスケールの因数及びピクセル対ボクセルの比率を公式に表し、ビュー変換したテーブルの範囲を計算する。
【０２１３】
しかし、サーフェルでは、こうした二つの因数は二つとも１に等しい。したがって、ビュー変換したフットプリントテーブルの大きさは比較的小さくすることができる。半径の範囲が１．５の再構成核は、スクリーンの範囲を３ピクセルにする。５×５から１０×１０の大きさでは、サーフェルに適用するスプラッティングには十分である。
【０２１４】
レンダリング装置は、スクリーンへサーフェルを投影することで開始し、ビュー変換したフットプリントテーブルをスクリーンのｘ、ｙポジションを中心にする。テーブルの範囲内にある各ピクセルの中心では、そのピクセルのテーブル入力を決定し、そしてその入力の重みをピクセルの値に適用する。
【０２１５】
剪断ゆがみ、スケーリング、及びスプラッティングの比較
剪断ゆがみには、ベース面へのオブジェクトの投影が、軸によってベース面と整列する三次元グリッドで行われるという利点がある。最終画像に穴が生じないようにするため、ゆがんだベース面画像には、そのピクセル値を補間する必要がある。剪断ゆがみの欠点としては、シーンにおける各オブジェクトは別々の画像にレンダリングする必要があり、結果できた画像をブレンドして最終的なシーンを構成しなければならない。これは複雑であり、オーバーヘッドとなる。
【０２１６】
レンダリング前にオブジェクトをスケーリングすることで、複数のサーフェルをひとつのピクセルに投影する。もとのレンダリングプロセスはオブジェクトをレンダリングするのに適用され、プロパティは、一つのサーフェルが最終的にピクセルにその値に貢献し、サーフェルが最も小さい深度値で１になる、というものである。因数（１／２）√２でオブジェクトをスケーリングすると、ピクセルにつき少なくとも一つのサーフェルができる。スケーリングをすると画像面のオブジェクトが小さくなるため、スケーリングでは、最初に大きいオブジェクトを生成しなければならない。
【０２１７】
穴の問題に対する最後の解決法として、周辺のピクセルへのサーフェルの貢献をスプラッティングすることがある。サーフェルの値は、各サーフェルに関連するフィルタに応じて重みづけされ、この重みづけられた値をピクセルに割り当てる。画像は、全ての貢献をピクセルに蓄積することで生じる。このようにして、穴は、ピクセルに周辺のサーフェルを貢献することによって埋められるが、これは周辺サーフェルのスプレッドが十分広いということを条件とする。スプラッティングすると、スプラッティングがもともとオブジェクトの色をぼやけさせるので、オブジェクトのサーフェスのぎざぎざのエッジ及びテラスをアンチエイリアジングさせる。サーフェルのスプレッドが大きくなりすぎた場合、ぼやける度合いも大きくなりすぎる。
【０２１８】
スプラッティングの技術を使って、高速レンダリング技術を有するサーフェル表現をおこなったり、コンスタントな再サンプリングをせずにオブジェクトの変形を行うことができる。最初は、オブジェクトのサーフェルは８個の接続であり、したがって、互いに離れている多くとも一つのピクセルでは、スプラッティングに使われるテーブルは比較的小さいままにすることができる。６×６及び８×８ピクセルの範囲のテーブルは、穴を埋めるのに十分である。
【０２１９】
オブジェクトが変形して大きな穴がサーフェスに生じてしまった場合、オブジェクトをすぐに再サンプリングする必要はない。まず、より大きな穴も埋めることができるように、核をスプラッティングする範囲を拡大する。大きすぎる範囲は、レンダリングをかなりスローダウンさせるため、オブジェクトを時々再サンプリングすることが必要であり、またはサーフェルの大きな穴のポジションでサーフェルを部分的に生成させることが必要である。
【０２２０】
６．０  第１、第２、および第３のサーフェル
これまでに、すべてのサーフェルが作成されて等しく処理された。すなわち、各サーフェル１００は、サーフェル属性の完全なセットを有し、隣り合うサーフェルすべてとリンク３００によってリンクされ、各リンクはリンク属性の完全なセットを有する。サーフェルがシミュレーションで使用される場合、すべてのサーフェルがモデリングされ、かつすべてのサーフェルがレンダリングされる。
【０２２１】
モデリング等、いくつかのレンダリングに関連する動作では、すべてのサーフェルを処理するので、リアルタイム対話性の達成が困難になる。リアルタイム対話性には、サーフェルを約３０フレーム／秒でレンダリングする必要がある。さらに、すべてのサーフェルおよびリンク属性を格納すると、記憶領域（storage）を消費する。従って、用途によっては他のクラスのサーフェルが必要になる。
【０２２２】
図４２は、（オープン）第１のサーフェル３１０１と、（クローズド（closed））第２のサーフェル３１０２のグループとを示す。各第１のサーフェルは、上述したように完全に属しており、かつ完全にリンクされている。第２のサーフェルの各グループは部分的に属しており、かつ１つの第１のサーフェルのみにリンクされている。例えば、各第１のサーフェルは、関連する第２のサーフェルを１５個有する。１：３５または１：６３等ほかの比率もまた使用できる。各第２のサーフェルは、レンダリング、すなわちポジション、色、および法線に必要な属性３１１０のみを含み、リンクはない。第２のサーフェルのポジションは、それらの第１のサーフェルからのオフセットとして格納できる。第２のサーフェルは、第１のサーフェルと同時に、かつ第１のサーフェルと同様にして生成される。これらの例において、第１のサーフェルは、その第２のサーフェルグループの角に配置される。あるいは、第２のサーフェルは、第１のサーフェルを中央に有することにより「バランスをとる」ことができる。
【０２２３】
利点として、このデータ表現は、レンダリングした画像の質を変えることなく、より少ない記憶容量を使用する。より重要なこととして、この表現では、処理にかかる時間がより短い。例えば、第１のサーフェルしか持たないオブジェクトを１フレーム／秒の速度でモデリングできる場合、第１のサーフェルしか処理しないため、１：３５比を有する同一オブジェクトを３０フレーム／秒よりも良好にリアルタイムでインタラクティブにモデリングできる。モデリングにサーフェルのスペーサセットを使用することは、最終結果に最小限の影響しか持たない。図４３および図４４は、変形前後のサーフェルを示す。第２のサーフェルのグループがそれらの制御第１のサーフェルとともに移動し、かつスケーリングされる。第２のサーフェルは所定のしきい値までしか移動およびスケーリングされない。
【０２２４】
穴が形成されるほど変形が大きい場合、一時的な使用のために第３のサーフェルが生成される。図４５は、どのようにして第３のサーフェルを処理するかを示す。第１のサーフェルの４×４アレイは、ベジェパッチ３３００の制御ポイントとして使用される。一時的な第３のサーフェル３３０１は、必要とされる任意の密度で、パッチの（滑らかな）サーフェス３３０２上に生成される。各第３のサーフェルの属性（ポジション、色、および法線）は、１６個の制御サーフェルから得られる。第１のサーフェルもまた第２のサーフェルに関連している場合、第３のサーフェルの属性値を計算する際に、第２のサーフェルの属性を考慮に入れる。なお、フレームがレンダリングされるとすぐに、第３のサーフェルは破棄され、必要であれば、新たな第３のサーフェルが次のフレーム用に生成される。
【０２２５】
第１および第２のサーフェルの変形
図４６〜図４８は、どのようにしてサーフェル化したサーフェス３４００を変形することができるかを示す。これらの図面において、オープンドットは第１のサーフェルを示し、クローズドドットは第２のサーフェルを示す。上向きの矢印は、サーフェス法線である。ここでは、サーフェスをエッジから見ている。マウスを使用して、カーソル３４０１は変形ポイントを選択できる。次に、カーソルはサーフェスを「上」、「下」、「横」等に「ドラッグ」できる。（第２の元における）変形の形状は、ガウシアンにより定式化される。
【０２２６】
【数１】
0004364409.tif 000003
【０２２７】
変形の高さ（ｈ）３４０２および伸張（ｓ）３４０３もまた、マウスで制御できる。第３の元において、変形は、パナマ帽の形状、または逆には小さなへこみの形状を有する。すなわち、ガウシアンの伸張内のサーフェルだけが更新の対象となる。
【０２２８】
変形は永久的にでもよく、あるいは変形されたサーフェスがその通常の静止状態にはじきもどされてもよい。サーフェルをその静止状態に戻すには、図１９の動的状態属性１７０１もまた、該サーフェルの静止位置を含む。１つの変形において、サーフェスは、減衰振動を使用して回復される。振動の程度は、それらの静止位置からの変位量に従ってサーフェル上に作用する力により制御できる。
【０２２９】
選択された特定のサーフェルを識別するために、サーフェルオブジェクトを包含するバウンディングボックスを通しての視点（カメラポジション）からラインをトレースする。バウンディングボックス内のライン部分は、ワールド座標系からサーフェルのポジションを示すために使用されるローカル座標系（ｘ，ｙ，ｚ）に変換される。ラインはサーフェルオブジェクトと交差し、視点に最も近いサーフェルが選択される。
【０２３０】
サーフェルオブジェクトは、サーフェスを通して穴を開けることにより同様に「湾曲」しうる。穴のロケーションおよびサイズは、マウスおよびカーソルにより制御できる。また、同様にマウスを使用して、サーフェルオブジェクトを異なる色に「ペイント」できる。一色が選択され、選択されたサーフェルの選択された半径内のサーフェルが色づけされる。
【０２３１】
以上のように、本実施の形態においては、オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、オブジェクトのサーフェスに位置する各セルのゼロ次元サーフェスエレメントをメモリに格納し、サーフェスエレメントのサブセットを第１のサーフェスエレメントとして選択し、選択されなかったサーフェスエレメントを第２のサーフェスエレメントとして識別し、隣り合う第１のサーフェスエレメントをリンクによって接続し、関連する第１のサーフェスエレメントおよび関連する第１のサーフェスエレメントのリンクに対して、特定のセルに含まれているオブジェクト部分の第１の属性を割り当てる。
【０２３２】
各第１のサーフェスエレメント毎に１つのグループがあるように、選択されないサーフェスエレメントはグループに分割され、特定のセルに含まれるオブジェクト部分の第２の属性は、関連する第２のサーフェスエレメントに割り当てられる。
【０２３３】
各サーフェスエレメントに割り当てられたオブジェクト属性は、オブジェクトサーフェスにおけるサーフェスエレメントのポジション、エレメントの速度、対応するセルに含まれるオブジェクト部分の容積を含むことができ、各リンクに割り当てられる属性は、リンクによって接続された隣り合う２つのサーフェスエレメントの間の残りの長さを含むことができる。
【０２３４】
本発明は、特定の用語及び実施の形態を使って説明している。様々なほかの応用例及び修正例を、本発明の精神及び範囲内において行うことができる。したがって、添付の特許請求の範囲の目的は、発明の真の精神及び範囲内におけるこうした変更例及び修正例をすべてカバーすることである。
【０２３５】
【発明の効果】
この発明に係るグラフィックオブジェクトの表現をモデリングする方法は、オブジェクトのサーフェスを、画像面の解像度に関連するグリッド解像度を有する複数のセルに分割し、オブジェクトのサーフェスに位置する各セルのゼロ次元サーフェスエレメントをメモリに格納し、サーフェスエレメントのサブセットを第１のサーフェスエレメントとして選択し、選択されなかったサーフェスエレメントを第２のサーフェスエレメントとして識別し、隣り合う第１のサーフェスエレメントをリンクによって接続し、関連する第１のサーフェスエレメントおよび関連する第１のサーフェスエレメントのリンクに対して、特定のセルに含まれているオブジェクト部分の第１の属性を割り当てる。
【０２３６】
各第１のサーフェスエレメント毎に１つのグループがあるように、選択されないサーフェスエレメントはグループに分割され、特定のセルに含まれるオブジェクト部分の第２の属性は、関連する第２のサーフェスエレメントに割り当てられる。
【０２３７】
各サーフェスエレメントに割り当てられたオブジェクト属性は、オブジェクトサーフェスにおけるサーフェスエレメントのポジション、エレメントの速度、対応するセルに含まれるオブジェクト部分の容積を含むことができ、各リンクに割り当てられる属性は、リンクによって接続された隣り合う２つのサーフェスエレメントの間の残りの長さを含むことができる。その結果、レンダリングした画像の質を変えることなく、より少ない記憶容量を使用することにより、処理にかかる時間をより短くすることができ、モデリングを簡略にすることが可能な、リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法を得ることができる。
【図面の簡単な説明】
【図１】  陰表現、ポリゴン表現、ボクセル表現、及びパーティクル表現から合成、変換、マッピング、及び抽出によって生成可能なサーフェスエレメント（サーフェル）を示す図である。
【図２】  隣り合うセルを定義するオブジェクトに投影する画像面解像度を有するグリッドを示す図である。
【図３】  隣り合うセルを定義するオブジェクトに投影する画像面解像度を有するグリッドを示す図である。
【図４】  ６つに隣り合い８つが接続されたサーフェルのメッシュを示す図である。
【図５】  サーフェルのデータ構造を示すブロック図である。
【図６】  サーフェルの属性を示すブロック図である。
【図７】  サーフェルリストのブロック図である。
【図８】  サーフェルにポリゴンをスキャン変換するポリゴンを示す図である。
【図９】  内側のサーフェル及び外側のサーフェルを有するポリゴンを示す図である。
【図１０】  距離マップを使用したサーフェル化プロセスの流れ図である。
【図１１】  ポリゴンのトリストリップを示す図である。
【図１２】  投影した距離を示す図である。
【図１３】  内側に投影したポイントを示す図である。
【図１４】  外側に投影したポイントを示す図である。
【図１５】  平坦面によって区分けされたサーフェルのセルを示す図である。
【図１６】  サーフェル化される任意のポリゴンを示す図である。
【図１７】  剛体の状態を示すブロック図である。
【図１８】  サーフェルオブジェクトの剛体のモデリングを行うプロセスの流れ図である。
【図１９】  変形可能なサーフェルオブジェクトの動的な状態の図である。
【図２０】  マススプリングシステムとしてモデリングされたサーフェルオブジェクトのメッシュを示す図である。
【図２１】  サーフェルオブジェクト上に力を蓄積する過程を示すプログラムリストである。
【図２２】  サーフェルオブジェクトを変形するプロセスの流れ図である。
【図２３】  動的な状態のベクトルを生成する過程を示すプログラムリストである。
【図２４】  変形中のサーフェスの法線を示す図である。
【図２５】  変形中のサーフェスの法線を示す図である。
【図２６】  変形中のサーフェスの法線を示す図である。
【図２７】  サーフェルレンダリングパイプラインを示す流れ図である。
【図２８】  レンダリングの作為を示す図である。
【図２９】  レンダリングの作為を示す図である。
【図３０】  レンダリングの作為を示す図である。
【図３１】  剪断ゆがみ因数分解（factorization）を示す図である。
【図３２】  剪断前のボクセルのスライスを示す図である。
【図３３】  剪断後のボクセルのスライスを示す図である。
【図３４】  画像面のゆがみを示す図である。
【図３５】  剪断でゆがんだピクセルグリッドを示す図である。
【図３６】  剪断でゆがんだピクセルグリッドを示す図である。
【図３７】  スケーリングしたサーフェルを示す図である。
【図３８】  スケーリングしたサーフェルを示す図である。
【図３９】  スケーリングしたサーフェルを示す図である。
【図４０】  スプラッティングされたサーフェルを示す図である。
【図４１】  スプラッティングされたサーフェルを示す図である。
【図４２】  第１のサーフェルおよび第２のサーフェルのブロック図である。
【図４３】  静止しているサーフェル、および変形位置におけるサーフェルのブロック図である。
【図４４】  静止しているサーフェル、および変形位置におけるサーフェルのブロック図である。
【図４５】  パラメトリックパッチに分散したサーフェルのブロック図である。
【図４６】  変形中のサーフェスの断面図である。
【図４７】  さらに変形中のサーフェスの断面図である。
【図４８】  さらに変形中のサーフェスの断面図である。
【符号の説明】
１００  サーフェル（surfel）、１０１  陰関数、１０２  ポリゴン、１０３ボクセル、１０４  パーティクル、２００  セル、２０１  ノード、２０２  ピクセル、２０３  画像面、３００  リンク、４０１  サーフェル属性、４０３リンク属性、６００  シーケンシャルリスト、７００  ポリゴン、７０１  ベースエッジ、７０２，７０３  ガイダンスエッジ、７２０  内側方向のベクトル、１０００  ポリゴン、１３００  セル、１３０１〜１３０８  グリッドポイント、１３１０  オブジェクトサーフェス、１４０１〜１４０６  頂点、１４１０〜１４１２  エッジ、１６００  剛性の状態、１６０１  オブジェクト、１６００  剛性の状態、１６０２，１６０３  状態ベクトル、１６１０  数値的積分器、１８００  サーフェルオブジェクトの部分、１８０１  サーフェル、１８０２リンク、２０００  プロセス、２００１  サーフェルオブジェクト、２００２サーフェル、２００３  リンク、２０３０，２０１０  状態ベクトル、２３００  レンダリングパイプライン、２４００  テラス効果、２５００  ボリューム、２５０１  ビューイング方向、２５０２  ベース面、２７００  楕円、３１０１  第１のサーフェスエレメント、３１０２  第２のサーフェスエレメント３１０２。
【図１】
0004364409.tif 000004
【図２】
0004364409.tif 000005
【図３】
0004364409.tif 000006
【図４】
0004364409.tif 000007
【図５】
0004364409.tif 000008
【図６】
0004364409.tif 000009
【図７】
0004364409.tif 000010
【図８】
0004364409.tif 000011
【図９】
0004364409.tif 000012
【図１０】
0004364409.tif 000013
【図１１】
0004364409.tif 000014
【図１２】
0004364409.tif 000015
【図１３】
0004364409.tif 000016
【図１４】
0004364409.tif 000017
【図１５】
0004364409.tif 000018
【図１６】
0004364409.tif 000019
【図１７】
0004364409.tif 000020
【図１８】
0004364409.tif 000021
【図１９】
0004364409.tif 000022
【図２０】
0004364409.tif 000023
【図２１】
0004364409.tif 000024
【図２２】
0004364409.tif 000025
【図２３】
0004364409.tif 000026
【図２４】
0004364409.tif 000027
【図２５】
0004364409.tif 000028
【図２６】
0004364409.tif 000029
【図２７】
0004364409.tif 000030
【図２８】
0004364409.tif 000031
【図２９】
0004364409.tif 000032
【図３０】
0004364409.tif 000033
【図３１】
0004364409.tif 000034
【図３２】
0004364409.tif 000035
【図３３】
0004364409.tif 000036
【図３４】
0004364409.tif 000037
【図３５】
0004364409.tif 000038
【図３６】
0004364409.tif 000039
【図３７】
0004364409.tif 000040
【図３８】
0004364409.tif 000041
【図３９】
0004364409.tif 000042
【図４０】
0004364409.tif 000043
【図４１】
0004364409.tif 000044
【図４２】
0004364409.tif 000045
【図４３】
0004364409.tif 000046
【図４４】
0004364409.tif 000047
【図４５】
0004364409.tif 000048
【図４６】
0004364409.tif 000049
【図４７】
0004364409.tif 000050
【図４８】
0004364409.tif 000051