JP2020170559A - 三角形の再帰的細分割を用いたテッセレーション方法 - Google Patents
三角形の再帰的細分割を用いたテッセレーション方法 Download PDFInfo
- Publication number
- JP2020170559A JP2020170559A JP2020121544A JP2020121544A JP2020170559A JP 2020170559 A JP2020170559 A JP 2020170559A JP 2020121544 A JP2020121544 A JP 2020121544A JP 2020121544 A JP2020121544 A JP 2020121544A JP 2020170559 A JP2020170559 A JP 2020170559A
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- tessellation
- patch
- patches
- vertices
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
Description
エッジにより結ばれている左頂点及び右頂点を含む最初のパッチであって、ドメイン空間において定義されている最初のパッチについて、
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数を、閾値と比較するステップと、
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数のいずれも、閾値より大きくないと判定したことに応じて、最初のパッチを記述したデータを出力するステップと、
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数のいずれかが、閾値より大きいと判定したことに応じて、エッジを2つの部分に細分割する新たな頂点を形成し、新たな頂点の頂点テッセレーション係数を算出し、最初のパッチを分割して、左頂点及び新たな頂点を含む第1の新たなパッチと、右頂点及び新たな頂点を含む第2の新たなパッチと、を形成し、新たに形成されたパッチの各々における各頂点の頂点テッセレーション係数を低減させるステップと、
を含む方法を提供する。
新たに形成されたパッチの各々に対して、最初のパッチとして、方法を繰り返すステップ
をさらに含み得る。
新たに形成されたパッチの各々に対して、最初のパッチとして、方法を繰り返すことは、新たに形成されたパッチの各々における左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数が閾値以下になるまで、新たに形成されたパッチの各々に対して、最初のパッチとして、方法を繰り返すことを含み得る。
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数の平均値を算出することと、
新たな頂点の頂点テッセレーション係数を、算出された平均値に設定することと、
を含み得る。
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数の平均値は、
MEAN(LEFT.TF,RIGHT.TF)=MIN(AVG(LEFT.TF,RIGHT.TF),MIN(LEFT.TF,RIGHT.TF)+INTERVAL)
により与えられ得、
ここで、LEFT.TFは、左頂点の頂点テッセレーション係数であり、RIGHT.TFは、右頂点の頂点テッセレーション係数であり、AVG()は、括弧内の値の算術平均であり、MIN()は、括弧内の値のリストのうちの最小であり、INTERVALは、予め定められたパラメータである。
入力パッチを受信するステップと、
入力パッチから1以上の最初のパッチを生成するステップと、
1以上の最初のパッチの各々に対して、方法を繰り返すステップと、
をさらに含み得る。
入力パッチは、3つの頂点を有する三角形パッチであり得、1以上の最初のパッチを生成するステップは、
3つの頂点の各々の頂点テッセレーション係数を、閾値と比較するステップと、
3つの頂点の各々の頂点テッセレーション係数のいずれも、閾値より大きくないと判定したことに応じて、入力パッチを記述したデータを出力するステップと、
3つの頂点の各々の頂点テッセレーション係数のうち少なくとも1つの頂点テッセレーション係数が、閾値より大きいと判定したことに応じて、三角形パッチの中心に新たな頂点を形成し、新たな頂点の頂点テッセレーション係数を算出し、入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである3つの最初のパッチを形成し、新たに形成された3つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させるステップと、
を含み得る。
新たな頂点は、三角形パッチの重心に形成され得る。
入力パッチの3つの頂点は、上頂点、左頂点、及び右頂点であり得、三角形パッチの中心における新たな頂点の頂点テッセレーション係数は、
MID.TF=MEAN(TOP.TF,LEFT.TF,RIGHT.TF)
を使用して算出され得、
ここで、MID.TFは、新たな頂点の頂点テッセレーション係数であり、TOP.TFは、上頂点の頂点テッセレーション係数であり、LEFT.TFは、左頂点の頂点テッセレーション係数であり、RIGHT.TFは、右頂点の頂点テッセレーション係数であり、MEAN()は、括弧内の値の平均である。
MEAN(TOP.TF,LEFT.TF,RIGHT.TF)=MIN(AVG(TOP.TF,LEFT.TF,RIGHT.TF),MIN(TOP.TF,LEFT.TF,RIGHT.TF)+INTERVAL)
を使用して算出され得、
ここで、AVG()は、括弧内の値の算術平均であり、MIN()は、括弧内の値のリストのうちの最小であり、INTERVALは、予め定められたパラメータである。
四辺形パッチの中心に新たな頂点を形成するステップと、
新たな頂点の頂点テッセレーション係数を算出するステップと、
入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである4つの最初のパッチを形成するステップと、
新たに形成された4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させるステップと、
を含み得る。
新たな5つの頂点を追加して、入力パッチを、4つの四辺形サブ入力パッチに細分割するステップと、
新たに追加された5つの頂点の各々の頂点テッセレーション係数を算出するステップと、
新たに形成された4つの四辺形サブ入力パッチにおける各頂点の頂点テッセレーション係数を低減させるステップと、
4つの四辺形サブ入力パッチの各々について、
四辺形サブ入力パッチの中心に新たな頂点を形成するステップと、
新たな頂点の頂点テッセレーション係数を算出するステップと、
四辺形サブ入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである4つの最初のパッチを形成するステップと、
新たに形成された4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させるステップと、
を含み得る。
新たな4つの頂点を追加して、入力パッチを、3つの四辺形サブ入力パッチに細分割するステップと、
新たに追加された4つの頂点の各々の頂点テッセレーション係数を算出するステップと、
新たに形成された3つの四辺形サブ入力パッチにおける各頂点の頂点テッセレーション係数を低減させるステップと、
3つの四辺形サブ入力パッチの各々について、
四辺形サブ入力パッチの中心に新たな頂点を形成するステップと、
新たな頂点の頂点テッセレーション係数を算出するステップと、
四辺形サブ入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである4つの最初のパッチを形成するステップと、
新たに形成された4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させるステップと、
を含み得る。
MID.TF=MEAN(TLEFT.TF,TRIGHT.TF,BLEFT.TF,BRIGHT.TF)
を使用して算出され得、
ここで、MID.TFは、新たな頂点の頂点テッセレーション係数であり、TLEFT.TFは、左上頂点の頂点テッセレーション係数であり、TRIGHT.TFは、右上頂点の頂点テッセレーション係数であり、BLEFT.TFは、左下頂点の頂点テッセレーション係数であり、BRIGHT.TFは、右下頂点の頂点テッセレーション係数であり、MEAN()は、括弧内の値の平均である。
MEAN(TLEFT.TF,TRIGHT.TF,BLEFT.TF,BRIGHT.TF)=MIN(AVG(TLEFT.TF,TRIGHT.TF,BLEFT.TF,BRIGHT.TF),MIN(TLEFT.TF,TRIGHT.TF,BLEFT.TF,BRIGHT.TF)+INTERVAL)
を使用して算出され得、
ここで、AVG()は、括弧内の値の算術平均であり、MIN()は、括弧内の値のリストのうちの最小であり、INTERVALは、予め定められたパラメータである。
エッジにより結ばれている左頂点及び右頂点を含む最初のパッチであって、ドメイン空間において定義されている最初のパッチについて、
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数を、閾値と比較し、
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数のいずれも、閾値より大きくないと判定したことに応じて、最初のパッチを記述したデータを出力し、
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数のいずれかが、閾値より大きいと判定したことに応じて、エッジを2つの部分に細分割する新たな頂点を形成し、新たな頂点の頂点テッセレーション係数を算出し、最初のパッチを分割して、左頂点及び新たな頂点を含む第1の新たなパッチと、右頂点及び新たな頂点を含む第2の新たなパッチと、を形成し、新たに形成されたパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を備えたハードウェアテッセレーションユニットを提供する。
左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数の平均値を算出し、
新たな頂点の頂点テッセレーション係数を、算出された平均値に設定する
よう構成されているハードウェアロジック
を含み得る。
入力パッチを受信し、
入力パッチから1以上の最初のパッチを生成し、
1以上の最初のパッチの各々に対して、方法を繰り返す
よう構成されているハードウェアロジック
をさらに備え得る。
3つの頂点の各々の頂点テッセレーション係数を、閾値と比較し、
3つの頂点の各々の頂点テッセレーション係数のいずれも、閾値より大きくないと判定したことに応じて、入力パッチを記述したデータを出力し、
3つの頂点の各々の頂点テッセレーション係数のうち少なくとも1つの頂点テッセレーション係数が、閾値より大きいと判定したことに応じて、三角形パッチの中心に新たな頂点を形成し、新たな頂点の頂点テッセレーション係数を算出し、入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである3つの最初のパッチを形成し、新たに形成された3つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含み得る。
四辺形パッチの中心に新たな頂点を形成し、
新たな頂点の頂点テッセレーション係数を算出し、
入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである4つの最初のパッチを形成し、
新たに形成された4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含み得る。
新たな5つの頂点を追加して、入力パッチを、4つの四辺形サブ入力パッチに細分割し、
新たに追加された5つの頂点の各々の頂点テッセレーション係数を算出し、
新たに形成された4つの四辺形サブ入力パッチにおける各頂点の頂点テッセレーション係数を低減させ、
4つの四辺形サブ入力パッチの各々について、
四辺形サブ入力パッチの中心に新たな頂点を形成し、
新たな頂点の頂点テッセレーション係数を算出し、
四辺形サブ入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである4つの最初のパッチを形成し、
新たに形成された4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含み得る。
新たな4つの頂点を追加して、入力パッチを、3つの四辺形サブ入力パッチに細分割し、
新たに追加された4つの頂点の各々の頂点テッセレーション係数を算出し、
新たに形成された3つの四辺形サブ入力パッチにおける各頂点の頂点テッセレーション係数を低減させ、
3つの四辺形サブ入力パッチの各々について、
四辺形サブ入力パッチの中心に新たな頂点を形成し、
新たな頂点の頂点テッセレーション係数を算出し、
四辺形サブ入力パッチを分割して、上頂点として新たな頂点を有する三角形パッチである4つの最初のパッチを形成し、
新たに形成された4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含み得る。
コンピュータ実行可能なプログラムコードを記憶している非一時的なコンピュータ読み取り可能な記憶媒体であって、コンピュータ実行可能なプログラムコードは、実行されたときに、少なくとも1つのプロセッサに、上述した方法を実行させる、非一時的なコンピュータ読み取り可能な記憶媒体と、
上述したハードウェアテッセレーションユニットを備えたグラフィックス処理ユニットと、
上述したハードウェアテッセレーションユニットを規定しているコンピュータ読み取り可能なプログラムコードが符号化されているコンピュータ読み取り可能な記憶媒体と、
上述した方法を実行するよう構成されているハードウェアテッセレーションユニットを規定しているコンピュータ読み取り可能なプログラムコードが符号化されているコンピュータ読み取り可能な記憶媒体と、
を提供する。
(a)全ての4つのエッジについてエッジTF=3である整数分割法(integer partitioning)
(b)全ての4つのエッジについてエッジTF=4である整数分割法
(c)全ての4つのエッジについてエッジTF=3である2のべき乗の整数分割法(power of two integer partitioning)
(b)全ての4つのエッジについてエッジTF=4である2のべき乗の整数分割法
(e)全ての4つのエッジについてエッジTF=3.0である奇数(odd)小数分割法
(f)全ての4つのエッジについてエッジTF=4.0である奇数小数分割法
(c)全ての4つのエッジについてエッジTF=3.0である偶数(even)小数分割法
(b)全ての4つのエッジについてエッジTF=4.0である偶数小数分割法
・スナッピング−大量のテッセレーションが瞬間的に生じることの影響。これは、アニメーションにおける一時的な視覚的アーチファクトを生じさせ得るだけでなく、非連続的なレンダリング時間をもたらす。これは、「2のべき乗」の方法(例えば、図1における例(c)及び(d))の場合に特に問題である。
・クラッキング−境界上のエッジの細分割は、Tジャンクション(T-junction)を避けるために、一貫している必要がある。変位マッピングを適用した後、Tジャンクションは、ほぼ確実に、クラックの出現をもたらす。ビューワは、オブジェクトを通じてこれを確認できる。
・浮遊(swimming)−テッセレーション係数に応じてドメイン空間内で頂点の位置を移動させることは、変位の量が変わるので、ジオメトリ(geometry)が揺らめいている、すなわち、「浮遊している」ように見えることをもたらす。
・過剰/過少テッセレーション−例えば、32というテッセレーション係数は、エッジが32個のセグメントに細分割されることを望むものである。これよりも小さなテッセレーション係数は、シーンをモデル化するのに十分なほどにはメッシュが精緻化されないことをもたらし得る。これよりも大きなテッセレーション係数は、メッシュが精緻化され過ぎて相当の演算を用いることをもたらし得る。
・細い三角形−細い三角形をレンダリングすることは、より多くのエイリアシングアーチファクトをもたらし得ることに加えて、高い演算コストをもたらし得る。なぜならば、三角形のレンダリングコストは、そのスクリーン画素面積に依存するだけでなく、スクリーン画素におけるその外周の長さにもある程度依存するからである。したがって、一般的には、特に、LODが変わったときに細い三角形が見えなくなり、細長い三角形が本質的には冗長である場合、N個の「ほぼ等辺の」三角形により表現されるパッチを、N個の「細長い」三角形により表現される同じパッチの代わりにレンダリングすることがより効果的である。したがって、以下に記載の方法は、最小ルート面積対外周比(Root Area to Perimeter Ratio)を最大化することを目的とする。
・空間/時間複雑度−いずれのテッセレーション方法も、理想的には、単純で、高度に並列的であるべきであり、時間複雑度及び空間複雑度(すなわち、レンダリングを実行するのに要する時間及びアルゴリズムを実施するために必要とされるメモリの量)を最小化すべきである。また、頂点のサイズに、多過ぎるビットを追加しないようにしなければならない。なぜならば、これは、メモリ要件を増大させるからである。空間複雑度及び時間複雑度はまた、テッセレーションを実行するために必要とされるハードウェアの物理的エリアにも影響を及ぼす。
・THRES−頂点TFが、2を底とする対数を取ったテッセレーションの量の値である場合、例えば、0.0又は0.5に設定され得る、テッセレーションのための閾値。
・VERTEX.TF−任意の実数であり得る、頂点のテッセレーション係数(しかしながら、様々な例においては、テッセレーション係数が負でない実数であるように、負値は、0にクランプされ得る)。様々な例において、頂点TFは、最小で0.0(テッセレーションなし)及び最大で6.0(最大のテッセレーション)であり、2を底とする対数を取ったテッセレーションの量の値である。例えば、5.0というテッセレーション係数は、32の細分割に対応する。しかしながら、他の例においては、最大頂点TFは、6.0(すなわち、2を底とする対数が使用されない場合は64)より大きくてもよい。
・INTERVAL−0でない量。各反復の後、VERTEX.TFがこの量だけ低減される。頂点TFが、2を底とする対数を取ったテッセレーションの量の値である場合、例えば、0.5に設定され得る。
・MEAN()−2つ、3つ、又は4つの頂点テッセレーション係数の「平均値」を与える対称関数。これは、算術平均であってもよいし、代替関数であってもよい。そのような1つの代替関数が、以下でより詳細に説明される。
以下の説明の目的上、頂点TFは、2を底とする対数を取ったテッセレーションの量である。しかしながら、頂点TFは、代替的に、その実際のフル値(full value)として記述されてもよく、その場合、以下に記載される頂点TFの算出とパラメータTHRES及びパラメータINTERVALの値とが、これに応じて変更されることが、理解されよう。しかしながら、2を底とする対数が使用される場合、ハードウェア実装がかなり高速になるので、テッセレータへの入力が、(2を底とする対数を使用するのではなく)実際の頂点TFを含む例においては、入力頂点TFは、本明細書に記載の改良されたテッセレーション方法を実施する前に、2を底とする対数に変換され得る。
MID.TF=MEAN(TOP.TF,LEFT.TF,RIGHT.TF)・・・・・(1)
であるように算出される(ブロック706)。ここで、MID.TFは、MID頂点の頂点TFであり、TOP.TFは、TOP頂点の頂点TFであり、LEFT.TFは、LEFT頂点の頂点TFであり、RIGHT.TFは、RIGHT頂点の頂点TFである。次いで、何らかのテッセレーションが生じたときに、全ての4つのテッセレーション係数(すなわち、TOP.TF、LEFT.TF、RIGHT.TF、及びMID.TF)が、パラメータINTERVALだけ(すなわち、2を底とする対数表記が使用される場合、INTERVALを減算することによって)低減される(ブロック708)。
MID.TF=MEAN(TLEFT.TF,TRIGHT.TF,BLEFT.TF,BRIGHT.TF)・・・・・(2)
であるように算出される(ブロック806)。ここで、MID.TFは、MID頂点の頂点TFであり、TLEFT.TFは、TLEFT頂点の頂点TFである、等である。次いで、何らかのテッセレーションが生じたときに、全ての5つのテッセレーション係数(すなわち、TLEFT.TF、TRIGHT.TF、BRIGHT.TF、BLEFT.TF、及びMID.TF)が、パラメータINTERVALだけ(すなわち、2を底とする対数表記が使用される場合、INTERVALを減算することによって)低減される(ブロック808)。
LEFT.TF>THRES又はRIGHT.TF>THRES・・・・・(3)
である場合、及び、この場合に限り、生じる(ブロック902において「Yes」)。ここで、LEFT.TFは、LEFT頂点の頂点TFであり、RIGHT.TFは、RIGHT頂点の頂点TFである。
MID.TF=MEAN(LEFT.TF,RIGHT.TF)・・・・・(4)
であるように算出される(ブロック906)。ここで、MID.TFは、MID頂点の頂点TFであり、LEFT.TFは、LEFT頂点の頂点TFであり、RIGHT.TFは、RIGHT頂点の頂点TFである。慣習のため、MIDが細分割するエッジを定義する頂点LEFT及び頂点RITHTは、MIDの「親」と表記される。
MID.TF=MEAN(LEFT.TF,RIGHT.TF)・・・・・(5)
であるように算出される(ブロック906)。ここで、MID.TFは、MID頂点の頂点TFであり、LEFT.TFは、LEFT頂点の頂点TFであり、RIGHT.TFは、RIGHT頂点の頂点TFである。
MEAN(TF1,TF2,...)=MIN(AVG(TF1,TF2,...),MIN(TF1,TF2,...)+INTERVAL)・・・・・(6)
ここで、AVG()は、括弧内の値のリスト(例えば、上記の例における頂点TF1、頂点TF2、...)の算術平均であり、MIN()は、括弧内の値のリスト(例えば、上記の例における頂点TF1、頂点TF2、...)のうちの最小である。
TOP−>LEFTエッジ上で必要とされるテッセレーションは、LEFT−>RIGHTエッジ上で生じるテッセレーションを暗示する、すなわち、
(TOP.TF>THRES又はLEFT.TF>THRES)
=>(LEFT.TF+INTERVAL>THRES又はRIGHT.TF+INTERVAL>THRES)
である。この条件は、一般性を失うことなく、対称性に起因して左側エッジだけを考慮する。
THRES<TOP.TF
=MIN(AVG(LEFT.TF,RIGHT.TF,...),MIN(LEFT.TF,RIGHT.TF,...)+INTERVAL)
<=MIN(LEFT.TF,RIGHT.TF,...)+INTERVAL
<=LEFT.TF+INTERVAL
ゆえに、LEFT.TF+INTERVAL>THRESである。
THRES<TOP.TF
=MIN(AVG(LEFT.TF,...),MIN(LEFT.TF,...)+INTERVAL)
<=MIN(LEFT.TF,...)+INTERVAL
<=LEFT.TF+INTERVAL
ゆえに、LEFT.TF+INTERVAL>THRESである。
・スナッピングがない−改良されたテッセレーション方法を使用すると、滑らかな遷移を生じさせるために、テッセレーション係数が増加するときに、ジオメトリが小インクリメントだけ追加される。これは、レンダリング時間の予測に役立つ。
・クラッキングがない−上記で例証されたように、改良されたテッセレーション方法は、ドメイン内のTジャンクション又はドメインの境界に沿ったTジャンクションを生じさせない。
・浮遊がない−テッセレータにより導入される各頂点は、テッセレーション係数が増加するとき、そのドメイン空間位置を維持し、したがって、「浮遊」アーチファクトがない。
・過剰/過少テッセレーションがない−エッジの各端における整数頂点テッセレーション係数tが、2tの細分割に対応する。また、四辺形上の平均頂点テッセレーション係数tは、近似的に、22t個の頂点とその2倍の多さのプリミティブと、に対応し、これは最小である。同様に、三角形パッチは、(3/4)22t個の頂点とその2倍の多さのプリミティブとに対応する。
・細い三角形がない−上述したように、改良されたテッセレーション方法は、パッチごとの三角形の4つの(又は3つ以下の)クラスだけを生じさせ、これは、パッチごとのルート面積対外周比の最小値の境界を定める。
・空間/時間複雑度−アルゴリズムは、(図9に示されるように)再帰的であり、各サブドメイン/パッチは、独立して扱うことができ、これは、実質的な並列性をサポートする。入力頂点は、頂点テッセレーション係数のための付加的な固定点値を必要とする。
・向き独立性−(ブロック504の前処理段階において)パッチを、各々の上として中間頂点を有する、扇状の三角形パッチに分割することにより、三角形の向きに対する選択は行われず、したがって、同じテッセレーションが常に生じることになる。
・N角形−改良されたテッセレーション方法は、(前処理段階504の変形例において)パッチを扇状の三角形に分割することにより、N個の辺を有する任意のポリゴンパッチをサポートするよう容易に適合され得る。各ケースにおいて、平均テッセレーション係数tについて、本方法は、約(N/4)22t個の頂点とその2倍の多さのプリミティブとを生成することになる。
TF’:=F(F−1(TF’)−INTERVAL)
この例において、(上記の式(3)により与えられるものの代替である)テスト条件は、TF’>F(THRES)又はTF’<F(THRES)である。ここで、不等式の選択は、Fが、順序を保つものであるか順序を逆にするものであるかに依存する。F()によって共役させることにより、本方法における意味的な違いはない。
テスト条件は、TF’>20=1(2TFとして)が順序を保つものであることである。
1904 テッセレーションユニット
1906 ドメインシェーダ
2002 プロセッサ
2004 オペレーティングシステム
2006 アプリケーションソフトウェア
2008 テッセレーションモジュール
2010 メモリ
2012 通信インタフェース
Claims (15)
- エッジにより結ばれている左頂点及び右頂点を含む最初のパッチであって、ドメイン空間において定義されている最初のパッチについて、
前記左頂点の頂点テッセレーション係数及び前記右頂点の頂点テッセレーション係数を、閾値と比較し、
前記左頂点の前記頂点テッセレーション係数及び前記右頂点の前記頂点テッセレーション係数のいずれかが、前記閾値より大きい又は等しいと判定したことに応じて、前記エッジを2つの部分に細分割する新たな頂点を形成し、前記新たな頂点の頂点テッセレーション係数を算出し、前記最初のパッチを分割して、前記左頂点及び前記新たな頂点を含む第1の新たなパッチと、前記右頂点及び前記新たな頂点を含む第2の新たなパッチとを形成し、新たに形成された2つの前記パッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を備えたハードウェアテッセレーションシステム。 - 前記ハードウェアロジックは、前記左頂点の前記頂点テッセレーション係数及び前記右頂点の前記頂点テッセレーション係数のいずれも、前記閾値未満であると判定したことに応じて、前記最初のパッチを記述したデータを出力するようにさらに構成される、請求項1に記載のハードウェアテッセレーションシステム。
- 前記新たな頂点は、前記エッジを二等分する、請求項1又は2に記載のハードウェアテッセレーションシステム。
- 前記ハードウェアロジックは、新たに形成された前記パッチの各々に対して、前記最初のパッチとして、請求項1に記載のプロセスを繰り返すようさらに構成されている、請求項1乃至3のいずれか一項に記載のハードウェアテッセレーションシステム。
- 前記ハードウェアロジックは、新たに形成された前記パッチの各々における左頂点の頂点テッセレーション係数及び右頂点の頂点テッセレーション係数が前記閾値未満になるまで、新たに形成された前記パッチの各々に対して、前記最初のパッチとして、請求項1に記載の前記プロセスを繰り返すようさらに構成されている、請求項4に記載のハードウェアテッセレーションシステム。
- 前記新たな頂点の頂点テッセレーション係数を算出するよう構成されている前記ハードウェアロジックは、
前記左頂点の前記頂点テッセレーション係数及び前記右頂点の前記頂点テッセレーション係数の平均値を算出し、
前記新たな頂点の前記頂点テッセレーション係数を、前記の算出された平均値に等しくなるように設定する
よう構成されているハードウェアロジックを含み、
前記左頂点の前記頂点テッセレーション係数及び前記右頂点の前記頂点テッセレーション係数の前記平均値は、
MEAN(LEFT.TF,RIGHT.TF)=MIN(AVG(LEFT.TF,RIGHT.TF),MIN(LEFT.TF,RIGHT.TF)+INTERVAL)
により与えられ、
ここで、LEFT.TFは、前記左頂点の前記頂点テッセレーション係数であり、RIGHT.TFは、前記右頂点の前記頂点テッセレーション係数であり、AVG()は、括弧内の値の算術平均であり、MIN()は、括弧内の値のリストのうちの最小であり、INTERVALは、予め定められたパラメータである、請求項1乃至5のいずれか一項に記載のハードウェアテッセレーションシステム。 - 新たに形成された前記パッチの各々における各頂点の頂点テッセレーション係数を低減させるよう構成されている前記ハードウェアロジックは、各頂点テッセレーション係数を、予め定められたパラメータINTERVALだけ低減させるよう構成されている、請求項1乃至6のいずれか一項に記載のハードウェアテッセレーションシステム。
- 前記最初のパッチは、三角形パッチであり、前記三角形パッチは、上頂点、前記右頂点、及び前記左頂点から構成される3つの頂点の順序付きセットである、請求項1乃至7のいずれか一項に記載のハードウェアテッセレーションシステム。
- 入力パッチを受信し、
前記入力パッチから1つ又は複数の最初のパッチを生成し、
前記1つ又は複数の最初のパッチの各々に対して、請求項1に記載のプロセスを繰り返す
よう構成されているハードウェアロジック
をさらに備えた、請求項1又は2に記載のハードウェアテッセレーションシステム。 - 前記入力パッチは、3つの頂点を有する三角形パッチであり、1つ又は複数の最初のパッチを生成するよう構成されている前記ハードウェアロジックは、
該3つの頂点の各々の頂点テッセレーション係数を、閾値と比較し、
該3つの頂点の各々の前記頂点テッセレーション係数のいずれも、該閾値より大きくないと判定したことに応じて、前記入力パッチを記述したデータを出力し、
該3つの頂点の各々の前記頂点テッセレーション係数のうち少なくとも1つの頂点テッセレーション係数が、該閾値より大きいと判定したことに応じて、該三角形パッチの中心に新たな頂点を形成し、該新たな頂点の頂点テッセレーション係数を算出し、前記入力パッチを分割して、上頂点として該新たな頂点を有する三角形パッチである3つの最初のパッチを形成し、新たに形成された前記3つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含む、請求項9に記載のハードウェアテッセレーションシステム。 - 前記入力パッチは、4つの頂点を有する四辺形パッチであり、1つ又は複数の最初のパッチを生成するよう構成されている前記ハードウェアロジックは、
前記四辺形パッチの中心に新たな頂点を形成し、
該新たな頂点の頂点テッセレーション係数を算出し、
前記入力パッチを分割して、上頂点として該新たな頂点を有する三角形パッチである4つの最初のパッチを形成し、
新たに形成された前記4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含む、請求項9に記載のハードウェアテッセレーションシステム。 - 前記入力パッチは、4つの頂点及び中心テッセレーション係数を有する四辺形パッチであり、1つ又は複数の最初のパッチを生成するよう構成されている前記ハードウェアロジックは、
新たな5つの頂点を追加して、前記入力パッチを、4つの四辺形サブ入力パッチに細分割し、
新たに追加された前記5つの頂点の各々の頂点テッセレーション係数を算出し、
新たに形成された前記4つの四辺形サブ入力パッチにおける各頂点の頂点テッセレーション係数を低減させ、
前記4つの四辺形サブ入力パッチの各々について、
該四辺形サブ入力パッチの中心に新たな頂点を形成し、
該新たな頂点の頂点テッセレーション係数を算出し、
該四辺形サブ入力パッチを分割して、上頂点として該新たな頂点を有する三角形パッチである4つの最初のパッチを形成し、
新たに形成された前記4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含む、請求項9に記載のハードウェアテッセレーションシステム。 - 前記入力パッチは、3つの頂点及び中心テッセレーション係数を有する三角形パッチであり、1つ又は複数の最初のパッチを生成するよう構成されている前記ハードウェアロジックは、
新たな4つの頂点を追加して、前記入力パッチを、3つの四辺形サブ入力パッチに細分割し、
新たに追加された前記4つの頂点の各々の頂点テッセレーション係数を算出し、
新たに形成された前記3つの四辺形サブ入力パッチにおける各頂点の頂点テッセレーション係数を低減させ、
前記3つの四辺形サブ入力パッチの各々について、
該四辺形サブ入力パッチの中心に新たな頂点を形成し、
該新たな頂点の頂点テッセレーション係数を算出し、
該四辺形サブ入力パッチを分割して、上頂点として該新たな頂点を有する三角形パッチである4つの最初のパッチを形成し、
新たに形成された前記4つの最初のパッチの各々における各頂点の頂点テッセレーション係数を低減させる
よう構成されているハードウェアロジック
を含む、請求項9に記載のハードウェアテッセレーションシステム。 - コンピュータグラフィックスシステムにおいてテッセレーションを実行する方法であって、
エッジにより結ばれている左頂点及び右頂点を含む最初のパッチであって、ドメイン空間において定義されている最初のパッチについて、
前記左頂点の頂点テッセレーション係数及び前記右頂点の頂点テッセレーション係数を、閾値と比較するステップと、
前記左頂点の前記頂点テッセレーション係数及び前記右頂点の前記頂点テッセレーション係数のいずれかが、前記閾値より大きい又は等しいと判定したことに応じて、前記エッジを2つの部分に細分割する新たな頂点を形成し、前記新たな頂点の頂点テッセレーション係数を算出し、前記最初のパッチを分割して、前記左頂点及び前記新たな頂点を含む第1の新たなパッチと、前記右頂点及び前記新たな頂点を含む第2の新たなパッチとを形成し、新たに形成された前記パッチの各々における各頂点の頂点テッセレーション係数を低減させるステップと、
を含む方法。 - コンピュータ実行可能なプログラムコードを記憶しているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能なプログラムコードは、実行されたときに、少なくとも1つのプロセッサに、請求項14記載の方法を実行させる、コンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022026393A JP7284307B2 (ja) | 2015-06-05 | 2022-02-24 | 三角形の再帰的細分割を用いたテッセレーション方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1509763.7A GB2533443B (en) | 2015-06-05 | 2015-06-05 | Tessellation method using recursive sub-division of triangles |
GB1509763.7 | 2015-06-05 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016111769A Division JP6736360B2 (ja) | 2015-06-05 | 2016-06-03 | 三角形の再帰的細分割を用いたテッセレーション方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022026393A Division JP7284307B2 (ja) | 2015-06-05 | 2022-02-24 | 三角形の再帰的細分割を用いたテッセレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020170559A true JP2020170559A (ja) | 2020-10-15 |
JP7032487B2 JP7032487B2 (ja) | 2022-03-08 |
Family
ID=53784996
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016111769A Active JP6736360B2 (ja) | 2015-06-05 | 2016-06-03 | 三角形の再帰的細分割を用いたテッセレーション方法 |
JP2020121544A Active JP7032487B2 (ja) | 2015-06-05 | 2020-07-15 | 三角形の再帰的細分割を用いたテッセレーション方法 |
JP2022026393A Active JP7284307B2 (ja) | 2015-06-05 | 2022-02-24 | 三角形の再帰的細分割を用いたテッセレーション方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016111769A Active JP6736360B2 (ja) | 2015-06-05 | 2016-06-03 | 三角形の再帰的細分割を用いたテッセレーション方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022026393A Active JP7284307B2 (ja) | 2015-06-05 | 2022-02-24 | 三角形の再帰的細分割を用いたテッセレーション方法 |
Country Status (5)
Country | Link |
---|---|
US (5) | US10096155B2 (ja) |
EP (1) | EP3101626B1 (ja) |
JP (3) | JP6736360B2 (ja) |
CN (3) | CN106251384B (ja) |
GB (1) | GB2533443B (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013142811A (ja) * | 2012-01-11 | 2013-07-22 | Tokyo Ohka Kogyo Co Ltd | レジスト組成物、レジストパターン形成方法、新規な化合物 |
KR101555426B1 (ko) * | 2014-02-07 | 2015-09-25 | 고려대학교 산학협력단 | 지형 렌더링 방법 및 장치 |
GB2533443B (en) | 2015-06-05 | 2018-06-06 | Imagination Tech Ltd | Tessellation method using recursive sub-division of triangles |
USD868807S1 (en) * | 2017-09-19 | 2019-12-03 | Covestro Llc | Display screen portion with a graphical user interface |
US10621782B1 (en) | 2017-12-06 | 2020-04-14 | Apple Inc. | Sub-patch techniques for graphics tessellation |
US10846914B2 (en) * | 2018-01-11 | 2020-11-24 | Sony Interactive Entertainment Inc. | Back-facing patch culling with displacement |
US10580209B2 (en) * | 2018-03-06 | 2020-03-03 | Qualcomm Incorporated | Removal of degenerated sub-primitives in tessellation |
GB2572619B (en) | 2018-04-05 | 2020-06-17 | Imagination Tech Ltd | Hardware Tessellation Units |
GB2585750B (en) * | 2018-04-05 | 2021-10-06 | Imagination Tech Ltd | Hardware tessellation units |
GB2572620C (en) | 2018-04-05 | 2021-10-20 | Imagination Tech Ltd | Accessing Primitive Data |
GB2572625B (en) | 2018-04-05 | 2020-06-17 | Imagination Tech Ltd | Ordering in tessellation operations |
GB2572617B (en) | 2018-04-05 | 2021-06-16 | Imagination Tech Ltd | Blending hardware |
CN109813255B (zh) * | 2019-01-16 | 2024-04-09 | 苏州科技大学 | 一种地球椭球面上大梯形图块的面积计算方法 |
JP7282532B2 (ja) * | 2019-01-24 | 2023-05-29 | キヤノン株式会社 | 情報処理装置、情報処理方法、データ構造、及びプログラム |
CN113345091A (zh) * | 2020-02-18 | 2021-09-03 | 广东博智林机器人有限公司 | 一种重叠工作面的面积统计方法及装置 |
USD985614S1 (en) * | 2021-01-21 | 2023-05-09 | Jake Paul Arsenault | Computer monitor or portion thereof with computer generated building icon |
EP4429251A1 (en) | 2023-03-08 | 2024-09-11 | Imagination Technologies Limited | Data compression and decompression methods and systems in ray tracing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005525645A (ja) * | 2002-05-10 | 2005-08-25 | イマジネイション テクノロジーズ リミテッド | パラメトリックモデリングユニットとポリゴンベースレンダリングシステム間のインターフェースをとるインターフェース及びその方法 |
JP2015018551A (ja) * | 2013-07-09 | 2015-01-29 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 点別にテッセレーションファクタを割り当てる方法と、該方法を行う装置 |
JP2017004515A (ja) * | 2015-06-05 | 2017-01-05 | イマジネーション テクノロジーズ リミティッド | 三角形の再帰的細分割を用いたテッセレーション方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6476813B1 (en) * | 1999-11-30 | 2002-11-05 | Silicon Graphics, Inc. | Method and apparatus for preparing a perspective view of an approximately spherical surface portion |
US6940505B1 (en) * | 2002-05-20 | 2005-09-06 | Matrox Electronic Systems Ltd. | Dynamic tessellation of a base mesh |
US7148890B2 (en) * | 2003-04-02 | 2006-12-12 | Sun Microsystems, Inc. | Displacement mapping by using two passes through the same rasterizer |
US7928979B2 (en) * | 2008-02-01 | 2011-04-19 | Microsoft Corporation | Efficient geometric tessellation and displacement |
US8884957B2 (en) * | 2009-09-09 | 2014-11-11 | Advanced Micro Devices, Inc. | Tessellation engine and applications thereof |
US8547598B2 (en) * | 2011-04-28 | 2013-10-01 | Xerox Corporation | Polygonal-boundary-based halftone method |
US9105125B2 (en) * | 2012-12-05 | 2015-08-11 | Advanced Micro Devices, Inc. | Load balancing for optimal tessellation performance |
US9123168B2 (en) * | 2013-01-30 | 2015-09-01 | Qualcomm Incorporated | Output ordering of domain coordinates for tessellation |
CN103606193B (zh) * | 2013-11-29 | 2016-10-12 | 中国科学院深圳先进技术研究院 | 一种自适应细分方法及装置 |
CN103810756B (zh) * | 2014-01-17 | 2016-08-17 | 浙江大学 | 基于不规则区域的自适性的Loop细分曲面的绘制方法 |
KR102197064B1 (ko) * | 2014-10-10 | 2020-12-30 | 삼성전자 주식회사 | Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들 |
-
2015
- 2015-06-05 GB GB1509763.7A patent/GB2533443B/en active Active
-
2016
- 2016-05-27 EP EP16171751.7A patent/EP3101626B1/en active Active
- 2016-06-03 JP JP2016111769A patent/JP6736360B2/ja active Active
- 2016-06-06 CN CN201610392316.9A patent/CN106251384B/zh active Active
- 2016-06-06 CN CN202110831792.7A patent/CN113643404A/zh active Pending
- 2016-06-06 CN CN202110831788.0A patent/CN113643435A/zh active Pending
- 2016-06-06 US US15/173,844 patent/US10096155B2/en active Active
-
2018
- 2018-09-06 US US16/123,544 patent/US10783705B2/en active Active
-
2020
- 2020-06-12 US US16/900,101 patent/US11386617B2/en active Active
- 2020-07-15 JP JP2020121544A patent/JP7032487B2/ja active Active
-
2022
- 2022-02-24 JP JP2022026393A patent/JP7284307B2/ja active Active
- 2022-06-20 US US17/844,424 patent/US11830143B2/en active Active
-
2023
- 2023-11-27 US US18/519,632 patent/US20240135648A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005525645A (ja) * | 2002-05-10 | 2005-08-25 | イマジネイション テクノロジーズ リミテッド | パラメトリックモデリングユニットとポリゴンベースレンダリングシステム間のインターフェースをとるインターフェース及びその方法 |
JP2015018551A (ja) * | 2013-07-09 | 2015-01-29 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 点別にテッセレーションファクタを割り当てる方法と、該方法を行う装置 |
JP2017004515A (ja) * | 2015-06-05 | 2017-01-05 | イマジネーション テクノロジーズ リミティッド | 三角形の再帰的細分割を用いたテッセレーション方法 |
Also Published As
Publication number | Publication date |
---|---|
GB2533443B (en) | 2018-06-06 |
EP3101626A1 (en) | 2016-12-07 |
US11386617B2 (en) | 2022-07-12 |
US20160358375A1 (en) | 2016-12-08 |
US20190005721A1 (en) | 2019-01-03 |
JP7284307B2 (ja) | 2023-05-30 |
US10783705B2 (en) | 2020-09-22 |
US11830143B2 (en) | 2023-11-28 |
CN113643404A (zh) | 2021-11-12 |
JP6736360B2 (ja) | 2020-08-05 |
US20200302691A1 (en) | 2020-09-24 |
JP2022068328A (ja) | 2022-05-09 |
US20220327780A1 (en) | 2022-10-13 |
US10096155B2 (en) | 2018-10-09 |
JP2017004515A (ja) | 2017-01-05 |
US20240135648A1 (en) | 2024-04-25 |
EP3101626B1 (en) | 2020-10-14 |
JP7032487B2 (ja) | 2022-03-08 |
CN113643435A (zh) | 2021-11-12 |
GB201509763D0 (en) | 2015-07-22 |
GB2533443A (en) | 2016-06-22 |
CN106251384A (zh) | 2016-12-21 |
CN106251384B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7032487B2 (ja) | 三角形の再帰的細分割を用いたテッセレーション方法 | |
JP6736361B2 (ja) | 変位係数を用いたテッセレーション方法 | |
JP6961054B2 (ja) | テッセレーション方法 | |
JP2010092478A (ja) | グラフィックス処理システム | |
JP2018085103A (ja) | カーブレンダリングを行う方法、コンピュータプログラム及び記録媒体 | |
CN110349266B (zh) | 曲面细分操作中的排序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211011 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7032487 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |