JP2000227966A - 3dコンピュ―タ・グラフィックス処理装置及び方法 - Google Patents

3dコンピュ―タ・グラフィックス処理装置及び方法

Info

Publication number
JP2000227966A
JP2000227966A JP2000027708A JP2000027708A JP2000227966A JP 2000227966 A JP2000227966 A JP 2000227966A JP 2000027708 A JP2000027708 A JP 2000027708A JP 2000027708 A JP2000027708 A JP 2000027708A JP 2000227966 A JP2000227966 A JP 2000227966A
Authority
JP
Japan
Prior art keywords
polygon
vertex
triangle
patch
defining
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.)
Pending
Application number
JP2000027708A
Other languages
English (en)
Other versions
JP2000227966A5 (ja
Inventor
Graham John Dunnett
ジョン ダンネット グラハム
Holger Heinrichh Gruen
ハインリッヒ グリューン ホルガー
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.)
Canon Inc
Original Assignee
Canon 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
Priority claimed from GBGB9902511.6A external-priority patent/GB9902511D0/en
Priority claimed from GBGB9902506.6A external-priority patent/GB9902506D0/en
Priority claimed from GBGB9902514.0A external-priority patent/GB9902514D0/en
Priority claimed from GBGB9902510.8A external-priority patent/GB9902510D0/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2000227966A publication Critical patent/JP2000227966A/ja
Publication of JP2000227966A5 publication Critical patent/JP2000227966A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

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

Abstract

(57)【要約】 (修正有) 【課題】 多数の表現でモデル化されるオブジェクトに
対して、計算量を少くし、またポリゴンの一層の細分割
法を提供する。 【解決手段】 3次元オブジェクトがオブジェクト面に
近似する三角形のメッシュを使用してモデル化される。
画像表示のために、各三角形は、この元の三角形と同じ
平面にある必要のない、より小さい三角形に細分割さ
れ、オブジェクト面の湾曲度はより正確にモデル化でき
る。バーンスタイン−ベジエ三角形パッチ又はヘロン・
パッチのようなパラメータ的パッチが、各三角形をより
小さい非平面三角形に分割するか決定するのに使用され
る。加えて非平面三角形の数が、画像データの現在又は
前回フレーム中の元の三角形のサイズを使用して決定さ
れる。非平面三角形は、非平面三角形の同数を必要とす
る次のフレーム中で使用するために記憶され、各新しい
非平面三角形の頂点の明度値が計算され、次の新しい三
角形のための明度値の決定に使用される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は3次元(3D)コン
ピュータ・グラフィックス、より詳しくはオブジェクト
面をレンダリングすること、オブジェクト面のシェーデ
ィング(又はライティング)すること、及び/又はレン
ダリングするためにオブジェクト面の表現の細分割(サ
ブディビジョン)を多角形(ポリゴン)にすることに関
する。
【0002】
【従来の技術】3Dコンピュータ・グラフィックスにお
いて、3次元オブジェクトは普通、オブジェクトの面に
接近している多角形のメッシュを用いて表わされる。オ
ブジェクト面がより複雑になればなるほど、多角形はま
すますそれを正確にモデルにすることが必要になる。し
かし、多角形の数が増加するにつれて、オブジェクトの
画像表示を実行しなければならない処理操作が増える。
これは各多角形が処理されなければならず、また、多角
形の全てを記憶するのに必要とする記憶容量も増えるか
らである。従って、多くの3Dグラフィックス・システ
ムはできるだけ少ない多角形を使用することが試みられ
ている。それゆえに、この種のシステムの一つの問題
は、低い多角形表現のために面の曲率が失われることで
ある。これがモデルの画像をして滑らかさの代わりに切
り子面を生ぜしめることになる。
【0003】D.E.Breen による1986年フォール・ジ
ョイント・コンピュータ会議議事録、931−940ペ
ージ、IEEEカタログ番号86CH2345-7、「ステイナー
・パッチ・モザイク細工の成形及びスムーズ−シェイデ
ィング(Creation and Smooth-Shading of Steiner Patc
h Tessellations)」には、その面がバイパラメータ状パ
ッチの特定タイプ、すなわち、超長楕円面として本来モ
デル化される3次元面をシェーディングする方法が開示
されており、すなわち、この超長楕円面は三角形に均一
に細分割され、また、各三角形はステイナー・パッチに
近似し、ステイナー・パッチの連続メッシュを生成す
る。得られたメッシュをレンダリングするために、ステ
イナー・パッチはレイ・トレーシングされ、またパッチ
が光線によって交差されたときは、座標と交点における
ノーマル(法線)が決定される。得られる結果から、高
品質ーレイ・トレーシング・コンピュータ・アニメーシ
ョンを生成するコンピュータ操作費用と時間の軽減の可
能性を提供する方法と言われる。しかし、この方法は一
般目的として、特にリアル・タイムのコンピュータ・グ
ラフィックスにおいては多くの問題を含んでいる。例え
ば、この方法は超長楕円面から出発し、次いでステイナ
・パッチに近似する均一な三角形ができるように細分割
(sub-divided)される。この均一な細分割は、単一のノ
ーマルが一つより多い三角形によって分割された頂点で
規定され、これによって得られた−ステイナー・パッチ
・モザイクの滑らかなシェーディングが許容されること
を保証するのに欠くことができない。しかし、これらの
必要条件は不当に限定的であり、不正確また非能率なモ
デリングにつながる。さらに、レンダリングに使用され
るレイ−トレーシング技術は、コンピュータ処理の必要
条件をさらに増加させる。
【0004】3Dコンピュータ・グラフィックスにおい
て、オブジェクトのモデルの画像を表示するために、オ
ブジェクト面による画像中に生成する光度値(light int
ensity values)を計算する必要がある。
【0005】これを実行するためのある技術、例えばレ
イ−トレーシング法は、画像の各画素のための明度値
(ライト・バリュー:light value)を計算する。しか
し、これらの方法はコンピュータ処理上高価であり、か
つ、リアルタイム・アプリケーションに対してはしばし
ば不適当である。
【0006】他の技術は画像中のある画素のみの明度値
を計算し、また、残りの画素については補間によって計
算される。この方法はグロー・シェイディングとして知
られており、表示されるべきオブジェクトのモデルを形
成する多角形の頂点における光度を計算し、次いでこれ
らの頂点の値間を補間することによって実行される。し
かし、この方法においてさえも、明度値はモデル中の各
多角形の各頂点に対して計算しなければならず、従っ
て、多角形の数が増える(例えば、オブジェクトをより
正確にモデルする)につれて、実行しなければならない
光度計算の回数も増えることになる。さらに、この方法
は上述したように各多角形の内側のポイントに対する明
度値が直接計算ではなく補間によって決定されるので、
画像中に不正確さが生じる。これらの不正確さは多角形
によってモデル化されたオブジェクト面の曲率の増大に
つれて増大する。これは真の光度値が、多角形によって
モデル化されたオブジェクト面の曲率の増大につれて多
角形を、より横切って変化するからである(また、より
小さい多角形が多数使用されると、頂点の数、従って明
度計算の回数が増える)。
【0007】3Dコンピュータ・グラフィックスにおい
て、また特に対話型リアル・タイム・コンピュータ・グ
ラフィックスにおいて、オブジェクトのコンピュータ・
モデルは多数回処理され、それが異なる3D座標系(例
えば、モデルが記憶された3D「オブジェクト・スペー
ス」及び全てのオブジェクト及び光源等のための「ワー
ルド・スペース」)間で変換される。各変換を実行する
ために、モデルを規定する全てのポイントが変換されな
ければならず、計算(コンピュータ処理)上高くつく。
【0008】従って、多くのコンピュータ・モデルは、
オブジェクトをモデルにするのに少ないポイント数を使
用して、変換を実行するのに必要とされる計算回数を減
じ、次いで変換後、処理を実行してレンダリングのため
の多数のポイントによって規定されたモデルを形成し画
像を表示することが試行されている。
【0009】例えば、一つのアプローチにおいて、ベジ
エ・パッチないしB−スプライン・パッチのようなパラ
メータ状面パッチがオブジェクト面の一部(パーツ)を
表現するのに使用される。変換後、オブジェクトの画像
をレンダリングするために、面パッチがフラットな多角
形に細分割され、これが従来の方法でレンダリングされ
る。
【0010】面部分の表現を処理してレンダリングする
ために多角形を規定する多数の方法が知られている。
【0011】例えば、アディソン−ウエスリ・パブリッ
シング・カンパニ(Addison-WesleyPublishing Company)
刊、フォリ、ヴァン・ダム、フェイナとヒューズ(Fole
y,van Dam, Feiner and Hughes) による「コンピュータ
・グラフィックスの原理及び方法」第2版、ISBN0-201-
12110-7、523-528頁により、効果的により多くのポイン
トを発生する再帰(リカーシブ)ないし反復細分割ベジ
エ・パッチとして知られており、実際のオブジェクト面
と接近させる近似方法がある。それからレンダリングは
ポイントを使用して、フラット・エッジ多角形、普通、
四辺形又は好ましくは三角形を規定して実行され、その
後、それぞれの画素が走査変換として知られる処理によ
って多角形内の域に割り当てられる。各反復後、十分な
分割が実行されたかどうか決定する必要があり、従っ
て、フラットネス・テストが各細分割の実行された後に
行なわれる。
【0012】上述の「コンピュータ・グラフィックスの
原理及び方法」には、各細分割が固定深さまで再帰細分
割を実行した後、フラットネス・テストを実行し、これ
によって、ある余分な細分割の費用のかかるフラットネ
ス・テストを回避する別の方法も開示されている。
【0013】EP−A−0366463はグラフィクス
画像をシェディングする方法を開示しており、ここでは
3次元のカーブ面の三角形一面形成部分が、副三角形が
グロー・シェディングのために十分フラットになるま
で、反復して細分割される。反復の深さの各反復のゼロ
を含む各レベルにおいてテストを実行し、三角形又は副
三角形の各頂点における単位長さ面ノーマル・ベクトル
を計算すること、及びこれをそのドット・プロダクツの
計算によって比較してどれだけ単一性に接近しているか
を決定することによって決定される。三つのドット・プ
ロダクツの各々が所定値を超えておれば、三角形/副三
角形の近傍する面がプラナー(平面)であると想定され
る。加うるに、反復は副三角形のサイズの関数となり、
また、各三角形の4回の反復コールにおける反覆の深さ
を固定することは(これによってこれが256個の副三
角形に分割される)、満足のいく結果をもたらすことが
分る。
【0014】EP−A−0596667には、ベジエ・
パスを細分割する方法が開示されており、細分割のレベ
ルを決定するために細分割を実行する前に、そのパッチ
の極率がテストされる。
【0015】3Dコンピュータ・グラフィックスにおい
て、また特に対話型リアル・タイム・コンピュータ・グ
ラフィックスにおいて、オブジェクトのコンピュータ・
モデルは多数回処理され、それが異なる3D座標系(例
えば、モデルが記憶された3D「オブジェクト・スペー
ス」及び全てのオブジェクト及び光源等のための「ワー
ルド・スペース」)間で変換される。各変換を実行する
ために、そのモデルを規定する全てのポイントが変換さ
れなければならず、コンピュータ処理上高つく。
【0016】従って、多くのコンピュータ・モデルは、
オブジェクトをモデルにするのに少ないポイント数を使
用して、変換を実行するのに必要とされる計算回数を減
じ、次いで変換後、処理を実行してレンダリングの多数
のポイント数によって規定されたモデルを形成し画像を
表示することが試行されている。
【0017】例えば、一つのアプローチにおいて、ベジ
エ・パッチないしB−スプライン・パッチのようなパラ
メータ状面パッチがオブジェクト面の一部(パーツ)を
表現するのに使用される。変換後、オブジェクトの画像
をレンダリングするために、面パッチがフラットな多角
形に細分割され、これが従来の方法でレンダリングされ
る。
【0018】
【発明が解決しようとする課題】しかし、従来の方法は
多数の問題がある。例えば、レンダリングのために表現
を多角形に変換するのに必要とされる処理は、特に多数
の表現でモデル化されるオブジェクトに対して、また画
像データの一連のフレームが、各フレーム中の各表現の
ために実行された処理によって発生される場合におい
て、計算量が多く、時間がかかる。
【0019】本発明は上記問題点に鑑みてなされたもの
であり、一つの態様において、本発明は多角形(ポリゴ
ン)のさらなる細分割方法を提供することを目的として
いる。
【0020】
【課題を解決するための手段】本発明によれば、多角形
からなる面の第1モデルが、複数の面パッチを介してこ
れも多角形からなる面の第2モデルに変換される3次元
オブジェクト面の画像をレンダリングするのに使用する
処理装置又は方法を提供する。
【0021】本発明はさらに、そのパラメータ状面パッ
チが曲面のモデルを形成する多角形の少なくともいくつ
かのために規定され、その面に近似する多数のより小さ
い多角形が面パッチを用いて生成される処理方法又は装
置を備える。より小さい多角形は、元の多角形と同じ平
面に置く必要はなく、従って、曲面をより優れたモデル
にできる。
【0022】本発明は更に、3次元内の曲面の少なくと
も一部をモデル化する多角形が、各多角形のための各曲
面パッチを規定するように処理され、この処理が各元の
多角形を、対応する面パッチに依存する頂点を有する別
の多角形と置換するように実行される。
【0023】本発明の実施の形態は、多くの3Dコンピ
ュータ・グラフィックス・アプリケーションに広く使用
される従来の多角形モデルを、より正確な多角形モデル
に置換させることができる。次いで、この置換モデルは
従来環境、分散及び/又は鏡面光度式(diffuse and/or
specular lighting equations)によって評価することが
でき、レイートレース(ray-traced)を必要としない。
【0024】本発明によれば、3次元オブジェクトのモ
デルの一部を形成する多角形が、多角形のための明度値
を規定する面パッチを計算する工程と;面パッチを使用
する複数のポイントにおける明度値を計算する工程と;
計算された明度値間を補間する工程と;によってシェー
ドされる処理装置又は方法が提供される。
【0025】面パッチを使用して計算される明度値にお
けるポイントは、元の多角形がさらに分割される多角形
の頂点に対応するか、又は明度値が利用可能な多数のポ
イントが増えるように使用された多角形内の付加的なポ
イントとなり、これによって続く補間の精度が高まる。
【0026】本発明はまた3次元面のモデルをレンダリ
ングするのに使用するための明度値を規定する面パッチ
を計算する装置又は方法を提供する。
【0027】本発明はさらに多角形のための明度値を計
算する装置又は方法を提供し、その明度値が多角形の複
数の第1ポイントのために計算され、計算された明度値
が面パッチを規定するのに使用され、面パッチが複数の
第2ポイントのための計算に使用される。複数の第2ポ
イントは複数の第1ポイントの数よりも大きい。
【0028】本発明によれば、3次元曲面の少なくとも
一部の表現が、その表現のサイズに基づいて細分割され
る装置又は方法が提供される。
【0029】表現は多角形か、あるいは面パッチであ
る。
【0030】サイズは表現の面積(エリア)である。
【0031】このサイズは画像データの前回のフレーム
中又は現在のフレーム中のサイズである。
【0032】本発明はまた、レンダリングするための多
角形を発生するための装置又は方法を提供し、その多角
形の数は最初の表現のサイズ・パラメータに依存して決
定される。
【0033】本発明によれば、複数のフレームのための
画像データを発生する複数の表現のモデルをレンダリン
グする方法又は装置を提供し、その各表現は所与のフレ
ームのための同数の多角形に分割され、多角形を規定す
るデータが次の使用のために、同じ範囲に分割されるべ
き表現を必要とするフレーム内に記憶される。
【0034】この方法において、試験が各フレームにつ
き実行され、モデル内の表現の全てに対する細分割深さ
を規定するとともに、この深さに対する多角形を規定す
るデータが既に記憶されておれば、多角形を再計算する
よりも、この記憶データが使用される。そうでなければ
多角形が計算され、データが次の使用のために記憶され
る。
【0035】本発明は、また3次元オブジェクトの画像
をレンダリングするのに使用する多角形を発生する装置
又は方法を提供し、発生されるべき多角形の数が決定さ
れ、多角形のこの数のデータが既に記憶されておれば、
この記憶データが使用され、一方、データが未だ記憶さ
れていなければ、多角形を規定するデータが発生され
る。
【0036】本発明はまた、3次元オブジェクトのモデ
ルを形成する表現を処理する装置又は方法を提供し、各
表現がレンダリングのために同数の多角形に変換され
る。多角形を規定するデータが、所与の数の多角形に変
換されるべき表現を必要とする画像内で使用するために
記憶される。
【0037】
【発明の実施の形態】ここで本発明の実施の形態を添付
図面を参照して例としのみ説明し、同様の参照数字は同
じか、又は類似のものを示す。
【0038】図1を参照して、一実施の形態における3
Dグラフィックス処理装置の機能要素のブロック図を示
す。
【0039】図1の装置において、メモリ6に接続され
た中央処理装置(CPU)4を含むプログラム可能コン
ピュータ2が設けられ、CPU4によって実行されるべ
き動作を規定するプログラムと、CPU4にって処理さ
れるべきデータと、CPUよって処理されたデータを記
憶するように動作可能である。
【0040】メモリ6にはディスク・ドライブ8が接続
されており、このディスクドライブ8は、ディスク10
のような取り外し可能なデータ記憶媒体を許容するよう
に動作可能であり、かつ、これに記憶されたデータをメ
モリ6に伝送することができる。
【0041】CPU4の入力ポートには、例えばキーボ
ード及び/又はマウス、トラックボール等のような位置
検出入力デバイスを含むユーザ命令入力デバイス14が
接続されている。
【0042】さらに、CPU4には、従来の方法で配置
されたメモリ・ユニットを含み、CPU4によって発生
された少なくとも一つの画像に関する画像データを記憶
するフレーム・バッファ16が接続されている。一つ
(又は数個)のメモリ位置が画像の画素のために設けら
れ、また各画素のためのフレーム・バッファに記憶され
た値が画像中のその画素の色又は輝度を規定する。
【0043】フレーム・バッファ16には、従来の方法
でフレーム・バッファ16内に記憶された画像データを
使用する画像を表示するための表示ユニット18が接続
されている。さらに、フレーム・バッファ16にはビデ
オ・テープ・レコーダ(VTR)20又は他の画像デー
タ記録デバイスが接続されている。
【0044】高データ記憶容量を有するハード・ディス
ク・ドライブのような大容量記憶デバイス22が、メモ
リ6(一般的にCPU4を介して)に、さらにフレーム
・バッファ16にも接続されている。この大容量記憶デ
バイス22はメモリ6からCPU4によって処理された
データ、又はディスプレイ装置18に表示されるべきフ
レーム・バッファ16からのデータを受信する。
【0045】コンピュータ2をして本発明の実施の形態
に係る処理を実行する作動命令が、ディスク10に記憶
されたプログラムの形態で商業的に供給でき、又は他の
データ記憶媒体(及びディスク・ドライブ8を介しての
コンピュータへの入力)が、信号として例えばインター
ネットのようなデータリンク(図示省略)を介してコン
ピュータ2に伝送され、又は入力デバイス14を介して
ユーザによって入力することができ、これによって受信
コンピュータ2が本実施の形態の装置に変更される。
【0046】CPU4によって処理されるべきデータ
は、ディスク・ドライブ8を使用して取り外し可能デー
タ記憶媒体からコンピュータ2に入力できる。別の方法
として、あるいは付加的に、処理されるべきデータがこ
のデータを記憶しているローカルないしリモート・デー
タベースから接続部(図示省略)を介してメモリ6にダ
ウンロードすることができる。加うるに、処理されるべ
きデータは、例えば放送信号としてコンピュータ2に伝
送できる。従って、コンピュータ2は「セットトップ・
ボックス」の形態をとり、テレビ18と併用される構成
とすることができ、放送データを受信し、このデータを
処理して処理画像をテレビ18上に表示することができ
る。
【0047】図2A及び図2Bは図1の装置によってこ
の実施の形態で実行される処理操作を示すフローチャー
トである。
【0048】図2A,2Bを参照して、処理が各々3次
元オブジェクト・スペース内にある一つ又はそれ以上を
規定する3次元モデリング・データでステップS2で開
始される。このデータは各オブジェクトの多角形メッシ
ュ・モデルを含み、このオブジェクトは3Dオブジェク
ト・スペース内のモデルを構成する各多角形の頂点の位
置と、頂点を結ぶ線となると考えることのできる連結情
報とを含んでいる。これらの線はモデル内の多角形の境
界線である。3Dモデリング・データは、また各多角形
の光特性(すなわち、多角形の環境、分散及び鏡面反射
係数)を規定する情報を含んでいる。
【0049】ステップS2における3Dモデリング・デ
ータは、ディスク・ドライブ8を介してディスク10の
ような記憶媒体上のコンピュータ2に入力され、インタ
ーネットのような通信回線を介してコンピュータ2へ、
例えば他のコンピュータ又はデータベースから伝送さ
れ、又は例えば放送信号のような信号としてコンピュー
タ2によって受信される。別の方法として、3Dモデリ
ング・データは市場で入手可能なモデリング・パッケー
ジ及びユーザ入力デバイス14を介してユーザからの情
報を使用してコンピュータ2内に発生することができ
る。
【0050】ステップS4において、CPU4が、ステ
ップS2で受信した3Dモデリング・データが必要とさ
れるフォーマットであるかどうかを決定し、もしそうで
なければ、このデータを必要なフォーマットに変換す
る。
【0051】図3はステップS4においてCPU4によ
って実行される処理操作を示すフローチャートである。
【0052】図3を参照して、ステップS50におい
て、CPU4が次のオブジェクトのモデルを規定する3
Dモデリング・データを考慮する(これが最初のオブジ
ェクトとなり、最初にこのステップが実行される)。
【0053】ステップS52において、CPU4はモデ
ルが三角形状の多角形からなるかどうかを決定する。ス
テップS52において、考慮されたオブジェクトのモデ
ルが三角形状の多角形で構成されていないと決定されれ
ば、次いでステップS54において、CPU4が各多角
形を、各多角形の頂点を連結することで三角形に変換し
て、従来方法による三角形を形成する。
【0054】ステップS54において三角形への変換に
続き、あるいはモデルが既に三角形状多角形で形成され
ていることがステップS52で決定されれば、ステップ
S56において、CPU4が、考慮されたオブジェクト
のモデルが各三角形状の多角形の各頂点としてノーマル
(正常)であると規定されたかどうかを決定する。
【0055】ステップS56において、モデルが各頂点
でノーマル(法線)を規定しないと決定されれば、次い
でステップS58において、CPU4が従来方法で各三
角形状の多角形の各頂点でノーマルを計算する。従来方
法としては、例えば、デビッド・エフ・ロジャーズによ
る「コンピュータ・グラフィックスのための手順上の基
準(Procedural Elements for Computer Graphics)」、
マックグローヒル社刊、1988、ISBN 0-07-Y66503-
6、317−319頁(セクション5.3及び例5−
2)に記述された技術が使用される。
【0056】ステップS58でユニット・ノーマルの計
算に続いて、又は、ステップS56において3Dモデリ
ング・データが既に各三角形状の多角形の各頂点でノー
マルが規定されたことが決定されれば、ステップS60
において、CPU4が他のオブジェクト・モデルを考慮
すべきかどうかを決定する。ステップS60においてさ
らなるモデルが処理されることがないと決定されるま
で、ステップS50からS60が反復され上述した方法
で各オブジェクトの各モデルが処理される。
【0057】図2A、2Bを再度参照して、ステップS
6において、CPU4が各オブジェクトの各モデルのた
めのトポロジー・データベースを構築し、記憶する。次
に説明するように、このデータベースは、レンダリング
中、次の使用のために、各モデル内の各三角形、特に各
三角形のエッジ及び頂点に関する上方を記憶する。
【0058】図4A,4Bは、前述のステップS6にお
けるCPU4によって処理される処理操作を示すフロー
チャートである。
【0059】図4A、4Bを参照して、ステップS80
において、CPU4が次のオブジェクトのモデル中の次
の三角形を考慮する(これはステップS80が実行され
る最初の第1オブジェクトのモデルである)。
【0060】ステップS82において、CPU4がユニ
ークIDを三角形に割り当て、ステップS84におい
て、インデックスを三角形中の各エッジに割り当てる。
【0061】ステップS86において、CPU4が別の
三角形がモデル中にあるか決定する。ステップS86に
おいて、さらなる三角形がモデル中にないことが決定さ
れるまで、ステップS80からS86が反復される。上
述した方法で各三角形が処理される。
【0062】ステップS88において、CPU4が特定
番号によるIDをモデル中の各特定頂点に割り当てる。
(頂点は複数の三角形の一部を形成するが、この場合、
ステップS88において、単一のIDのみが頂点に割り
当てられる)。このIDは、各特定頂点が考慮されてス
テップS88において番号順に割り当てられる。本実施
の形態において、ユーザはモデル中の各頂点の位置に関
する不確実性メジャを規定することができ、これによっ
て頂点はそれらの座標を有する同じ頂点としてユーザに
よって規定された量とは異ならないように処理される。
例えば、ユーザは各座標につき0.02の不明確域を規
定し、これで頂点(1.00、0.00、0.00)が
同じ頂点(0.98、0.00、0.00)として処理
される。
【0063】ステップS90において、CPU4が目下
考慮中のオブジェクトのモデル内で次の三角形を考慮
し、また、ステップS92において、三角形内で次のエ
ッジを考慮する(これが最初のエッジとすると、第1回
のステップS92が実行される)。
【0064】ステップS93において、CPU4がエッ
ジの各端で頂点におけるノーマル・ベクトルのドット−
プロダクトを計算する。この計算された値は、これら二
つのノーマル・ベクトル間の角度を表わし、従って、下
にあるオブジェクト面の曲率が三角形を表わす。ドット
・プロダクト値は、ノーマル・ベクトルが平行で、頂点
間のエッジの曲率を指示していないときの+1から、反
対方向の(すなわち、両者間の角度が180°)にある
ノーマル・ベクトルで、エッジの最大曲率を指示してい
るときの−1までの範囲である。
【0065】ステップS94において、CPU4はステ
ップS92で考慮されたエッジの頂点を規定する特定I
D(これらのIDはステップS88で割り当てられる)
からの2次元データ構造を作成する。本実施の形態にお
いて、2次元データ構造はフォーム(ID0、ID1)
を有しており、ここにID0は二つのIDの小さい方
で、ID1は二つのIDの大きい方である。各対の内の
小さい方のIDを最初に、大きい方のIDを二番目し
て、二つの寸法データ構造を構成することによって、こ
れが例えば頂点Mを頂点Nに連結するエッジを、頂点N
を頂点Mに連結するエッジと同じであると考えることが
保証される。
【0066】ステップS96において、CPU4がステ
ップS94で形成された2次元データ構造に依存してI
Dをエッジに割り当てる。各特定エッジが特定IDを受
ける(一つのより多い三角形のエッジとするエッジが単
一の特定IDを受ける)ように、CPU4がステップS
96でIDを割り当てる。
【0067】ステップS98において、CPU4が考慮
中の三角形内に他のエッジがあるかどうか決定する。処
理されるべき三角形内にさらなるエッジがないことがス
テップS98で決定されるまで、ステップS92からS
98が反復され、上述した方法で各エッジが処理され
る。
【0068】ステップS99において、CPU4がステ
ップS93において各対のノーマルのために前回計算さ
れたドット・プロダクトが読み取りされ、次の使用のた
めの最少ドット・プロダクトを決定し、記憶する。これ
については後述する。この最少ドット・プロダクツ値
が、全体として三角形のオブジェクト面の一部の最大曲
率値を表わす代表値である。
【0069】ステップS100において、CPU4が考
慮されているオブジェクトのモデル内で処理されるべき
他の三角形があるかどうかを決定する。ステップS10
0において処理されるべきさらなる三角形がないと決定
されるまで、ステップS90からS100が上述した方
法で各三角形を処理するのに反復される。
【0070】ステップS102において、CPU4が考
慮中のオブジェクトのモデル内で次の特定エッジを考慮
する(各特定エッジがステップS96において前回割り
当てられた特定IDによって識別される)。
【0071】ステップS104において、CPU4がエ
ッジを共用しているオブジェクトのモデル内の三角形の
数を決定し、かつ、エッジのためのエッジ・フラグを記
憶するために各三角形用のメモリ・スペースを予約す
る。
【0072】ステップS106において、CPU4が考
慮されているオブジェクトの特定エッジであるかどうか
を決定する。ステップS106において全てのエッジが
処理されたことが決定されるまで、ステップS102か
らS106が上述した方法で各特定エッジを処理するの
に反復される。
【0073】ステップS108において、CPU4が従
来の方法でモデル内の各三角形のために、ノーマル化さ
れたノーマル(すなわち、三角形の平面と垂直であるベ
クトル)を計算する。
【0074】ステップS110において、CPU4が考
慮されているオブジェクトのモデル内のエッジのために
各フラグをセットする。
【0075】図5A,5BはCPU4によってステップ
S110において各フラグをセットするように実行され
る処理操作を示すフローチャートである。
【0076】図5A,5Bを参照して、ステップS13
0において、CPU4が目下考慮中のオブジェクトのモ
デル内の次のエッジを考慮する。
【0077】ステップS132において、CPU4がエ
ッジを共用している三角形の数を決定し、また、ステッ
プS134において、エッジがただ一つの三角形の一部
であるかどうかを決定する。
【0078】ステップS134において、エッジがただ
一つの三角形の一部であると決定されれば、ステップS
136において、CPU4がエッジのために「境界エッ
ジ」フラグをセットする。後述するように、「境界エッ
ジ」フラグがエッジのためにセットされると、エッジは
オブジェクトのモデルのどの次のリファインメントにお
いて変更されない(なぜなら、モデルは例えばこのエッ
ジに沿って他のモデルと連結する必要があるからであ
る)。
【0079】一方、エッジがただ一つの三角形の一部で
ないとステップS134において決定されれば、ステッ
プS138において、CPU4はエッジが二つ以上の三
角形によって共用されているかどうかを決定する。
【0080】図6(a)は、エッジが二つ以上の三角形
によって共用されている一例の状況を示す図である。図
6(a)を参照すると、エッジ30は三角形32、34
及び36によって共用されている。
【0081】エッジが二つ以上の三角形によって共用さ
れているとステップS138で決定されれば、次に、ス
テップS140において、CPU4がエッジを共用する
各三角形のためのエッジ用に「無効エッジ共用」フラグ
をセットする。図6(a)に示した例を再度参照して、
「無効エッジ共用」フラグが三角形32、三角形34及
び三角形36用にエッジ30がセットされる。後述する
ように、「無効エッジ共用」フラグが一つのエッジのた
めにセットされると、そのエッジはオブジェクトのモデ
ルのいかなるレファインメント中でも変わることがない
(これはモデルのトポロジー中のエラーを指示するのが
普通だからである)。実際には、「無効エッジ共用」フ
ラグは、どのようなエッジ共用もただ二つの三角形間に
生じるようにオブジェクトのモデルが通常作成されるの
で、そう頻繁にセットされない。
【0082】一方、エッジが二つ以上の三角形によって
共用されないことがステップS138において決定され
れば、エッジは二つに、ただ二つの三角形によって共用
されなければならない(これはエッジがただ一つの三角
形の一部ではないことがステップS134で決定され、
かつ、エッジが二つ以上の三角形によって共用されてい
ないことがステップS138で決定されるからであ
る)。
【0083】図6(b)は、エッジが二つの三角形によ
って共用された状態の二つの形態を例として示す。図6
(b)の例において、エッジ30は三角形32と38に
よって共用されている。
【0084】エッジが二つ以上の三角形によって共用さ
れていないことがステップS138で決定されると、次
いでステップS142において、CPU4がエッジを共
用している最初の三角形を考慮し、また、ステップS1
44において、第1三角形用のエッジの両端を規定する
各頂点におけるノーマルが三角形ノーマルと平行である
かどうかが決定される。
【0085】図6(c)は、エッジの各頂点ノーマルが
三角形ノーマルと平行である一例を示す。図6(c)を
参照して、図示した例において、エッジ30の一端を規
定する頂点におけるノーマル42は、エッジの他端を規
定する頂点のノーマルと平行であり、両ノーマルは三角
形ノーマルに平行である。
【0086】エッジの両端を規定する各頂点におけるノ
ーマルが三角形のノーマルと平行であるとステップS1
44において決定されれば、次に、ステップS146に
おいて、CPU4が第1三角形に対するエッジのための
「キープ・エッジ」フラグをセットする。このフラグの
効果については後述する。一方、各頂点におけるノーマ
ルと三角形ノーマルが平行でないことがステップS14
4において決定されれば、次に「キープ・エッジ」フラ
グが三角形のためにセットされないとして、ステップS
146は省略される。
【0087】ステップS148、S150及びS152
において、CPU4が、第1三角形に対してステップS
142、S144及びS146において前回実行された
エッジを共用する第2三角形に同じ処理操作を実行す
る。これらの処理操作は既に説明したので、ここでは再
度説明しない。
【0088】ステップS154において、CPU4がエ
ッジの第1端で頂点におけるノーマルが二つの共用三角
形用であるかどうかが決定される。
【0089】図6(d)はエッジの端を規定する頂点に
おけるノーマルが、二つの共用三角形用と異なる一例を
示す。図6(d)に示された例によれば、三角形32用
のノーマル50は頂点54における三角形38のノーマ
ル52と異なる。
【0090】頂点におけるノーマルが共用三角形用と異
なることがステップS154において決定されれば、次
に処理がステップS158に進行し、ここでCPU4が
両共用三角形のためのエッジに対して「エッジ・ノーマ
ル不明瞭」フラグをセットする。従って、図6(d)に
示した例を参照して、「エッジ・ノーマル不明瞭」フラ
グが、三角形32と三角形38両方のエッジ30のため
にセットされることになる。
【0091】一方、ステップS154において、エッジ
の第1端の頂点におけるノーマルが共用三角形用と同じ
であることが決定されれば、次に処理がステップS15
6に進行する。ステップS156において、CPU4
が、エッジの他端の頂点におけるノーマルが共用三角形
用と異なるかどうかを決定する。図6(d)の例を再度
参照して、三角形32のノーマル56が頂点60におけ
る三角形38のためのノーマル58と異なる。
【0092】エッジの第2端の頂点におけるノーマルが
二つの共用三角形用と異なることがステップS156で
決定されれば、次にステップS158において、CPU
4が両共用三角形に対するエッジのために「エッジ・ノ
ーマル不明瞭」フラグをセットする。従って、図6
(d)に示した例を参照して、「エッジ・ノーマル不明
瞭」フラグは三角形32と三角形38両方のエッジ30
のためにセットされる。一方、エッジの第2端を規定す
る頂点におけるノーマルが共用三角形用と異なることが
ステップS156において決定されれば、次に「エッジ
・ノーマル不明瞭」フラグがエッジのためにセットされ
ないようにステップS158が省略される。
【0093】従って、ステップS154、ステップS1
56及びステップS158において実行された処理の結
果、「エッジ・ノーマル不明瞭」フラグは、エッジのい
ずれの端における頂点のノーマルも共用三角形用と異な
れば、エッジを共用する両三角形のためにセットされ
る。
【0094】ステップS160において、CPU4が、
未だに考慮されていないモデル内に他のエッジがあるか
どうかを決定する。ステップS130からS160が反
復され上述した方法でモデルのエッジの全てを処理す
る。
【0095】図4A,4Bを再度参照して、ステップS
112において、CPU4がステップS110において
前回セットされたエッジ・フラグを修正する。ステップ
S112において実行された処理の目的は、「エッジ・
ノーマル不明瞭」フラグがセットされたエッジを識別す
ることである(各共用三角形のノーマルが、エッジの両
端を規定する少なくとも一つの頂点において異なること
を指示している)、さらに「キープ・エッジ」フラグ
が、エッジを共用する一対の内の一つの三角形(この三
角形のために、各頂点におけるノーマルが三角形ノーマ
ルと平行であることを示している)のためにセットさ
れ、また、レンダリングリング中、次の使用のためにこ
れを指示するフラグをセットする。
【0096】図7A,7BはCPU4によってステップ
S112において実行されエッジ・フラグを修正する処
理操作を示すフローチャートである。
【0097】図7A,7Bを参照して、ステップS19
0において、CPU4は目下考慮中のモデル内の二つの
三角形によって共用された次のエッジを考慮する。
【0098】ステップS192において、CPU4が、
「エッジ・ノーマル不明瞭」フラグがエッジを共用する
三角形用にセットされれているかどうかを決定する。
「エッジ・ノーマル不明瞭」フラグがセットされている
と決定されれば、次にステップS194において、CP
U4が、エッジを共用する第2三角形ではなく、第1三
角形のためのエッジ用にセットされたかどうかを決定す
る。
【0099】後ほど詳細に説明するが、「キープ・エッ
ジ」フラグが第1三角形のためにセットされるが、第2
三角形のためにセットされなければ、これはエッジがレ
ンダリングの間オブジェクトのモデルのリファインメン
ト中、第2三角形のために変形されるような状況に対応
するが、第1三角形のために変更されることはない。こ
の状況の例を図8(a)に示す。
【0100】図8(a)を参照して、エッジ30は三角
形32のためにリファインされていない。しかし、この
エッジはカーブ70に近似するように三角形38のため
にリファインされることになる。
【0101】再度図7A,7Bを参照して、ステップS
196において、CPU4が、エッジを共用する第1及
び第2三角形のエッジのための「エッジ・ノーマル不明
瞭」フラグを削除する。ステップS198において、C
PU4がエッジを共用している第1三角形のエッジのた
めの「キープ・エッジ」フラグを削除する。ステップS
200において、CPU4がエッジを共用する第1三角
形のエッジのための「エッジの付けられた(is attached
edge)」フラグをセットし、ステップS202におい
て、エッジを共用する第2三角形のエッジのための「エ
ッジの付けられている(has attached edge)」フラグを
セットする。
【0102】一方、ステップ194において「キープ・
エッジ」フラグが、エッジを共用するのに第1三角形の
エッジのためにセットされ、第2三角形のためにセット
されていないことが決定されれば、次に処理がステップ
S204に進行し、「キープ・エッジ」フラグがエッジ
を共用するのが第2三角形のエッジのためにセットさ
れ、第1三角形のためにセットされていないかどうかを
CPU4が決定する。「キープ・エッジ」フラグが第1
三角形のためではなく、第2三角形のためにセットされ
たことがステップS204で決定されれば、次にエッジ
が第1三角形のために修正されることになり、レンダリ
ング中オブジェクトのモデルの続く工程のリファイメン
ト中、第2三角形のために修正されることはない状況が
発生する。この状況の一例を図8(b)に示す。
【0103】図8(b)に示す例を参照して、エッジ3
0が三角形32のカーブ72に近似するように修正され
るが、三角形38のために修正されることはない。
【0104】ステップS206において、CPU4が、
エッジを共用する両三角形のエッジのための「エッジ・
ノーマル不明瞭」フラグを削除し、また、ステップS2
08において、CPU4が、エッジを共用する第2三角
形のための「キープ・エッジ」フラグを削除する。
【0105】ステップS210において、CPU4が第
2三角形のエッジのために「エッジの付けられた」フラ
グをセットし、またステップS212において、CPU
4が第1三角形のエッジのために「エッジの付けられて
いる」フラグをセットする。
【0106】ステップS192からS212で実行され
た処理操作の結果、二つの三角形によって共用されたエ
ッジが一つの三角形のためであって、他の三角形のため
にではなくリファインされるケースを識別するように、
CPU4がフラグをセットする。「エッジの付けられ
た」フラグは、フラグがセットされた三角形のために変
更されず、一方「エッジの付けられている」フラグが、
フラグのセットされた三角形のために変更されることを
示す。
【0107】ステップS204において、「キープ・エ
ッジ」フラグが第2三角形のためでなく、第1三角形の
ためにセットされたことがCPU4によって決定されれ
ば、次に各三角形のエッジのめにセットされたフラグ
は、「エッジ・ノーマル不明瞭」フラグと「キープ・エ
ッジ」フラグを一緒にしたものか、又は「エッジ・ノー
マル不明瞭」フラグ単独でなければならない。
【0108】後ほど詳細に説明するが、「エッジ・ノー
マル不明瞭」フラグと「キープ・エッジ」フラグ両方が
各エッジのためにセットされれば、次にエッジは、オブ
ジェクトのモデルがレンダリング中リファインされると
きに、二つの三角形のいずれかのために変更されること
はない。この状況の一例を図8(c)に示し、ここでそ
のエッジ30は、三角形32又は三角形38のいずれの
ためにもリファインされない。
【0109】「エッジ・ノーマル不明瞭」フラグのみが
両三角形のエッジのためにセットされれば、次にエッジ
がモデルの次のリファインメント中に両三角形のために
変更される。この状況の一例を図8(d)に示し、三角
形32と三角形38によって前回共用されたエッジがリ
ファインされ、三角形32のためにカーブ76が近似さ
れ、また三角形38のためにカーブ78が近似される。
【0110】図7A,7Bを再度参照して、ステップS
214において、二つの、ただ二つの三角形によって共
用されているモデル中に他のエッジがあるかどうかをC
PU4が決定する。モデル中の二つの三角形によって共
用された全てのエッジが前述の方法で処理されるまで、
ステップS190からS214が反復される。
【0111】図4A,4Bを再度参照して、ステップS
114において、未だ処理されていない他のオブジェク
トのモデルがあるかどうかをCPU4が決定する。各モ
デルが上述した方法で処理されるまで、ステップS80
からS114までが反復される。
【0112】図2A,2Bを再度参照して、ステップS
8において、各オブジェクトのモデルのリファインメン
トのためのパラメータをCPU4が計算する。
【0113】本実施の形態において、パラメータが、3
次バーンスタイン−ベジエ三角形パッチに基づいてモデ
ルをリファインするように計算される。
【0114】図9は、ステップS8において、CPU4
によって実行されリファインメント・パラメータを計算
する処理操作を示すフローチャートである。
【0115】図9を参照して、ステップS230におい
て、CPU4が次のオブジェクトのモデルを考慮してお
り、また、ステップS232において、モデル中の次の
三角形を考慮している。ステップS234とS236に
おいて、CPU4が、考慮されている三角形の各「制御
ポイント」のための「縦座標」を計算する。これらの縦
座標は三角形のための3次バーンスタイン−ベジエ三角
形パッチを規定する。
【0116】図10は、例示した三角形のための制御ポ
イント90、92、94、96、98、100、10
2、104、106、108を示す。図10中の各制御
ポイントのためのかっこ内に示された座標は、制御ポイ
ントの重心座標である。従来の方法において、10個の
制御ポイントが3次バーンスタイン−ベジエ三角形パッ
チを規定する座標を計算するのに使用される。制御ポイ
ント90、96及び102が三角形頂点に配置される。
二つの制御ポイントが各三角形エッジに沿って等距離に
隔置される(これらの制御ポイントは図10において、
92、94、98、100及び106である)。さらな
る制御ポイントが三角形の重心座標に配置される(これ
は図10の制御ポイント108である)。
【0117】図9を再度参照して、ステップS234に
おいて、CPU4が各頂点制御ポイント(図10におい
て90、96及び102)と各エッジ制御ポイント(図
10において92、94、98、100、104及び1
06)のための縦座標を計算する。
【0118】図11は、CPU4がステップS234に
おいて縦座標の計算を実行する処理操作を示すフローチ
ャートである。
【0119】図11を参照して、ステップS250にお
いて、CPU4が各頂点制御ポイントのための縦座標を
ゼロにセットする。これは縦座標によって規定された3
次ベルンスタイン−ベジエ三角形パッチが三角形の各頂
点を通過することを保証する。これが、所与の頂点を共
用する各三角形のためのパッチが頂点において一致を保
証することになり、これによって頂点における三角形の
合致(メッシィング)の連続性が保証される。
【0120】ステップS252からS264において、
CPU4が各制御ポイント(図10の例において、9
2、94、98、100、104及び106)における
縦座標を計算する。
【0121】より詳しく説明すると、ステップS252
において、「境界エッジ」フラグが三角形中のどのエッ
ジに対してもセットされるかどうかをCPU4が決定す
る。このフラグがセットされれば、次にステップS25
4において、「境界エッジ」フラグがセットされた各エ
ッジに沿った全てのエッジ制御ポイントのための縦座標
に対してゼロの値をCPU4がセットする。これが、三
角形のための3次バーンスタイン−ベジエ三角形パッチ
が、「境界エッジ」フラグのセットされた三角形中の各
エッジと一致することを保証する。後述するように、こ
れがオブジェクトのモデルが次に続く処理中にリファイ
ンされるときに、このエッジが変更されるのを回避させ
る。「境界エッジ」フラグが三角形中のどのエッジ対し
てもセットされなければ、ステップS254は省略され
る。
【0122】ステップS256において、「無効エッジ
共用」フラグが三角形中のどのエッジについてもセット
されているかどうか、CPU4が決定する。このフラグ
がどのエッジについてもセットされておれば、次にステ
ップS258において、CPU4が、「無効エッジ共
用」フラグがセットされた各エッジに沿った各エッジ制
御ポイントの縦座標のためにゼロの値をセットする。ス
テップS258における処理が、三角形のべルンスタイ
ン−ベジエ三角形パッチが、「無効エッジ共用」フラグ
がセットされた各三角形のエッジと一致することを保証
し、これによって、オブジェクトのモデルが次の処理中
(これについては後述する)リファインされるときに、
このエッジの修正されるのを回避する。「無効エッジ共
用」フラグが三角形のどのエッジについてもセットされ
なければ、ステップS258が省略される。
【0123】ステップS260において、CPU4が、
縦座標の値がステップS254又はステップS258に
おいてセットされないような次の残りのエッジ制御ポイ
ントを考慮する。
【0124】ステップS262において、CPU4が直
近の頂点を通過するタンジェント平面の制御ポイントか
らの距離を計算することによって、制御ポイントの縦座
標の値を計算する。この距離は直近の頂点のノーマルと
平行な方向で測定される。
【0125】図12は、ステップS262においてCP
U4によって計算された距離を示す図である。図12を
参照すると、制御ポイント98への直近の三角形頂点は
頂点96である。頂点96を通過するタンジェント平面
120は頂点96におけるノーマル122に対して垂直
な平面である。ステップS262においてCPU4によ
って計算された距離は、制御ポイント98から頂点ノー
マル122と平行な方向124にある平面120までの
高さ「h」である。
【0126】図13は、ステップS262(図11)に
おいて、CPU4によって実行され、縦座標の値を計算
する処理操作を示すフローチャートである。
【0127】図13を参照して、ステップS280にお
いて、CPU4がエッジのエッジ方向ベクトルを計算
し、このエッジ上の制御ポイントは直近頂点から制御ポ
イントまでの方向にある。
【0128】ステップS282において、CPU4が制
御ポイントに対する直近頂点におけるユニット・ノーマ
ル・ベクトルの値を読み取り、またステップS284に
おいて、ステップS280で計算されたエッジ・べクト
ルと、ステップS282で読み取られたユニット・ノー
マル・ベクトルとのスカラー積を計算する。
【0129】ステップS286において、CPU4が、
ステップS284で得られたスカラー積にマイナス1/
3を乗算し、得られた値が縦座標のための値を規定する
(これが図12の例で示す高さ「h」である)。
【0130】CPU4で計算された縦座標の値は、制御
ポイントに対する直近頂点においてノーマルの方向に依
存して負か正のいずれかになることがわかる。
【0131】図11を再度参照して、ステップS264
において、縦座標が計算されていない他のエッジ制御ポ
イントがあるかどうか、CPU4が決定する。縦座標値
がステップS254又はステップS258において、前
回ゼロにセットされていない縦座標が各エッジ制御ポイ
ントのために計算されるまで、ステップS260からS
264が反復される。
【0132】図9を再度参照して、ステップS236に
おいて、CPU4が中央制御ポイント(すなわち、三角
形の共通重心における制御ポイント − 図10の例で
ポイント108)の縦座標のための値を計算する。本実
施の形態において、CPU4がエッジ制御ポイント(図
10で92、94、98、104及び106)の縦座標
の和の1/4として中央制御ポイントのための縦座標を
計算する。
【0133】ステップS238において、縦座標が計算
されていないモデル中に別の三角形があるがどうかCP
U4が決定する。縦座標がモデル中の各三角形のために
計算されるまで、ステップS232からS238が反復
される。
【0134】ステップS240において、CPU4が、
考慮されるべき別のオブジェクトのモデルがあるかどう
かを決定する。縦座標が各モデル中の各三角形のために
計算されるまでステップS230からS240が反復さ
れる。
【0135】これまでに言及したように、ステップS8
(図2A)において計算された縦座標が、モデル中の各
三角形のための3次バースタイン・ベジエ三角形パッチ
を規定する。算術的に、度「n」のバーンスタイン−ベ
ジエ三角形パッチ、bn(τ)は次式によって与えられ
る:
【0136】
【数1】 ここで、λは制御ポイントλの位置を識別する重心座標
のトリプレット(λ1,λ2,λ3)である;bλは制御
ポイントλのための縦座標の値である;Bλ n(τ)
は、制御ポイントλのためのバーンスタイン整数であ
り、また次式によって与えられる:
【0137】
【数2】 ここで、(λ1,λ2,λ3)は、元の三角形上のポイン
トの重心座標を規定する。
【0138】式(1)及び(2)において、bn(τ)
は三角形上のポイントτの上方パッチ高さを表わす。次
の制限はτに適用される:
【0139】
【数3】 λは次式によってτに関連付けられる:
【0140】
【数4】 3次バーンスタイン−ベジエ三角形パッチに対し、
「n」は3であり、また、従って、パッチの式は、
【0141】
【数5】 で与えられ、全ての制御ポイント90、92、94、9
6、98、100、102、104、106及び108
のための|λ|=3を図10に示す。従って、3次バー
ンスタイン−ベジエ三角形パッチは次のように書くこと
ができる:
【0142】
【数6】 式6において、b003, b030, b300, b102, b201, b012,
b021, b120, b210及びb111 がステップS8において、
それぞれ重心座標(0,0,3),(0,3,0),
(3,0,0),(1,0,2),(2,0,1),
(0,1,2),(0,2,1),(1,2,0),
(2,1,0)及び(1,1,1)を有する制御ポイン
トのために計算された縦座標の値である。
【0143】図14は、ステップS8において計算され
た縦座標によって規定された三角形のためのバーンスタ
イン−ベジエ三角形パッチの例を示す図である。CPU
4はいかなるパッチも引くことはないが、ただ次の使用
のために各三角形のパッチを規定する縦座標を単に記憶
するだけである。これについては後述する。
【0144】図14(a)を参照して、一例のバーンス
タイン−ベジエ三角形パッチ140を三角形32で示
す。このパッチ140は各頂点で三角形と接触している
が、この例において、どのほかのポイントにおいても三
角形と接触していない。その代わりに、三角形頂点以外
の全てのポイントに対し、パッチ140が三角形32の
面の上方のある高さにある。
【0145】図14(b)は、三角形32のためのバー
ンスタイン−ベジエ三角形パッチの第2例を示す。図1
4(b)を参照して、パッチ144は三角形の各頂点で
三角形32と一致している。さらに、パッチ144はエ
ッジ30に沿って各ポイントにおいて三角形32と一致
している。エッジに沿った各縦座標の値がゼロのとき
に、パッチがエッジの各ポイントに沿った三角形と一致
している。これは、「境界エッジ」フラグ、「無効エッ
ジ共用」フラグ又は「キープ・エッジ」フラグが、エッ
ジのためにセットされたときに、発生する。「境界エッ
ジ」フラグがセットされた場合において、エッジに沿っ
た縦座標が、ステップS254(図11)においてCP
U4によってゼロにセットされ、強制的にパッチがゼロ
に一致させられる。同様にして、「無効エッジ共用」フ
ラグがエッジのためにセットされると、CPU4がステ
ップS258においてエッジのために縦座標をゼロにセ
ットし、強制的にパッチをエッジに一致させる。「キー
プ・エッジ」フラグがエッジにセットされると、次にエ
ッジの両端を規定する各頂点におけるノーマルが三角形
ノーマルと平行になる(これは、「キープ・エッジ」フ
ラグが図5A,5BにおけるステップS144とS14
6又はS150とS152においてセットされる条件下
にある。この場合に、エッジに沿った各制御ポイントの
縦座標の値が、ステップS262(図11)においてC
PU4によってゼロとなるように計算される。なぜな
ら、直近頂点におけるタンジェント平面がエッジに沿っ
て通過することになる(すなわち、図12に示したタン
ジェント平面の高さ「h」がエッジの全体に沿ってゼロ
となる)からである。
【0146】図14(c)は、バースタイン−ベジエ三
角形パッチが二つの近接する三角形32と38の例で示
し、その三角形によって共用された共通エッジ30が、
三角形32のためにセットされた「エッジの付けられ
た」フラグを有し、「エッジの付けられている」フラグ
が三角形38のためにセットされる。三角形32のため
のパッチ144がエッジ30に沿って各ポイントで三角
形と一致している。一方、三角形38のためのパッチ1
48は、三角形頂点以外のエッジ30と接触していな
い。
【0147】図14(d)は、二つの近接する三角形3
2と38のためのバーンスタイン−ベジエ三角形パッチ
の一例を示し、その三角形によって共用された共通エッ
ジ30が各三角形のエッジのためにセットされた「エッ
ジ・ノーマル不明瞭」フラグを有しているが、「キープ
・エッジ」フラグはセットされていない。この場合、三
角形32のためのパッチ152も三角形38のためのパ
ッチ148のいずれも、三角形頂点における以外にエッ
ジ30と接触していない。
【0148】図2A,2Bを再度参照して、ステップS
9からS34において、CPU4が各オブジェクトのモ
デルをレンダリングすることによって画像データのフレ
ームを発生させる処理を実行する。ステップS9からS
34は、これらのステップ中の処理が1フレームの時間
周期内で発生するように、画像データの各フレームにつ
き反復される。一般的に、フレームは1秒当り30フレ
ームのようなビデオ・レートで発生され、ステップS9
からS34の処理操作中のフレーム周期の場合、1/3
0秒である。
【0149】ステップS9において、CPU4がオブジ
ェクトの位置を決定する。すなわち、画像データの前回
フレームが発生されている間、オブジェクトの位置が指
令入力に基づいて変更されたかどうかをCPU4が決定
する。
【0150】ステップS10において、ライトニング
(照明)パラメータがオブジェクトのモデルを照明する
のに使用されたことをCPU4が決定する。これらのパ
ラメータは従来のライトニング・パラメータで、例えば
周囲光の量と、一つ又はそれ以上の各光源の位置、方向
及び光度を含んでいる。照明パラメータは、ステップS
2において受信された3Dモデリング・データ内に規定
される。これに加えて、又はこれに代えて、これらはC
PU4に入力されるか、又はユーザによる入力デバイス
14によって変更される。ステップS10において、C
PU4は、前回フレーム周期中になされた全ての変更を
含む照明パラメータの値を読み取る。
【0151】ステップS12において、CPU4が、オ
ブジェクトの画像が発生されるであろうビューイング位
置とビューイング方向を規定するデータを読み取る。ビ
ューイング・パラメータは、3Dワールド・スペースか
ら3Dビューイング(又はカメラ)スペースへ多角形を
変換するビューイング変換を規定する。ビューイング・
パラメータはユーザによって、例えば入力デバイス14
を介して入力される。ステップS12において、CPU
4は、前回フレーム周期中になされた全ての変更を含む
ビューイング・パラメータの値を読み取る。
【0152】ステップS14において、CPU4が、ス
テップS12において決定されたビューイング・パラメ
ータによって規定されたビューイングのフィールド内に
入っていないオブジェクトを抜粋して、これらのオブジ
ェクトがそれ以上処理されないようにし、これによって
実行しなければならない処理量を削減する。
【0153】より詳しく説明すると、本実施の形態にお
いて、境界ボックスがオブジェクトのオブジェクト・ス
ペース内に従来方法で各オブジェクトのために規定され
る。オブジェクト・スペースから共用3Dワールド・ス
ペースまでのポイントを変換するローカル変換及び3D
ワールド・スペースから3Dビューイング・スペースま
でのポイントを変換するビューイング変換は、ローカル
変換とビューイング変換を規定するマトリックスを連結
することによって境界ボックスでの共通操作として実行
される。これがビューイングスペース内にオブジェクト
境界ボックスを配置する。その後、変換境界ボックスの
位置は、ビューイング可能スペース内に完全にあるか、
ビューイング可能スペースの完全に外にあるか、又はビ
ューイング可能スペースと交差しているかどうかの決定
が考慮される。
【0154】境界ボックスが完全にビューイング可能ス
ペース外にある場合、さらなる処理は境界ボックス内の
オブジェクトを規定する多角形に対して実行されること
はない。境界ボックスが部分的ないし完全にビューイン
グ可能スペース内にある場合、境界ボックス内のオブジ
ェクトを規定する多角形は処理され画像データを発生す
る。しかし、付加的に、境界ボックスが一部ビューイン
グ可能スペース内にあり、また一部ビューイング可能ス
ペース外にある場合、境界ボックスと観察可能スペース
の交差する平面を規定するデータがオブジェクトを規定
する多角形のクリッピングで続く使用のために記憶され
る。これについては後述する。
【0155】ステップS16において、ステップS14
における抜粋がステップS8において前回計算されたリ
ファイメント・パラメータを使用してCPU4によって
リファインされた後、各オブジェクトのモデルが残留さ
れる。
【0156】ステップS16においてCPU4にって実
行される処理の目的は、オブジェクトのモデル内の各三
角形状多角形を、オブジェクト面をより正確に表わす多
数の小さい三角形にリファインすることである。以下に
説明するように、より小さい三角形は元の三角形として
同じ平面にある必要性はなく、また下に敷かれたオブジ
ェクト面がより忠実にモデル化できる。従って、ステッ
プS16における処理を実行することによって、オブジ
ェクト面の曲率を表わすことができ、またビューアに対
してより正確に表示することができる。
【0157】図15A,15Bは、CPU4によって実
行され、本実施の形態でステップS16(図2A)にお
いてリファイメントが実行される処理操作を示すフロー
チャートである。
【0158】図15A,15Bを参照して、ステップS
298において、実行されるべき処理が実行され、画像
データの第1フレームが発生させるかどうかCPU4が
決定する。処理が第1フレームを発生されることが決定
されれば、どのモデルのリファインメントも実行され
ず、従って、各モデルが第1フレームのために、リファ
インされていない形態に処理される。
【0159】一方、処理が画像データの第2又は次のフ
レームのために処理されれば、次に、ステップS300
において、CPU4が処理されるべき次のオブジェクト
を考慮している(これは第1のオブジェクトであり、最
初にステップS300が実行される)。ステップS30
2において、CPU4がオブジェクトのモデル中で次の
三角形を考慮する。
【0160】ステップS304において、三角形の各エ
ッジが、「キープ・エッジ」フラグ、「エッジの付けら
れた」フラグ、「境界エッジ」フラグ、又は「無効エッ
ジ共用」フラグでセットされているかどうかをCPU4
が決定する。これらのフラグの一つが三角形中のどのエ
ッジもセットされていなければ、三角形の少なくとも一
つのエッジ(又は、より詳しく説明すると、フラグの一
つがセットされていないエッジ)が変更されることにな
る。これはバーンスタイン−ベジエ三角形パッチがこの
三角形エッジと一致しないからである。
【0161】従って、三角形の少なくとも一つのエッジ
がこれらのフラグの一つをセットしていないことをCP
U4が決定すれば、次にステップS306において、C
PU4がこの三角形に必要とされているモザイクの深さ
を決定する。(ステップS306は、これらのフラグの
一つが三角形中のどのエッジのためにもセットされれ
ば、省略される。) 図16は、ステップS306においてCPU4によって
実行され、三角形のためのモザイクの深さを決定するた
めの処理操作を示すフローチャートである。
【0162】図16を参照して、ステップS342にお
いて、CPU4がビューアに対して表示された画像デー
タの前回フレームから三つの三角形頂点のスクリーン座
標を読み取る。
【0163】ステップS344において、CPU4がス
テップS342で読み取った頂点座標を使用して前回フ
レーム中の三角形のエリア(面積)を決定する。
【0164】本実施の形態において、発生中の現データ
のための画像フレーム中の三角形のエリアが、前回フレ
ーム中の三角形のエリアとほぼ同じであると仮定する。
これはオブジェクトが一つのフレーム周期で大きく移動
しないからである。従って、ステップS346におい
て、CPU4が入力としてステップS344において決
定された三角形のエリアを第1ルックアップ・テーブル
に対して使用し、この入力値に対するルックアップ・テ
ーブル中に規定された深さの値を読み取る。
【0165】図17(a)は、本実施の形態中の第1ル
ックアップ・テーブル内に記憶された情報を示す図であ
る。
【0166】図17(a)を参照して、本実施の形態に
おいて、このルックアップ・テーブルは10個の異なる
深さ値の一つを具体的に挙げている。第1深さ値、すな
わち、深さ1は三角形のモザイクはまったく発生してい
ないことを指示している。後述するように、深さ2から
9は、モザイクの発生されたことを示しており、深さが
増すにつれて、三角形がより小さい三角形の数に分割さ
れる。前回フレーム中の三角形のエリアが増大するにつ
れて、深さ値が増す(これは、ユーザが三角形をもっと
詳しく見ることができ、従って、多数のより小さい三角
形が必要とされる詳細を表示することが望ましい)。
【0167】図16を再度参照して、ステップS348
において、CPU4がトポロジー的データベースから、
ステップS99(図4B)において前回記憶されたベク
トル・ノーマルのドット−プロダクトの最少値を読み取
る。上述したように、この値は三角形を表示するオブジ
ェクト面の一部の曲率を表わす。
【0168】ステップS350において、CPU4がス
テップS348において、第2ルックアップ・テーブル
への入力として読み取りした最少ドット・プロダクツ値
を使用し、この入力値のためのルックアップ・テーブル
中に規定された深さ値を読み取る。
【0169】図17(b)は、本実施の形態中の第2ル
ックアップ・テーブル内に記憶された情報を示す図であ
る。
【0170】図17Bを参照して、深さ値が頂点ノーマ
ル・ドット・プロダクツ値の減少に伴って増大する(す
なわち、三角形を表わしているオブジェクト面の曲率が
増大するにつれて、多数の小さい三角形が、曲率を表わ
すのに必要となる)ことが分る。第1ルックアップ・テ
ーブルと比較すると、第2ルックアップ・テーブルから
の出力は10の異なる深さ値の一つである。
【0171】ステップS352において、CPU4がス
テップS346における三角形面積と依存する第1ルッ
クアップ・テーブルから読み取られた深さ値と、ステッ
プS350において読み取られた最少頂点ノーマル・ド
ット・プロダクツに依存する第2ルックアップ・テーブ
ルからの読み取られた深さ値とを組み合わせる。本実施
の形態において、二つの深さ値が加算され、一方が合計
から減算され、モザイクのための最終深さ値を提供す
る。例えば、三角形が1000ピクセル(画素)のエリ
アを有しておれば、ステップS346において第1ルッ
クアップ・テーブルから読み取られた深さ値は5であ
り、三角形の最少頂点ドット・プロダクツが0.80で
あれば、ステップS350において第2ルックアップ・
テーブルから読み取られた深さ値は2である。従って、
ステップS352において、モザイクの深さは5+2−
1=6と決定される。
【0172】図15A,15Bを再度参照して、ステッ
プS308において、オブジェクトのモデル内で別の三
角形が考慮されているかどうか、CPU4が決定する。
モデル内の三角形の全てが上述した方法で処理されるま
で、ステップS302からS308が反復される。
【0173】ステップS310において、ステップS3
06においてモデル内の三角形のために決定されたモザ
イクの最も大きい深さを選択することによって全体のモ
デルのためのモザイクの深さをCPU4が決定する。こ
のモザイクがモデルの全ての三角形のために使用され
る。
【0174】ステップS312において、ステップS3
10において決定された深さでモザイクされたモデルを
規定するデータが既にメモリに記憶されているどうか、
CPU4が決定する。この決定が後述する理由で、オブ
ジェクトのモデルが新しい深さにモザイクされたとき
に、モザイクを規定するデータが次の使用のために記憶
されるように実行される。
【0175】要求されたモザイクを規定するデータが、
メモリに記憶されたことがステップS312において決
定されれば、次にステップS314において、データが
メモリから読み取りされる。一方、必要とされるモザイ
クを規定するデータが記憶されていないことがステップ
S312で決定されれば、次にステップS316におい
て、CPU4がモデルの三角形全てに対してモザイクを
ステップS310において規定された深さに処理するよ
うに実行する。
【0176】図18は、CPU4によって、ステップS
316(図15B)でモザイクを実行するように実行さ
れた処理操作を示すフローチャートである。
【0177】図18を参照して、ステップS360にお
いて、CPU4がモデル内の次の三角形を考慮してい
る。
【0178】ステップS362において、CPU4が次
の新しい頂点が形成されるための三角形上のポイントの
重心座標を計算する(これは第1の新しい頂点であり、
最初にステップS362が実行される)。
【0179】図19は、新しい頂点が本実施の形態で深
さ2、3及び4につき形成されるための三角形上のポイ
ントを示す(図17(a)及び17(b)に関して前に
説明したように、深さ1ではモザイクが生じない)。
【0180】図19(a)を参照して、三角形が深さ2
までモザイクされたときに、新しい三角形頂点がポイン
ト170、172及び174に対して計算され、各々三
角形の各サイドに沿って半分のところに位置する。新し
い頂点は実際にはポイント170、172及び174に
配置されているのではなく、新しい頂点の位置はこれら
の端に関するバーンスタイン−ベジエ三角形パッチの高
さに依存してポイント170、172及び174のそれ
ぞれにつき計算される。これについては後述する。
【0181】図19(b)を参照して、三角形が深さ3
までモザイクされると、新しい頂点がポイント176、
178、180、182、184及び186のそれぞれ
に対して計算され、三角形の各エッジが1/3に分割さ
れる。新しい頂点もポイント188のために計算され、
その三角形上の位置が図19(b)に示されたようにポ
イント176、178、180、182、184及び1
86を連結することによって決定される。
【0182】図19(c)を参照して、三角形が深さ4
までモザイクされると、新しい頂点がそれぞれのポイン
ト190、192、194、196、198、200、
202、204及び206のために形成され、各ポイン
トは三角形のエッジに沿って等しく隔置され、各エッジ
は1/4に分割される。新しい頂点が三角形の内側でポ
イント208、210及び212のために計算され、そ
の位置は図19(c)に示したようにポイント190、
192、194、196、198、200、204及び
206を連結することによって決定される。
【0183】他の深さレベルのために計算される新しい
頂点のポイントは、同様の方法で決定される。三角形の
各エッジに沿って生じた新しい頂点の数は、深さの数マ
イナス1に等しく、また元の三角形の分割される新しい
三角形の数は、深さの数の2乗に等しい。例えば、三角
形が深さ10までモザイクされると、新しい頂点は、エ
ッジが10個に分割される三角形の各エッジに沿って9
個のポイントにつき計算され、また、三角形の内側のポ
イントについてはエッジに沿ったポイント同士が相互連
結されることによって決定される。従って、生じた三角
形の数は100である。
【0184】新しい頂点が形成されることになる三角形
内のポイントの重心座標が、各深さレベルのために前も
って計算され、かつ、記憶できることが分る。このよう
にして、ステップS362において重心座標を決定する
ステップは、メモリから必要とされる座標を読み取るこ
とによって実行できる。
【0185】図18を再度参照して、ステップS364
において、CPU4がステップS8において三角形のた
めに前回計算された縦座標を使用して、その重心座標が
ステップS362において決定される三角形上方の上述
のポイントのバーンスタイン−ベジエ三角形パッチの高
さを計算する。これはテップS362において決定され
た重心座標を使用するバーンスタイン−ベジエ三角形パ
ッチ式を評価することによって実行される。より詳しく
説明すると、CPU4が新しいポイントの重心座標(τ
123)と、ステップS8において計算された縦座
標b003, b030, b 300, b102, b201, b012, b021, b120,
b210, b111を使用して上述の式6を評価して、上述のポ
イントのバーンスタイン−ベジエ三角形パッチの高さと
なるb3(τ)の値を提供する。
【0186】ステップS366において、CPU4が、
その重心座標がステップS362において読み取られた
三角形上のポイントにおけるノーマルを計算する。本実
施の形態において、CPU4が次式を用いてノーマル、
newを計算する:
【0187】
【数7】 ここで、1、2及び3は三角形の頂点におけるユ
ニット・ノーマル・ベクトルである。より詳しく説明す
ると、第1重心座標がノン−ゼロである頂点がノーマル
1を有するように規定され、第2重心座標がノン−ゼ
ロである頂点がノーマル2を有するように規定され、
また、第3重心座標がノン−ゼロである頂点がノーマル
3を有するように規定される。
【0188】ステップS368において、CPU4がス
テップS364において計算された高さと、ステップS
366において計算されたノーマルとを使用して、モザ
イクに使用されるべき新しい頂点の位置を計算する。よ
り詳しく説明すると、CPU4は、その重心座標が、ス
テップS366で計算されたノーマルの方向に測定され
たステップS364において計算された高さに等しい、
ステップS362において読み取られる元の三角形上の
ポイントから測定された距離にあるポイントとして新し
い頂点の位置が計算される。
【0189】図20は、図18のステップS364、S
366及びS368において計算された例を示す図であ
る。
【0190】図20を参照して、バーンスタイン−ベジ
エ三角形パッチ144を、図14(b)に関して前回説
明した三角形32のために示す。前記ステップS364
で計算されたポイント170上方の(図19(a)に関
して前回説明したように、三角形のサイドの中央点であ
る)バーンスタイン−ベジエ三角形パッチの高さは
「H」である。ポイント170におけるベクトル・ノー
マルはNnewである。モザイク中で使用されるべき新し
い頂点の位置は、ポイント170から距離「H」だけノ
ーマルNnewに沿ったポイント220である。図20に
示した例から分るように、新しいポイントはステップS
8(図2A)においてCPU4によって前回計算された
縦座標によって規定されたバーンスタイン−ベジエ三角
形パッチの面にある必要はない。
【0191】図18を再度参照して、ステップS370
において、CPU4がステップS368において計算さ
れた新しい頂点のためのベクトル・ノーマルを規定す
る。本実施の形態において、CPU4がステップS36
6で計算されたベクトル・ノーマルと同じとなるベクト
ル・ノーマルを規定する。
【0192】ステップS372において、CPU4が、
計算されれるべきモザイク中に使用される新しい頂点の
ために元の三角形上に別の頂点があるかどうか決定す
る。新しい頂点が三角形上の各必要とするポイント(す
なわち、深さレベルによって規定された三角形上のポイ
ント;例えば、深さレベル2である図19(a)に示さ
れたポイント170、172及び174と、深さレベル
が深さ3である図19(b)に示されたポイント17
6、178、180、182、184、186及び18
8)のために計算されるまで、ステップS362からS
372が反復される。
【0193】ステップS374において、CPU4がス
テップS368において計算された新しい頂点間の連結
が規定される。これは元の三角形のための多数のモザイ
ク三角形を規定する。モザイク三角形は元の三角形の平
面にある必要はなく、従って、元の三角形がフラットに
表わされたオブジェクト面の曲率をより正確に表わされ
る。(モザイクされた三角形は、元の三角形の各エッジ
が「キープ・エッジ」フラグ、「エッジの付けられた」
フラグ、「境界エッジ」フラグ又は「「無効エッジ共
用」フラグ・セットを有しておれば、元の三角形として
同じ平面に全てあることになる)。
【0194】図21は、図14に示した三角形が、深さ
2にモザイクされたときの、モザイク三角形の例を示す
図である。
【0195】図21(a)を参照して、新しい頂点22
0、222及び224が発生され、接続される。いずれ
の新しい頂点も元の三角形の平面内の元の三角形のエッ
ジに沿って置かれていない。なぜなら、三角形32のエ
ッジは「キープ・エッジ」フラグ、「エッジの付けられ
た」フラグ、「境界エッジ」フラグ又は「無効エッジ共
用」フラグ・セットをいずれも有していないからであ
る。
【0196】図21(b)を参照して、新しい頂点23
0、232及び234が作成され、かつ、連結される。
新しい頂点232は、エッジ30が「キープ・エッジ」
フラグ、「エッジの付けられた」フラグ又は「無効エッ
ジ共用」フラグ・セットを有しているので、エッジ30
に沿った中央に位置する。
【0197】図21(c)を参照して、三角形32のた
めの新しい頂点230、232及び234は、図21
(b)に示したものと同じである。しかし、図21
(c)は、エッジ30が三角形32と三角形38の共通
であり、三角形38のために修正されている一例であ
り、これはエッジ30が三角形38のための「キープ・
エッジ」フラグ、「エッジの付けられた」フラグ、「境
界エッジ」フラグ又は「無効エッジ共用」フラグ・セッ
トを有していないからである。より詳しく説明すると、
図21(c)に示した例は、エッジ30が三角形32の
ための「エッジの付けられた」フラグ・セットを有し、
また、三角形38のための「エッジの付けられている」
フラグのセットを有している場合に対応する。従って、
三角形38に対して、新しい頂点240が計算される。
三角形38の他のエッジのための新しい頂点は、図21
(c)に示されていない。図21(c)から分るよう
に、三角形32と三角形38間のギャップ242(ドッ
ト域で示された)が、エッジ30に沿って形成されるこ
とが分る。このエッジが処理される方法は後述する。
【0198】図21(d)を参照して、新しい頂点25
0、252及び254が三角形32のために形成され、
また、新しい頂点256が三角形38の辺30のために
形成される(三角形38の他の辺のために形成された新
しい頂点は、図21(d)には示していない)。図21
(d)に示した例は、「エッジ・ノーマル不明瞭」フラ
グが三角形32と三角形38のエッジ30のためにセッ
トされるケースに対応するが、「キープ・エッジ」フラ
グはいずれの三角形のエッジ30のためにもセットされ
ない。図21(d)から分るように、ギャップ258
(ドット域で示された)は、三角形32と三角形38間
に形成される。
【0199】図18を再度参照して、ステップS376
において、CPU4がモデル内で処理されるべき別の三
角形があるかどうかを決定する。ステップS360から
S376が、各三角形が処理され上述した方法でモザイ
ク三角形を発生するまで、反復される。
【0200】図15A,15Bを再度参照して、ステッ
プS318において、CPU4がステップS316にお
いて発生されたモザイク化モデルのトポロジーを修正す
るように処理を実行する。より詳しく説明すると、CP
U4は近接する三角形間で形成されたモデル内のどのギ
ャップも、図21(c)の例に示したギャップ242及
び図21(d)の例に示されたギャップ258のような
どのギャップも満たすように処理がなされる。
【0201】図22A,22Bは、図15Bのステップ
S318において、CPU4によって実行され、トポロ
ジーを修正する処理操作を示す。
【0202】図22A,22Bを参照して、ステップS
390からS400において、CPU4が「エッジの付
けられた」フラグが一つの三角形のエッジのためにセッ
トされ、また「エッジの付けられている」フラグが他の
三角形のためにセットされるエッジに沿って三角形間に
形成されたギャップを満たす処理を実行する。
【0203】より詳しく説明すると、ステップS390
において、CPU4がモデル内の次の三角形を考慮し、
またステップS392において、CPU4がトポロジー
的データベースから三角形のためのエッジ・フラグを読
み取る。
【0204】ステップS394において、CPU4が、
「エッジの付けられた」フラグが三角形のいずれかのエ
ッジのためにセットされたか決定する。このフラグがセ
ットされなければ、処理はステップS400に進行す
る。一方、「エッジの付けられた」フラグがセットされ
たことが決定されれば、次にステップS396におい
て、「エッジの付けられた」フラグがセットされる各エ
ッジのために、CPU4がステップS368(図18)
におけるモザイクによって発生されたエッジのための新
しい頂点を移動して、「エッジの付けられている」フラ
グがセットされた対応するエッジのための対応する新し
い頂点と一致させる。図21(c)を再度参照して、一
例として「エッジの付けられた」フラグが三角形32の
エッジ30のためにセットされ、また「エッジの付けら
れている」フラグが三角形38のエッジ30のためにセ
ットされる。従って、ステップS396において、CP
U4がモザイクによって発生されたエッジ30のための
新しい頂点232の位置を、三角形38のエッジ30の
ために発生された対応する新しい頂点240の位置に移
動させる。
【0205】図23(a)は、さらなる例として、三角
形32と三角形38が深さ4までモザイクされる場合を
示す。再度、「エッジの付けられた」フラグが三角形3
2のエッジ30のためにセットされ、従って、ステップ
S368(図18)におけるモザイクによって発生され
た三つの新しい頂点270、272、274はエッジ3
0上にくる。エッジ30は三角形38のための「エッジ
の付けられている」フラグを有している。従って、エッ
ジ30と三角形38のためにモザイクによって発生され
た新しい頂点276、278、280はエッジ30に沿
ってはいない。ステップS396において、CPU4が
頂点270の位置を頂点276の位置に移動させ、頂点
272の位置を頂点278の位置に移動させ、また、頂
点274の位置を頂点280の位置へ移動させる。
【0206】図23(b)は、ステップS396が実行
された後、図23(a)の例から得られることになる三
角形32のモザイクを示す。
【0207】図23(b)を参照して、移動する頂点2
70、272及び274の結果は、その頂点の一つを包
含するモザイク三角形はそれぞれその形状(また、ほと
んどの場合、その頂点のある平面で)が変形される。図
23(a)の例において、頂点270、272及び27
4は元の三角形から移動して三角形38の対応するリフ
ァインされた頂点と一致している。従って、図23
(b)に示したように、三角形300、302、30
4、306、308、310及び312は、残りのモザ
イク三角形よりも大きくなっている。
【0208】しかし、モザイク三角形はほぼ均一したサ
イズで、かつ、元の三角形上に均一に分布されるのが望
ましい。このようにして、三角形の平面が「エッジの付
けられた」フラグ・セットを有するエッジのための頂点
の移動によって変化される場合、その下にあるオブジェ
クト面の曲率がより均一にモデル化される。
【0209】従って、図22A,22Bを再度参照し
て、ステップS398において、CPU4が、元の三角
形の内側にあるモザイク三角形の頂点を再分配する。図
23(b)の例において、これらの頂点は頂点320、
322及び324である。このステップで再分配される
べき内側頂点の数はモザイクの深さに依存しており、深
さの増大につれて内側頂点の数が増加することが分る。
モザイクの深さが深さ2であるとき、再分配される内側
頂点がないことが図19(a)から分る。
【0210】図24はCPU4によって実行され、図2
2AのステップS398における内側頂点の再分布の処
理操作を示す。
【0211】図24を参照して、ステップS420にお
いて、CPU4が次の内側頂点を考慮している。ステッ
プS422において、CPU4が目下考慮中の内側頂点
に連結された6個のエッジ頂点の各々の重心座標を決定
する。
【0212】図25は、図23(a)と図23(b)に
示された例から深さ4まで分割された三角形32を示す
図である。
【0213】図25を参照して、三角形32は深さ4に
分割され、従って、3個の内側頂点320、322及び
324が再分配されている。各頂点の重心座標が図25
に示されている。
【0214】内側頂点が連結された6個のエッジ頂点
が、一つのエッジ頂点が到達するまで、三角形エッジと
平行な六つの方向にある内側頂点から進行して頂点にな
る。従って、重心座標(2、1、1)を有する頂点32
0が、重心座標(3、1、0)、(2、2、0)、
(3、0、1)、(2、0、2)、(0、3、1)及び
(0、1、3)を有する6個のエッジ頂点に連結され
る。
【0215】同様にして、内側頂点322が重心座標
(1、2、1)を有し、重心座標(1、3、0)、
(2、2、0)、(3、0、1)、(1、0、3)、
(0、3、1)及び(0、2、2)を有する6個のエッ
ジ頂点に連結される。内側頂点324が重心座標(1、
1、2)を有し、重心座標(1、3、0)、(3、1、
0)、(2、0、2)、(1、0、3)、(0、1、
3)及び(0、2、2)を有する6個のエッジ頂点に連
結される。
【0216】内側頂点から一つのエッジに進行すると、
頂点の重心座標の一つが減ることになる。例えば、内側
頂点324からエッジ頂点270へ進行するとき、3番
目の重心座標が頂点324における2から頂点322に
おける1へ、頂点270における0へ減る。さらに、内
側頂点からエッジに進行するとき、別の重心座標は一定
を維持することになる。例えば、内側頂点324からエ
ッジ頂点270へ進行するとき、最初の重心座標が一定
値1を有する。
【0217】ステップS422において、CPU4が、
内側頂点に連結された各エッジ頂点が、0となる一つの
重心座標を有し、また、さらなる重心座標が内側頂点の
座標と同じであるという事実を使用して6個の連結され
たエッジ頂点の完全な重心座標を計算する。
【0218】ステップS424において、CPU4が、
内側頂点に連結された6個のエッジ頂点のそれぞれに対
する重さを計算する。本実施の形態において、CPU4
が目下考慮中の内側頂点の重心座標と、0であるエッジ
頂点の重心座標に基づいて各連結エッジ頂点のための重
さを決定する。より詳しく説明すると、エッジ頂点の第
1重心座標が0であれば、次にCPU4が内側頂点の第
1重心座標の逆数の重さをこの頂点に割り当てる。同様
にして、エッジ頂点の第2重心座標が0であれば、次に
CPU4が内側頂点の第2重心座標の逆数の重さを割り
当てし、一方、エッジ頂点の第3重心座標が0であれ
ば、次にCPU4が内側頂点の第3重心座標の逆数の重
さを割り当てる。
【0219】図25の例を再度参照して、内側頂点32
2のために、エッジ頂点270とエッジ頂点272(そ
の第3重心座標が0である)に割り当てられた重さは1
/1で、エッジ頂点330と332(その第1重心座標
が0である)に割り当てられた重さは1/1で、エッジ
頂点334と336(その第2重心座標が0である)に
割り当てられた重さは1/2である。
【0220】ステップS426において、CPU4が6
個の連結エッジ頂点の各々の3次元位置(すなわち、頂
点がステップS396で移動した後の位置)を読み取
り、ステップS424で計算された重さに基づく位置を
組み合わせて、目下考慮中の内側頂点のための新しい位
置を提供する。本実施の形態においてステップS426
におけるこの組み合わせは次式を使用して実行されベク
トル・センス内の位置を組み合わせる:
【0221】
【数8】 ここで、Vnewは内側頂点の新しい3次元位置である;
i(i=1..6)はステップS424において計算
されたi番目のエッジ頂点である;Vi(i=1..
6)はi番目のエッジ頂点の3次元位置である。
【0222】ステップS426において、内側頂点の位
置は元の三角形の平面と平行に移動するだけでなく、内
側頂点は元の三角形の上方へ異なる高さにも移動するこ
とが理解できる。
【0223】上述したように、ステップS420からS
426が実行されることにより、CPU4が、6個の連
結エッジ頂点に依存して内側頂点を再位置付けする。内
側頂点に最も近いエッジ頂点が、内側頂点からさらに離
れたエッジ頂点よりも大きい重さを有しており、従っ
て、最も近いエッジ頂点の位置がさらに離れたエッジ頂
点の位置よりも内側頂点の位置に影響を与える。
【0224】ステップS428において、CPU4が再
位置付けされるべき別の内側頂点があるかどうか決定す
る。ステップS420からS428が、すべての内側頂
点が上述したようにして再位置付けされるまで、反復さ
れる。
【0225】図22A,22Bを再度参照して、ステッ
プS400において、CPU4が、未だ考慮されていな
いモデル内に別の三角形があるかどうか決定される。ス
テップS390からS400が、モデル内の全ての三角
形が上述した方法で処理されるまで、反復される。
【0226】ステップS402からS408において、
CPU4が、「エッジ・ノーマル不明瞭」フラグがエッ
ジのためにセットされるが、「キープ・エッジ」フラグ
がいずれのエッジ(これは、エッジが例えば図21
(d)の例で示したエッジを共用する両三角形のために
修正されたエッジ中の状況に対応している)のためにも
セットされないエッジに沿って三角形間に生じたギャッ
プを埋める処理を実行する。
【0227】より詳しく説明すると、ステップS402
において、CPU4がトポロジー的データベースからエ
ッジ・フラグを読み取る。ステップS404において、
CPU4が「エッジ・ノーマル不明瞭」フラグがセット
されるが、「キープ・エッジ」フラグがセットされない
次のエッジ対を考慮する。
【0228】ステップS406において、CPU4が二
つの修正エッジ間のギャップを満たす。本実施の形態に
おいて、CPU4が、モザイクによって発生された新し
い頂点を連結して「スティチング三角形」を形成するこ
とによってこれを実行する。
【0229】図26は、どのようにしてスティチング三
角形がステップS406(図22B)においてCPU4
により発生されるかという例を示す。
【0230】図26(a)は、エッジを共用する三角形
が深さ2までモザイクされた例を示す。この場合におい
て、モザイクによって発生された新しい頂点350、3
52が連結されてスティチング三角形354と356を
形成する。
【0231】図26(b)は、三角形32と38が深さ
3までモザイクされた例を示す。この場合において、三
角形32の頂点360は三角形38(すなわち、この頂
点はエッジ30上の同じ元のポイントからなる)の対応
する頂点に連結され、これが頂点362になる。同様に
して、三角形32の頂点364は三角形38の対応する
頂点36に連結される。付加的に、頂点360、36
2、366及び364によって形成された四角形が、三
角形32からの頂点360を、四辺形の対向コーナーに
おける三角形38の頂点366と連結することによって
三角形に分割される。
【0232】図26(c)は、三角形32と38が深さ
4までモザイクされた例を示す。この状況において、三
角形32の頂点370が三角形38の対応する頂点37
2に連結され、三角形32の頂点374が三角形38の
対応する頂点376に連結され、また三角形32の頂点
378が三角形38の対応する頂点380に連結され
る。連結された頂点370、372、376及び374
によって形成された四辺形を分割するために、CPU4
が三角形32の頂点370を三角形38の頂点376に
四辺形の対向するコーナーに連結する。同様にして、連
結された頂点374、376、380及び378によっ
て形成された四辺形を三角形に分割するために、CPU
4が三角形32の頂点374を三角形38の頂点380
に四辺形の対向するコーナーで連結する。
【0233】図22A,22Bを再度参照して、ステッ
プS408において、CPU4が、「エッジ・ノーマル
不明瞭」フラグがセットされているが、「キープ・エッ
ジ」フラグはセットされていない別の対のエッジがある
かどうか決定する。ステップS404からS408が、
「エッジ・ノーマル不明瞭」フラグがセットされ、「キ
ープ・エッジ」フラグがセットされない各対のエッジが
上述した方法で処理されるまで、反復される。
【0234】図15A,15Bを再度参照して、ステッ
プS320において、CPU4が、モザイクの同じ深さ
が必要なときに、別のフレームのための画像データの発
生において次の再使用のためにメモリ内にステップS3
16とS318において発生されたデータを記憶する。
【0235】ステップS322において、CPU4が処
理されるべき他のオブジェクトのモデルがあるかどうか
決定する。ステップS300からS322が、各モデル
が上述した方法で処理されるまで、反復される。
【0236】図2A,2Bを再度参照して、ステップS
18において、CPU4がステップS16において発生
された三角形状多角形を照明する。
【0237】本実施の形態において、照明が各オブジェ
クトのオブジェクト・スペースで実行される。これはロ
ーカル変換(オブジェクトをそのオブジェクト・スペー
スから共通の3Dワールド・スペースに変換する)の逆
を計算し、各光源の位置に対して逆変換を実行し、これ
によって光源をオブジェクト・スペースに変換すること
によって実行される。
【0238】図27A,27Bは、CPU4によって実
行され、図2AのステップS18において多角形を照明
する処理操作を示す。
【0239】図27A,27Bを参照して、ステップS
450において、CPU4が次のオブジェクトのモデル
を考慮している。
【0240】ステップS452において、CPU4が、
表示されるべき画像データのフレームが第1フレームで
あるかどうかを決定する。このフレームが画像データの
第1フレームであることが決定されれば、次にステップ
S454において、CPU4が従来方法でモデル内の各
三角形頂点における各色要素のための値を計算する。本
実施の形態において、各三角形頂点における各色要素の
ために、CPU4が周囲光度値、分散光度値及び目下の
全ての光源を考慮した鏡面光度値を計算する。これは、
例えば、アディソン−ウエズリ・パブリッシング・カン
パニ刊、フォリ、ヴァン・ダム、フェイナとヒューズに
よる「コンピュータ・グラフィックスの原理及び方法」
第2版、ISBN-201-12110-7、セクション16.1及び16.2に
説明に説明したような従来の方法で実行される。
【0241】一方、表示されるべき画像データのフレー
ムは第1フレームでないことがステップS452で決定
されれば、次にステップS456において、CPU4
が、ステップS12において決定されたビューイング・
パラメータ(ビューされるべき画像から位置と方法が規
定される)が、前回フレーム以来変更されたかどうか決
定する。ビューイング・パラメータが変更されると、次
に処理がステップS462に進行する。
【0242】一方、ビューイング・パラメータが前回フ
レーム以来変更されていることが、ステップS456に
おいて決定されれば、次にステップS458において、
CPU4が、照明パラメータ(ステップS10において
決定された)が前回フレーム以来変更されないかどうか
決定する。照明パラメータが変更されていれば、次に処
理がステップS462に進行する。
【0243】一方、照明パラメータが前回フレーム以来
変更されていなければ、ステップS458において決定
されれば、次にステップS460において、CPU4
が、オブジェクトが前回フレーム以来移動されたかどう
を決定する。オブジェクトが移動されていないことが決
定されれば、次にビューイング・パラメータ、照明パラ
メータ及びオブジェクト位置は、前回フレーム以来変更
されていないことになる。従って、CPU4が目下のフ
レームのために前回フレームのために計算された明度値
を使用し、処理がステップS482に進行する。
【0244】一方、ビューイング・パラメータが変更さ
れたことがステップS456において決定されるか、又
はステップS458において、照明パラメータが変更さ
れたことが決定されるか、又はステップS460におい
て、オブジェクトが移動し、次に新しい明度値を計算す
る必要があり、処理がステップS462に進行する。
【0245】ステップS462において、CPU4が、
モデルが所定深さより深くモザイクされるかどうか決定
される。本実施の形態において、所定の深さは深さ3
(図19(b)に示したように)である。このテストの
結果が、どのように明度値がモデルのために計算される
かを決定する。より詳しく説明すると、ステップS16
におけるモデルのリファインメントは多数の新しい頂点
を発生し、各色要素のための値を発生し、各色要素のた
めの値が各頂点において計算されなければならない。従
って、実行されるべき計算の数は、頂点の数が増加する
につれて増加する。本実施の形態において、上述した従
来方法において各頂点における各色要素のための値を計
算するよりも、「照明パッチ」としての別の技術が使用
でき、コンピュータ処理的にはより有効である。この照
明パッチ技術は、計算されるべき明度値(lighting valu
es)のための頂点の数が所定値を超えたときに、従来技
術よりも有効である。本実施の形態で使用される照明パ
ッチ技術に基づいて、三角形が深さ3よりも大きい深さ
にモザイクされたときに、頂点の数の所定値に達する。
この理由で、ステップS462において実行されるテス
トが、モデルが深さ3より大きい深さにモザイクされる
かどうか決定する。
【0246】モデルが深さ3よりも大きい深さにモザイ
クされないことがステップS462で決定されれば、次
にステップS464、S466及びS468において、
CPU4がモデル内の各頂点のために従来方法で明度値
を計算する。より詳しく説明すると、ステップS464
において、CPU4がオブジェクトの元のモデル内で次
の三角形を考慮し、また、ステップS466において、
CPU4が各元の頂点における各色要素の値と、ステッ
プS454に関する上述した従来方法によるモザイク三
角形の各新しい頂点を計算する。ステップS468にお
いて、CPU4がオブジェクトのモデル内で処理される
べき別の三角形があるかどうか決定する。ステップS4
64からS468が、モデル内の全ての三角形が上述し
た方法で処理されるまで、反復される。
【0247】一方、モデルが深さ3よりも大きい深さに
モザイクされたことがステップS462において決定さ
れれば、ステップS470からS480において、CP
U4が次に説明するように、「照明パッチ」を使用して
モデルのための明度値を計算する。
【0248】ステップS470において、CPU4がオ
ブジェクトのモデル内の次の三角形を考慮し、また、ス
テップS472において次の色要素を考慮する。本実施
の形態において、色要素の赤、緑及び青が使用される
が、他の色要素計画も使用できることはもちろんであ
る。
【0249】ステップS474において、CPU4が考
慮された三角形のための照明パッチを規定するパラメー
タと、考慮された色要素とを計算する。
【0250】図28は、図27BのステップS474に
おいてCPU4によって実行され、照明パッチを規定す
るパラメータを計算する処理操作を示すフローチャート
である。
【0251】図28を参照して、ステップS500にお
いて、CPU4が三角形の各制御ポイントにおける色要
素のための値を計算する。三角形の制御ポイントは図1
0に示すとともに、これまでに説明したように10ポイ
ントである。すなわち、三角形の頂点と、エッジを1/
3に分割する各エッジに沿った二つのポイントと三角形
の重心におけるポイントである。これらのポイントの各
々における色要素のための値が従来方法で計算される。
例えば、本実施の形態において、色要素のための周囲
値、色要素のための分散値及び色要素のための鏡面値が
考慮中の全ての光源に依存して計算され、これらの値が
総合されて所与の制御ポイントにおける色要素のための
全体値を提供する。
【0252】ステップS502において、CPU4が、
その制御ポイントにおける色要素の計算値に対応する高
さで上述の各制御ポイントを規定する。
【0253】ステップS504において、CPU4が三
角形の次のエッジを考慮する。
【0254】ステップS506において、CPU4が、
パラメータ的パッチをしてエッジに沿った制御ポイント
を上述のステップS502において規定されたポイント
を補間せしめるエッジのための縦座標値を規定する。本
実施の形態において、座標が3次バーンスタイン−ベジ
エ三角形パッチのために計算される。
【0255】図29は、図28のステップS506にお
いて実行される処理操作の効果の一例を示す図である。
【0256】図29(a)において、ポイント400、
402、404及び406は三角形エッジ上に位置し、
三角形のこのエッジのための制御ポイントである(ポイ
ント400と406は三角形の頂点であり、ポイント4
02はポイント400からエッジ長さの1/3のスペー
スがあり、また、ポイント404はポイント406から
エッジ長さの1/3のスペースがある)。ポイント41
0、412、414及び416は、ステップS500に
おいて計算された制御ポイントにおける色要素の値に対
応する制御ポイントの上方の高さでステップS502に
おいて規定されたポイントである。従って、本実施の形
態において、ステップS500においてポイント400
で計算された色要素の値はh0であるから、ポイント4
10はポイント400から上に高さh0にある。ポイン
ト402で計算された色要素の値はh1であるから、ポ
イント412はポイント402の上方に高さh1であ
る。ポイント402で計算された色要素の値はh1であ
るから、ポイント412はポイント402上方に高さh
1である。ポイント404で計算された色要素の値はh
2であるから、ポイント414はポイント404の上方
に高さh2である。ポイント406で計算された色要素
の値はh3であるから、ポイント416はポイント40
6の上方に高さh3である。
【0257】ポイント410、412、414及び41
6が縦座標として使用され3次バーンスタイン−ベジエ
三角形パッチを規定し、これでパッチのエッジがポイン
ト412と414を通過せず、代わりに図29(a)の
破線418によって示した位置をとる。従って、ステッ
プS506において、CPU4はバーンスタイン−ベジ
エ三角形パッチのエッジをしてポイント410、41
2、414及び416の全てを通過せしめる縦座標値を
計算する。ステップS506において計算された縦座標
値を図29(b)に示し、ポイント410、420、4
22及び416からなる。三角形頂点の縦座標は、バー
ンスタイン−ベジエ三角形パッチのエッジがこれらのエ
ンド・ポイントを補間するので、計算された色要素値と
同じ値を有する。従って、図示例において、ポイント4
00の縦座標は値h0を有し、またポイント406の縦
座標は値h3を有する。
【0258】三角形の頂点でないエッジに沿ったポイン
ト402と404における縦座標のための値を計算する
ために、CPU4はポイント402上方のポイント42
0の高さh1’の値を、また、ポイント404上方のポ
イント422の高さh2’の値を計算し、これで値h
1’とh2’がバーンスタイン−ベジエ三角形パッチを
してポイント410、412、414及び416を補間
せしめる。
【0259】照明パッチの各エッジは3次ベジエ・ポリ
ノミナルによって規定される。パラメータt及び制御縦
座標h0,h1’,h2’及びh3の3次ベジエ・ポリ
ノミナルのための式は:
【0260】
【数9】 これを評価すると、t=1/3とt=2/3(三角形エ
ッジに沿った制御ポイントの位置に対応する)における
ホリノミナルは次式で与えられる:
【0261】
【数10】 しかし、ステップS500において計算された値を使用
すると:
【0262】
【数11】 従って、次のようにセットすると
【0263】
【数12】 式10は次のようになり
【0264】
【数13】 これは次式に等価である
【0265】
【数14】 式14が一次方程式であるから、クラメールの法則を使
用してh1’とh2’について解くと、次式が得られ
る:
【0266】
【数15】 また、結果として次式が得られ、CPU4がこれをステ
ップS506で使用して各内側エッジ制御ポイント(図
29Aと29Bの例のポイント402と404)のため
の縦座標値を計算する:
【0267】
【数16】 本実施の形態において、それが主観的により優れた照明
結果を提供することが分っているので、ゼロより小さく
なるようにステップS506において計算されたどの縦
座標値もゼロにセットされる。
【0268】図28を再度参照して、ステップS508
において、CPU4が処理されるべき三角形の別のエッ
ジがあるかどうかを決定する。ステップS504とS5
08が、各エッジ制御ポイントのための縦座標が上述し
た方法で計算されるまで、反復される。
【0269】ステップS510において、CPU4が三
角形の重心(すなわち、図10に示した例においてポイ
ント108)における制御ポイントのための縦座標値を
計算する。
【0270】図30はCPU4によって実行され、図2
8のステップS510において中央制御ポイントのため
の縦座標を計算する処理操作を示すフローチャートであ
る。
【0271】本実施の形態において、CPU4が、頂点
間の三角形のエッジにある制御ポイントのためにステッ
プS506で前回計算された6個の縦座標と、これらの
制御ポイントのための6個の元の色要素値とを使用し
て、各制御値のためのファクターを計算し、色要素を掛
けたときに縦座標値を得る。6個のファクターが三角形
の重心における制御ポイントのための縦座標値を計算す
るのに使用される。この処理については後ほど詳しく説
明する。
【0272】図30を参照して、ステップS520にお
いて、CPU4が「総計(和)」とタイトルの付けられ
た可変値をゼロにセットする。
【0273】ステップS522において、CPU4が考
慮されている三角形の頂点間のエッジ上にある次の制御
ポイントを考慮する(図10に示した例を参照し、頂点
間のエッジ上にある制御ポイントは、ポイント92、9
4、98、100、104及び106からなる)。
【0274】ステップS524において、CPU4がス
テップS500における制御ポイントのために計算され
た色要素の値を読み取り、値がゼロに等しいかどうかを
決定する。値がゼロに等しければ、次にステップS52
6において、CPU4が可変「和」の値に1を加算す
る。一方、制御ポイントにおける色要素の値がゼロに等
しくなければ、ステップS528において、CPU4が
ステップS506において計算された制御ポイントにお
ける縦座標の値を、制御ポイントの色要素の値で分割し
(割り)、得られた値を可変「和」の値に加算する。
【0275】ステップS530において、CPU4が三
角形の頂点間に別の制御ポイントがあるかどうか決定す
る。ステップS522からS530が、三角形の頂点間
で各制御ポイントが上述した方法で処理されるまで、反
復される。
【0276】ステップS532において、CPU4が三
角形の重心における制御ポイントのための縦座標の値を
計算する。この値は(i)重心における制御ポイントの
色要素の値(ステップS500において前回計算され
た)と、(ii)可変「総計」の値と、(iii)1/6(これ
は可変「和」の値を導出するのに使用された頂点間の三
角形のエッジに沿ってある制御ポイントの数の逆数に対
応する)との積である。
【0277】上述した処理の結果、データが発生され、
三角形全体の制御ポイントにおいて計算された色要素の
値を補間(相補)する照明パッチを規定する。
【0278】図27A,27Bを再度参照して、ステッ
プS476において、CPU4が、ステップS474で
前回計算されたパラメータによって規定された照明パッ
チを使用して目下考慮されている元の三角形内で各モザ
イクされた三角形の各頂点における色要素のための値を
計算する。
【0279】図31は、図27BのステップS476に
おいてCPU4によって実行され、各頂点における色要
素のための値を計算する処理操作を示す。
【0280】図31を参照して、ステップS550にお
いて、CPU4が色要素の値が計算されるべき次の頂点
を考慮する。
【0281】ステップS552において、CPU4が、
頂点が対応している元の三角形上のポイントの重心座標
を決定する。例によれば、図23(b)と図25とを再
度参照して、頂点270に対応する元の三角形上のポイ
ントが重心座標(1、3、0)を有するポイントであ
る。同様にして、頂点274に対応する元の三角形上の
ポイントが、重心座標(3、1、0)を有するポイント
であり、また、頂点324に対応する元の三角形上のポ
イントが、重心座標(1、1、2)を有するポイントで
ある。
【0282】ステップS554において、CPU4が元
の三角形上のポイント上方の3次バーンスタイン−ベジ
エ三角形照明パッチ(ステップS474で計算されたパ
ラメータによって規定される)の高さを計算する。これ
はステップS552で決定された重心座標を使用する照
明パッチ式を評価することによって実行される。この照
明パッチの式は、ステップS552によって決定され
る。照明パッチの式は式6によって与えられ、上述した
ように、縦座標b003, b030, b300, b102, b201,b012, b
021, b120及びb210の値が、ステップS506で前回計
算された値であり、縦座標b111の値がステップS510
で前回計算された値である。
【0283】ステップS556において、CPU4が、
計算されるべき色要素のための値で別の頂点があるかど
うか決定する。ステップS550からS556が、色要
素のための値が上述した各頂点において計算されまで、
反復される。
【0284】図27A,27Bを再度参照して、ステッ
プS478において、CPU4が、三角形内の各頂点に
おけるその明度値が計算されるべき別の色要素があるか
どうか決定する。ステップS472からS478が、元
の三角形内の各頂点における各色要素のための値が上述
した方法で計算されるまで、反復される。
【0285】ステップS480において、CPU4が、
モデル内に別の三角形があるかどうかを決定する。テッ
プS470からS480が、モデル内の各三角形が上述
した方法で処理されるまで、反復される。
【0286】ステップS482において、CPU4が、
処理されるべき別のオブジェクトのモデルがあるかどう
かを決定する。テップS450からS482が、各モデ
ルが上述した方法で処理されるまで、反復される。
【0287】図2A,2Bを再度参照して、ステップS
20において、CPU4がオブジェクトのモデリング・
スペースから各オブジェクトを形成している三角形を3
次元ビューイング・スペースに変換する。より詳しく説
明すると、ステップS14で抜粋されるオブジェクトの
操作中に境界ボックスに変換するのに使用される連鎖マ
トリックスが再度使用され、オブジェクト・スペースか
らビューイング・スペースに実際のオブジェクト多角形
に変換される。これまでに説明したように、連鎖マトリ
ックスは、オブジェクトをそのオブジェクト・スペース
を共用3Dスペースに変換するローカル変換と、オブジ
ェクトを3Dワールド・スペースから3Dビューイング
・スペースに変換するビュー変換とを規定するマトリッ
クスからなる。
【0288】ステップS22において、CPU4がクリ
ッピング処理を実行して、ステップS12において前回
決定されたビューイング・パラメータによって規定され
たビューの域の外側にある多角形又はそのパーツを除去
する。ステップS22におけるクリッピング処理の実行
において、各オブジェクトが交差するビューイング・ス
ペースの平面を識別するステップS14においてオブジ
ェクトが抜粋されたときに、CPU4が前回発生された
情報を使用し、これによってステップS22を実行する
コンピュータ処理上の必要条件が少なくなる。
【0289】ステップS24において、各オブジェクト
の三角形が、z(深さ)寸法を捨て、捨てたz寸法を考
慮してx及びy寸法を計測することによる従来方法で2
次元に投影し、これによって透視図を得る。
【0290】ステップS26において、CPU4が、多
角形面が前面(すなわち、ビューワに面している)にあ
ることと、多角形面が裏面であることを識別する。裏面
は前面によって不明瞭になっており、実際には見えない
ので除去される。本実施の形態において、コンピュータ
処理上のオーバーヘッドを減じるために、多角形ノーマ
ルがオブジェクト・スペース内でのみ使用され、ビュー
イング・スペースに伝送されない。従って、ステップS
26において、CPU4が多角形エッジを規定するベク
トルを処理し、多角形が前面であるか裏面であるかを決
定する。この処理は公開ヨーロッパ特許出願EP−A−
0590995に開示された方法で実行される。
【0291】ステップS28において、CPU4が三角
形データを走査コンバートし、画素データを生成する。
このステップは従来方法で実行され、またこのステップ
中、色値が従来のグロー・シェィデイング技術を使用し
て各三角形の各頂点につき前記計算された値を考慮して
各画素につき計算される。
【0292】ステップS32において、CPU4が画素
データを多角形対多角形ベースでフレーム・バッファ1
6に書込み、これによって従来方法で完全な2次元画像
のための画像データを構築する。
【0293】ステップS32において、CPU4が、表
示デバイス18のフレーム・バッファ16に書き込まれ
た画像データを表示及び/又はビデオテープ・レコーダ
20のような記録デバイス上に画像データを記録する。
【0294】ステップS34において、CPU4が、画
像データが別のフレームのために発生されるべきかどう
か決定する。ステップS9からS34が反復され、画像
データの各フレームが発生される。注意しなければなら
ないのは、ステップ6でモデルのためのトポロジー・デ
ータベースが構成され、また、ステップS8で、各オブ
ジェクトのモデルのリファイメントのためのパラメータ
が計算され、オブジェクトがアニメ化されなければ(オ
ブジェクトを形成する三角形パッチが変更されない場合
に)、オブジェクト位置が変更されても(これはオブジ
ェクトを形成する三角形に影響しないので)、画像デー
タの各フレームのために反復される必要はない。しか
し、上述した技術はアニメーションには使用され、相補
を従来方法で「インビトウィーン・フレーム」のために
三角形頂点を計算するのに使用されて各「キー・フレー
ム」のための三角形頂点を規定することができる。
【0295】多数の変形が上述した実施の形態に可能で
ある。
【0296】ステップS18において上述した(及び図
27A,27Bに関して説明した)実施の形態を実行す
る処理による照明計算の実行は、ステップS6、S8及
び16における処理とは独立して実行でき、モデルをリ
ファインする。例えば、照明パッチは、上述の実施の形
態で説明した一つに適用される異なるリファインメント
方法によって発生された多角形頂点における明度値を計
算するのに使用できる。さらに、照明パッチはどのリフ
ァインメントも実行していない元のモデル内の多角形に
対する明度値を計算するのに使用することもできる。こ
の場合、照明パッチは元の多角形内の複数のポイントに
おける明度値を発生するのに使用でき、また補間はこれ
らの値の間で実行され、従来方法による頂点のみにおけ
る明度値間の補間と比較して精度が改善される。
【0297】上述の実施の形態において、3次バーンス
タイン−ベジエ三角形パッチがモデルの各三角形をリフ
ァインするのに使用され、3次バーンスタイン−ベジエ
三角形パッチはモデルの各三角形の照明パッチを決定す
るのに使用される。しかし、より高いオーダーのバーン
スタイン−ベジエ三角形パッチは、三角形をリファイン
すること及び/又は三角形の照明パッチを規定すること
に使用することもできる。しかし、より高いオーダーの
パッチは、三角形をリファインするの使用するときは、
利用度が制限されている。これは、より高いオーダーの
式(図9のステップS234)によって要求されたエキ
ストラ制御ポイントのそれぞれにおける縦座標を計算す
るのに利用可能な情報が制限されるからである(なぜな
ら、元の三角形の各頂点におけるノーマルのみが既知だ
からである)。
【0298】バーンスタイン−ベジエ三角形パッチ以外
のタイプのパッチは、三角形をリファインすること及び
/又は三角形の照明パッチを規定するのに使用すること
もできる。このもう一つのタイプのパッチの一例は、ヘ
ロン・パッチであるが、他のタイプのパッチも使用でき
る。ヘロン・パッチの式において、h(τ)は次の通り
である:
【0299】
【数17】 ここで、λは制御ポイントの位置を識別する重心座標の
トリプレット(λ1, λ2, λ3)である;bλは制御ポ
イントλにおける縦座標の値である。
【0300】上述の実施の形態において、三角形の頂点
における縦座標は、値0に割り当てられ、これによって
パッチがこれらの頂点を補間する。さらに、ヘロン多項
式は中央縦座標に対してゼロであり、従って、b111の値
は決して必要でなない。
【0301】上述の実施の形態において、各オブジェク
トのモデルは三角形からなる。三角形のためのニュート
ラル重心座標系が上述した実施の形態で説明のコンピュ
ータ処理を補助する。しかし、各オブジェクトは多角形
の他の形状を使用してモデル化でき、また三角形以外の
パッチが各多角形をリファインすること及び/又は各多
角形のための照明パッチを決定するのに使用することも
できる。特に、各オブジェクトは四角形を使用してモデ
ル化できる。5個ないしそれ以上の辺を有する多角形が
使用される場合、必要とされるコンピュータ処理量が相
当増えるが、リアルタイム操作は可能ではない。
【0302】各オブジェクト(上述の実施の形態におけ
る図2AのステップS16)のリファインメントは、図
2A、2Bに示したレンダリング・パイプライン内の他
の場所で実行することができる。例えば、リファインメ
ントは、多角形がステップS18で照明された後で実行
できる。
【0303】上述の実施の形態において、各モデル内の
全ての三角形は、続く処理がなされる前に、ステップS
18でリファインされる。しかし、処理は、ステップS
16からS30が多角形対多角形ベースで実行されるよ
うに実行される。
【0304】上述の実施の形態において、ステップS6
において、各オブジェクトのモデルのためのトポロジー
的データベースが構築される。しかし、この情報は3D
モデリング・データで受信される。
【0305】上述の実施の形態のトポロジー的データベ
ース内に記憶された情報は、識別されるべき所与のエッ
ジを共用する三角形とすることができる。現在のビュー
イング・パラメータ(ステップS12で決定された)を
検査し、エッジを共用する両三角形の三角形ノーマルを
考慮することにより、エッジがオブジェクトのシルエッ
トの一部であれば、決定することが可能である。より詳
しく説明すると、一つの三角形ノーマルは三角形をビュ
ーワに見える方向に向けさせ、また他のノーマルはビュ
ーワから離れるように向けさせれば、これでエッジがシ
ルエットの一部となる。この情報は、ステップS16中
使用でき、シルエットの一部である三角形のための大き
い細分割に適用する。
【0306】上述の実施の形態において、ステップS1
8において、各オブジェクトのモデルを形成する三角形
がオブジェクト・スペース内で照明される。しかし、三
角形は実行されるべき照明計算のための3次元ワールド
・スペースに変換される。
【0307】上述の実施の形態において、各エッジ制御
ポイント(図9のステップS234)のための縦座標を
計算するために、制御ポイントから直近の頂点を通過す
るタンジェント面の距離が直近の頂点におけるノーマル
と平行な方向で計算される(図11のステップS26
2)。しかし、この距離は他の方向でも計算できる。例
えば、一つの方向が三角形の各頂点におけるノーマルの
重りつけ(weighting)に基づく各制御ポイントのために
計算できる(各頂点の重りつけはその制御ポイントから
のその距離によって決定される)。別の方法としては、
方向はエッジの両端の頂点におけるノーマルの平均に基
づいて計算でき、それらの座標が上述の実施の形態中の
直近頂点のノーマルと平行な方向を使用して計算されれ
ば(また、表面がより湾曲されることになるので)、縦
座標値が僅かに大きくなる。さらに、三角形ノーマルと
平行な方向が使用できる(これは近接する三角形間のギ
ャップが、例えば上述の実施の形態のステップS406
と同様に「ステッチング三角形」を生じることによって
埋めることができたとしてもである)。
【0308】上述の実施の形態のステップS234(図
9)において、CPU4が各頂点における縦座標と各エ
ッジ制御ポイントの値を計算する。しかし、上述したよ
うに、「キープ・エッジ」フラグがエッジでセットされ
たときに、縦座標がゼロに計算される。従って、装置は
「キープ・エッジ」フラグがエッジのためにセットされ
るか、また縦座標値が計算を実行するよりもゼロにセッ
トされるかどうかテストするようにアレンジされる。
【0309】上述の実施の形態のステップS306(図
15A)おいて、三角形のモザイクの深さが、画像デー
タの前回フレーム中の三角形によって占められたエリア
と、三角形の湾曲度(三角形の頂点におけるノーマルの
角度内の差から決定される)の両方に依存して決定され
る。しかし、この深さは前回フレーム内の三角形のエリ
アだけか、又は三角形の曲率のみに依存するかで決定さ
れる。さらに、この深さはどの先行フレーム中の三角形
のエリアからも決定でき、直前のフレームである必要は
ない(使用された先行フレームが離れれば離れるほど、
ますますオブジェクトを移動させるのに時間がかかり、
従って、使用されたエリアが現在のフレームのためのエ
リアを表示させないチャンスがますます多くなる)。そ
の上、他の技術も使用できる。例えば、前回(又は先行
する)フレーム内でビューアからの三角形の深さを使用
できる。さらなる例によれば、境界球面がオブジェクト
・スペース内のオブジェクトのまわりで規定でき、境界
球体は2次元スクリーン・スペースに投射でき、投射球
体のエリアが計算され、また計算されたエリアの半分が
オブジェクトのモデル内で多角形の数で分割され、平均
多角形エリアが提供され、これが細分割の深さを決定す
るのに使用できる。この方法において、現在フレーム
(先行フレームではなくて)のための多角形エリアが細
分割深さを決定するのに使用される。もちろん、個々の
多角形が2次元スクリーン・スペースに投射でき、また
そのエリア及び細分割深さが現フレームのために決定さ
れる。さらに、エリア以外のサイズ・パラメータが細分
割深さを決定するのに使用できる。例えば、スクリーン
・スペース内の多角形の最長エッジの長さが使用でき、
これもユーザに対して表示される多角形のサイズを表わ
し、元の多角形を分割して必要とされる詳細を表示しな
ければならない多角形の数とする。
【0310】これまでに説明したように、ステップS3
06において、多角形の細分割の深さは多角形のエリア
(画像データの前回のフレーム又は現在のフレームいず
れでも)及び/又は多角形の曲率とに依存して決定され
る。同じ原理がパラメータ的面パッチ(例えば、ベジエ
・パッチ及びB−スプライン・パッチ)を形成するオブ
ジェクトのモデルにも適用できる。
【0311】周知のように、パラメータ的面パッチを形
成するモデルをレンダリングしようとするときは、各面
パッチはフラット多角形に分割される(例えば、Addiso
n-Wesley Publishing Company 出版、ISBN 0-201-12110
-7、Foley,van Dam, Feinerand Hughesによる「コンピ
ュータ・グラフィックス・プリンシプルズ・アンド・プ
ラクティス(Computer Graphics Principles and Practi
ce)」第2版、セクション11.3.5参照)。所与のパッチ
のための細分割の深さの決定及び、従って、レンダーリ
ングのために生成しなければならない多角形の数の決定
には、パッチのエリアが使用できる。一例としてベジエ
・パッチを採用し、図32を参照すると、ピッチは一般
的に16個の制御ポイント、P11、P12、P13、
P14、P21、P22、P23、P24、P31、P
32、P33、P34、P41、P42、P43及びP
44によって規定される。これら16個の制御ポイント
は、8個のベジエ・カーブ、P11−P12−P13−
P14、P21−P22−P23−P24、P31−P
32−P33−P34、P41−P42−P43−P4
4、P11−P21−P31−P41、P12−P22
−P32−P42、P13−P23−P33−P43、
及びP14−P24−P34−P44を規定する。従っ
て、各制御ポイントは、二つのベジエ・カーブのための
制御ポイントになる。より詳しく説明すると、ポイント
P11、P14、P44及びP41は各々二つのカーブ
のエンド制御ポイントであり、ポイントP22、P2
3、P33、及びP32は各々二つのカーブのための曲
率制御ポイントであり、また、ポイントP12、P1
3、P24、P34、P43、P42、P31及びP2
1は各々一つのカーブのためのエンド制御ポイントと、
一つのカーブのための曲率制御ポイントである。パッチ
のエリアを決定するために(レンダリングのためにパッ
チを分割しなければならない多角形の数を計算するため
に)、パッチ内のベジエ・カーブの二つに対してエンド
制御ポイントとなる四つのポイント(すなわち、図32
の例においてポイントP11、P14、P44及びP4
1)が連結され、得られた多角形のエリアが計算され
る。別の方法として、制御ポイントの他の組み合わせが
連結されて多角形を形成し、得られたエリアが計算、加
算されて全体のパッチのエリアが得られる。例えば、全
て16個の制御ポイントが図32に示すように連結で
き、得られた9個の多角形のエリアが計算され、全て合
計される。さらなる例において、二つのカーブに対する
エンド制御ポイントとなる四つのポイント(P11、P
14、P44、P41)と、二つのカーブに対する曲率
制御ポイントとなる四つのポイント(P22、P23、
P33、P32)が連結され、得られた5個の多角形の
エリアが計算され、全て合計される。
【0312】さらに、エリア以外のサイズ・パラメータ
がパラメータ的面パッチの細分割深さを決定するのに使
用できる。例えば、図32に示したベジエ・パッチを参
照して、レンダリングのための多角形の数がポイントP
11とP44間の距離及び/又はポイントP14とP4
1間の距離に依存して決定できる。
【0313】上述した実施の形態のように、レンダング
のためにパラメータ的面パッチに分割される多角形の数
が、エリアだけでなくパッチの曲率に依存して、又は曲
率のみに依存して決定できる。EP−A−059666
7が、パッチの曲率に依存してパラメータ的面パッチに
分割される多角形の数を決定するのに使用できる方法を
開示している。
【0314】上述した実施の形態のように、モデルを形
成する各面パッチが同じ面パッチに細分割でき、また得
られた多角形を、画像データの将来のフレームのレンダ
リングの深さを同じにするように使用するために記憶さ
れる。
【0315】上述の実施の形態において、各三角形が図
19に関してこれまでに説明したようにしてモザイクす
るために分割される。しかし、各三角形は他の方法でも
分割できる。
【0316】上述した実施の形態において、ステップS
366(図18)において、三角形が分割されるとき
に、ノーマルが元の三角形の頂点からのノーマルの線形
内挿(補間)法を使用して各新しい頂点が計算される。
このノーマルは続いてステップS368において使用さ
れ、三角形のリファインされた代表中の頂点として使用
される元の三角形の表面から少し離れたポイントの位置
を決定する。しかし、ノーマルは、線形内挿法以外の技
術を使用してステップS366において計算できる。例
えば、角度内挿法が各頂点のノーマルに対して実行でき
る。この種の内挿法は、例えばコンピュータ・グラフィ
ックス・プロシーディングス、SIGGRAPH (1995)、J. Av
roによる「球体三角形の層化抽出法」、437-438頁に開
示されている技術に基づいている。
【0317】上述の実施の形態のステップS364(図
18)において計算されたバーンスタイン−ベジエ・パ
ッチの高さは、定数に応じて決定され高さが増減する。
この定数の効果は、いかにして、リファインされた表面
を元のオブジェクトの形状に近接して合わせるか制御す
る。従って、例えば、オブジェクトを描くアーチスト
は、定数と、オブジェクト面が取らなければならない形
状を表わしているオブジェクトと関連付けることができ
る。例を挙げると、球体からなるオブジェクトは、三角
形によって大まかに近似させれば、立方体として現れ
る。これにアドレスするために、上述の実施の形態にお
いて、1.267927822449の定数が、オブジェクトと関連
し、ステップS364で計算された高さをリファインす
るのに使用され、モデルが本来意図していた球体により
近似するようにリファインされる。
【0318】上述の実施の形態において、ステップS4
02からS408(図22A,22B)において、「ス
テッチング」三角形が発生され、「エッジ・ノーマル不
明瞭」フラグがセットされているが、「キープ・エッ
ジ」フラグがセットされていない各対のエッジ間のギャ
ップを埋める。しかし、これらのステッチング三角形
は、走査変換が実行された後で発生される。さらに、別
の技術がステッチング角度のための必要条件を完全に阻
止するのに使用できる。より詳しく説明すると、「キー
プ・エッジ」フラグではなく、「エッジ・ノーマル不明
瞭」フラグがセットされた二つの三角形間のギャップ
(図21(d)に示したように)が、次の理由で生じて
くる: (i)エッジに沿った少なくとも一つの内側制御ポイン
トの縦座標の値が、ステップS262(図11)で計算
され、直近の頂点のノーマルが少なくとも一つの頂点に
対する二つの三角形につき異なるので、エッジを共用す
る各三角形では異なる; (ii)ステップS368(図18)において、エッジ上
の少なくとも一つの内側制御ポイントのための新しい頂
点の位置は、エッジを共用する二つの三角形につき異な
るように計算されるが、これはステップS368で測定
された距離が、各三角形が少なくとも一つの頂点におい
て異なるノーマルを有しているので、ステップS366
における二つの三角形につき異なるように計算される。
【0319】従って、ステップS262において、エッ
ジを共用する二つの三角形間のギャップの生じるのを阻
止するために、直近頂点を通過するタンジェント平面の
制御ポイントからの距離が、第1三角形のノーマルと、
直近頂点における第2三角形のノーマルの平均に平行な
方向に測定される。この方法において、エッジのために
計算された縦座標が、各三角形につき同じである。従っ
て、ステップS364(図18)において、バーンスタ
イン−ベジエ・パッチの高さは、各三角形につき同じに
なる。加うるに、ノーマルはステップS366におい
て、エッジの一端の頂点における二つの三角形のノーマ
ルの平均と、エッジの他端の頂点における二つの三角形
のノーマルの平均を内挿法によって計算でき、これによ
って新しい頂点の位置がステップS368において、エ
ッジを共用する三角形の各々が同じように計算される。
この方法において、ギャップはエッジに沿って現れな
い。このアプローチは、エッジを共用する三角形のリフ
ァインメントが互いに交差し合う面となる場合、上述の
実施の形態で生じた不必要な「ステッチング」三角形が
発生しないという利点がある(従って、ギャップは実際
に発生しない)。
【0320】上述の実施の形態において、照明パッチ
が、各三角形のための明度値を計算するのに使用される
か否かが、モデルのモザイクの深さに依存して決定され
る(図27AのステップS462)。これの代わりに、
又はこれに加えて、照明パッチの使用はモデル内のそれ
ぞれの三角形の表面の曲率に依存して決定できる。
【0321】上述の実施の形態のステップS466にお
いて、照明パッチが明度値の計算に使用されないとき
は、(モデルが深さ3又はこれ以下でモザイクされるの
で)、各元の頂点及び各モザイク頂点における各色要素
の値が計算される。しかし、各モザイク頂点の値を計算
する代わりに、一つ又はそれ以上の元の頂点において計
算された値を内挿して、モザイク頂点における値を発生
させることが可能である。これは、エッジの各端におけ
る頂点の計算された値が内挿された場合に、フラット・
エッジ上の制御ポイントに対応するモザイク頂点に対し
て特にうまく作用する。
【0322】アプリケーションが低品質の照明を大目に
見ることができれば、照明パッチは明度値を計算するの
に使用する必要はなく、またその代わりにモザイクによ
って発生された各頂点における色が、元の頂点において
計算された色から線形内挿法によって計算できる。さら
に、これは増大するコンピュータ操作の実行を許容す
る。より詳しく説明すると、縦座標は上述の実施の形態
のようにオブジェクト・スペース三角形データから計算
できるが、むしろ各三角形をリファインするというより
は、上述の実施の形態のようにオブジェクト・スペース
内で新しい頂点を発生させる。この新しい頂点はビュー
イング・スペース(カメラ・スペース)内で発生させる
ことができる。この方法において、新しい頂点はオブジ
ェクト・スペースからビューイング・スペースに変換す
る必要はなく、性能上の増大をもたらす。
【0323】上述の実施の形態の説明では述べていない
が、テクスチャ・マッピングが実行できる。例えば、三
角形の頂点において規定されたテクスチャ座標が、重心
座標を使用して内挿でき、これと同時にモザイク形成
中、新しい頂点の生成されモザイク頂点におけるテクス
チャ座標が規定される。
【0324】上述の実施の形態において、新しい頂点の
位置が計算されるときに、ステップS364において、
バーンスタイン−ベジエ・パッチの高さが、高さの計算
された元の三角形上の各頂点に対する3次バーンスタイ
ン−ベジエ三角形パッチ式を評価することによって、計
算される。同様にして、照明パッチを使用する明度値が
計算されるときに、ステップS554において、元の三
角形上方のバーンスタイン−ベジエ照明パッチの高さ
が、高さの計算された元の三角形上の各頂点に対する3
次バーンスタイン−ベジエ照明パッチ式を評価すること
によって、計算される。しかし、ステップS364とス
テップS554両者において、バーンスタイン−ベジエ
三角形パッチの高さは、例えば、Addison-Wesley Publi
shing Company 出版、ISBN 0-201-12110-7、Foley,van
Dam, Feiner and Hughesによる「コンピュータ・グラフ
ィックス・プリンシプルズ・アンド・プラクティス」第
2版、511−513頁に開示された従来の前進差分法
を用いて元の三角形上の連続ポイントにつき計算するこ
とができる。この種の前進差分法で使用するためのパラ
メータを次に説明する。
【0325】ステップS364において使用するパラメ
ータについてまず説明する。
【0326】図25に関して前述したように、三角形の
エッジと平行に移動するとき、三角形頂点の重心座標の
一つが、一定に保たれる。例えば、図25において、重
心座標(4,0,0)と(0,0,4)を有する頂点に
よって規定されたエッジに沿ったポイント間を移動する
ときと、このエッジと平行な方向にあるポイント間を移
動するとき、第2重心座標が一定になる。すなわち、τ
2が一定になる。τ1+τ2+τ3=1であるから、τ2
cにセットすると、τ1=1−c−τ3が得られる。従っ
て、式(6)は次のようになる:
【0327】
【数18】 式(18)を整理すると、次式を得る:
【0328】
【数19】 ここで、b300=b030=b003=0。従って、式(19)は
次のように簡略化される:
【0329】
【数20】 式(20)はフォームf(τ3)=Aτ3 3+Bτ3 2+C
τ3+Dの3次多項式である。再度cをτ2で置換する
と、f(τ3)の係数は次のようになる:
【0330】
【数21】 式(20)がτ3の3次多項式であるので、定数τ2と定
数τ3のために、次の開始値を用いて階段(ステップ)
δ3に前進差分できる:
【0331】
【数22】 さらに、B、C及びDも定数τ2のために、次の開始値
を用いて階段(ステップ)δ2に前進差分できる:
【0332】
【数23】 これがステップS364において前進差分を実行するた
めのパラメータの終了になる。
【0333】ステップS554において前進差分を実行
するのに使用するためのパラメータについて次に説明す
る。
【0334】照明(イルミネーション)パッチ・アルゴ
リズムに対して、b300, b030及びb0 03は一般的に0では
ない。従って、照明パッチに対して前進差分を適用する
ために、式(19)が使用される。式(19)はフォー
ムf(τ3)=Aτ3 3+Bτ3 2+Cτ3+Dの3次多項式
である。再度cをτ2で置換すると、f(τ3)の係数は
次のようになる:
【0335】
【数24】 式(24)がτ3の3次多項式であるので、定数τ2及び
τ3のために、式(22)を用いて階段(ステップ)δ3
に前進差分できる。
【0336】同様に、B、C及びDも定数τ2のため
に、次の開始値を用いて階段(ステップ)δ2に前進差
分できる:
【0337】
【数25】 上述の実施の形態において、処理がプログラム指令によ
って規定された処理ルーチンを使用してコンピュータに
よって実行される。しかし、処理の一部又は全部はハー
ドウエアを用いて実行される。
【0338】
【発明の効果】以上説明したように本発明によれば、多
角形からなる面の第1モデルが、複数の面パッチを介し
て、多角形からなる面の第2モデルに変換される3次元
オブジェクト面の画像をレンダリングするのに使用する
処理装置又は方法を提供することができる。
【0339】また本発明によれば、そのパラメータ状面
パッチが曲面のモデルを形成する多角形の少なくともい
くつかのために規定され、その面に近似する多数のより
小さい多角形が面パッチを用いて生成される処理方法又
は装置を提供することができる。
【0340】又本発明によれば、3次元の曲面をより優
れたモデルにできるという効果がある。
【0341】更に本発明によれば、3次元面のモデルを
レンダリングするのに使用するための明度値を規定する
面パッチを計算する装置又は方法を提供することができ
る。
【図面の簡単な説明】
【図1】本実施の形態の機能要素を示すブロック図であ
る。
【図2A】本実施の形態において実行される全体の処理
動作を示すフローチャートである。
【図2B】本実施の形態において実行される全体の処理
動作を示すフローチャートである。
【図3】図2AのステップS4において実行される処理
動作を示すフローチャートである。
【図4A】図2AのステップS6において実行される処
理動作を示すフローチャートである。
【図4B】図2のステップS6において実行される処理
動作を示すフローチャートである。
【図5A】図4BのステップS110において実行され
る処理動作を示すフローチャートである。
【図5B】図4BのステップS110において実行され
る処理動作を示すフローチャートである。
【図6】図5において実行される、動作を示すエッジを
共用する三角形の例を示す図である。
【図7A】図4BのステップS112において実行され
る処理動作を示すフローチャートである。
【図7B】図4BのステップS112において実行され
る処理動作を示すフローチャートである。
【図8】ステップS110とS112が実行された後、
フラグ・セットに依存して修正された三角形の例を示す
図である。
【図9】図2AのステップS8において実行される処理
動作を示すフローチャートである。
【図10】三角形の3次バーンスタイン−ベジエ三角形
パッチを規定するのに使用される三角形の制御ポイント
とその重心座標を示す図である。
【図11】図9のステップS234において実行される
処理動作を示すフローチャートである。
【図12】図11のステップS262において計算され
る距離を概略的に示す図である。
【図13】図11のステップS262において実行され
る処理動作を示すフローチャートである。
【図14】三角形のためのエッジ・フラグ・セットに依
存して三角形のために規定された三角形及びバーンスタ
イン−ベジエ三角形パッチの例を示す図である。
【図15A】図2AのステップS16において実行され
る処理動作を示すフローチャートである。
【図15B】図2AのステップS16において実行され
る処理動作を示すフローチャートである。
【図16】図15AのステップS306において実行さ
れる処理動作を示すフローチャートである。
【図17】そ図16のステップS346とS350にお
いて使用されるルックアップ・テーブルを示す図であ
る。
【図18】図15BのステップS316において実行さ
れる処理動作を示すフローチャートである。
【図19】モザイクのために深さ2、深さ3及び深さ4
にそれぞれ分割された三角形の例を示す図である。
【図20】新しい頂点の位置が図18のステップS36
8においてどのように計算されるかを示す図である。
【図21】図15BのステップS316において実行さ
れる動作によってより小さい三角形にリファインされた
三角形の例を示す図である。
【図22A】図15BのステップS318において実行
される処理動作を示すフローチャートである。
【図22B】図15BのステップS318において実行
される処理動作を示すフローチャートである。
【図23】三角形のモザイク例を説明する図である。
【図24】図22AのステップS398において実行さ
れる処理動作を示すフローチャートである。
【図25】深さ4にモザイクされた三角形のための制御
ポイントと、各制御ポイントのための重心座標を示す図
である。
【図26】図22BのステップS406において実行さ
れる処理動作を説明する図である。
【図27A】図2AのステップS18において実行され
る処理動作を示すフローチャートである。
【図27B】図2AのステップS18において実行され
る処理動作を示すフローチャートである。
【図28】図27BのステップS474において実行さ
れる処理動作を示すフローチャートである。
【図29】図28のステップS506において実行され
る処理操作の効果例を示す図である。
【図30】図28のステップS510において実行され
る処理動作を示すフローチャートである。
【図31】図27BのステップS476において実行さ
れる処理動作を示すフローチャートである。
【図32】ベジエ・パッチを規定する制御ポイントを示
す図である。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 9902514.0 (32)優先日 平成11年2月4日(1999.2.4) (33)優先権主張国 イギリス(GB) (72)発明者 ホルガー ハインリッヒ グリューン イギリス国 ジーユー2 5ワイジェイ サリー, ギルドフォード, サリー リ サーチ パーク, オッカムロード, オ ッカム コート 1 キヤノン リサーチ センター ヨーロッパ リミテッド内

Claims (172)

    【特許請求の範囲】
  1. 【請求項1】 3次元曲面の少なくとも一部に近似する
    第1多角形を規定するデータを処理し、面の画像をレン
    ダリングするのに使用するための第2多角形を生成する
    方法であって、 各第1多角形について、 それぞれの面パッチを規定し、第1多角形によって表わ
    されたオブジェクト面の一部に近似させる工程と;第1
    多角形を複数の概念上の多角形に分割する工程と;各概
    念上の多角形に対して、第1多角形の面パッチを使用し
    てレンダリングするための前記第2多角形を規定し、第
    2多角形の頂点の位置を3次元内に決定する工程と;を
    有することを特徴とする方法。
  2. 【請求項2】 3次元曲面に近似する第1多角形が三角
    形であり、バーンスタイン−ベジエ三角形パッチが各第
    1多角形のための面パッチとして規定されることを特徴
    とする請求項1に記載の方法。
  3. 【請求項3】 3次バーンスタイン−ベジエ三角形パッ
    チが、各第1多角形のために規定されることを特徴とす
    る請求項2に記載の方法。
  4. 【請求項4】 第1多角形のための面パッチを規定する
    工程が、前記第1多角形の制御ポイントにおける制御値
    を計算して面パッチを規定する工程を含むことを特徴と
    する請求項1乃至3のいずれか1項に記載の方法。
  5. 【請求項5】 前記第1多角形の各頂点の制御値がゼロ
    にセットされることを特徴とする請求項4に記載の方
    法。
  6. 【請求項6】 頂点以外のエッジに沿った制御ポイント
    の制御値が、所定方向内の直近頂点におけるタンジェン
    ト平面の制御ポイントからの距離を決定することによっ
    て計算されることを特徴とする請求項4又は5に記載の
    方法。
  7. 【請求項7】 前記所定方向が直近頂点のみにおける法
    線の方向に基づくことを特徴とする請求項6に記載の方
    法。
  8. 【請求項8】 前記所定方向が、制御ポイントが位置す
    るエッジの両端を規定する各頂点の法線に基づくことを
    特徴とする請求項6に記載の方法。
  9. 【請求項9】 各面パッチがヘロン(Herron)パッチであ
    ることを特徴とする請求項1に記載の方法。
  10. 【請求項10】 第1多角形を概念的多角形に分割する
    工程において、当該分割が画像データの前回フレーム内
    の前記第1多角形のサイズと、画像データの現フレーム
    内の前記第1多角形のサイズと、前記第1多角形の曲率
    と、画像データの前回フレーム内のビューイング位置か
    らの前記第1多角形の距離と、画像データの現フレーム
    内のビューイング位置からの前記第1多角形の距離の少
    なくとも一つに依存して実行されることを特徴とする請
    求項1乃至9のいずれか1項に記載の方法。
  11. 【請求項11】 各第1多角形が概念的多角形の同数に
    分割されることを特徴とする請求項1乃至10のいずれ
    か1項に記載の方法。
  12. 【請求項12】 概念的多角形の数が、各第1多角形を
    テストし、概念的多角形の数を規定するための数に分割
    し、最高の分割数を選択することによって決定すること
    を特徴とする請求項11に記載の方法。
  13. 【請求項13】 処理が、発生されるべき画像データの
    各フレームのために実行され、概念的多角形の数を規定
    する細分割のレベルが決定され、この数に各第1多角形
    が分割され;レンダリングのために生成された第2多角
    形を規定するデータが、未だ記憶されていないデータの
    ための細分割のレベルのためにそれが発生されたときの
    将来の使用のために記憶され;画像データのフレーム
    が、既に記憶されたデータのための細分割のレベルのた
    めに発生されるべきときに使用されることを特徴とする
    請求項11又は12に記載の方法。
  14. 【請求項14】 各前記第2多角形が三角形であること
    を特徴とする請求項1乃至13のいずれか1項に記載の
    方法。
  15. 【請求項15】 概念的多角形のための第2多角形を規
    定する工程において、前記第2多角形の頂点が、前記概
    念的多角形の各頂点上方の面パッチの距離に依存して計
    算されることを特徴とする請求項1乃至14のいずれか
    1項に記載の方法。
  16. 【請求項16】 概念的多角形のための第2多角形を規
    定する工程において、前記第2多角形の頂点が、 (i) 前記概念的多角形の各頂点上方の面パッチの距
    離を計算する工程と; (ii) 前記概念的多角形の各頂点における法線を計算
    する工程と; (iii) 前記概念的多角形の各頂点に対して、工程
    (i)で計算された距離と、工程(ii)で計算された法線
    の距離とに等しい概念的多角形の頂点からの距離にある
    ポイントにおいて前記第2多角形のための頂点の位置を
    セットする工程と;によって計算されることを特徴とす
    る請求項15に記載の方法。
  17. 【請求項17】 前進差分技術が各概念的多角形の上方
    の面パッチの距離を計算するのに使用されることを特徴
    とする請求項16に記載の方法。
  18. 【請求項18】 レンダリングのために発生された前記
    第2多角形間のギャップを満たす工程をさらに含むこと
    を特徴とする請求項1乃至17のいずれか1項に記載の
    方法。
  19. 【請求項19】 前記ギャップがレンダリングのために
    発生された前記第2多角形の頂点の移動によって満たさ
    れることを特徴とする請求項18に記載の方法。
  20. 【請求項20】 前記ギャップが前記第2多角形の頂点
    を連結し、レンダリングのためのさらなる多角形を形成
    することによって満たされることを特徴とする請求項1
    8又は19に記載の方法。
  21. 【請求項21】 満たされるべきギャップが、前記各第
    1多角形の各頂点のために、エッジを共用する第1多角
    形の各頂点における法線間の関係を規定するデータベー
    スを使用して識別されることを特徴とする請求項18乃
    至20のいずれか1項に記載の方法。
  22. 【請求項22】 面パッチを規定する工程がオブジェク
    ト・スペース内のデータを処理することによって実行さ
    れ、前記第2多角形を規定する工程がビューイング・ス
    ペース内で実行されることを特徴とする請求項1乃至2
    1のいずれか1項に記載の方法。
  23. 【請求項23】 周囲光、分散光及び鏡面光の少なくと
    も一つのための多角形照明式を評価することによって前
    記各第2多角形のための明度値を計算する工程をさらに
    含むことを特徴とする請求項1乃至22のいずれか1項
    に記載の方法。
  24. 【請求項24】 多角形照明式を評価し、前記第1多角
    形の少なくともいくつかのためのそれぞれ第2面パッチ
    を規定し、また明度値が前記第2面パッチを使用して前
    記第2多角形について計算されることを特徴とする請求
    項23に記載の方法。
  25. 【請求項25】 明度値を計算する工程において、各面
    パッチに分割される概念上の多角形の数が決定され、ま
    た: (i) 前記概念上の多角形の数が所定数より少なけれ
    ば、前記明度値は各頂点につき照明式を評価することに
    よって前記第2多角形の各頂点につき計算され; (ii) 前記概念上の多角形の数が所定数より多けれ
    ば、それぞれ第2面パッチは各頂点につき計算され、ま
    た前記明度値は前記第2面パッチを使用して前記第2多
    角形の各頂点につき計算されることを特徴とする請求項
    23又は24に記載の方法。
  26. 【請求項26】 第1多角形のための第2面パッチを計
    算する工程が: (i) 前記第1多角形のための複数の制御ポイントに
    おける明度値を計算する照明式を評価する工程と; (ii) 前記面パッチが、前記制御ポイントにおいて計
    算された明度値を内挿するように前記第2面パッチを規
    定する値を計算する工程と;を含むことを特徴とする請
    求項24又は25に記載の方法。
  27. 【請求項27】 第2面パッチを使用して第2多角形の
    頂点のための明度値を計算する工程において、前記明度
    値は、その明度値の計算されるべき頂点に対応する概念
    上の多角形の頂点における前記第1多角形の上方の前記
    第2面パッチの高さを使用して計算されることを特徴と
    する請求項24乃至26のいずれか1項に記載の方法。
  28. 【請求項28】 前進差分技術が各概念上の多角形の各
    頂点上方の第2面パッチの高さを計算するのに使用され
    ることを特徴とする請求項27に記載の方法。
  29. 【請求項29】 前記第2多角形を変換する信号を発生
    する工程をさらに含むことを特徴とする請求項1乃至2
    8のいずれか1項に記載の方法。
  30. 【請求項30】 レンダリングされた画像データを生成
    する工程をさらに含むことを特徴とする請求項1乃至2
    9のいずれか1項に記載の方法。
  31. 【請求項31】 レンダリングされた画像データを変換
    する信号を発生する工程をさらに含むことを特徴とする
    請求項30に記載の方法。
  32. 【請求項32】 信号を記録する工程をさらに含むこと
    を特徴とする請求項31に記載の方法。
  33. 【請求項33】 レンダリングされた画像データを使用
    して画像を表示する工程をさらに含むことを特徴とする
    請求項30乃至32のいずれか1項に記載の方法。
  34. 【請求項34】 画像データの記録を直接的又は間接的
    に行なう工程をさらに含むことを特徴とする請求項30
    乃至33のいずれか1項に記載の方法。
  35. 【請求項35】 オブジェクトの画像をレンダリングす
    るのに使用する3次元オブジェクトの面の少なくとも一
    つに近似する多角形を生成する方法において:面の初期
    多角形モデルが、前記面を近似する面パッチのメッシュ
    を生成するように処理され;前記面の更なる多角形モデ
    ルが前記面パッチを使用して生成されることを特徴とす
    る方法。
  36. 【請求項36】 3次元曲面の少なくとも一部に近似す
    る第1多角形を規定するデータを処理し、面の画像をレ
    ンダリングするのに使用するための第2多角形を生成す
    る装置であって、 それぞれの面パッチを規定し、前記第1多角形によって
    表わされたオブジェクト面の一部に近似させるパッチ規
    定手段と;前記第1多角形のそれぞれを複数の概念的多
    角形に分割する分割手段と;前記概念的多角形のそれぞ
    れに対して、対応する第1多角形の前記面パッチを使用
    してレンダリングするための前記第2多角形を規定し、
    当該第2多角形の頂点の位置を3次元内に決定する多角
    形規定手段と;を有することを特徴とする装置。
  37. 【請求項37】 前記3次元曲面に近似する前記第1多
    角形が三角形であり、前記パッチ規定手段が、各第1多
    角形のための面パッチとしてバーンスタイン−ベジエ三
    角形パッチを規定するように作動することを特徴とする
    請求項36に記載の装置。
  38. 【請求項38】 前記パッチ規定手段が、各第1多角形
    のために3次バーンスタイン−ベジエ三角形パッチを規
    定するように作動することを特徴とする請求項37に記
    載の装置。
  39. 【請求項39】 前記パッチ規定手段が、制御ポイント
    において、前記第1多角形の制御ポイントにおける制御
    値を計算して面パッチを規定する手段を含むことを特徴
    とする請求項36乃至38のいずれか1項に記載の装
    置。
  40. 【請求項40】 前記パッチ規定手段が、前記第1多角
    形の各頂点の前記制御値をゼロにセットするように構成
    されていることを特徴とする請求項39に記載の装置。
  41. 【請求項41】 前記パッチ規定手段が、所定方向内の
    直近頂点におけるタンジェント平面の制御ポイントから
    の距離が決定される頂点以外のエッジに沿った制御ポイ
    ントのための制御値を計算するように構成されることを
    特徴とする請求項39又は40に記載の装置。
  42. 【請求項42】 前記所定方向が、直近頂点のみにおけ
    る法線の方向に基づくことを特徴とする請求項41に記
    載の装置。
  43. 【請求項43】 前記所定方向が、制御ポイントが位置
    するエッジの両端を規定する各頂点の法線に基づくこと
    を特徴とする請求項41に記載の装置。
  44. 【請求項44】 前記パッチ規定手段が、各第1多角形
    のためのヘロン(Herron)パッチを規定するように作動可
    能であることを特徴とする請求項36に記載の装置。
  45. 【請求項45】 前記分割手段が、 画像データの前回フレーム内の前記第1多角形のサイズ
    と、画像データの現フレーム内の前記第1多角形のサイ
    ズと、前記第1多角形の曲率と、画像データの前回フレ
    ーム内のビューイング位置からの前記第1多角形の距離
    と、画像データの現フレーム内のビューイング位置から
    の前記第1多角形の距離の少なくとも一つに依存して実
    行されるように構成されていることを特徴とする請求項
    36乃至44のいずれか1項に記載の装置。
  46. 【請求項46】 前記各第1多角形が概念的多角形と同
    じ数に分割されることを特徴とする請求項36乃至45
    のいずれか1項に記載の装置。
  47. 【請求項47】 前記分割手段が、各第1多角形をテス
    トし、概念的多角形の数を規定するための数に分割し、
    最高の分割数を選択することによって決定するように構
    成されていることを特徴とする請求項46に記載の装
    置。
  48. 【請求項48】 処理が、発生されるべき画像データの
    各フレームのために実行され、概念的多角形の数を規定
    する細分割のレベルが決定され、この数に各第1多角形
    が分割され;レンダリングのために生成された前記第2
    多角形を規定するデータが、未だ記憶されていないデー
    タのための細分割のレベルのためにそれが発生されたと
    きの将来の使用に記憶され;前記記憶データが、画像デ
    ータのフレームが既に記憶されたデータを細分割のレベ
    ルのために発生されるときに使用されるように作動可能
    なことを特徴とする請求項46又は47に記載の装置。
  49. 【請求項49】 各前記第2多角形が三角形である請求
    項36乃至48のいずれか1項に記載の装置。
  50. 【請求項50】 前記多角形規定手段が、前記概念的多
    角形の頂点上方の面パッチの距離に依存して前記各第2
    多角形のための頂点を計算するように構成されたことを
    特徴とする請求項36乃至48のいずれか1項に記載の
    装置。
  51. 【請求項51】 前記多角形規定手段が、 (i)前記概念的多角形の各頂点上方の面パッチの距離
    を計算する手段と; (ii)前記概念的多角形の各頂点における法線を計算す
    る手段と; (iii)前記概念的多角形の各頂点に対して、前記手段
    (i)で計算された距離と、前記手段(ii)で計算された
    法線の距離とに等しい前記概念的多角形の頂点からの距
    離にある点において前記第2多角形のための頂点の位置
    をセットする手段と;を有することを特徴とする請求項
    50に記載の装置。
  52. 【請求項52】 前記各概念的多角形の各頂点上方の面
    パッチの距離を計算するための手段が、前進差分技術を
    使用して距離を計算するように構成されていることを特
    徴とする請求項51に記載の装置。
  53. 【請求項53】 レンダリングのために発生された前記
    第2多角形間のギャップを満たすための手段をさらに含
    むことを特徴とする請求項36乃至52のいずれか1項
    に記載の装置。
  54. 【請求項54】 前記ギャップを満たす手段が、レンダ
    リングのために発生された前記第2多角形の頂点の移動
    によってギャップを満たすように構成されていることを
    特徴とする請求項53に記載の装置。
  55. 【請求項55】 前記ギャップを満たす手段が、前記第
    2多角形の頂点を連結し、レンダリングのためのさらな
    る多角形を形成することによってギャプを満たすように
    構成されたことを特徴とする請求項53又は54に記載
    の装置。
  56. 【請求項56】 前記ギャップを満たす手段が、各第1
    多角形のために、エッジを共用する前記第1多角形の各
    頂点における法線間の関係を規定するデータベースを使
    用して識別される手段を含むことを特徴とする請求項5
    3乃至55のいずれか1項に記載の装置。
  57. 【請求項57】 前記パッチ規定手段が、オブジェクト
    ・スペース内のデータを処理することによって面パッチ
    を規定するように構成され、前記多角形規定手段がビュ
    ーイング・スペース内で処理を実行することによって前
    記第2多角形を規定するように構成されていることを特
    徴とする請求項36乃至56のいずれか1項に記載の装
    置。
  58. 【請求項58】 周囲光、分散光及び鏡面光の少なくと
    も一つのための多角形照明式を評価することによって前
    記各第2多角形のための明度値を計算する手段を更に含
    むことを特徴とする請求項36乃至57のいずれか1項
    に記載の装置。
  59. 【請求項59】 前記明度値を計算するための手段が、
    前記多角形照明式を評価して前記第1多角形の少なくと
    もいくつかのためのそれぞれの第2面パッチを規定し、
    また前記第2面パッチを使用して前記第2多角形の明度
    値を計算するように構成されていることを特徴とする請
    求項58に記載の装置。
  60. 【請求項60】 前記明度値を計算する手段が、各面パ
    ッチに分割される前記概念的多角形の数を決定するよう
    に構成されており、また: (i)前記概念的多角形の数が所定数より少なければ、
    前記明度値を各頂点につき照明式を評価することによっ
    て前記第2多角形の各頂点につき計算し; (ii)前記概念的多角形の数が所定数より多ければ、そ
    れぞれ第2面パッチを各頂点につき計算し、また前記明
    度値を前記第2面パッチを使用して前記第2多角形の各
    頂点につき計算することを特徴とする請求項58又は5
    9に記載の装置。
  61. 【請求項61】 前記明度値を計算する手段は、 (i)第1多角形のための複数の制御ポイントにおける
    明度値を計算する照明式を評価し; (ii)前記面パッチが前記制御ポイントにおいて計算さ
    れた明度値を内挿するように前記第2面パッチを規定す
    る値を計算することによって前記第1多角形のための前
    記第2面パッチを計算するように構成されていることを
    特徴とする請求項59又は60に記載の装置。
  62. 【請求項62】 前記明度値を計算する手段が、 第2面パッチを使用して処理を実行し、明度値の計算さ
    れるべき頂点に対応する概念的多角形の頂点における前
    記第1多角形の上方の前記第2面パッチの高さを使用し
    て前記明度値を計算するように構成されていることを特
    徴とする請求項59乃至61のいずれか1項に記載の装
    置。
  63. 【請求項63】 前記明度値を計算する手段が、前進差
    分技術を使用して、各概念的多角形の各頂点上方の第2
    面パッチの高さを計算するのに使用されるように構成さ
    れていることを特徴とする請求項62に記載の装置。
  64. 【請求項64】 レンダリングされた画像データを生成
    する手段をさらに含むことを特徴とする請求項36乃至
    63のいずれか1項に記載の装置。
  65. 【請求項65】 レンダリングされた画像データを使用
    して画像を表示する手段をさらに含むことを特徴とする
    請求項64に記載の装置。
  66. 【請求項66】 オブジェクトの画像をレンダリングす
    るのに使用する3次元オブジェクトの面の少なくとも一
    つに近似する多角形を生成する装置において:面の初期
    多角形モデルを処理し、前記面に近似する面パッチのメ
    ッシュを生成する手段と;前記面のさらなる多角形モデ
    ルを前記面パッチを使用して生成する手段と;を有する
    ことを特徴とする装置。
  67. 【請求項67】 プログラムにより制御可能な処理装置
    に、請求項1乃至35のいずれか1項で説明された方法
    を実行させるためのコンピュータ使用可能命令を記憶す
    ることを特徴とする記憶デバイス。
  68. 【請求項68】 プログラムにより制御可能な処理装置
    に、請求項1乃至35のいずれか1項で説明された方法
    を実行させることを特徴とする信号搬送コンピュータ使
    用可能インストラクション。
  69. 【請求項69】 3次元オブジェクトのコンピュータ・
    モデル内の多角形のための明度値を計算する方法であっ
    て: (a)多角形のための複数の制御ポイントの各々におけ
    る明度値を計算する工程と; (b)前記制御ポイントにおいて計算された明度値を内
    挿処理して面パッチを規定する工程と; (c)前記面パッチを使用して複数のさらなるポイント
    の各々のための明度値を計算する工程と;を有すること
    を特徴とする方法。
  70. 【請求項70】 前記多角形が三角形であり、また、バ
    ーンスタイン−ベジエ三角形パッチが多角形の面パッチ
    として規定されることを特徴とする請求項69に記載の
    方法。
  71. 【請求項71】 3次バーンスタイン−ベジエ三角形パ
    ッチが、前記多角形のための前記面パッチとして規定さ
    れることを特徴とする請求項70に記載の方法。
  72. 【請求項72】 ヘロン・パッチが、前記多角形のため
    の前記面パッチとして規定されることを特徴とする請求
    項69に記載の方法。
  73. 【請求項73】 前記制御ポイントにおける明度値を計
    算する工程において、明度値が、周囲光、分散光及び鏡
    面光の少なくとも一つのために照明式を評価することに
    よって計算されることを特徴とする請求項69乃至72
    のいずれか1項に記載の方法。
  74. 【請求項74】 前記制御ポイントは前記多角形の頂点
    を含んでいることを特徴とする請求項69乃至73のい
    ずれか1項に記載の方法。
  75. 【請求項75】 前記面パッチを使用して計算される前
    記明度値のためのさらなるポイントが、前記オブジェク
    トの面と近似するさらなる多角形の頂点であることを特
    徴とする請求項69乃至74のいずれか1項に記載の方
    法。
  76. 【請求項76】 前記さらなるポイントの少なくともい
    くつかが、前記多角形内にあることを特徴とする請求項
    75に記載の方法。
  77. 【請求項77】 前記面パッチを使用してさらなるポイ
    ントにおける明度値を計算する工程において、 前記明度値がさらなるポイントの上方の面パッチの高さ
    に依存して計算されることを特徴とする請求項69乃至
    76のいずれか1項に記載の方法。
  78. 【請求項78】 前記明度値がさらなるポイントの上方
    で前記面パッチの高さとして計算されることを特徴とす
    る請求項77に記載の方法。
  79. 【請求項79】 前進差分技術が、さらなるポイントの
    明度値を計算するのに使用されることを特徴とする請求
    項69乃至78のいずれか1項に記載の方法。
  80. 【請求項80】 前記工程(a),(b)及び(c)
    が、複数の色成分につき実行され、各色成分に対するそ
    れぞれ明度値を計算することを特徴とする請求項69乃
    至79のいずれか1項に記載の方法。
  81. 【請求項81】 前記計算された明度値を搬送する信号
    を発生する工程をさらに含むことを特徴とする請求項6
    9乃至80のいずれか1項に記載の方法。
  82. 【請求項82】 レンダリングされた画像データを生成
    する工程をさらに含むことを特徴とする請求項69乃至
    81のいずれか1項に記載の方法。
  83. 【請求項83】 前記レンダリングされた画像データを
    生成する工程において、前記さらなるポイントのために
    計算された明度値が内挿処理されて他のポイントのため
    の明度値を生成することを特徴とする請求項82に記載
    の方法。
  84. 【請求項84】 前記レンダリングされた画像データを
    搬送する信号を発生する工程をさらに含むことを特徴と
    する請求項82又は83に記載の方法。
  85. 【請求項85】 前記信号を記録する工程をさらに含む
    ことを特徴とする請求項84に記載の方法。
  86. 【請求項86】 前記レンダリングされた画像データを
    使用して画像を表示する工程をさらに含むことを特徴と
    する請求項82乃至85のいずれか1項に記載の方法。
  87. 【請求項87】 前記画像データを直接的又は間接的に
    記録する工程をさらに含むことを特徴とする請求項82
    乃至86のいずれか1項に記載の方法。
  88. 【請求項88】 3次元曲面のモデル内で多角形のため
    の明度値を計算する方法であって、 面パッチが多角形のための明度値を規定するように計算
    され、また前記面パッチが内挿処理のための複数の明度
    値を決定するのに使用されることを特徴とする方法。
  89. 【請求項89】 3次元オブジェクトのコンピュータ・
    モデル内の多角形のための明度値を計算する装置であっ
    て: (a)前記多角形のための複数の制御ポイントの各々に
    おける明度値を計算する手段と; (b)前記制御ポイントにおいて計算された明度値を内
    挿処理して面パッチを規定する手段と; (c)前記面パッチを使用して複数のさらなるポイント
    の各々のための明度値を計算する手段と;を有すること
    を特徴とする装置。
  90. 【請求項90】 前記多角形が三角形であり、また前記
    面パッチを規定する手段が、前記多角形の前記面パッチ
    として、バーンスタイン−ベジエ三角形パッチを規定す
    るように動作可能であることを特徴とする請求項89に
    記載の装置。
  91. 【請求項91】 前記面パッチを規定する手段が、前記
    多角形のための前記面パッチとして、3次バーンスタイ
    ン−ベジエ三角形パッチを規定するように作動可能であ
    ることを特徴とする請求項90に記載の装置。
  92. 【請求項92】 前記面パッチを規定する手段が、前記
    多角形のための前記面パッチとしてヘロンパッチを規定
    するように作動することを特徴とする請求項89に記載
    の装置。
  93. 【請求項93】 前記制御ポイントにおける明度値を計
    算する手段が、周囲光、分散光及び鏡面光の少なくとも
    一つに対して照明式を評価することによって明度値を計
    算するように作動可能なことを特徴とする請求項89乃
    至92のいずれか1項に記載の方法。
  94. 【請求項94】 前記制御ポイントが前記多角形の頂点
    を含んでいることを特徴とする請求項89乃至93のい
    ずれか1項に記載の装置。
  95. 【請求項95】 前記面パッチを使用して計算される前
    記明度値のためのさらなるポイントが、前記オブジェク
    トの面と近似するさらなる多角形の頂点であることを特
    徴とする請求項89乃至94のいずれか1項に記載の装
    置。
  96. 【請求項96】 前記さらなるポイントの少なくともい
    くつかが、前記多角形内にあることを特徴とする請求項
    95に記載の装置。
  97. 【請求項97】 前記面パッチを使用してさらなるポイ
    ントにおける明度値を計算する手段が、前記さらなるポ
    イントの上方の前記面パッチの高さに依存して明度値が
    計算されるように動作可能であることを特徴とする請求
    項89乃至96のいずれか1項に記載の装置。
  98. 【請求項98】 前記面パッチを使用してさらなるポイ
    ントにおける明度値を計算する手段が、前記さらなるポ
    イントの上方で前記面パッチの高さとして明度値を計算
    するように動作することを特徴とする請求項97に記載
    の装置。
  99. 【請求項99】 前記面パッチを使用してさらなるポイ
    ントの明度値を計算する手段が、前進差分技術を使用し
    てさらなるポイントの明度値を計算するように動作可能
    であることを特徴とする請求項89乃至98のいずれか
    1項に記載の装置。
  100. 【請求項100】 前記手段(a),(b)及び(c)
    が、複数の色成分のそれぞれについて作動し、各色成分
    に対するそれぞれ明度値を計算するように構成されてい
    ることを特徴とする請求項89乃至99のいずれか1項
    に記載の装置。
  101. 【請求項101】 レンダリングされた画像データを生
    成する手段をさらに含むことを特徴とする請求項89乃
    至100のいずれか1項に記載の装置。
  102. 【請求項102】 前記レンダリングされた画像データ
    を生成する手段が、前記さらなるポイントのために計算
    された明度値を内挿して他のポイントのための明度値を
    生成するように構成されていることを特徴とする請求項
    101に記載の装置。
  103. 【請求項103】 前記レンダリングされた画像データ
    を使用して画像を表示する手段をさらに含むことを特徴
    とする請求項101又は102に記載の装置。
  104. 【請求項104】 3次元曲面のモデル内で多角形のた
    めの明度値を計算する装置であって、 前記多角形のための明度値を規定する面パッチを計算す
    る手段と、 前記面パッチを使用して内挿処理のための複数の明度値
    を決定する手段と、を有することを特徴とする装置。
  105. 【請求項105】 プログラムにより制御可能な処理装
    置に、請求項69乃至88のいずれか1項で説明された
    方法を実行させるためのコンピュータ使用可能命令を記
    憶する記憶デバイス。
  106. 【請求項106】 プログラムにより制御可能な処理装
    置に、請求項69乃至88のいずれか1項で説明された
    方法を実行させるための信号搬送コンピュータ使用可能
    インストラクション。
  107. 【請求項107】 3次元オブジェクト曲面の一部の表
    現を規定するデータを処理し、その表現をレンダリング
    するために複数の多角形に分割する方法であって、 前記多角形の数が表現のエリアに依存して決定されるこ
    とを特徴とする方法。
  108. 【請求項108】 前記多角形の数が、画像データの前
    回フレーム内の表現のエリアに依存して決定されること
    を特徴とする請求項107に記載の方法。
  109. 【請求項109】 前記多角形の数が、レンダリングの
    ために発生された多角形のためのフレームより、直前の
    フレーム内の表現のエリアに依存して決定されることを
    特徴とする請求項108に記載の方法。
  110. 【請求項110】 前記表現のエリアが画像データの前
    回フレーム内でレンダリングされた多角形の頂点の座標
    を使用して決定されることを特徴とする請求項108又
    は請求項109に記載の方法。
  111. 【請求項111】 前記多角形の数が、レンダリングの
    ために発生された前記多角形のための画像データのフレ
    ーム内の表現のエリアに依存して決定されることを特徴
    とする請求項107に記載の方法。
  112. 【請求項112】 前記表現のエリアが、この表現を規
    定するポイントを2次元画像座標系に変換することによ
    って決定されることを特徴とする請求項111に記載の
    方法。
  113. 【請求項113】 前記表現のエリアが、複数の表現を
    制限するボリュームを2次元画像座標系に変換すること
    によって決定されることを特徴とする請求項111に記
    載の方法。
  114. 【請求項114】 前記表現のエリアが、複数の表現の
    平均エリアとして決定されることを特徴とする請求項1
    07乃至113のいずれか1項に記載の方法。
  115. 【請求項115】 前記決定されたエリアが、ルックア
    ップ・テーブルへの入力として使用され、レンダリング
    のために前記多角形の数を表示する値を発生することを
    特徴とする請求項107乃至114のいずれか1項に記
    載の方法。
  116. 【請求項116】 前記多角形の数が、前記表現のエリ
    アと、前記表現の曲率とに依存して決定されることを特
    徴とする請求項107乃至115のいずれか1項に記載
    の方法。
  117. 【請求項117】 前記表現が多角形であることを特徴
    とする請求項107乃至116のいずれか1項に記載の
    方法。
  118. 【請求項118】 前記表現がパラメータ的面パッチで
    あることを特徴とする請求項107乃至116のいずれ
    か1項に記載の方法。
  119. 【請求項119】 前記表現がベジエ・パッチであり、
    また前記エリアがその角を規定する制御ポイントを使用
    して決定されることを特徴とする請求項118に記載の
    方法。
  120. 【請求項120】 前記多角形をレンダリングしてレン
    ダリングされた画像データを生成する工程をさらに含む
    ことを特徴とする請求項107乃至119のいずれか1
    項に記載の方法。
  121. 【請求項121】 前記レンダリングされた画像データ
    を搬送する信号を発生する工程をさらに含むことを特徴
    とする請求項120に記載の方法。
  122. 【請求項122】 前記信号を記憶する工程をさらに含
    むことを特徴とする請求項121に記載の方法。
  123. 【請求項123】 前記レンダリングされた画像データ
    を使用して画像を表示する工程をさらに含むことを特徴
    とする請求項120乃至122のいずれか1項に記載の
    方法。
  124. 【請求項124】 前記画像データの記録を直接的又は
    間接的に行なう工程をさらに含むことを特徴とする請求
    項120乃至123のいずれか1項に記載の方法。
  125. 【請求項125】 オブジェクト面の表現をレンダリン
    グする方法であって、 前記表現のサイズに依存して細分割の深さを決定する工
    程と;前記決定された深さに依存して複数の多角形を発
    生する工程と;を含むことを特徴とする方法。
  126. 【請求項126】 前記サイズが表現のエリアであるこ
    とを特徴とする請求項125に記載の方法。
  127. 【請求項127】 3次元オブジェクト曲面の一部の表
    現を規定するデータを処理し、前記表現をレンダリング
    するために複数の多角形に分割する装置であって、 前記表現のエリアに依存してレンダリングするための多
    角形の数を決定するための数決定手段を含むことを特徴
    とする装置。
  128. 【請求項128】 前記数決定手段が、画像データの前
    回フレーム内の表現のエリアに依存して決定されるよう
    に構成されていることを特徴とする請求項127に記載
    の装置。
  129. 【請求項129】 前記数決定手段が、レンダリングの
    ために発生された前記多角形のためのフレームより、直
    前のフレーム内の表現のエリアに依存して決定するよう
    に構成されていることを特徴とする請求項128に記載
    の装置。
  130. 【請求項130】 前記数決定手段が、前記画像データ
    の前回フレーム内でレンダリングされた前記多角形の頂
    点の座標を使用して前記表現のエリアを決定するように
    構成されていることを特徴とする請求項128又は請求
    項129に記載の装置。
  131. 【請求項131】 前記数決定手段が、レンダリングの
    ために発生された前記多角形のための画像データのフレ
    ーム内の前記表現のエリアに基づいて前記多角形の数を
    決定するように構成されていることを特徴とする請求項
    127に記載の装置。
  132. 【請求項132】 前記数決定手段が、前記表現を規定
    するポイントを2次元画像座標系に変換することによっ
    て前記表現のエリアを決定するように構成されているこ
    とを特徴とする請求項131に記載の装置。
  133. 【請求項133】 前記数決定手段が、複数の表現を制
    限するボリュームを、2次元画像座標系に変換すること
    によって前記表現のエリアを決定するように構成されて
    いることを特徴とする請求項131に記載の装置。
  134. 【請求項134】 前記数決定手段が、複数の表現の平
    均エリアとして前記表現のエリアを決定するように構成
    されていることを特徴とする請求項127乃至133の
    いずれか1項に記載の装置。
  135. 【請求項135】 前記数決定手段が、ルックアップ・
    テーブルへの入力として使用され、レンダリングのため
    の前記多角形の数を表示する値を発生するように構成さ
    れていることを特徴とする請求項127乃至134のい
    ずれか1項に記載の装置。
  136. 【請求項136】 前記数決定手段が、前記表現のエリ
    アと、前記表現の曲率とに依存して前記多角形の数を決
    定するように構成されていることを特徴とする請求項1
    27乃至135のいずれか1項に記載の装置。
  137. 【請求項137】 前記表現が多角形であることを特徴
    とする請求項127乃至136のいずれか1項に記載の
    装置。
  138. 【請求項138】 前記表現がパラメータ的面パッチで
    あることを特徴とする請求項127乃至136のいずれ
    か1項に記載の装置。
  139. 【請求項139】 前記表現がベジエ・パッチであり、
    また前記数決定手段がその角を規定する制御ポイントを
    使用してエリアを決定するように構成されていることを
    特徴とする請求項138に記載の装置。
  140. 【請求項140】 前記多角形をレンダリングしてレン
    ダリングされた画像データを生成する手段をさらに含む
    ことを特徴とする請求項127乃至139のいずれか1
    項に記載の装置。
  141. 【請求項141】 前記レンダリングされた画像データ
    を使用して画像を表示する手段をさらに含むことを特徴
    とする請求項140に記載の装置。
  142. 【請求項142】 オブジェクト面の表現をレンダリン
    グする装置であって、表現のサイズに依存して細分割の
    深さを決定する手段と、前記決定された深さに依存して
    複数の多角形を発生する手段とを含むことを特徴とする
    装置。
  143. 【請求項143】 前記サイズが表現のエリアであるこ
    とを特徴とする請求項142に記載の装置。
  144. 【請求項144】 プログラムにより制御可能な処理装
    置に、請求項107乃至126のいずれか1項で説明さ
    れた方法を実行させるためのコンピュータ使用可能命令
    を記憶する記憶デバイス。
  145. 【請求項145】 プログラムにより制御可能な処理装
    置に、請求項107乃至126のいずれか1項で説明さ
    れた方法を実行させるための信号搬送コンピュータ使用
    可能命令。
  146. 【請求項146】 複数の表現を含む3次元曲面オブジ
    ェクトのモデルを規定するデータを処理して、レンダリ
    ングのための複数の多角形を規定する方法であって、レ
    ンダリングされるべき画像データの各フレームに対し
    て:変換されるべきモデル内の各表現中に多角形数を規
    定する共通深さを決定する工程と;前記共通深さのため
    の多角形を規定するデータが既に記憶されているかどう
    かを判定する工程と;前記共通深さが既に記憶されてお
    れば、次にレンダリングのために前記記憶されたデータ
    を選択し;記憶されていなければ、前記共通深さのため
    の多角形を規定するデータを発生し、レンダリングのた
    めに発生されたデータを選択し、かつ、次の使用のため
    に、発生データを記憶する工程と;を有することを特徴
    とする方法。
  147. 【請求項147】 前記共通深さを決定する工程におい
    て、各表現がテストされその個々の深さを決定し、また
    前記多角形の最も大きい数を規定する個々の深さが、全
    ての表現のための共通深さとして使用されることを特徴
    とする請求項146に記載の方法。
  148. 【請求項148】 前記共通深さを決定する工程におい
    て、全体としてのモデルへのテストが、前記共通深さを
    決定するように実行されることを特徴とする請求項14
    6に記載の方法。
  149. 【請求項149】 前記共通深さが、各表現のエリアに
    依存して決定されることを特徴とする請求項146乃至
    148のいずれか1項に記載の方法。
  150. 【請求項150】 前記エリアが表現全ての平均エリア
    であることを特徴とする請求項149に記載の方法。
  151. 【請求項151】 前記共通深さが各表現の曲率に依存
    して決定されることを特徴とする請求項146乃至15
    0のいずれか1項に記載の方法。
  152. 【請求項152】 各表現が多角形であることを特徴と
    する請求項146乃至151のいずれか1項に記載の方
    法。
  153. 【請求項153】 各表現がパラメータ的面パッチであ
    ることを特徴とする請求項146乃至151のいずれか
    1項に記載の方法。
  154. 【請求項154】 前記多角形をレンダリングし、レン
    ダリングされた画像データを生成する工程をさらに含む
    ことを特徴とする請求項146乃至153のいずれか1
    項に記載の方法。
  155. 【請求項155】 前記レンダリングされた画像データ
    を搬送する信号を発生する工程をさらに含むことを特徴
    とする請求項154に記載の方法。
  156. 【請求項156】 前記信号を記録する工程をさらに含
    むことを特徴とする請求項155に記載の方法。
  157. 【請求項157】 前記レンダリングされた画像データ
    を使用して画像を表示する工程をさらに含むことを特徴
    とする請求項154乃至156のいずれか1項に記載の
    方法。
  158. 【請求項158】 前記画像データの記録を直接的又は
    間接的に行なう工程をさらに含むことを特徴とする請求
    項154乃至157のいずれか1項に記載の方法。
  159. 【請求項159】 オブジェクトの各部をモデル化する
    複数の表現から構成された3次元オブジェクトのモデル
    をレンダリングする方法であって、 同数の多角形を使用して各表現をレンダリングし、異な
    る深さの多角形を規定するデータを記憶し、多角形を計
    算する前に使用することを特徴とする方法。
  160. 【請求項160】 複数の表現からなる3次元オブジェ
    クトのモデルを規定するデータを処理し、レンダリング
    のために複数の多角形を規定するデータを生成する装置
    であって、 画像データの所与のフレームのために前記モデル内の各
    表現に変換された多角形の数を規定する共通の深さを決
    定する手段と;前記共通深さのために前記多角形を規定
    するデータが既に記憶されているかどうか判定する手段
    と;前記共通深さのためのデータが既に記憶されていれ
    ば、記憶されたデータをレンダリングのために選択する
    手段と;前記共通深さのためのデータが未だ記憶されて
    いなければ、前記共通深さのために多角形を規定するデ
    ータを生成し、生成されたデータをレンダリングのため
    に選択し、次の使用のために前記生成データを記憶する
    手段と;を有することを特徴とする装置。
  161. 【請求項161】 前記共通深さを決定する手段は、各
    表現をテストし、全ての表現のための共通深さとして多
    角形の最大数を規定する個々の深さを使用するように作
    動可能であることを特徴とする請求項160に記載の装
    置。
  162. 【請求項162】 前記共通深さを決定する手段が、全
    体として前記モデルに対してテストを実行して共通深さ
    を決定することを特徴とする請求項160に記載の装
    置。
  163. 【請求項163】 前記共通深さを決定する手段が、各
    表現のエリアに依存して前記共通深さを決定することを
    特徴とする請求項160乃至162のいずれか1項に記
    載の装置。
  164. 【請求項164】 前記エリアが全ての表現の平均エリ
    アであることを特徴とする請求項163に記載の装置。
  165. 【請求項165】 前記共通深さを決定する手段が、各
    表現の曲率に依存して共通深さを決定することを特徴と
    する請求項160乃至164のいずれか1項に記載の装
    置。
  166. 【請求項166】 各表現が多角形であることを特徴と
    する請求項160乃至165のいずれか1項に記載の装
    置。
  167. 【請求項167】 各表現がパラメータ的面パッチであ
    ることを特徴とする請求項160乃至165のいずれか
    1項に記載の装置。
  168. 【請求項168】 前記多角形をレンダリングしてレン
    ダリングされた画像データを生成する手段をさらに含む
    ことを特徴とする請求項160乃至167のいずれか1
    項に記載の装置。
  169. 【請求項169】 前記レンダリングされた画像データ
    を使用して画像を表示する手段をさらに含むことを特徴
    とする請求項168に記載の装置。
  170. 【請求項170】 オブジェクトの各部を各々モデル化
    する複数の表現から構成される3次元オブジェクトのモ
    デルをレンダリングする装置であって、 同数の多角形が各表現をレンダリングするのに使用され
    ように動作可能であり、異なる深さのための多角形を規
    定するデータが、多角形を計算する前に記憶され、使用
    されることを特徴とする装置。
  171. 【請求項171】 プログラムにより制御可能な処理装
    置に、請求項146乃至159のいずれか1項で説明さ
    れた方法を実行させるためのコンピュータ使用可能命令
    を記憶する記憶デバイス。
  172. 【請求項172】 プログラムにより制御可能な処理装
    置に、請求項146乃至159のいずれか1項で説明さ
    れた方法を実行させるための信号搬送コンピュータ使用
    可能命令。
JP2000027708A 1999-02-04 2000-02-04 3dコンピュ―タ・グラフィックス処理装置及び方法 Pending JP2000227966A (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
GBGB9902511.6A GB9902511D0 (en) 1999-02-04 1999-02-04 Apparatus and method for shading surfaces in 3d computer graphics
GBGB9902506.6A GB9902506D0 (en) 1999-02-04 1999-02-04 Apparatus and method for rendering surfaces in 3d computer graphics
GB9902511.6 1999-02-04
GB9902514.0 1999-02-04
GB9902510.8 1999-02-04
GB9902506.6 1999-02-04
GBGB9902514.0A GB9902514D0 (en) 1999-02-04 1999-02-04 3d computer graphics processing,apparatus and method
GBGB9902510.8A GB9902510D0 (en) 1999-02-04 1999-02-04 Apparatus and method for rendering surfaces in 3d computer graphics

Publications (2)

Publication Number Publication Date
JP2000227966A true JP2000227966A (ja) 2000-08-15
JP2000227966A5 JP2000227966A5 (ja) 2009-09-10

Family

ID=27451869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000027708A Pending JP2000227966A (ja) 1999-02-04 2000-02-04 3dコンピュ―タ・グラフィックス処理装置及び方法

Country Status (3)

Country Link
US (2) US7027050B1 (ja)
EP (1) EP1026639A3 (ja)
JP (1) JP2000227966A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063595A (ja) * 2000-08-23 2002-02-28 Nintendo Co Ltd スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置
JP2007048084A (ja) * 2005-08-10 2007-02-22 Dainippon Printing Co Ltd 表面に繊維シートを張り付けた三次元仮想物体に基づく二次元画像生成方法および生成装置
JP2012123655A (ja) * 2010-12-09 2012-06-28 Nippon Telegr & Teleph Corp <Ntt> 画像処理装置、画像処理方法及び画像処理プログラム
KR101359661B1 (ko) 2012-03-05 2014-02-10 한국과학기술원 삼각형 메쉬로 표현된 3차원 물체를 DoSurface 표현 방법으로 변환하는 시스템 및 그 방법
KR20200065638A (ko) * 2018-11-30 2020-06-09 황욱철 비계 설계 모델링 방법 및 시스템

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001251539A1 (en) * 2000-04-11 2001-10-23 Cornell Research Foundation Inc. System and method for three-dimensional image rendering and analysis
FR2810770B1 (fr) * 2000-06-23 2003-01-03 France Telecom Raffinement d'un maillage triangulaire representatif d'un objet en trois dimensions
NO20023653D0 (no) * 2002-07-31 2002-07-31 Simsurgery As Fremgangsmåte, system og dataprogram for fremstilling av en beskrivelse av et ikke-regul¶rt nett og en innkapslet geometriskbeskrivelse i et datagrafikksystem
EP1688885B1 (en) * 2005-02-03 2013-06-19 Samsung Electronics Co., Ltd. Method, apparatus, and medium for transforming graphic data of an object
CA2624258C (en) * 2005-09-30 2016-08-02 Modal Technology Corporation System and method to compute narrow bounds on a modal interval polynomial function
GB0521640D0 (en) * 2005-10-24 2005-11-30 Ccbr As Automatic quantification of a pathology indicating measure from cartilage scan data
US7589746B2 (en) * 2006-03-23 2009-09-15 Intel Corporation Optimized frustum clipping via cached clip vertices
US7924278B2 (en) * 2006-07-28 2011-04-12 Microsoft Corporation Real-time GPU rendering of piecewise algebraic surfaces
US20080043023A1 (en) * 2006-08-15 2008-02-21 Microsoft Corporation Approximating subdivision surfaces with bezier patches
US8243066B2 (en) * 2006-12-11 2012-08-14 Richard Garfinkle System and method for model creation and computer animation
US8547395B1 (en) 2006-12-20 2013-10-01 Nvidia Corporation Writing coverage information to a framebuffer in a computer graphics system
US8040357B1 (en) * 2007-08-15 2011-10-18 Nvidia Corporation Quotient remainder coverage system and method
US8325203B1 (en) 2007-08-15 2012-12-04 Nvidia Corporation Optimal caching for virtual coverage antialiasing
US8237709B2 (en) * 2007-09-06 2012-08-07 Qualcomm Incorporated Method and apparatus for optimizing triangles into triangle strips according to a variety of criteria
US7868887B1 (en) * 2007-10-18 2011-01-11 Adobe Systems Incorporated Rendering rational quadratic Bézier curves on a GPU
US8179399B2 (en) * 2008-02-11 2012-05-15 Stmicroelectronics S.R.L. Rasterizing method
US9529778B2 (en) 2008-03-27 2016-12-27 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
US8773432B2 (en) * 2008-04-18 2014-07-08 Adobe Systems Incorporated Triangulation for accelerated multi-resolution rendering of stroked paths
US8169437B1 (en) * 2008-07-09 2012-05-01 Nvidia Corporation Distributed tessellation topology generator
US8217939B1 (en) * 2008-10-17 2012-07-10 Ngrain (Canada) Corporation Method and system for calculating visually improved edge voxel normals when converting polygon data to voxel data
US8558833B1 (en) * 2009-10-14 2013-10-15 Nvidia Corporation System and method for symmetric parameterization of independently tessellated patches
US20110216068A1 (en) * 2010-03-08 2011-09-08 Sathe Rahul P Edge processing techniques
KR101129259B1 (ko) 2010-04-21 2012-03-26 한국생산기술연구원 3차원 계측기를 이용한 방탄 성능 계측시스템 및 그를 이용한 방탄 성능 계측방법
JP5227436B2 (ja) * 2011-03-18 2013-07-03 住友ゴム工業株式会社 フィラー配合ゴムの有限要素モデルの作成方法
KR101247761B1 (ko) * 2011-07-15 2013-04-01 삼성중공업 주식회사 로봇의 선체면 주행 가능 영역 확인 방법, 로봇 및 기록 매체
US9892535B1 (en) 2012-01-05 2018-02-13 Google Inc. Dynamic mesh generation to minimize fillrate utilization
US10248740B2 (en) * 2012-04-09 2019-04-02 Autodesk, Inc. Three-dimensional printing preparation
CN103425806A (zh) * 2012-05-17 2013-12-04 鸿富锦精密工业(深圳)有限公司 三次元编程产品模拟系统及方法
US8868199B2 (en) 2012-08-31 2014-10-21 Greatbatch Ltd. System and method of compressing medical maps for pulse generator or database storage
US9180302B2 (en) 2012-08-31 2015-11-10 Greatbatch Ltd. Touch screen finger position indicator for a spinal cord stimulation programming device
US8761897B2 (en) 2012-08-31 2014-06-24 Greatbatch Ltd. Method and system of graphical representation of lead connector block and implantable pulse generators on a clinician programmer
US9594877B2 (en) 2012-08-31 2017-03-14 Nuvectra Corporation Virtual reality representation of medical devices
US8903496B2 (en) 2012-08-31 2014-12-02 Greatbatch Ltd. Clinician programming system and method
US9471753B2 (en) 2012-08-31 2016-10-18 Nuvectra Corporation Programming and virtual reality representation of stimulation parameter Groups
US10668276B2 (en) 2012-08-31 2020-06-02 Cirtec Medical Corp. Method and system of bracketing stimulation parameters on clinician programmers
US9375582B2 (en) 2012-08-31 2016-06-28 Nuvectra Corporation Touch screen safety controls for clinician programmer
US9615788B2 (en) 2012-08-31 2017-04-11 Nuvectra Corporation Method and system of producing 2D representations of 3D pain and stimulation maps and implant models on a clinician programmer
US9259577B2 (en) 2012-08-31 2016-02-16 Greatbatch Ltd. Method and system of quick neurostimulation electrode configuration and positioning
US8983616B2 (en) 2012-09-05 2015-03-17 Greatbatch Ltd. Method and system for associating patient records with pulse generators
US8812125B2 (en) 2012-08-31 2014-08-19 Greatbatch Ltd. Systems and methods for the identification and association of medical devices
US9507912B2 (en) 2012-08-31 2016-11-29 Nuvectra Corporation Method and system of simulating a pulse generator on a clinician programmer
US9767255B2 (en) 2012-09-05 2017-09-19 Nuvectra Corporation Predefined input for clinician programmer data entry
US8757485B2 (en) 2012-09-05 2014-06-24 Greatbatch Ltd. System and method for using clinician programmer and clinician programming data for inventory and manufacturing prediction and control
SG11201609800SA (en) 2012-12-10 2016-12-29 Dirtt Environmental Solutions Efficient lighting effects in design software
EP2948929B1 (en) 2013-01-25 2021-11-10 Dirtt Environmental Solutions, Ltd. Real-time depth of field effects with design software
WO2014120174A1 (en) 2013-01-31 2014-08-07 Dirtt Environmental Solutions Inc. Method and system for efficient modeling of specular reflection
CA2817402C (en) 2013-01-31 2021-03-16 Dirtt Environmental Solutions, Ltd. Visual distortion effects through translucent structures in design software
GB201304321D0 (en) 2013-03-11 2013-04-24 Creative Edge Software Llc Apparatus and method for applying a two-dimensional image on a three-dimensional model
US9384589B2 (en) * 2013-04-29 2016-07-05 Microsoft Technology Licensing, Llc Anti-aliasing for geometries
CA2883079C (en) * 2013-05-31 2021-10-26 Ice Edge Business Solutions Ltd. Associating computer-executable objects with three-dimensional spaces within an architectural design environment
US9528287B2 (en) 2013-06-10 2016-12-27 Dirtt Environmental Solutions, Ltd. Angled wall connection devices, systems, and methods
US9965893B2 (en) * 2013-06-25 2018-05-08 Google Llc. Curvature-driven normal interpolation for shading applications
KR102053351B1 (ko) 2013-08-12 2019-12-06 삼성전자주식회사 테셀레이션 데이터 생성 방법과 상기 방법을 수행할 수 있는 장치들
US9489770B2 (en) * 2014-05-26 2016-11-08 Tatsuya Iwamoto Method for generating quartic bezier triangle patches from triangle mesh for computer graphics
EP3152373A4 (en) 2014-06-09 2018-05-02 Dirtt Environmental Solutions Inc. Associating computer-executable objects with timber frames within an architectural design environment
CN104268909A (zh) * 2014-09-11 2015-01-07 清华大学 基于构造含参伯恩斯坦基函数调整贝塞尔曲线的方法
US10311381B2 (en) * 2014-12-12 2019-06-04 Autodesk, Inc. Tool and method for conductive trace generation in a 3D model for a hybrid electro-mechanical 3D printer
CN107180447B (zh) * 2016-03-10 2020-12-04 珠海金山网络游戏科技有限公司 一种获得光照强度的方法及装置
US10366278B2 (en) * 2016-09-20 2019-07-30 Apple Inc. Curvature-based face detector
US10535188B2 (en) * 2016-09-23 2020-01-14 Apple Inc. Tessellation edge shaders
US10896524B2 (en) 2018-05-18 2021-01-19 The Governing Council Of The University Of Toronto Method and system for color representation generation
IL273537B2 (en) * 2019-03-25 2026-02-01 ROZENBLIT Vladimir Method and device for online and offline purchasing of clothing, shoes and related accessories
US20230005221A1 (en) * 2020-01-06 2023-01-05 Hewlett-Packard Development Company, L.P. Generating 3d printing points
CN115999149B (zh) * 2022-12-21 2025-11-21 努比亚技术有限公司 一种游戏显示功耗控制方法、设备及计算机可读存储介质
CN116993955B (zh) * 2023-06-30 2024-11-08 网易(杭州)网络有限公司 三维模型的重拓扑方法、装置、设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142617A (en) 1988-10-27 1992-08-25 Tektronix, Inc. Method of shading a graphics image
US5253339A (en) 1990-07-26 1993-10-12 Sun Microsystems, Inc. Method and apparatus for adaptive Phong shading
GB2259432A (en) 1991-09-06 1993-03-10 Canon Res Ct Europe Ltd Three dimensional graphics processing
GB2271259A (en) 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
GB2271261A (en) 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
GB2271260A (en) 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
GB2271258A (en) 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
GB9223315D0 (en) 1992-11-06 1992-12-23 Canon Res Ct Europe Ltd Processing image data
GB9223314D0 (en) * 1992-11-06 1992-12-23 Canon Res Ct Europe Ltd Processing image data
WO1995006291A1 (en) 1993-08-27 1995-03-02 Apple Computer, Inc. System and method for generating smooth low degree polynomial spline surfaces over irregular meshes
JP3313221B2 (ja) * 1993-12-28 2002-08-12 松下電器産業株式会社 画像生成方法及び画像生成装置
US5596686A (en) * 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US5596504A (en) * 1995-04-10 1997-01-21 Clemson University Apparatus and method for layered modeling of intended objects represented in STL format and adaptive slicing thereof
JP3926866B2 (ja) 1996-05-10 2007-06-06 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、及び描画システム
US5977983A (en) * 1997-02-20 1999-11-02 S3 Incorporated Method and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge
US5841443A (en) * 1997-02-20 1998-11-24 S3 Incorporated Method for triangle subdivision in computer graphics texture mapping to eliminate artifacts in high perspective polygons
US6317525B1 (en) * 1998-02-20 2001-11-13 Ati Technologies, Inc. Method and apparatus for full scene anti-aliasing
US6266065B1 (en) * 1998-03-02 2001-07-24 Industrial Technology Research Institute Method for rendering 3D triangle primitives
JP3705923B2 (ja) 1998-04-09 2005-10-12 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法、プログラム提供媒体、並びにデータ提供媒体
JP3638224B2 (ja) * 1999-02-23 2005-04-13 富士通株式会社 3次元ポリゴン表示装置
GB9904901D0 (en) * 1999-03-03 1999-04-28 Canon Kk Computer graphics apparatus
US6407736B1 (en) * 1999-06-18 2002-06-18 Interval Research Corporation Deferred scanline conversion architecture

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063595A (ja) * 2000-08-23 2002-02-28 Nintendo Co Ltd スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置
JP2007048084A (ja) * 2005-08-10 2007-02-22 Dainippon Printing Co Ltd 表面に繊維シートを張り付けた三次元仮想物体に基づく二次元画像生成方法および生成装置
JP2012123655A (ja) * 2010-12-09 2012-06-28 Nippon Telegr & Teleph Corp <Ntt> 画像処理装置、画像処理方法及び画像処理プログラム
KR101359661B1 (ko) 2012-03-05 2014-02-10 한국과학기술원 삼각형 메쉬로 표현된 3차원 물체를 DoSurface 표현 방법으로 변환하는 시스템 및 그 방법
KR20200065638A (ko) * 2018-11-30 2020-06-09 황욱철 비계 설계 모델링 방법 및 시스템
KR102211914B1 (ko) * 2018-11-30 2021-02-04 주식회사 뎁스 비계 설계 모델링 방법 및 시스템

Also Published As

Publication number Publication date
US7027050B1 (en) 2006-04-11
EP1026639A2 (en) 2000-08-09
US7034823B2 (en) 2006-04-25
US20040075655A1 (en) 2004-04-22
EP1026639A3 (en) 2002-09-04

Similar Documents

Publication Publication Date Title
EP1026639A2 (en) 3D computer graphics processing apparatus and method
JP4494597B2 (ja) 色階調をディテール指向型階層距離フィールドとして表す方法
JP3972784B2 (ja) 画像処理装置およびその方法
JP4385524B2 (ja) ポリゴンデータの生成方法及び、これを用いた画像表示装置
JP3179392B2 (ja) 画像処理装置及び画像処理方法
JP4563554B2 (ja) モデルとして表現されるオブジェクトを彫塑する方法
JP3021368B2 (ja) 画素の法線ベクトルを用いたバンプマッピングレンダリング方法及びそれを具現するレンダリング装置
JP3203160B2 (ja) ボリューム・レンダリング装置及び方法
JP2001052196A (ja) 文字枠により囲まれた距離フィールドのディテール指向型階層表現を生成する方法及びデータを記憶するメモリ
JP2008059582A (ja) 省エネのためのlod値計算方法とこれを利用した3次元レンダリングシステム
JP3629243B2 (ja) モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法
JP2837584B2 (ja) 地形データの作成方法
JP2000348206A (ja) 画像生成装置および画像優先度決定方法
JP3979162B2 (ja) 画像処理装置およびその方法
JP2655056B2 (ja) テクスチャデータ生成装置
JP2000067270A (ja) 形状デ―タの近似化方法及び情報処理装置並びに媒体
JP3747859B2 (ja) 画像処理装置およびその方法
KR100313846B1 (ko) 바이리니어밉매핑에서의상세도(lod)계산방법및장치
CN121147418B (zh) 一种生成式三维对象模型法线贴图参数化建模方法
KR100848687B1 (ko) 3차원 그래픽 처리 장치 및 그것의 동작 방법
JP2658902B2 (ja) 画像生成装置
JPH09147136A (ja) モデリングデータ作成装置および方法
JP5321385B2 (ja) 画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
JP2000030081A (ja) 凹凸ポリゴンの描画方法および三次元描画装置
JP2003216968A (ja) 三次元画像生成方法、三次元画像生成プログラムおよび三次元画像生成装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070110

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070110

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100105