JP3285566B2 - オブジェクトをグラフィックで表現する方法 - Google Patents

オブジェクトをグラフィックで表現する方法

Info

Publication number
JP3285566B2
JP3285566B2 JP30950899A JP30950899A JP3285566B2 JP 3285566 B2 JP3285566 B2 JP 3285566B2 JP 30950899 A JP30950899 A JP 30950899A JP 30950899 A JP30950899 A JP 30950899A JP 3285566 B2 JP3285566 B2 JP 3285566B2
Authority
JP
Japan
Prior art keywords
surfel
surfels
pixel
objects
grid
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
JP30950899A
Other languages
English (en)
Other versions
JP2000222604A (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 JP2000222604A publication Critical patent/JP2000222604A/ja
Application granted granted Critical
Publication of JP3285566B2 publication Critical patent/JP3285566B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

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

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 グラフィックオブジェクト表現のデータ
    を生成する方法であって、 上記オブジェクトの表面を、画面の解像度に関連する格
    子分解能を有する複数のセルに分割し、 各セルは、それぞれ1個のポイントを有し、 リンクによって隣接するセル中の上記ポイントを連結
    し、 上記オブジェクトの属性を、上記各ポイントと上記各リ
    ンクへ割り当てる ことを特徴とする方法。
JP30950899A 1999-01-29 1999-10-29 オブジェクトをグラフィックで表現する方法 Expired - Fee Related JP3285566B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/240,641 US6480190B1 (en) 1999-01-29 1999-01-29 Graphical objects represented as surface elements
US09/240641 1999-01-29

Publications (2)

Publication Number Publication Date
JP2000222604A JP2000222604A (ja) 2000-08-11
JP3285566B2 true JP3285566B2 (ja) 2002-05-27

Family

ID=22907346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30950899A Expired - Fee Related JP3285566B2 (ja) 1999-01-29 1999-10-29 オブジェクトをグラフィックで表現する方法

Country Status (3)

Country Link
US (1) US6480190B1 (ja)
EP (1) EP1024460A3 (ja)
JP (1) JP3285566B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209369A (ja) * 2000-01-25 2001-08-03 Mitsubishi Electric Corp 3次元グラフィック用データの生成方法及び記録媒体
US7024342B1 (en) * 2000-07-01 2006-04-04 Mercury Marine Thermal flow simulation for casting/molding processes
US6611736B1 (en) * 2000-07-01 2003-08-26 Aemp Corporation Equal order method for fluid flow simulation
US6580424B1 (en) * 2000-10-21 2003-06-17 Microsoft Corporation System and method for interactive room modeling from camera images
EP1332475A1 (en) * 2000-11-07 2003-08-06 Holographic Imaging LLC Computer generated hologram display system
US6954203B2 (en) * 2001-03-16 2005-10-11 Mitsubishi Electric Research Labs, Inc. Modeling and combining multiple graphics objects
US20040205518A1 (en) * 2001-09-21 2004-10-14 Ming-Chih Shih System and method of measuring a distance between two points of a layout
JP4575157B2 (ja) * 2002-07-19 2010-11-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メッシュ適応による多数の対象又は複合的な対象の同時セグメンテーション
JP2004199496A (ja) * 2002-12-19 2004-07-15 Sony Corp 情報処理装置および方法、並びにプログラム
JP3855053B2 (ja) * 2003-01-30 2006-12-06 国立大学法人 東京大学 画像処理装置、画像処理方法、及び画像処理プログラム
US7467180B2 (en) * 2003-05-29 2008-12-16 International Business Machines Corporation Automatically segmenting and populating a distributed computing problem
US20050017968A1 (en) * 2003-07-21 2005-01-27 Stephan Wurmlin Differential stream of point samples for real-time 3D video
JP4557629B2 (ja) * 2004-08-06 2010-10-06 株式会社東芝 画像処理方法、画像処理プログラム、及び画像処理コンピュータ
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US7830373B1 (en) 2006-01-25 2010-11-09 Bo Gao System and methods of civil engineering objects model
US20120303289A1 (en) * 2009-12-02 2012-11-29 Anders Ohrn Combined on-lattice/off-lattice optimization method for rigid body docking
KR101819535B1 (ko) * 2011-06-30 2018-01-17 삼성전자주식회사 표정 제어점에 기초한 강체 영역의 표현 방법 및 장치
US9495484B2 (en) * 2012-09-18 2016-11-15 Autodesk, Llp Nesting using rigid body simulation
US11886174B2 (en) * 2020-07-31 2024-01-30 Dassault Systemes Americas Corp. Virtualized cable modeling for manufacturing resource simulation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831528A (en) * 1987-11-09 1989-05-16 General Electric Company Apparatus and method for improvement of 3D images derived from tomographic data
US4953087A (en) * 1988-10-24 1990-08-28 General Electric Company Three-dimensional images obtained from tomographic data having unequally spaced slices
US5627949A (en) * 1991-12-19 1997-05-06 Letcher, Jr.; John S. System of relational entities for object-oriented computer-aided geometric design
US5898793A (en) * 1993-04-13 1999-04-27 Karron; Daniel System and method for surface rendering of internal structures within the interior of a solid object
US5600763A (en) * 1994-07-21 1997-02-04 Apple Computer, Inc. Error-bounded antialiased rendering of complex scenes
US5943063A (en) * 1995-10-23 1999-08-24 Adobe Systems, Inc. Method and apparatus for rendering characters
US5781194A (en) 1996-08-29 1998-07-14 Animatek International, Inc. Real-time projection of voxel-based object
US5945996A (en) * 1996-10-16 1999-08-31 Real-Time Geometry Corporation System and method for rapidly generating an optimal mesh model of a 3D object or surface
US6069634A (en) * 1997-01-08 2000-05-30 Mitsubishi Electric Information Technology Center America, Inl System for rapidly deforming a graphical object
US6040835A (en) * 1997-11-06 2000-03-21 Mitsubishi Electric Information Technology Center America, Inl. (Ita) System for depicting surfaces using volumetric distance maps
US6067096A (en) * 1998-03-04 2000-05-23 Nagle; John Method and system for generating realistic collisions in graphical simulations

Also Published As

Publication number Publication date
US6480190B1 (en) 2002-11-12
EP1024460A3 (en) 2003-07-02
JP2000222604A (ja) 2000-08-11
EP1024460A2 (en) 2000-08-02

Similar Documents

Publication Publication Date Title
JP3285565B2 (ja) サーフェスエレメントで表現されるグラフィックオブジェクトをレンダリングする方法
JP4364409B2 (ja) リンクされたサーフェスエレメントおよびリンクされていないサーフェスエレメントを使用してインタラクティブにグラフィックオブジェクトをモデリングする方法
US6498607B1 (en) Method for generating graphical object represented as surface elements
JP3285566B2 (ja) オブジェクトをグラフィックで表現する方法
JP3285564B2 (ja) サーフェスエレメントで表現されるグラフィックオブジェクトをモデリングする方法及びサーフェスエレメントで表現されるグラフィックオブジェクトをモデリングするシステム
Gallagher et al. Computer visualization: graphics techniques for engineering and scientific analysis
US6583787B1 (en) Rendering pipeline for surface elements
EP1128330B1 (en) Visibility splatting and image reconstruction for surface elements
EP1128375B1 (en) Texture filtering for surface elements
JP4643271B2 (ja) 区間解析を使用するコンピュータ・グラフィックスの際の可視面決定システムおよび方法
US7466314B2 (en) Resolution-independent surface rendering using programmable graphics hardware
US20030001859A1 (en) Interactive horizon mapping
EP1128331B1 (en) Hierarchical data structures for surface elements
Li et al. A GPU-based voxelization approach to 3D Minkowski sum computation
Kurihara et al. Hair animation with collision detection
Romanyuk et al. Blending functionally defined surfaces
Peng et al. A new approach of point-based rendering
Ueng et al. LoD volume rendering of FEA data
Karhu Displacement mapping
Clack et al. Physical simulation of an embedded surface mesh involving deformation and fracture
Jacobsson Hardware Accelerated Point-based Rendering of Granular Matter for Interactive Applications
Widjaya Accurate incremental voxelization in common sampling lattices
Vyatkin Complex Surface Creation Using Perturbation Functions
Drury et al. Method for Displaying Intersections and Expansions of Three Dimensional Volumes
House et al. Real-Time Object-Space Edge Detection using OpenCL

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100308

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees