(57)【要約】【課題】  頂点テッセレーション係数を使用するテッセレーション方法を提供する。【解決手段】  頂点テッセレーション係数を使用するテッセレーション方法が説明される。四角形パッチについて、上記方法は、四角形パッチの各頂点の頂点テッセレーション係数を閾値と比較するステップを含み、いずれも閾値を超えない場合、この四角形は２つ又は４つの三角形に細分割される。４つの頂点テッセレーション係数のうち少なくとも１つが閾値を超える場合、再帰的又は反復的な方法が使用され、該方法は、四角形パッチの各頂点について考慮し、パッチをさらにテッセレートするやり方を、選択された頂点の頂点テッセレーション係数の値に依存して、又は選択された頂点及び隣接頂点の頂点テッセレーション係数の値に依存して決定する。三角形パッチについて、同様の方法が説明される。【選択図】図７
2020191134.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスシステムにおいてテッセレーションを実行する方法であって、
三角形パッチを定義する３つの頂点を含む入力を受け取るステップであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含む、ステップと、
前記頂点テッセレーション係数を閾値と比較するステップと、
前記３つの頂点テッセレーション係数のうち少なくとも１つが前記閾値を超えると決定することに応答して、
前記パッチに対する中心頂点を生成し、前記の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数を算出するステップと、
順に、前記の３つの受け取られた頂点のうち各１つを選択するステップであって、各々の選択された頂点について、
前記選択された頂点に基づいて頂点を定義するステップと、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、次の隣接頂点の頂点テッセレーション係数が前記閾値を超え、前の隣接頂点の頂点テッセレーション係数が前記閾値を超えないと決定することに応答して、新しい頂点を追加して前記選択された頂点と前記次の隣接頂点との間のエッジを細分割し、前記定義された頂点と前記の新たに追加された頂点と前記中心頂点とを接続する１つの三角形を描画するステップと、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、次の隣接頂点の頂点テッセレーション係数が前記閾値を超えず、前の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、新しい頂点を追加して前記選択された頂点と前記前の隣接頂点との間のエッジを細分割し、前記定義された頂点と前記の新たに追加された頂点と前記中心頂点と前記次の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割するステップと、
を含む方法。
【請求項２】
各々の選択された頂点について、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、双方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記の定義された頂点と前記の新たに追加された頂点と前記中心頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割するステップ
をさらに含む請求項１に記載の方法。
【請求項３】
前記パッチに対する中心頂点を生成し、前記の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数を算出するステップは、
前記三角形パッチの３つの頂点の平均値により与えられるドメイン空間における位置を有する中心頂点を生成するステップと、
最初の頂点テッセレーション係数を、
【数１】
2020191134.tif 000022
を用いて算出するステップと、
前記新たに追加された中心頂点についての頂点テッセレーション係数TFcentre及びブレンド係数BWcentreを、
InitialTFcentreが２より小さいかを決定し、
InitialTFcentreが２．０より小さいと決定すること応答して、TFcentre=1及びBWcentre=BlendWeightFunc(TF0,TF1,TF2)を設定することであって、
BlendWeightFunc(TF0,…TF2).=MAXi=0..2(MIN(TFi-1,1))
であり、
InitialTFcentreが２．０より小さくないと決定すること応答して、TFcentre=InitialTFcentre/2及びBWcentre=1.0を設定する
ことによって算出するステップと、
を含む、請求項１又は２に記載の方法。
【請求項４】
前記選択された頂点に基づいて頂点を定義するステップは、
前記の定義された頂点のドメイン空間座標を前記選択された頂点のドメイン空間座標に等しく設定するステップと、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいかと、前記選択された頂点の頂点テッセレーション係数が２．０より小さいかとを決定するステップと、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点のブレンド係数に等しく設定するステップと、
前記選択された頂点の頂点テッセレーション係数が１．０に等しくなく、２．０より小さいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点の頂点テッセレーション係数より１少ない値に等しく設定するステップと、
前記選択された頂点の頂点テッセレーション係数が２．０より小さくないと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を前記選択された頂点の頂点テッセレーション係数の半分に等しく設定し、前記定義された頂点のブレンド係数を１に等しく設定するステップと、
を含む、請求項１乃至３のうちいずれか１項に記載の方法。
【請求項５】
新しい頂点を追加して前記選択された頂点と隣接頂点との間のエッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出するステップは、頂点ＶＡとＶＢとの間のエッジを細分割する各々の新しい頂点ＶＭについて、
ＶＭについての最初の頂点テッセレーション係数を、
【数２】
2020191134.tif 000023
を用いて算出するステップと、
前記の新たに追加された頂点ＶＭについての頂点テッセレーション係数ＴＦＭ及びブレンド係数ＢＷＭを、
InitialTFMが２より小さいかを決定し、
InitialTFMが２．０より小さいと決定することに応答して、TFM=1及びBWM=MAX(MIN(TFA-1,1),MIN(TFB-1,1))を設定し、
InitialTFMが２．０より小さくないと決定することに応答して、TFM=InitialTFM/2及びBWM=1.0を設定し、
ドメイン空間におけるＶＭの位置を、ＶＡ及びＶＢのドメイン空間座標の平均であるように、及び、（ｉ）Ｎ次元空間におけるＶＡ及びＶＢの位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるＶＭの位置との、ＢＷＭを用いて重み付けされたブレンドにより与えられる位置を有するＮ次元空間における位置に、設定する
ことによって算出するステップと、
を含む、請求項１乃至４のうちいずれか１項に記載の方法。
【請求項６】
前記閾値は１に等しい、請求項１乃至５のうちいずれか１項に記載の方法。
【請求項７】
パッチ又はサブ四角形内における再利用のための頂点データを記憶するステップ、をさらに含み、前記パッチ又はサブ四角形の２つ以上の細分割された部分の一部であるエッジを細分割するように追加される頂点が、パッチ又はサブ四角形ごとに１回だけ決定される、請求項１乃至６のうちいずれか１項に記載の方法。
【請求項８】
パッチ又はサブ四角形の細分割された部分は三角形又はサブ四角形を含む、請求項７に記載の方法。
【請求項９】
三角形パッチを定義する３つの頂点を含む入力を受け取ることであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含み、
前記頂点テッセレーション係数を閾値と比較し、
前記３つの頂点テッセレーション係数のうち少なくとも１つが前記閾値を超えると決定することに応答して、
前記パッチに対する中心頂点を生成し、前記の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数を算出し、
順に、前記の３つの受け取られた頂点のうち各１つを選択することであって、各々の選択された頂点について、
前記選択された頂点に基づいて頂点を定義し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、次の隣接頂点の頂点テッセレーション係数が前記閾値を超え、前の隣接頂点の頂点テッセレーション係数が前記閾値を超えないと決定することに応答して、新しい頂点を追加して前記選択された頂点と前記次の隣接頂点との間のエッジを細分割し、前記定義された頂点と前記の新たに追加された頂点と前記中心頂点とを接続する１つの三角形を描画し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、次の隣接頂点の頂点テッセレーション係数が前記閾値を超えず、前の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、新しい頂点を追加して前記選択された頂点と前記前の隣接頂点との間のエッジを細分割し、前記定義された頂点と前記の新たに追加された頂点と前記中心頂点と前記次の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割する
ように構成されたハードウェアロジックを含むハードウェアテッセレーションユニット。
【請求項１０】
各々の選択された頂点について、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、双方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記の定義された頂点と前記の新たに追加された頂点と前記中心頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割する
ように構成されたハードウェアロジックをさらに含む請求項９に記載のハードウェアテッセレーションユニット。
【請求項１１】
前記パッチに対する中心頂点を生成し、前記の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数を算出するように構成された前記ハードウェアロジックは、
前記三角形パッチの３つの頂点の平均値により与えられるドメイン空間における位置を有する中心頂点を生成し、
最初の頂点テッセレーション係数を、
【数３】
2020191134.tif 000024
を用いて算出し、
前記新たに追加された中心頂点についての頂点テッセレーション係数TFcentre及びブレンド係数BWcentreを、
InitialTFcentreが２より小さいかを決定し、
InitialTFcentreが２．０より小さいと決定すること応答して、TFcentre=1及びBWcentre=BlendWeightFunc(TF0,TF1,TF2)を設定することであって、
BlendWeightFunc(TF0,…TF2).=MAXi=0..2(MIN(TFi-1,1))
であり、
InitialTFcentreが２．０より小さくないと決定すること応答して、TFcentre=InitialTFcentre/2及びBWcentre=1.0を設定する
ことによって算出する
ように構成されたハードウェアロジックを含む、請求項９又は１０に記載のハードウェアテッセレーションユニット。
【請求項１２】
前記選択された頂点に基づいて頂点を定義するように構成された前記ハードウェアロジックは、
前記の定義された頂点のドメイン空間座標を前記選択された頂点のドメイン空間座標に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいかと、前記選択された頂点の頂点テッセレーション係数が２．０より小さいかとを決定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点のブレンド係数に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しくなく、２．０より小さいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点の頂点テッセレーション係数より１少ない値に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が２．０より小さくないと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を前記選択された頂点の頂点テッセレーション係数の半分に等しく設定し、前記定義された頂点のブレンド係数を１に等しく設定する
ように構成されたハードウェアロジックを含む、請求項９乃至１１のうちいずれか１項に記載のハードウェアテッセレーションユニット。
【請求項１３】
新しい頂点を追加して前記選択された頂点と隣接頂点との間のエッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出するように構成された前記ハードウェアロジックは、頂点ＶＡとＶＢとの間のエッジを細分割する各々の新しい頂点ＶＭについて、
ＶＭについての最初の頂点テッセレーション係数を、
【数４】
2020191134.tif 000025
を用いて算出し、
前記の新たに追加された頂点ＶＭについての頂点テッセレーション係数ＴＦＭ及びブレンド係数ＢＷＭを、
InitialTFMが２より小さいかを決定し、
InitialTFMが２．０より小さいと決定することに応答して、TFM=1及びBWM=MAX(MIN(TFA-1,1),MIN(TFB-1,1))を設定し、
InitialTFMが２．０より小さくないと決定することに応答して、TFM=InitialTFM/2及びBWM=1.0を設定し、
ドメイン空間におけるＶＭの位置を、ＶＡ及びＶＢのドメイン空間座標の平均であるように、及び、（ｉ）Ｎ次元空間におけるＶＡ及びＶＢの位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるＶＭの位置との、ＢＷＭを用いて重み付けされたブレンドにより与えられる位置を有するＮ次元空間における位置に、設定する
ことによって算出する
ように構成されたハードウェアロジックを含む、請求項９乃至１２のうちいずれか１項に記載のハードウェアテッセレーションユニット。
【請求項１４】
パッチ又はサブ四角形内における再利用のための頂点データを記憶するように配置されたメモリ素子、をさらに含み、前記パッチ又はサブ四角形の２つ以上の細分割された部分の一部であるエッジを細分割するように追加される頂点が、パッチ又はサブ四角形ごとに１回だけ決定される、請求項９乃至１３のうちいずれか１項に記載のハードウェアテッセレーションユニット。
【請求項１５】
実行されたときに少なくとも１つのプロセッサに請求項１乃至８のうちいずれか１項に記載の方法を実行させるコンピュータ実行可能プログラムコードを記憶したコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
テッセレーションは、コンピュータグラフィックスにおいて使用される手法であり、あるシーンにおけるオブジェクトを表現する一組のサーフェスを、複数のより小さい、より簡素なピース（プリミティブと呼ばれる）へと分割する。このピースは、典型的には三角形であり、レンダリングにより適している。結果として生じるテッセレートされたサーフェスは、一般に、元のサーフェスに対する近似であるが、この近似の正確さは、生成されるプリミティブの数を増加させることによって向上させることができ、このことが今度は、大抵、プリミティブが小さくなることをもたらす。テッセレーション／細分割の量は、大抵、詳細レベル（level  of  detail；ＬＯＤ）によって決定される。したがって、より高い詳細レベルが必要とされる場合、典型的に、増加させた数のプリミティブが使用される。例えば、オブジェクトがビューアにより近いため、かつ／あるいは、オブジェクトがより入り組んだ形状を有するためなどである。しかしながら、多数の三角形の使用は、そのシーンをレンダリングするのに必要とされる処理労力を増大させる。
【０００２】
三角形プリミティブへの細分割は典型的にパッチに対して実行され、パッチは形状において四角く又は三角であり（すなわち、四角形又は三角形）、パッチを曲げて、該パッチが表現するオブジェクトのサーフェスにフィットさせ（ゆえに、「サーフェスパッチ」と呼ばれることがある）、かつ／あるいはディスプレースメントマッピングを適用させてもよい。しかしながら、細分割は、曲げられたパッチに対して実行されず、しかし代わって、パッチのドメインの中で（例えば、パッチが多項式により定義されるのでなく、より平面的であるかのように）実行される。上記ドメインは、（ｕ，ｖ）パラメータの観点において定義され、「パラメトリック空間」と呼ばれ得る。このことは、テッセレーション処理が、最終的なサーフェスに存在するいかなる湾曲からも独立であることを意味する。
【０００３】
テッセレーションは、前もって（例えば、あるシーンについての複数の異なるビューを、異なる詳細レベルにおいて及び／又は異なる視点から計算するように）実行されてもよく、あるいは、臨機応変に（on  the  fly）（例えば、連続的な又はビュー依存の詳細レベルを提供するように）実行されてもよい。いくつかの既存のテッセレーション方法を用いると、ユーザは、望まれない視覚効果を体験する可能性があり、これにおいて、要求された詳細レベルは円滑に変更されるが、結果として生じるテッセレーションは非連続的な仕方において変化し、このことは「ポッピング」と呼ばれ得る。
【０００４】
以下に説明される実施形態は、単に例として提供され、テッセレーションを実行する既知の方法及び装置の欠点のうちいずれか又はすべてを解決する実施の限定ではない。
【発明の概要】
【０００５】
本発明の概要は、以下に詳細な説明においてさらに説明される概念のうち選択されたものを簡素化された形式で紹介するために提供される。本発明の概要は、請求される対象事項のうち重要な特徴又は必須の特徴を識別するものではなく、請求される対象事項の範囲の決定を支援するものとして使用されるべきものでもない。
【０００６】
頂点テッセレーション係数を使用するテッセレーション方法が説明される。四角形パッチについて、上記方法は、四角形パッチの各頂点の頂点テッセレーション係数を閾値と比較することを含み、いずれも閾値を超えない場合、この四角形は（例えば、パッチがトップレベルパッチであるか、又はトップレベルパッチを細分割することにより形成されたサブ四角形であるかに依存して）２つ又は４つの三角形に細分割される。４つの頂点テッセレーション係数のうち少なくとも１つが閾値を超える場合（閾値は、１に等しくてもよい）、再帰的又は反復的な方法が使用され、該方法は、四角形パッチの各頂点を考慮し、パッチをさらにテッセレートするやり方を、選択された頂点の頂点テッセレーション係数の値に依存して、又は選択された頂点及び隣接頂点の頂点テッセレーション係数の値に依存して決定する。三角形パッチについて、同様の方法が説明される。
【０００７】
第１の態様が、コンピュータグラフィックスシステムにおいてテッセレーションを実行する方法を提供する。該方法は、ａ）四角形パッチを定義する４つの頂点を含む入力を受け取るステップであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含む、ステップと、ｂ）上記頂点テッセレーション係数を閾値と比較するステップと、ｃ）すべての４つの頂点テッセレーション係数が上記閾値を超えないと決定することに応答して、上記パッチを２つ又は４つの三角形に分割するステップと、ｄ）少なくとも１つのテッセレーション係数が上記閾値を超えると決定することに応答して、上記パッチに対する中心頂点を生成し、上記の新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出するステップと、順に、上記の４つの受け取られた頂点のうち各１つを選択するステップであって、各々の選択された頂点について：上記選択された頂点に基づいて頂点を定義するステップと；上記選択された頂点の頂点テッセレーション係数が上記閾値を超えるか、又は双方の隣接頂点の頂点テッセレーション係数が上記閾値を超えると決定することに応答して、２つの新しい頂点を追加して上記選択された頂点と隣接頂点との間の各エッジを細分割し、上記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出し、サブ四角形を定義し且つ上記の定義された頂点と上記中心頂点と上記２つの新しい頂点とを含む４つの頂点を、さらなる入力としてａ）に提供するステップと；上記選択された頂点の頂点テッセレーション係数が上記閾値を超えず、正確に一方の隣接頂点の頂点テッセレーション係数が上記閾値を超えると決定することに応答して、新しい頂点を追加して、上記選択された頂点と上記閾値を超える頂点テッセレーション係数を有する隣接頂点との間のエッジを細分割し、上記の定義された頂点と上記の新たに追加された頂点と上記中心頂点と他方の隣接頂点とにより定義されるサブ四角形を、上記定義された頂点を上記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割するステップと；を含む。
【０００８】
第２の態様が、ハードウェアロジックを含むハードウェアテッセレーションユニットを提供する。該ハードウェアロジックは、ａ）四角形パッチを定義する４つの頂点を含む入力を受け取ることであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含み、ｂ）上記頂点テッセレーション係数を閾値と比較し、ｃ）すべての４つの頂点テッセレーション係数が上記閾値を超えないと決定することに応答して、上記パッチを２つ又は４つの三角形に分割し、ｄ）上記４つの頂点テッセレーション係数のうち少なくとも１つが上記閾値を超えると決定することに応答して：上記パッチに対する中心頂点を生成し、上記の新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出し；順に、上記の４つの受け取られた頂点のうち各１つを選択することであって、各々の選択された頂点について：上記選択された頂点に基づいて頂点を定義し；上記選択された頂点の頂点テッセレーション係数が上記閾値を超えるか、又は双方の隣接頂点の頂点テッセレーション係数が上記閾値を超えると決定することに応答して、２つの新しい頂点を追加して上記選択された頂点と隣接頂点との間の各エッジを細分割し、上記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出し、サブ四角形を定義し且つ上記の定義された頂点と上記中心頂点と上記２つの新しい頂点とを含む４つの頂点を、さらなる入力としてａ）に提供し；上記選択された頂点の頂点テッセレーション係数が上記閾値を超えず、正確に一方の隣接頂点の頂点テッセレーション係数が上記閾値を超えると決定することに応答して、新しい頂点を追加して、上記選択された頂点と上記閾値を超える頂点テッセレーション係数を有する隣接頂点との間のエッジを細分割し、上記の定義された頂点と上記の新たに追加された頂点と上記中心頂点と他方の隣接頂点とにより定義されるサブ四角形を、上記定義された頂点を上記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割する；ように構成される。
【０００９】
さらなる態様が、実行されるときに少なくとも１つのプロセッサに本明細書に説明される方法を実行させるコンピュータ実行可能プログラムコードを記憶させたコンピュータ可読記憶媒体と、本明細書に説明されるハードウェアテッセレーションユニットを含むグラフィックス処理ユニットと、本明細書に説明されるハードウェアテッセレーションユニットを定義するコンピュータ可読プログラムコードをエンコードさせたコンピュータ可読記憶媒体と、本明細書に説明される方法を実行するように構成されたハードウェアテッセレーションユニットを定義するコンピュータ可読プログラムコードをエンコードさせたコンピュータ可読記憶媒体とを提供する。
【００１０】
当業者に明らかであろうとおり、好適な特徴が、必要に応じて組み合わせられてもよく、本発明の態様のうち任意のものと組み合わせられてもよい。
【図面の簡単な説明】
【００１１】
本発明の実施形態が、例として、下記の図面を参照して説明される。同様の特徴を示すために、共通の参照番号が図面の全体にわたって使用される。
【図１】様々な既知のテッセレーション方法の使用の結果を示す。
【図２】小数区分化を用いた変位マップの使用を示す。
【図３】頂点が導入されるときの円滑な移行を生成する方法を示す概略図である。
【図４】エッジテッセレーション係数を用いた従来技法と本明細書に説明される頂点テッセレーション係数を用いる方法とを使用して得られる種々の結果の例を示す概略図である。
【図５】エッジテッセレーション係数と頂点テッセレーション係数とを四角形ドメインにおいて使用して得られる種々の結果のさらなる例を示す概略図である。
【図６】エッジテッセレーション係数と頂点テッセレーション係数とを三角形ドメインにおいて使用して得られる種々の結果のさらなる例を示す概略図である。
【図７】四角形入力パッチに対して適用されるとして頂点テッセレーション係数を使用する一例示的なテッセレーション方法のフロー図である。
【図８】三角形入力パッチに対して適用されるとして頂点テッセレーション係数を使用する一例示的なテッセレーション方法のフロー図である。
【図９】図７の方法を例示する概略図である。
【図１０】図７の方法を用いて得られる結果の例を示す。
【図１１】図８の方法を例示する概略図である。
【図１２】図７及び図８の方法を用いて得られる結果の例を示す。
【図１３】一例示的なＧＰＵパイプラインの概略図である。
【図１４】任意の形態のコンピューティング及び／又は電子装置として実施されることが可能であり、図７及び図８のテッセレーション方法を実施するように構成されることが可能である一例示的なコンピューティングベース装置の様々なコンポーネントを例示する。
【図１５】図７及び図８の方法を用いて得られる結果のさらなる例を示す。
【図１６】本明細書に説明される方法が如何にしてＰ辺のドメインに拡張され得るかを例示する概略図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態が、以下に、単に例として説明される。これら例は、出願人にとって現在分かっている本発明を実施するための最良の方法を表すが、このことを達成することができる方法はこれら例だけではない。本説明は、例の機能と例を構築し及び動作させるステップのシーケンスとを明記する。しかしながら、同一の又は均等の機能及びシーケンスが、異なる例によって達成され得る。
【００１３】
エッジテッセレーション係数（tessellation  factor；ＴＦ）を使用する多数の既知のテッセレーション方法が存在し、エッジＴＦは、パッチの（例えば、四角形（quad）又は三角形の）各エッジについて定義され、エッジ（及び、ゆえにパッチ）が何回細分割される（sub-divided）べきかを決定する。図１は、種々のエッジテッセレーション係数を、ただし各エッジについて同じテッセレーション係数で使用するときに、結果として生じる三角形が如何に異なるかを示す。
【００１４】
図１における始めの５つの例（ａ）〜（ｅ）は、
（ａ）整数区分化（Integer  partitioning）、すべての４つのエッジについてエッジＴＦ＝３
（ｂ）整数区分化、すべての４つのエッジについてエッジＴＦ＝４
（ｃ）２の累乗整数区分化（Power  of  two  integer  partitioning）、すべての４つのエッジについてエッジＴＦ＝２
（ｄ）２の累乗整数区分化、すべての４つのエッジについてエッジＴＦ＝４
（ｅ）２の累乗整数区分化、すべての４つのエッジについてエッジＴＦ＝８
を示す。
【００１５】
整数区分化と２の累乗整数区分化とを用いると、各エッジに沿った頂点は、常に、均等に間隔を空けられる。しかしながら、細分割レベルが変わり、三角形が小さくない場合、望まれない視覚的アーチファクト（ポッピングなど）が発生する可能性が高い。ただし、小さいポリゴンがさらなるレンダリングオーバーヘッドを招くとき、ポリゴンをその小ささにすることは望ましくない。この効果は、２の累乗整数区分化について、ステップサイズがかなり大きくなり得るとき、特に劇的である。
【００１６】
図１における最後の４つの例（ｆ）〜（ｉ）は、（例（ａ）〜（ｅ）とは異なり、）様々なオフセットにおいて頂点を生成する小数区分化（fractional  partitioning）方法を示し、
ｆ）奇数（Odd）小数区分化、すべての４つのエッジについてエッジＴＦ＝３．０
ｇ）奇数小数区分化、すべての４つのエッジについてエッジＴＦ＝４．０
ｈ）偶数（Even）小数区分化、すべての４つのエッジについてエッジＴＦ＝３．０
ｉ）偶数小数区分化、すべての４つのエッジについてエッジＴＦ＝４．０
である。
【００１７】
いくつかの既知のシステムは、（例えば、例（ｆ）〜（ｉ）に図示されるとおり）「小数の」詳細レベルを許容することによって、エッジに沿って「ポッピング」アーチファクトを回避する。これにおいて、いかなる新しい頂点も、最初、既存の頂点の場所に作成され、こうした頂点が、詳細レベルが増加するとき、パラメータ空間におけるほんの１つのエッジについて図２（ａ）に図示されるとおり、位置へ徐々に「スライドする」。表現における突然のジャンプが大幅に除去されるが、こうしたスキームは、邪魔になる、不安定な「遊泳（swimming）／揺動（wobbling）」アーチファクトを被る可能性があり、該アーチファクトは、ディスプレースメントマッピング（displacement  mapping）の使用によって悪化させられる可能性があり、このことは図２（ｂ）及び（ｃ）を参照して説明され得る。
【００１８】
図２（ｂ）は、一例示的な変位マップ断面を示し、図２（ｃ）は、テッセレーション係数が変更されるとき、上記断面が如何にエッジ（例えば、図２（ａ）に示されるエッジ）に適用されるかを示す。矢印２０１〜２０４は、テッセレーション係数が４．０から５．０に（矢印２０１、２０２）、及び５．０から６．０に（矢印２０３、２０４）変わるとき、頂点の変位（displacement）が如何に変わるかを示す。
【００１９】
ポッピングに対する別の解決策は、英国特許第２３８８５０７号に説明され、図３に示されている。この例において、曲線は、パッチのエッジの１つであり、点Ａ及びＢが角の頂点のうちの２つであるように見なされることができる。さらなる細分割が実行される場合、このことは、曲線上に新しい点Ｃを生み出すことになり、この点Ｃは、中間の頂点のとり得る位置に対応することになる。反対に、細分割の数が同じままである場合、曲線は、線ＡＢによって近似されることになり、この線上において点Ｄに中間の頂点が存在することになる。細分割のレベルが変わるとき、点ＣとＤとの間で円滑な移行を達成するために、新しい点Ｅが線ＣＤに沿って算出され、これが中間の頂点の値として使用される。Ｅの位置は、
E=wC+(1-w)D
を用いて算出されることができ、ここで、ｗは重み付け係数であり、細分割比の小数部分から導出され、Ｄは特定の細分割レベルにおいて導出される第１の頂点値であり、Ｃは、より微細な細分割レベルにおいて導出される第２の頂点値である。上記の式を用いてＥを算出することによって、新しい中間の頂点が点Ｃ及びＤの間で円滑に移行する。
【００２０】
テッセレーション方法を選択するときの他の検討は、テッセレートされる（tessellated）モデルのレンダリングコストが三角形の数に部分的に依存するため、エッジテッセレーション設定の所与の組み合わせに対して生成される三角形の数であるだけではなく、さらに、こうした三角形のアスペクト比もある。典型的に、グラフィックスシステム（ハードウェア又はソフトウェアのいずれか）は、最小の周囲長さ対面積比（perimeter  to  area  ratio）を暗に示す所与の画面面積（すなわち、画面画素）の「等辺の」三角形を、同じ面積をより大きい周囲長さ対面積比で有する（細長い）三角形より迅速に、レンダリングする。さらに、値、例えばシェーディングの結果などが頂点において計算され、三角形にわたって補間されるとき、より多くの等辺形状の三角形を有することは、より少ないアーチファクトをもたらすであろう。
【００２１】
さらなる検討は、三角形のパターンを生成するために使用されるアルゴリズムの複雑さである。いくつかの既知の小数テッセレーションスキーム（例えば、Ｇｕａｒｄａｒｄｏにより開発され、Ａｋｅｎｉｎｅ‐Ｍｏｅｌｌｅｒ及びＨａｉｎｅｓによる“Ｒｅａｌ‐Ｔｉｍｅ  Ｒｅｎｄｅｒｉｎｇ”、ＩＳＢＮ１‐５６８８１‐１８２‐９、５２４〜５２５頁に説明される方法など）は、不均一のテッセレーションをもたらす。アルゴリズムが、簡素及び／又は規則的に保たれることが可能である（例えば、違ったふうに取り扱われる必要がある多くの「特別なケース」を有することがない）場合、このことは、ハードウェア又はソフトウェア実装コストを低減させることができる。
【００２２】
最後の望ましい検討は、テッセレーションパターンにおける回転／反射対称性である。例えば、時計回りの順序などにおいて与えられた頂点ＡＢＣＤと適切なテッセレーション係数とを用いて定義された四角形のパッチが、ＢＣＤＡとしてリストアップされた頂点を有する「等辺の」四角形と同じ最終的な三角形メッシュを生じさせることは、好ましいであろう。いくつかの既存のテッセレーションスキームは、この特性を保証しない（例えば、図１の例（ｆ）及び（ｇ）における「奇数」テッセレーション方法の中間の四角を参照）。
【００２３】
以下に、エッジテッセレーション係数を使用しないが、代わって四角形又は三角形の各頂点（又は、角）について定義されたテッセレーション係数を使用するテッセレーション方法が説明される。該テッセレーション係数は「頂点テッセレーション係数」と呼ばれ、これらは、上記で説明された既知の方法において使用されるエッジテッセレーション係数から区別される。
【００２４】
本説明において、サーフェスパッチは、通常有限の、Ｎ次元のサーフェス（又は、等値線（isoline）の場合、Ｎ次元の曲線セグメント）を指し、このサーフェスは、四角形又は三角形のいずれかである境界を定められた２Ｄドメイン（又は、等値線の場合は１Ｄの線セグメント）への、パラメトリックマッピング関数の適用の結果である。結果として生じるサーフェス又は等値線は、デカルトの（又は、同種の）空間的位置決めのための３（又は４）次元だけでなく、テクスチャ座標などの他のパラメータをさらに含み得るので、Ｎ次元と見なされることができる。上記で説明されたとおり、サーフェスパッチを曲げて、該サーフェスパッチが表現するオブジェクトのサーフェスにフィットさせ、かつ／あるいはディスプレースメントマッピングを適用させてもよい。しかしながら、テッセレーション（すなわち、パッチの細分割）は「ワールド空間（world  space）」において実行されず（すなわち、テッセレーションは、曲げられたサーフェスパッチに対して実行されない）、しかし代わって、ドメイン空間において実行される（このドメイン空間はさらにパラメトリック空間又はパラメータ空間と呼ばれることがある）。上記ドメイン空間において、ドメイン内の任意の位置が、ドメイン空間座標として知られる２つの座標（ｕ，ｖ）によって説明されることができ、このことは、テッセレーション処理が最終的なサーフェスに存在するいかなる湾曲からも独立であることを意味する（しかしながら、ユーザは、テッセレーション係数を決定するとき、上記湾曲を考慮に入れてもよい）。このテッセレーション方法を説明するとき、用語「パッチ」は、ドメインの境界を定める２つ、３つ、又は４つの頂点の順序付けられたセットを（等値線、三角形、又は四角形について、それぞれ、）指すように用いられる。用語「頂点」は、概して、場所に加えて他の属性を説明するように用いられ、上記属性は、コンテキストに依存して異なる。例えば、ドメインシェーダ（domain  shader）からの入力制御点と出力頂点とは、３Ｄ位置に加えて他のパラメータ、例えば、法線、タンジェント、テクスチャなどを含み、一方、テッセレータ（tessellator）内の頂点（すなわち、テッセレーション方法内で使用される頂点）は、ドメイン空間座標と頂点テッセレーション係数とを含む。ゆえに、テッセレータ内の上記頂点は、入力制御点又は最終的な三角形を形成する結果的なＮ次元の頂点と同じでない。
【００２５】
パッチの角におけるＴＦを指定することで、テッセレートされたパッチ内に結果として生じる三角形のサイズ及び形状において、不意の変更がより少なくなる。なぜならば、エッジの区分化は、固定されず（すなわち、エッジＴＦによって指定される値に）、しかし代わって、エッジの各端部における頂点ＴＦによって決定され、（パラメータ空間において１Ｄの意味において）元のエッジに沿って円滑に変動して細分割の複数レベル間で徐々の移行を生じさせるだけでなく、さらに、他のＴＦとの組み合わせにおいて、２Ｄの意味においてパッチをかなり円滑に横断することを可能にする。このことは図４にグラフィカルに示されており、図４は、パラメトリック空間において、既知の方法を用いてエッジにおけるテッセレーション係数を定義すること（図４０２）と、角（又は、頂点）におけるテッセレーション係数を定義すること（図４０４）とにおける差を示す。第１の図４０２は、２及び４のエッジテッセレーション係数を有する２つの四角形の場合において、エッジにわたり、２の累乗により定義されたテッセレーション係数を使用した結果である。第２の図４０４は、以下に説明される方法と、２（頂点４０６、４０８について）及び４（頂点４１０〜４１６について）の頂点テッセレーション係数とを使用している。
【００２６】
以下に説明されるとおり、頂点に基づくテッセレーション係数と共に、この方法は、望まれない視覚的アーチファクトを最小化する（あるいは、除去する）。なぜならば、多くの実施形態において、あらゆる頂点（例えば、細分割の一部として三角形に追加される各々の新しい頂点）は、ａ）ワールド空間におけるその最終的な位置か、あるいはｂ）ワールド空間におけるその最終的な位置であって、すぐ下のレンジのＴＦにおいて三角形の角であった２つ又は３つの他の頂点の、中間点か、あるいはｃ）前の２つの選択肢の線形のブレンド（blend）である点（例えば、図３に示される手法を適用して、（ａ）及び（ｂ）により達成される複数位置間の結果をブレンドすることによって）か、のいずれかに追加されるからである。上記の結果は、詳細レベル（及び、ゆえにＴＦ）が変化するとき、頂点が、いくつかの従来技術において（例えば、図２の例において示され、上記で説明されたとおり）のようにサーフェスにわたり「スライド」しないことであり、スライドすることは、遊泳／揺動アーチファクトを引き起こす可能性がある。代わって、「より少ない」ＴＦに存在する２つ、３つ、又は４つの頂点についての中間点に最初に導入される頂点が、詳細レベル（ＬＯＤ）が増加するとき、ワールド空間におけるその最終的な位置へゆっくり「発展する」（例えば、このことは、オブジェクトに対してより近くに移動しているビューアによって決定されることができる）。ＬＯＤ／ＴＦが減少するとき、逆の処理が発生する。
【００２７】
図５及び図６は、再度パラメトリック空間において図示され、以下に説明される方法（頂点テッセレーション係数を使用する）を用いて得られた結果と、他の既知のテッセレーションの方法（エッジテッセレーション係数を使用する）を用いて得られた結果とにおける、さらなる比較を示す。上記の例において、エッジに基づくテッセレーションスキームにおいて、新しい方法と同じレベルのテッセレーションを近似的に生じさせるために、エッジテッセレーション係数は、対応する角のテッセレーション係数の平均であるように設定されている。図５における第１の例５０１は、上部エッジに対して３．０、右エッジに対して４．０、下部エッジに対して３．０、及び左エッジに対して２．０のエッジＴＦについて、奇数小数区分化５１１と偶数小数区分化５１２と整数区分化５１３と２の累乗整数区分化５１４とを使用して得られた結果と、左上頂点に対して２．０、右上頂点に対して４．０、右下頂点に対して４．０、及び左下頂点に対して２．０の頂点ＴＦを用いて、以下に説明される方法を使用して得られた結果５１５との、比較を示す。以下に説明される方法が、既知の手法と近似的に同数の細分割をもたらし、しかしながら、詳細レベル間の移行はより円滑に取り扱われ、多くの、より細長くない三角形がもたらされることがわかるであろう。細長い三角形は、前に述べられたとおり、レンダリングするときにあまり望ましくない。このことは、図５の第２の例５０２にさらに示されており、第２の例５０２は、上部エッジに対して３．０、右エッジに対して６．０、下部エッジに対して８．０、及び左エッジに対して５．０のエッジＴＦについて、奇数小数区分化５２１と偶数小数区分化５２２と整数区分化５２３と２の累乗整数区分化５２４とを使用して得られた結果と、左上頂点に対して２．０、右上頂点に対して４．０、右下頂点に対して８．０、及び左下頂点に対して８．０の頂点ＴＦを用いて、以下に説明される方法を使用して得られた結果５２５との、比較を示す。
【００２８】
図６は、三角形ドメインについての対応する結果を示す。図６における第１の例６０１は、左右のエッジ６０４、６０５に対して３．０のエッジＴＦ、及び下部エッジ６０６に対して４．０のエッジＴＦについて、奇数小数区分化６１１と偶数小数区分化６１２と整数区分化６１３と２の累乗整数区分化６１４とを使用して得られた結果と、上部頂点６０７に対して２．０の頂点ＴＦ、及び下部の２つの頂点６０８、６０９に対して４．０の頂点ＴＦを用いて、以下に説明される方法を使用して得られた結果６１５との、比較を示す。
【００２９】
図５の四角形ドメインの例と同様に、以下に説明される方法が三角形ドメインに適用されるとき、既知の手法と近似的に同数の細分割をもたらし、しかしながら、詳細レベル間の移行はより円滑に取り扱われ、多くの、より細長くない三角形がもたらされることがわかるであろう。細長い三角形は、前に述べられたとおり、レンダリングするときにあまり望ましくない。このことは、図６における第２の例６０２にさらに示されており、第２の例６０２は、左エッジ６０４に対して３．０、右エッジ６０５に対して６．０、及び下部エッジ６０６に対して５．０のエッジＴＦについて、奇数小数区分化６２１と偶数小数区分化６２２と整数区分化６２３と２の累乗整数区分化６２４とを使用して得られた結果と、上部頂点６０７に対して４．０、左下頂点６０８に対して２．０、及び右下頂点６０９に対して８．０の頂点ＴＦを用いて、以下に説明される方法を使用して得られた結果６２５との、比較を示す。
【００３０】
さらに、第２の例５０２及び６０２に関して、特に、例５２１〜５２３及び６２１〜６２３で目立つのが、上記スキームの相対的な複雑さである。こうした従来技法は、比較的に規則的なＮ×Ｍのテッセレーションパターンで内部セクションを作成し、それから、この内部セクションに対して、望ましい仕方未満の、半不規則な仕方において外側の境界が「縫いつけ」られる。このことは、テッセレーション処理に対して望ましくない複雑さを追加するだけでなく、さらに、非対称的なテッセレーションとあまり均等でない形状の三角形とをもたらす。
【００３１】
図５及び図６の例５１５、５２５、６１５、及び６２５において、並びに、本明細書に説明されるテッセレーション方法で生成される後の例において、複数の画像が、（以下により詳細に説明されるとおり、）新しい頂点が追加されるときに実行されるブレンディングの（パラメータ空間における）指標を提供する。上記例のいずれかにおいて四角として図示される頂点は、その「最終的な」場所にあり、次第により大きいサークルが使用されて、補間された状態における頂点を示し、すなわち、そのブレンド係数は、［０．０，１．０］内である。
【００３２】
図７及び図８を参照して、頂点テッセレーション係数を使用するテッセレーション方法を説明することができる。図７及び図８は、四角形（図７）及び三角形（図８）のための方法を示すフロー図である。テッセレーション方法が、図７及び図８に示される方法のうちいずれか又は双方を実施することができる。
【００３３】
四角形の方法（図７）は、図９に示される例示的な四角形を参照して説明することができる。この四角形の方法は４つの頂点を受け取り、各々が、ドメイン空間（すなわち、（ｕ，ｖ））座標と頂点テッセレーション係数とを含む。４つの頂点は、Ｖ０、Ｖ１、Ｖ２、及びＶ３とラベル付けされ、対応するテッセレーション係数ＴＦ０〜ＴＦ３を有する。テッセレーション係数に加えて、各頂点は、ブレンド係数ＢＦｉ∈［０．０，１．０］（ここで、ｉは頂点インデックスである）をさらに維持する。トップレベルパッチについて、上記の頂点ごとのブレンド係数は、１．０に設定される。
【００３４】
トップレベルパッチである四角形について、任意の頂点がＶ０とラベル付けされてよく、それから、残りの頂点が回転的な順序において、すなわち、時計回り又は反時計回りの順序で四角形の周りを回って、ラベル付けされる。頂点にラベルを付けることについてどちらの方向が使用されるとしても（すなわち、時計回り又は反時計回り）、テッセレーション方法の全体をとおして一貫した順序が使用されなければならず、下記の説明を目的として、時計回りのラベル付けの慣習が採用される。サブ四角形（sub-quad）について、４つの入力頂点は、これらがそれぞれの親の四角形から形成されたとき、Ｖ０乃至Ｖ３としてすでに効率的に「ラベル付けされ」ている。対称性を維持する少なくとも１つの他の均等の再順序付け／再ラベル付けが存在し、しかし例における簡素さのため、デフォルトの入力ラベル付けが使用されることを、当業者は十分理解し得る。
【００３５】
四角形についてのすべての４つの頂点テッセレーション係数が１．０である場合、これは、「末端（terminal）四角形」と呼ばれる。
【００３６】
トップレベルパッチ（ブロック７０４において“Ｙｅｓ”）がさらに「末端四角形」である、すなわち、すべての４つの頂点テッセレーション係数が１に等しい（ブロック７０２において“Ｙｅｓ”）場合、中心頂点（centre  vertex）が追加され（ブロック７０６）、各入力頂点を中心頂点につなぐことによって、４つの三角形が作成される（ブロック７０８）。（ブロック７０６において）追加される中心頂点は、最終的なＮ次元空間における或る位置に追加され、この位置は、４つの頂点のＮ次元の場所についての平均である。
【００３７】
用語「トップレベルパッチ」は、テッセレーション方法に対する入力パッチを指し、三角形又は四角形であり得るが、しかしながら、このポイントにおいて、（ブロック７０４における）決定は、四角形（４つの入力頂点によって定義される）がトップレベルパッチであるかどうかのみである。四角形がトップレベルパッチでない場合、それはサブ四角形と呼ばれることが可能であり、サブ四角形は、いくつかのレベルにおいて入力パッチの細分割によって形成され、入力パッチは、以下に説明されるとおり、四角形パッチ又は三角形パッチであり得る。サブ四角形を形成するように特定レベルの細分割において細分割される四角形又は三角形は、サブ四角形の親と呼ばれ（この親は、入力パッチ、又は別のサブ四角形であり得る）、親の細分割から結果として生じるサブ四角形は、子と呼ばれる。
【００３８】
四角形が末端四角形であり、すなわち、すべての４つの頂点テッセレーション係数が１に等しく（ブロック７０２において“Ｙｅｓ”）、かつ、四角形がトップレベルパッチでない（ブロック７０４において“Ｎｏ”）、すなわち、四角形が、トップレベル四角形の細分割により形成されたサブ四角形、三角形（以下に説明されるとおり）、又は別のサブ四角形である場合、中心頂点は作成されず、代わって、サブ四角形のソース頂点（Ｖ０）を、サブ四角形の対角線的に対向する（diagonally  opposite）頂点（Ｖ２）に接続することにより、２つの三角形を描画することによって、ハーフ・テッセレートされた（half-tessellated）四角形が形成される。サブ四角形のソース頂点（Ｖ０）は、サブ四角形が形成されたとき、（親四角形／三角形のうち）選択された頂点である。上記の（ブロック７１０における）ハーフ・テッセレートされた四角形の作成は、図９を参照して以下により詳細に説明される。
【００３９】
「末端四角形トップレベルパッチ」を識別する理由は、前に説明されたとおり、回転／反射対称性についての所望の特性を有するためであり、末端四角形トップレベルパッチは、それから、「末端」サブ四角形と同様にただ２つの三角形に分割されるのでなく、４つの三角形に分割される。このことは、末端サブ四角形に対しては必要ない。なぜならば、ソース頂点の選択の順序に起因して、対称性が暗黙的に維持されるからである。所与の実施形態において、末端トップレベルパッチ四角形についての保証された対称性が必要とされない場合、末端トップレベルパッチをただ２つの三角形に分割することによって、三角形における小さい低減を達成することができる。
【００４０】
テッセレーションのより微細な粒度がパッチの全体にわたって必要とされる場合、代替的な一実施形態が、常に「末端四角形」サブ四角形を４つの三角形にテッセレートすることを選んでもよい。しかしながら、このことは、生成される三角形の数をほぼ２倍にすることになる。
【００４１】
４つの頂点テッセレーション係数のうち少なくとも１つが１に等しくない（ブロック７０２において“Ｎｏ”）、すなわち、４つの頂点テッセレーション係数のうち少なくとも１つが１より大きい場合、中心頂点ＶCentreが四角形に対して生成され、このことは、テッセレーション及びブレンド係数の計算を含む（ブロック７１２）。（ブロック７１２において）生成される中心頂点は或る位置を有し、この位置は、ポッピングアーチファクトを回避するために、（ｉ）「トップレベルパッチ」についての、Ｎ次元空間におけるすべての４つの角の頂点の位置の平均か、又は「サブ四角形」パッチについての、Ｖ０とその対角線的な対向するＶ２とのただ２つの頂点の位置の平均か、のいずれかと、（ｉｉ）ドメイン空間における上記の場所の平均を計算すること、及びこれをＮ次元空間にマッピングすることの、重み付けされたブレンドである。ブレンドの重み付けは、レンジ［０．０，１．０］内の値であり、頂点テッセレーション係数の関数として決定される。これにおいて、ゼロの重み付けはケース（ｉ）を返し、１の重み付けはケース（ｉｉ）を返し、中間的な値は、重み付けされた和である。ポッピングを回避するために、ブレンド重み付け関数は連続的でなければならず、すべての頂点のテッセレーション係数が１．０に近づく、すなわち、四角形が「末端四角形」に近づくとき、計算されたブレンド重み付けはゼロに近づかなければならない。この例において、ブレンド重み付け関数は、
式１：BlendWeightFunc(TF0,…TF3).=MAXi=0..3(MIN(TFi-1,1))
であるように選ばれる。
【００４２】
中心頂点の頂点テッセレーション係数は、関数が連続的であり、好ましくは対称的であるように、４つの頂点テッセレーション係数の関数として算出され、最小及び最大入力テッセレーション係数によって最初に境界を定められた結果を、生じさせる。この例において、関数は、下記であるように選ばれる。
【数１】
2020191134.tif 000003
四角形が細分割されることになるため、上記の最初のＴＦは、下記のアプローチ：
IF  InitialTFcentre＜2.0
TFcentre:=1.0
BWcentre:=BlendWeightFunc(TF0,TF1,TF2,TF3)
ELSE
TFcentre:=InitialTFcentre/2
BWcentre:=1.0
ENDIF
を用いて「等分され」て、中心についてのＴＦ及びＢＷ（又は、ブレンド係数）を生じさせる。
【００４３】
テッセレーション係数が事前修正される（すなわち、−１．０によって事前にオフセットされる）場合、算出コストを低減させることができることを、当業者は十分理解するであろう。さらなる節約が、（２を底とする）対数を使用することによって得られ、乗算及びルートのコストを低減させることになる。
【００４４】
中心頂点を（ブロック７１２において）決定すると、各入力頂点Ｖ０、Ｖ１、Ｖ２、及びＶ３が処理される。本例において、上記処理は、デフォルトの順次的な順序において行われることになるが、これら頂点の処理の順序はクリティカルでなく、これら頂点は順次的又は並列に処理され得ることが、すぐ明らかになるであろう。
【００４５】
第１の入力頂点Ｖｉが｛Ｖ０，Ｖ１，Ｖ２，Ｖ３｝から選択され（ブロック７１４）、これを使用して頂点Ｗｉ０が定義される（ブロック７１６）。Ｖｉの（ｕ，ｖ）座標がＷｉ０に複製され、対応するテッセレーション係数ＷＴＦｉ０とブレンド重み付けＷＢＷｉ０とが、入力ＴＦｉ及びＢＷｉから下記のとおり、すなわち、
IF  TFi=1.0
WTFi0:=1.0
WBWi0:=BWi
ELSE  IF  TFi＜2.0
WTFi0:=1.0
WBWi0:=TFi-1.0
ELSE
WTFi0:=TFi/2
WBWi0:=1.0
として導出される。
【００４６】
それから、３つのアクションが存在し、これらアクションは（ブロック７２０〜７２４における判断によって定義されるとおり）、入力頂点ＴＦｉの値と、次及び前の隣接する頂点の頂点ＴＦの値、すなわち、ＴＦ(i+1)mod4及びＴＦ(i-1)mod4とに依存して、発生する。例えば、頂点が、四角形の周りを回って回転的な順序でラベル付けされているとき、選択された頂点がＶ０である、すなわちｉ＝０である場合、次及び前の隣接する頂点は、それぞれ、Ｖ１及びＶ３である。
【００４７】
入力ＴＦｉが１より大きい場合、又は、双方の隣接が１より大きい頂点ＴＦを有する場合、すなわち、(TFi>1)  OR  ((TF(i+1)mod4>1)AND(TF(i-1)mod4>1))  is  TRUEである場合（ブロック７２０において“Ｙｅｓ”）、各々の入ってくる（incoming）エッジ（すなわち、選択された頂点と隣接頂点との間の各エッジ）は、新しい頂点Ｗｉ１及びＷｉ３の追加によって細分割され、前者の細分割エッジ
【数２】
2020191134.tif 000004
及び、後者のエッジ
【数３】
2020191134.tif 000005
並びに、各々の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数が、算出される（ブロック７２６）。それから、サブ四角形（すなわち、Ｗｉ０、Ｗｉ１、ＶCentre（Ｗｉ２であると見なされることができる）、及びＷｉ３を含む４つの頂点）は、（ブロック７２８、及び、ブロック７０２に戻る点線の矢印により示されるとおり）戻って図７に示される方法に入力される。
【００４８】
新しい頂点、すなわちＷｉ１及びＷｉ３についての位置及びテッセレーション係数データは、下記のとおり決定される。簡潔さのため、ＶＭは新しい頂点を指すものとし、ＶＡ及びＶＢは、ＶＭが細分割しているエッジのいずれかの端部における頂点を指すものとする。ＶＭの頂点テッセレーション係数及びブレンド重み付け、すなわち、ＴＦＭ及びＢＷＭは、４つでなくただ２つの入力頂点が使用されることを除き、中心点と類似の方法において決定され、すなわち、
【数４】
2020191134.tif 000006
IF  InitialTFM＜2.0
TFM:=1.0
BWM:=MAX(MIN(TFA-1,1),MIN(TFB-1,1))
ELSE
TFM:=InitialTFM/2
BWM:=1.0
ENDIF
である。
【００４９】
ＶＭのドメイン空間における（ｕ，ｖ）位置は、ＶＡ及びＶＢの（ｕ，ｖ）座標の平均に設定される。ポッピングを防止するために、ＶＭのＮ次元空間における位置は、ＢＷＭを重み付けとして使用して、（ｉ）ＶＡ及びＶＢのＮ次元の位置の平均と、（ｉｉ）ＶＭのマップされた（Ｕ，Ｖ）座標の最終的なＮ次元の位置と、の重み付けされたブレンドとして与えられる。前に述べたとおり、ＢＷＭ＝０．０の場合、ブレンドは（ｉ）を返すべきであり、そのほかにＢＷＭ＝１．０の場合、ブレンドは（ｉｉ）を返すべきであり、これに応じて、その中間の値が補間される。
【００５０】
図９に示される四角形９００を、ＴＦ０＝１．５（頂点９０２）、ＴＦ１＝１．０（頂点９０４）、ＴＦ２＝１．０（頂点９０６）、及びＴＦ３＝１．０（頂点９０８）の頂点ＴＦを用いて参照する。少なくとも１つの頂点ＴＦが１に等しくないので（ブロック７０２において“Ｎｏ”）、中心頂点９１０が（ブロック７１２において）追加され、その最初の頂点ＴＦ（「等分する」前）は１．０（＝
【数５】
2020191134.tif 000007
）であると算出され、「等分」の後は“１．０”に設定され（すなわち、ＴＦcentre：＝１．０）、ブレンド係数ＢＦcentreは０．５に設定される。中心頂点は、サブ四角形の中で「第３の」頂点を形成し得るので、これはさらにＷＶ０２と呼ばれることになる。
【００５１】
頂点Ｖ０が選択され（ブロック７１４）、使用されて、頂点Ｗ００が定義される（ブロック７１６）。入力頂点ＴＦ＝１．５であるので、定義された頂点は、ＷＴＦ００＝１．０及びＷＢＷ００＝０．５を有することになる。入力頂点ＴＦが１より大きいとき（ブロック７２０において“Ｙｅｓ”）、双方の入ってくるエッジが、２つの頂点９１２、９１４の追加によって細分割され、頂点９１２、９１４は、サブ四角形の残りの２つの頂点（それぞれ、Ｗ０１及びＷ０３）を形成し、これらの頂点ＴＦは、上記の式２を用いて算出され（ブロック７２６）、したがって、ＷＴＦ０１＝１．０及びＷＢＷ０１＝０．５（頂点９１２）、並びに、ＷＴＦ０３＝１．０及びＷＢＷ０３＝０．５（頂点９１４）である。それから、頂点９０２、９１２、９１０、及び９１４により定義され、ＷＴＦ００＝１．０（頂点９０２）、ＷＴＦ０１＝１．０（頂点９１２）、ＷＴＦ０２＝１．０（頂点９１０）、及びＷＴＦ０３＝１．０（頂点９１４）の頂点ＴＦを有するサブ四角形が、方法の始めへフィードバックされ、ゆえに、サブ四角形のＷ０が“Ｖ０”になり、Ｗ１がＶ１になる、などする。
【００５２】
この新しいサブ四角形を考えると、すべての頂点ＴＦが１に等しく（ブロック７０２において“Ｙｅｓ”）、四角形はトップレベルパッチでなく（ブロック７０４において“Ｎｏ”）、ゆえに、この四角形は、該四角形を２つの三角形に分割することによってハーフ・テッセレートされる（ブロック７１０）。すなわち、２つの三角形が描画され、そのうち一方は頂点９０２、９１２、及び９１０により形成され、他方は頂点９０２、９１０、及び９１４により形成される。双方の三角形に共通であるエッジは、Ｖ０と、親四角形の中心頂点であったＶ２（頂点９１０）とを接続する。
【００５３】
前の親処理に戻って、((TFi>1)  OR  ((TF(i+1)mod4>1)AND(TF(i-1)mod4>1)))  is  FALSE)である場合（ブロック７２０において“Ｎｏ”）、ＴＦｉは１に等しくなければならない。双方の隣接の頂点ＴＦがさらに１に等しい場合（ブロック７２２において“Ｙｅｓ”）、選択された頂点はスキップされ、次の頂点が順に選択される（ブロック７３０）。四角形における他の頂点が選択されるとき、任意の所要のテッセレーションが実施されることになるからである。上記条件は、図９の四角形９００において、頂点９０６が選択された頂点であるとき、示される。すなわち、頂点９０６の頂点ＴＦは１より大きくなく、双方の隣接頂点（頂点９０４及び９０８）は１に等しい頂点ＴＦを有する。
【００５４】
入力頂点ＴＦが１に等しく、かつ、双方の隣接がさらに１に等しい頂点ＴＦを有さない場合（ブロック７２０及び７２２の双方において“Ｎｏ”）、正確に（exactly）一方の隣接が、１より大きい頂点ＴＦを有さなければならない（ブロック７２４において“Ｙｅｓ”）。しかしながら、このことは、ブロック７２０及び７２２の双方における“Ｎｏ”の結果として保証されるので、この条件についてテストすることは必要でなく、ブロック７２４は省略されることが可能である。正確に一方の隣接が１より大きい頂点ＴＦを有するとき、２つの可能性が存在する。すなわち、該一方の隣接が、次の隣接である（ブロック７３２において“Ｙｅｓ”）か、あるいは前の隣接である（ブロック７３２において“Ｎｏ”）かのいずれかである。
【００５５】
次の隣接が１より大きい頂点ＴＦを有する事象（ブロック７３２において“Ｙｅｓ”）において、選択された頂点と次の隣接との間のエッジは、前に説明されたＶＭの場合を作成するために使用された同じ式を用いて、すなわち、選択された頂点の位置と次の隣接頂点の位置との平均値により与えられるドメイン空間における或る位置に新しい頂点を追加することによって、及び、前に説明されたとおりＴＦ、ＢＷ、及びＮ次元の位置を用いて（式３、及びその続きの文章を参照）、細分割される（ブロック７３４）。このことは、選択された頂点と新たに追加された頂点と中心頂点と前の頂点とを含むサブ四角形を形成する。このサブ四角形は、選択された頂点を対角線的に対向する頂点に接続することによって、ハーフ・テッセレートされる（ブロック７３６）。それから、この方法は、親四角形における次の頂点、例えばＶ１を選択し（ブロック７３０）、該方法は、（ブロック７１６に戻る矢印により示されるとおり）繰り返される。
【００５６】
このことは、図９の四角形９００において、頂点９０８が選択された頂点であるとき、示される。選択された頂点９０８は１の頂点ＴＦを有し、前の頂点（頂点９０６）がさらに１の頂点ＴＦを有し、次の頂点（頂点９０２）は１より大きい頂点ＴＦを有する（ブロック７２０及び７２２において“Ｎｏ”、並びに、ブロック７２４及び７３２において“Ｙｅｓ”）。結果として、次の頂点に対するエッジが、頂点９１４の追加によって細分割され、ハーフ・テッセレートされたサブ四角形（頂点９０８、９１４、９１０、９０６により定義される）が、２つの三角形を描画することにより形成される。すなわち、２つの三角形のうち一方は頂点９０８、９１４、及び９１０により形成され、他方が頂点９０８、９１０、及び９０６により形成される。双方の三角形に共通であるエッジは、選択された頂点（頂点９０８）と親四角形の中心頂点（頂点９１０）とを接続する。
【００５７】
前の隣接が１より大きい頂点ＴＦを有する事象（ブロック７３２において“Ｎｏ”）において、選択された頂点と前の隣接との間のエッジは、前に説明されたＶＭの場合を作成するために使用された同じ式を用いて、すなわち、選択された頂点の位置と前の隣接頂点の位置との平均値により与えられるドメイン空間における或る位置に新しい頂点を追加することによって、及び、前に説明されたとおりＴＦ、ＢＷ、及びＮ次元の位置を用いて（式３、及びその続きの文章を参照）、細分割される（ブロック７３８）。このことは、選択された頂点と次の頂点と中心頂点と新たに追加された頂点とを含むサブ四角形を形成する。このサブ四角形は、選択された頂点を対角線的に対向する頂点に接続することによって、ハーフ・テッセレートされる（ブロック７３６）。それから、この方法は、親四角形における次の頂点、例えばＶ１を選択し（ブロック７３０）、該方法は、（ブロック７１６に戻る矢印により示されるとおり）繰り返される。
【００５８】
このことは、図９の四角形９００において、頂点９０４が選択された頂点であるとき、示される。選択された頂点９０４は１の頂点ＴＦを有し、次の頂点（頂点９０６）がさらに１の頂点ＴＦを有し、前の頂点（頂点９０２）は１より大きい頂点ＴＦを有する（ブロック７２０及び７２２において“Ｎｏ”、ブロック７２４において“Ｙｅｓ”、並びにブロック７３２において“Ｎｏ”）。結果として、前の頂点に対するエッジが、頂点９１２の追加によって細分割され、ハーフ・テッセレートされたサブ四角形（頂点９０４、９０６、９１０、９１２により定義される）が、２つの三角形を描画することにより形成される。すなわち、２つの三角形のうち一方は、頂点９０４、９１０、及び９１２により形成され、他方は頂点９０４、９０６、及び９１０により形成される。双方の三角形に共通であるエッジは、選択された頂点（頂点９０４）と親四角形の中心頂点（頂点９１０）とを接続する。
【００５９】
図１０は、図７に示される方法を用いて得られるテッセレートされた四角形の３つの例を示す。第１の例１００１は、ＴＦ０＝１、ＴＦ１＝２、ＴＦ２＝２、ＴＦ３＝１の頂点テッセレーション係数を示す。第２の例１００２は、ＴＦ０＝２、ＴＦ１＝４、ＴＦ２＝８、ＴＦ３＝８の頂点テッセレーション係数を示す。第３の例１００３は、ＴＦ０＝３、ＴＦ１＝５、ＴＦ２＝３２、ＴＦ３＝３２の頂点テッセレーション係数を示す。
【００６０】
これら例は前に説明されている可能性があるが、四角形頂点が順に選択され、エッジを細分割する「新しい頂点」が計算されるとき、各々の新たに追加される頂点は、親四角形の２つのサブ四角形間で共有される可能性があり、ゆえに、これらを、親の四角形の子達をとおして反復する前に計算することによって、計算を低減させることができることが、当業者に明らかであろう。例えば、図１０の第３の例１００３を参照すると、トップレベル四角形の各エッジを分割する頂点は、トップレベル四角形の子達の、左上のサブ四角形（最終的に２つの三角形に分割される）と右上のサブ四角形（最終的に２６個の三角形に分割される）と右下のサブ四角形と左下のサブ四角形とをとおして反復する前に、計算されることができる。
【００６１】
２つの親四角形が同じエッジを共有し、ゆえに同じ「細分割する新しい頂点」を双方計算し得る場合、さらなる節約がなされ得る。例えば（ｕ，ｖ）パラメータでインデックスを付けられた、簡素なキャッシュ／バッファ／アドレス可能メモリが使用されて、頂点データを記憶し、ゆえに再計算オーバヘッドを低減させることができる。こうした頂点データの記憶が使用される場合、この記憶が、新たに追加される頂点の新しいＴＦ及びＢＷを算出する前にチェックされてもよく、同じ（ｕ，ｖ）パラメータを有する頂点が記憶されている場合、その記憶された頂点のＴＦ及びＢＷが、値を再算出することに代わって使用されてもよい。様々な例において、頂点データの記憶は、（すべての事前に追加された頂点というよりも）限られた数の頂点のみ記憶することができ、さらに、こうした例において、再計算の量を大幅に低減させることができる。
【００６２】
三角形の方法（図８の）は、図１１に示される例示的な三角形１１０１〜１１０４を参照して説明することができる。この三角形の方法は３つの頂点を受け取り、各々が、ドメイン空間（すなわち、（ｕ，ｖ））座標と頂点テッセレーション係数とを含む。すべての３つの頂点テッセレーション係数が１に等しい場合（ブロック８０２において“Ｙｅｓ”）、細分割は実行されない。このことは、図１１の第１の例示的な三角形１１０１に示されている。
【００６３】
３つの頂点テッセレーション係数のうち少なくとも１つが１に等しくない（ブロック８０２において“Ｎｏ”）、すなわち、３つの頂点テッセレーション係数のうち少なくとも１つが１より大きい場合、三角形に対して中心頂点が追加され、新たに追加された中心頂点について、頂点テッセレーション係数が算出される（ブロック８０４）。（ブロック８０４において）追加される中心頂点は、３つの頂点の平均値であるドメイン空間における或る位置に追加される。中心頂点の頂点テッセレーション係数は、３つの頂点に対して適合されることを除き、四角形の場合と同様の仕方において、すなわち、
【数６】
2020191134.tif 000008
IF  InitialTFcentre＜2.0
TFcentre:=1.0
BWcentre:=BlendWeightFunc(TF0,TF1,TF2)
ELSE
TFcentre:=InitialTFcentre/2
BWcentre:=1.0
ENDIF
で算出される。これにおいて、３つの頂点はＶ０〜Ｖ２で表され、その頂点テッセレーション係数はＴＦ０〜ＴＦ２で表される。
【００６４】
中心頂点を（ブロック８０４において）作成すると、第１の頂点Ｖｉ（例えば、Ｖ０）が選択される（ブロック８０６）。三角形（三角形が常に入力パッチである）について、任意の頂点がＶ０とラベル付けされてよく、それから、残りの頂点が時計回り又は反時計回りの順序において、三角形の周りを回る順序においてラベル付けされる。頂点にラベルを付けることについてどちらの方向が使用されるとしても（すなわち、時計回り又は反時計回り）、テッセレーション方法の全体をとおして一貫した順序が使用されなければならず、下記の説明を目的として、時計回りのラベル付けの慣習が採用される。
【００６５】
選択された頂点Ｖｉを使用して、上記で説明された四角形の方法と同様の仕方において、頂点Ｗｉ０が定義される（ブロック８０８）。Ｖｉの（ｕ，ｖ）座標がＷｉ０に複製され、対応するテッセレーション係数ＷＴＦｉ０とブレンド重み付けＷＢＷｉ０とが、入力ＴＦｉ及びＢＷｉから下記のとおり、すなわち、
IF  TF=1.0
WTFi0:=1.0
WBWi0:=BWi
ELSE  IF  TFi＜2.0
WTFi0:=1.0
WBWi0:=TFi-1.0
ELSE
WTFi0:=TFi/2
WBWi0:=1.0
として導出される。
【００６６】
図７の四角形の方法と同様の仕方において、３つの異なるアクションが存在し、これらアクションは（ブロック８１２〜８１６における判断によって定義されるとおり）、入力頂点ＴＦｉの値と、次及び前の隣接する頂点の頂点ＴＦの値、すなわち、ＴＦ(i+1)mod3及びＴＦ(i-1)mod3とに依存して、発生する。頂点が、回転的な順序において三角形の周りを回ってラベル付けされているので、選択された頂点がＶ０である（すなわち、ｉ＝０である）場合、隣接する頂点は、次の頂点Ｖ１と前の頂点Ｖ２である。
【００６７】
入力頂点ＴＦｉが１より大きい場合（ブロック８１２において“Ｙｅｓ”）、各々の入ってくるエッジ（すなわち、選択された頂点と隣接頂点との間の各エッジ）は、新しい頂点Ｗｉ１及びＷｉ３の追加によって細分割され、前者の細分割エッジ
【数７】
2020191134.tif 000009
及び、後者のエッジ
【数８】
2020191134.tif 000010
並びに、各々の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数が、算出される（ブロック８１８）。それから、サブ四角形（すなわち、Ｗｉ０、Ｗｉ１、ＶCentre（Ｗｉ２であると見なされることができる）、及びＷｉ３を含む４つの頂点）が、図７に示される四角形の方法に対して入力される（ブロック８２０であり、すなわちブロック７０２において始まる）。
【００６８】
新しい頂点、すなわちＷｉ１及びＷｉ３についての位置及びテッセレーション係数データは、四角形の場合について上記で説明されたとおり、すなわち、
【数９】
2020191134.tif 000011
IF  InitialTFM＜2.0
TFM:=1.0
BWM:=MAX(MIN(TFA-1,1),MIN(TFB-1,1))
ELSE
TFM:=InitialTFM/2
BWM:=1.0
ENDIF
として決定される。
【００６９】
ＶＭのドメイン空間における（ｕ，ｖ）位置は、ＶＡ及びＶＢの（ｕ，ｖ）座標の平均に設定される。ポッピングを防止するために、ＶＭのＮ次元空間における位置は、ＢＷＭを重み付けとして使用して、（ｉ）ＶＡ及びＶＢのＮ次元の位置の平均と、（ｉｉ）ＶＭのマップされた（Ｕ，Ｖ）座標の最終的なＮ次元の位置と、の重み付けされたブレンドとして与えられる。前に述べたとおり、ＢＷＭ＝０．０の場合、ブレンドは（ｉ）を返すべきであり、そのほかにＢＷＭ＝１．０の場合、ブレンドは（ｉｉ）を返すべきであり、これに応じて、その中間の値が補間される。
【００７０】
このことは、図１１における第２の例示的な三角形１１０２を参照して、ＴＦ０＞１．０（頂点１１０６）、ＴＦ１＝１．０（頂点１１０８）、及びＴＦ２＝１．０（頂点１１１０）を用いて例示することができる。すべての頂点ＴＦが１に等しくはなく（ブロック８０２において“Ｎｏ”）、ゆえに、中心頂点１１１２が（ブロック８０４において）生成され、その頂点ＴＦ及びブレンド係数が上記の式４を用いて算出される。頂点Ｖ０が（ブロック８０６において）選択され、頂点Ｗｉ０が（ブロック８０８において）定義される。入力頂点ＴＦが１より大きいとき（ブロック８１２において“Ｙｅｓ”）、双方の入ってくるエッジは２つの新しい頂点１１１４、１１１６の追加によって細分割され、これらの頂点ＴＦ及びブレンド係数が、上記で説明されたとおり算出される（ブロック８１８）。それから、頂点１１０６、１１１４、１１１２、及び１１１６により定義され、これらの頂点ＴＦ及びブレンド係数を（ブロック８０８及び８１８において算出されたとおり）有するサブ四角形が、四角形の方法に（すなわち、図７のブロック７０２へ）送り込まれる（ブロック８２０）。
【００７１】
前の親処理に戻って、入力頂点ＴＦが１より大きくない場合（ブロック８１２において“Ｎｏ”）、入力頂点ＴＦは１に等しくなければならない。双方の隣接の頂点ＴＦが双方１より大きい場合（ブロック８１４において“Ｙｅｓ”）、各々の入ってくるエッジ（すなわち、選択された頂点と隣接頂点との間の各エッジ）は、前に説明されたＶＭの場合を作成するために使用された同じ式を用いて新しい頂点の追加によって、すなわち、選択された頂点の位置と次の隣接頂点の位置との平均値により与えられるドメイン空間における或る位置に新しい頂点を追加することによって、及び、前に説明されたとおりＴＦ、ＢＷ、及びＮ次元の位置を用いて（式３、及びその続きの文章を参照）、細分割される（ブロック８２２）。このことは、選択された頂点と、選択された頂点と次の頂点との間に新たに追加された頂点と、中心頂点と、選択された頂点と前の頂点との間に新たに追加された頂点と、を含むサブ四角形を形成する。このサブ四角形は、選択された頂点を対角線的に対向する頂点に接続することによって、ハーフ・テッセレートされる（ブロック８２４）。それから、この方法は、親三角形における次の頂点、例えばＶ１を選択し（ブロック８２６）、該方法は、（ブロック８０８に戻る矢印により示されるとおり）繰り返される。
【００７２】
このことは、図１１における第３の例示的な三角形１１０３を参照して、ＴＦ０＝１．０（頂点１１２０）、ＴＦ１＞１．０（頂点１１２２）、及びＴＦ２＞１．０（頂点１１２４）を用いて例示することができる。すべての頂点ＴＦが１に等しくはなく（ブロック８０２において“Ｎｏ”）、ゆえに、中心頂点１１２６が（ブロック８０４において）生成され、その頂点ＴＦ及びブレンド係数が上記の式４を用いて算出される。頂点Ｖ０が（ブロック８０６において）選択され、使用されて、頂点Ｗｉ０が（ブロック８０８において）生成される。入力頂点ＴＦが１より大きくなく（ブロック８１２において“Ｎｏ”）、しかし双方の隣接の頂点ＴＦが１より大きいとき（ブロック８１４において“Ｙｅｓ”）、双方の入ってくるエッジは、新しい頂点１１２８、１１３０の追加によって細分割され、頂点１１２８、１１３０は、サブ四角形の残りの２つの頂点（それぞれ、Ｗｉ１及びＷｉ３）を形成する。頂点１１２０、１１２８、１１２６、及び１１３０により定義されるサブ四角形は、（ブロック８２４において）２つの三角形を描画することによってハーフ・テッセレートされる。すなわち、２つの三角形のうち一方は頂点１１２０、１１２８、及び１１２６により形成され、他方は頂点１１２０、１１２６、及び１１３０により形成される。双方の三角形に共通であるエッジは、Ｗｉ０（頂点１１２０）と、三角形の中心頂点であるＷｉ２（頂点１１２６）とを接続する。
【００７３】
入力頂点ＴＦが１に等しく、双方の隣接が１より大きい頂点ＴＦを有さない場合、（ブロック８１２及び８１４において“Ｎｏ”）、正確に一方の隣接が１より大きい頂点ＴＦを有さなければならない（ブロック８１６において“Ｙｅｓ”）。しかしながら、このことは、ブロック８１２及び８１４の双方における“Ｎｏ”の結果として保証されるので、この条件についてテストすることは必要でなく、ブロック８１６は省略されることが可能である。正確に一方の隣接が１より大きい頂点ＴＦを有するとき、２つの可能性が存在する。すなわち、該一方の隣接が、次の隣接である（ブロック８２８において“Ｙｅｓ”）か、あるいは前の隣接である（ブロック８２８において“Ｎｏ”）かのいずれかである。
【００７４】
次の隣接が１より大きい頂点ＴＦを有する事象（ブロック８２８において“Ｙｅｓ”）において、選択された頂点と次の隣接との間のエッジは、前に説明されたＶＭの場合を作成するために使用された同じ式を用いて、すなわち、選択された頂点の位置と次の隣接頂点の位置との平均値により与えられるドメイン空間における或る位置に新しい頂点を追加することによって、及び、前に説明されたとおりＴＦ、ＢＷ、及びＮ次元の位置を用いて（式３、及びその続きの文章を参照）、細分割される（ブロック８３０）。それから、１つの三角形が形成され、この三角形は、選択された頂点と新たに追加された頂点と中心頂点とを含む（ブロック８３２）。それから、この方法は、三角形における次の頂点、例えばＶ１を選択し（ブロック８２６）、該方法は、（ブロック８０８に戻る矢印により示されるとおり）繰り返される。
【００７５】
このことは、図１１の第２の例示的な三角形１１０２において、頂点１１１０が選択された頂点であるとき、示される。選択された頂点１１１０は１の頂点ＴＦを有し、前の頂点（頂点１１０８）がさらに１の頂点ＴＦを有し、次の頂点（頂点１１０６）は１より大きい頂点ＴＦを有する（ブロック８１２及び８１４において“Ｎｏ”、並びに、ブロック８１６及び８２８において“Ｙｅｓ”）。結果として、次の頂点に対するエッジが、頂点１１１６の追加によって細分割され、１つの三角形が、頂点１１１０、１１１６、及び１１１２（ブロック８０４において追加された中心頂点）により形成される。
【００７６】
前の隣接が１より大きい頂点ＴＦを有する事象（ブロック８２８において“Ｎｏ”）において、選択された頂点と前の隣接との間のエッジは、前に説明されたＶＭの場合を作成するために使用された同じ式を用いて、すなわち、選択された頂点の位置と前の隣接頂点の位置との平均値により与えられるドメイン空間における或る位置に新しい頂点を追加することによって、及び、前に説明されたとおりＴＦ、ＢＷ、及びＮ次元の位置を用いて（式３、及びその続きの文章を参照）、細分割される（ブロック８３４）。このことは、選択された頂点と次の頂点と中心頂点と新たに追加された頂点とを含むサブ四角形を形成する。このサブ四角形は、選択された頂点を対角線的に対向する頂点に接続することによって、ハーフ・テッセレートされる（ブロック８３６）。それから、この方法は、親四角形における次の頂点、例えばＶ１を選択し（ブロック８２６）、該方法は、（ブロック８０８に戻る矢印により示されるとおり）繰り返される。
【００７７】
このことは、図１１の第２の例示的な三角形１１０２において、頂点１１０８が選択された頂点であるとき、示される。選択された頂点１１０８は１の頂点ＴＦを有し、次の頂点（頂点１１１０）がさらに１の頂点ＴＦを有し、前の頂点（頂点１１０６）は１より大きい頂点ＴＦを有する（ブロック８１２及び８１４において“Ｎｏ”、ブロック８１６において“Ｙｅｓ”、並びに、ブロック８２８において“Ｎｏ”）。結果として、前の頂点に対するエッジが、頂点１１１４の追加によって細分割され、ハーフ・テッセレートされたサブ四角形（頂点１１０８、１１１０、１１１２、１１１４により定義される）が、２つの三角形を描画することによって形成される。すなわち、２つの三角形のうち一方は頂点１１０８、１１１２、及び１１１４により形成され、他方は頂点１１０８、１１１０、及び１１１２により形成される。双方の三角形に共通であるエッジは、選択された頂点（頂点１１０８）と、三角形の中心頂点（頂点１１１２）とを接続する。
【００７８】
図１２は、図７及び図８に示される方法を用いて得られるテッセレートされた三角形の３つの例を示す。第１の例１２０１は、ＴＦ０＝１、ＴＦ１＝１００、ＴＦ２＝１の頂点テッセレーション係数を示す。第２の例１２０２は、ＴＦ０＝１、ＴＦ１＝１００、ＴＦ２＝１０の頂点テッセレーション係数を示す。第３の例１２０３は、ＴＦ０＝５０、ＴＦ１＝１０、ＴＦ２＝３０の頂点テッセレーション係数を示す。図１５にはさらなる例が示され、図１５は、３Ｄにおけるワイヤフレームテッセレーションのシーケンスを含む（本明細書に説明される最終的なテッセレーションシステムは、Ｎ次元に適用され得ることが十分理解されるであろう）。図１５に示される例は、頂点テッセレーション係数が（１，１，１，１）から近似的に（２６．５，１６．７，８．８，４．９）に変化するときの変化を示す。
【００７９】
テッセレーション方法は、（ブロック７０２、７２０〜７２４、７３０、８０２、８１２〜８１６、及び８２８において）頂点テッセレーション係数と１の値とにおける比較を含むとして上記で説明された（及び、図７及び図８に示された）が、説明された方法に対するバリエーションにおいて、上記比較は、別の閾値に関して実行されてもよい（すなわち、１に等しくない閾値に対してであり、その場合、さらなる細分割が必要とされるかを決定するテストは、テッセレーション係数がこの閾値より厳密に大きいかに基づき得る）。このバリエーションが、テッセレーション処理において生成される三角形の数を低減させるために選ばれてもよいが、ただし、ＬＯＤが変化するとき、アニメーションの円滑さを低減させる可能性がある。
【００８０】
さらに、上記において、特定の式を使用して、新たに追加された頂点についてのテッセレーション係数及びブレンド係数の値が算出されるが、他の例において、別の式が使用されてもよい。例えば、式２を用いることに代わって、下記の式、すなわち、
【数１０】
2020191134.tif 000012
が用いられてもよい。さらに、式３を用いることに代わって、下記の式、すなわち、
【数１１】
2020191134.tif 000013
が用いられてもよい。さらに、式４を用いることに代わって、下記の式、すなわち、
【数１２】
2020191134.tif 000014
が用いられてもよい。
【００８１】
提供された例に示されるとおり、エッジＴＦに代わって頂点ＴＦを使用する上記で説明されたテッセレーション方法を用いることによって、結果として生じる三角形はより均等にサイズ調整され、Ｔ接合（T-junctions）が回避される。（Ｔ接合は、結果的なレンダリングされる画像においてクラック（cracks）を引き起こす可能性がある）。詳細レベルがあるシーン内で変化する場合、その移行が円滑に取り扱われ（例えば、三角形のサイズと頂点の間隔の空きとが徐々に変化する）、急な移行が回避される（急な移行は、望まれない視覚的アーチファクトを引き起こす可能性がある）。同様に、詳細レベルがある時間にわたり変化する場合（例えば、オブジェクトがより近くなり、あるいは視点からさらに離れるとき）、各頂点がパラメトリック空間の中でその最終的な位置において作成されるので、移行が円滑であり、頂点の移動に起因する望まれない視覚的アーチファクトの見込みが回避される。上記の新しい頂点を徐々に導入するために（例えば、これらが徐々にサーフェスから成長するように見えるように）、既知の手法が深度（又は、高さ）方向において使用されてもよい（例えば、ブレンディング）。
【００８２】
四角形及び三角形をテッセレートする（図７及び図８に示されたとおりの）方法は、回転的に不変（invariant）であり、したがって、パッチが、シーン内におけるその向きに関わりなく同じ方法において三角形に細分割されることになる。このことは、例えば、シーンの中の回転するオブジェクトがレンダリングされるときに望まれない視覚的アーチファクトを生じさせないように、特に重要であり得る。さらに、入力パッチ（例えば、四角形又は三角形）のどの頂点で上記方法を開始するかは重要でない。なぜならば、すべてのケースにおいて同じ結果が達成されるからである。
【００８３】
テッセレーション方法に入力される頂点ＴＦは、別個のアプリケーションによって生成されてもよい（例えば、各頂点からビューアの距離に基づいて、例えば、頂点の頂点ＴＦが、目から頂点の距離の逆数に比例してもよい）。様々な例において、エッジＴＦを頂点ＴＦに（例えば、頂点において交わるエッジについて、すべてのエッジＴＦの平均をとることによって）コンバートするＡＰＩが、これらを本明細書に説明される方法に入力することの前に、提供されてもよい。
【００８４】
上記のテッセレーション方法の説明は、再帰の使用を示しているが、この方法は、別法として、再帰的に代わって、反復的に及び／又は並列に実施されてもよく、本説明における「再帰」又は「反復」に対するいかなる参照も、単に例である。
【００８５】
上記で説明されたテッセレーション方法は三角形及び四角形ドメインに適用されているが、最初のドメイン細分割は３つ又は４つの辺の多角形のドメインを横断し（traversing）、サブ四角形を生じさせるときに頂点を含むので、当業者は、処理が任意のＮ辺のドメイン、例えば、五角形又は六角形に十分に等しく適用されて、サブ四角形を作成し、その後、任意の生成されたサブ四角形を用いて再帰的に継続することが可能であることを十分理解するであろう。
【００８６】
図１６を参照して、Ｐ辺の（P-sided）ドメインを、Ｐ≧４の場合で考える。すべてのＰ個の頂点についてのテッセレーション係数ＴＦｉが、（第１の例１６０１におけるとおり）１に等しい場合、四角形の場合と同様の仕方において、中心頂点１６０３が、最終的なＮ次元空間における或る位置に追加され、この位置は、Ｐ個の頂点のＮ次元の場所についての平均である。それから、Ｐ個の三角形が、ＶｉとＦi+1modPと追加された中心頂点とを接続することによって生成され、各ｉについて、０≦ｉ＜Ｐである。
【００８７】
少なくとも１つのテッセレーション係数が（第２の例１６０２におけるとおり）１を超える場合、四角形テッセレーションについて前に説明された処理が、下記のことを除き、適用される。
ａ）ブレンド重み付け関数（上記の式１における）は、
BlendWeightFunc=MAXi=0..P-1(MIN(TFi-1,1))
に一般化される。
ｂ）中心の最初のＴＦについての関数（上記の式２における）は、
【数１３】
2020191134.tif 000015
に一般化される。
ｃ）前の頂点及び次の頂点のインデックス付けは、それぞれ、Ｖ(i-1)MOD  P及びＶ(i+1)MOD  Pになる。
【００８８】
例えば、上記で説明され（及び、図７に示された）四角形の方法に従い、選択された頂点Ｖｉがテッセレーション係数ＴＦｉ＞１．０を有する場合（例えば、頂点１６０４）、２つの入ってくるエッジが細分割されて、２つの追加頂点とサブ四角形１６０６とが作成され、サブ四角形１６０６は、更新された選択された頂点と、追加頂点のうちの１つと、中心頂点と、残りの追加頂点とから定義される。それから、このサブ四角形は、図７の方法に対するさらなる入力として（例えば、ブロック７０２に対する入力として）提供されることが可能である。
【００８９】
頂点テッセレーション係数を使用する上記で説明された（例えば、図７及び図８を参照して説明された）テッセレーション方法は、臨機応変に（例えば、視点が３Ｄシーン内で変わるとき）テッセレーションを実行することに使用されてもよく、あるいは別法として、上記方法は、複数の異なる視点について三角形を事前計算するようにオフラインで使用されてもよい。
【００９０】
上記で説明された（例えば、図７及び図８を参照して説明された）、頂点テッセレーション係数を使用するテッセレーション方法は、ハードウェアにおいて実施され得る。様々な例において、上記方法は、図１３に示されるとおり、グラフィックス処理ユニット（ＧＰＵ）内でハードウェアテッセレーションユニットにおいて実施されてもよい。図１３は、一例示的なＧＰＵパイプライン１３００の概略図を示しており、パイプライン１３００は、ＧＰＵ内でハードウェアにおいて実施されることができる。図１３に示されるとおり、パイプライン１３００は頂点シェーダ１３０２を含み、頂点シェーダ１３０２は、これら頂点のすべてについての頂点テッセレーション係数を算出すること（例えば、カメラから頂点の位置の関数として）を含め、頂点ごとの算出を実行することの責任を負う。頂点ＴＦを算出する前、頂点シェーダは、頂点をワールド空間に変換し、１つ以上の他の線形変換を適用してもよい。頂点シェーダ１３０２は、メッシュトポロジの知識を有さず、該シェーダに送り込まれている現在の頂点だけ知っている。
【００９１】
頂点シェーダ１３０２とハードウェアテッセレーションユニット（又は、テッセレータ）１３０４との間で（あるいは、頂点シェーダと、図１３に示されていない任意的なハルシェーダ（hull  shader）との間であって、この場合、パイプライン１３００は、１つ以上の任意的なハルシェーダを頂点シェーダ１３０２とテッセレータ１３０４との間に含む）、パッチ（すなわち、頂点の順序付けられたセット）が、トポロジを用いて構築される。上記のパッチの情報は、（提供される場合に）ハルシェーダに渡される。しかしながら、テッセレータ１３０４は頂点ＴＦだけをとり、パッチ情報の残りはドメインシェーダ１３０６に渡される。
【００９２】
ハードウェアテッセレーションユニット（又は、テッセレータ）１３０４は、上記で説明された（例えば、図７及び図８に示された）方法を、受け取った頂点ＴＦを用いて実施する、ハードウェアロジックを含む。頂点シェーダとは異なり、ハードウェアテッセレーションユニット（及び、いずれかの任意的なハルシェーダ）は、頂点ごとでなく、パッチごとに動作する。新しい頂点ＴＦを（例えば、ブロック７１８及び８１０において）算出する式を実装するのに必要とされるハードウェアを簡素化するために、上記算出は、ｌｏｇ２において実行されてもよく、ゆえに、加算及び減算として実装されることができる（そうでない場合、乗算及び除算が用いられることになる）。ハードウェアテッセレーションユニット１３０４は、上記で説明された方法の態様を並列に実行するように構成されてもよい（例えば、異なるパッチに対しての再帰）。ハードウェアテッセレーションユニット１３０４は、各々の新しい頂点についてドメイン空間座標を出力し、これをドメインシェーダ１３０６に（例えば、バッファに、形成されるあらゆる三角形の詳細を記憶することによって）渡す。
【００９３】
ドメインシェーダ１３０６は、テッセレータ１３０４により作り出された頂点について、第２の頂点シェーダの機能を果たし、テッセレータにより生成される頂点ごとに１回実行される。ドメインシェーダは、ドメイン空間場所（ｕ，ｖ）を供給し、すべてのパッチ情報を与え、フルの頂点構造を出力する。ドメインシェーダは、パッチ制御点及びドメイン空間座標を使用して、新しい頂点を構築し、任意のディスプレースメントマッピングを（例えば、テクスチャにおいてエンコードされたいくつかのバンプ又は高さマップをサンプリングすることによって）適用する。
【００９４】
ドメインシェーダ１３０６が、各パッチの各々生成された頂点について実行された後、頂点はラスタライザ（図１３に示されていない）に渡される。相前後して、プリミティブ（インデックスバッファの形式の）がテッセレータからラスタライザに渡される。
【００９５】
図１３のＧＰＵパイプライン１３００は、単に例として示されており、本明細書に説明される、頂点ＴＦを使用するテッセレーション方法は、任意のＧＰＵアーキテクチャにおいて使用されることが可能である。ハードウェアテッセレーションユニット１３０４は、頂点シェーダ１３０２と任意的なハルシェーダとドメインシェーダ１３０６とに対して追加で、あるいは代わって他のシェーダを含むＧＰＵパイプラインにおいて使用されてもよいことがさらに十分理解されるであろう。
【００９６】
上記で説明された（例えば、図７及び図８を参照して説明された）、頂点テッセレーション係数を使用するテッセレーション方法は、別法として、ソフトウェア（あるいは、ソフトウェアとハードウェアとの組み合わせ）において実施されてもよい。図１４は、一例示的なコンピューティングベースの装置１４００の様々なコンポーネントを例示しており、コンピューティングベース装置１４００は、任意の形態のコンピューティング及び／又は電子装置として実施されてよく、上記で説明されたテッセレーション方法を実施するように構成され得る。
【００９７】
コンピューティングベース装置１４００は１つ以上のプロセッサ１４０２を含み、プロセッサ１４０２は、マイクロプロセッサ、コントローラ、又は任意の他の適切なタイプのプロセッサであってよく、装置の動作を制御するコンピュータ実行可能命令を処理して、上記で説明された（例えば、図７及び図８を参照して説明された）テッセレーション方法を実行する。いくつかの例において、例えば、システムオンチップアーキテクチャが使用される場合、プロセッサ１４０２は、１つ以上の固定された機能ブロック（さらに、アクセラレータとも呼ばれる）を含んでもよく、上記機能ブロックは、（ソフトウェア又はファームウェアというよりも）ハードウェアにおいてテッセレーションの方法の一部を実施する。オペレーティングシステム１４０４又は任意の他の適切なプラットフォームソフトウェアを含むプラットフォームソフトウェアがコンピューティングベース装置に提供されて、アプリケーションソフトウェア１４０６が装置上で実行されることを可能にしてもよく、上記アプリケーションソフトウェアは、テッセレーションモジュール１４０８を含み得る。
【００９８】
コンピュータ実行可能命令は、コンピューティングベース装置１４００によりアクセス可能である任意のコンピュータ可読媒体を用いて提供され得る。コンピュータ可読媒体は、例えば、メモリ１４１０などのコンピュータ記憶媒体と通信媒体とを含み得る。メモリ１４１０などのコンピュータ記憶媒体（すなわち、非一時的マシン可読媒体）には、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報の記憶のための任意の方法又はテクノロジーにおいて実施される揮発性及び不揮発性の、取り外し可能及び取り外し不能の媒体が含まれる。コンピュータ記憶媒体には、これらに限られないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリテクノロジー、ＣＤ‐ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、又は、コンピューティング装置によるアクセスのために情報を記憶することに使用され得る任意の他の非送信媒体が含まれる。対照的に、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波などの変調されたデータ信号、又は他のトランスポートメカニズムにおいて具現化し得る。本明細書において定義されるとき、コンピュータ記憶媒体は通信媒体を含まない。コンピュータ記憶媒体（すなわち、非一時的マシン可読媒体、例えば、メモリ１４１０）はコンピューティングベース装置１４００内に図示されているが、記憶装置は、分散され、あるいはリモートに位置し、ネットワーク又は他の通信リンクを介して（例えば、通信インターフェース１４１２を用いて）アクセスされてもよいことが十分理解されるであろう。
【００９９】
図１４に示されていないが、メモリ１４１０（又は、図１４に示されていない別個のメモリ素子）が、新たに追加された頂点の頂点データを記憶することに使用されて、異なる（しかし、近隣の）親四角形のために同じ頂点を再計算することによって引き起こされる計算オーバヘッドを低減させてもよい。
【０１００】
コンピューティングベース装置１４００は入力／出力コントローラをさらに含んでもよく、上記入力／出力コントローラは、コンピューティングベース装置１４００と別個又は一体的であり得る表示装置に対して表示情報を出力するように配置される。表示情報は、グラフィカルユーザインターフェースを提供してもよい。入力／出力コントローラは、さらに、ユーザ入力装置（例えば、マウス又はキーボード）などの１つ以上の装置から入力を受信し及び処理するように配置されてもよい。一実施形態において、表示装置は、該表示装置がタッチセンサ式表示装置である場合、ユーザ入力装置としての機能を果たし得る。入力／出力コントローラは、さらに、表示装置でない装置、例えば、ローカルに接続された印刷装置などに、データを出力してもよい。
【０１０１】
用語「プロセッサ」及び「コンピュータ」は、本明細書において、命令を実行することができるような処理能力を有する任意の装置又はその部分を指すように用いられる。用語「プロセッサ」は、例えば、中央処理ユニット（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ又はＶＰＵ）、物理処理ユニット（physics  processing  units；ＰＰＵ）、ラジオ処理ユニット（ＲＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、汎用目的プロセッサ（例えば、汎用目的ＧＰＵ）、マイクロプロセッサ、ＣＰＵの外部のタスクを加速するように設計された任意の処理ユニット等を含み得る。当業者は、こうした処理能力が多くの種々の装置に組み込まれることを理解することになり、ゆえに、用語「コンピュータ」には、セットトップボックス、メディアプレーヤ、デジタルラジオ、ＰＣ、サーバ、モバイルテレフォン、パーソナルデジタルアシスタント、及び多くの他の装置が含まれる。
【０１０２】
当業者は、プログラム命令を記憶することに利用される記憶装置がネットワークにわたって分散され得ることを理解するであろう。例えば、リモートコンピュータが、ソフトウェアとして説明された処理の一例を記憶してもよい。ローカル又はターミナルコンピュータがリモートコンピュータにアクセスし、ソフトウェアの一部又はすべてをダウンロードしてプログラムを実行してもよい。別法として、ローカルコンピュータが必要に応じてソフトウェアのピースをダウンロードし、あるいは、いくつかのソフトウェア命令をローカル端末において、いくつかのソフトウェア命令をリモートコンピュータ（又は、コンピュータネットワーク）において実行してもよい。当業者は、さらに、当業者に知られる従来手法を利用することによって、ソフトウェア命令のうちすべて又は一部分がＤＳＰ、プログラマブルロジックアレイ、又は同様のものなどの専用回路によって実行され得ることを理解するであろう。
【０１０３】
本明細書に説明される方法は、ソフトウェアを用いて構成されたコンピュータによって実行されてもよく、上記ソフトウェアは、有形記憶媒体に記憶されたマシン可読形式のものであり、例えば、プログラムがコンピュータ上で実行されるとき、及びコンピュータプログラムがコンピュータ可読記憶媒体上に具現化され得る場合に、説明された方法の構成部分を実行するようにコンピュータを構成するコンピュータ可読プログラムコードを含むコンピュータプログラムの形式のものであり、あるいは、本明細書に説明された方法のうち任意のもののすべてのステップを実行するように適合させたコンピュータプログラムコード手段を含むコンピュータプログラムの形式のものである。有形（又は、非一時的）記憶媒体の例には、ディスク、サムドライブ、メモリカード等が含まれ、伝搬される信号は含まれない。ソフトウェアは、パラレルプロセッサ又はシリアルプロセッサ上での実行に適することが可能であり、したがって、方法ステップは、任意の適切な順序において、又は同時に実行され得る。
【０１０４】
本明細書に説明されるハードウェアコンポーネントは、コンピュータ可読プログラムコードをエンコードさせた非一時的コンピュータ可読記憶媒体によって生成されてもよい。
【０１０５】
さらに、所望の機能を実行するために集積回路を設計すること又はプログラマブルチップを構成することに用いられるとき、上記で説明されたモジュール、機能性、コンポーネント、又はロジックを実施するハードウェアの構成を「説明し」又は定義するソフトウェア、例えばＨＤＬ（ハードウェア記述言語）ソフトウェアなどを、包含することが意図される。すなわち、本明細書に説明された方法のうち任意のものを実行するように構成された処理ユニットを生成するための、又は本明細書に説明された任意の装置を含む処理ユニットを生成するためのコンピュータ可読プログラムコードをエンコードさせたコンピュータ可読記憶媒体が提供され得る。すなわち、コンピュータシステムが、回路素子の定義と該回路素子を組み合わせる規則を定義するデータとからデジタル回路の表現を生成するように構成されてもよく、これにおいて、非一時的コンピュータ可読記憶媒体は、プロセッサ実行可能命令を記憶させることが可能であり、上記プロセッサ実行可能命令は、コンピュータシステムにおいて実行されるときに、コンピュータシステムに、本明細書に説明された処理ユニットを生成させる。例えば、非一時的コンピュータ可読記憶媒体が、コンピュータ可読命令を記憶させることが可能であり、上記コンピュータ可読命令は、集積回路の出現（manifestation）を生成するコンピュータシステムにおいて処理されるときに、コンピュータシステムに、本明細書の例において説明されたとおりの受信器のプロセッサの出現を生成させ、あるいは、本明細書の例において説明された方法を実行するように構成されたプロセッサの出現を生成させる。プロセッサの出現は、プロセッサ自体、又は、プロセッサを生成することに使用することができるプロセッサの表現（例えば、マスク）であり得る。
【０１０６】
開示された態様を実施することに使用されるマシン実行可能データを記憶するメモリは、非一時的媒体であり得る。非一時的媒体は、揮発性又は不揮発性であり得る。揮発性非一時的媒体の例には、ＳＲＡＭ又はＤＲＡＭなどの、半導体ベースのメモリが含まれる。不揮発性メモリを実施することに使用され得るテクノロジーの例には、光及び磁気メモリテクノロジー、フラッシュメモリ、相変化メモリ、抵抗ＲＡＭが含まれる。
【０１０７】
「ロジック」に対する特定の参照は、１つ又は複数の機能を実行する構造を指す。ロジックの一例には、上記機能を実行するように配置された回路が含まれる。例えば、上記回路は、トランジスタ、及び／又は、製造プロセスにおいて利用可能な他のハードウェア要素を含み得る。上記トランジスタ及び／又は他の要素は、メモリを実装し及び／又は含む回路又は構造を形成することに使用されてもよく、上記回路又は構造は、例として、レジスタ、フリップフロップ又はラッチ、ブール演算などの論理演算子、加算器、乗算器又はシフタなどの数学演算子、及び相互接続などである。上記要素は、カスタム回路若しくは標準セルライブラリ、マクロ、又は他のレベルの抽象化において提供されてもよい。上記要素は、特定の配置において相互接続されてもよい。ロジックは、固定された機能である回路を含んでもよく、回路は、１つ又は複数の機能を実行するようにプログラムされることが可能である。上記プログラミングは、ファームウェア又はソフトウェアの更新又は制御メカニズムから提供されてもよい。１つの機能を実行するように識別されたロジックが、構成機能又はサブ処理を実施するロジックをさらに含んでもよい。一例において、ハードウェアロジックが、１つ又は複数の固定された機能演算、状態マシン又は処理を実施する回路を有する。
【０１０８】
当業者に明らかであろうとおり、本明細書に与えられた任意のレンジ又は装置値が、求められる効果を失うことなく拡張され、あるいは変えられてもよい。
【０１０９】
上記で説明された恩恵及び利点は、１つの実施形態に関連することがあり、あるいはいくつかの実施形態に関連し得ることが理解されるであろう。実施形態は、述べられた問題のいずれか又はすべてを解決するもの、又は述べられた恩恵及び利点のいずれか又はすべてを有するものに、限定されない。
【０１１０】
「一の（an）」アイテムに対するいかなる参照も、１つ以上の該アイテムを指す。用語「含む（comprising）」は、本明細書において、識別された方法ブロック又は要素を含むことを意味するように用いられ、しかし、こうしたブロック又は要素は排他的なリストを含まず、装置がさらなるブロック又は要素を含むことが可能であり、方法がさらなる動作又は要素を含むことが可能である。さらに、ブロック、要素、及び動作は、これら自体、暗黙的にクローズされない。
【０１１１】
本明細書に説明された方法のステップは、任意の適切な順序において、あるいは、適切である場合に同時に、実行されてよい。図内のボックス間の矢印は、方法ステップの一例示的なシーケンスを示すが、他のシーケンス、又は並列における複数ステップの実行を除外することは意図されない。さらに、個々のブロックが、本明細書に説明された対象事項の主旨及び範囲から逸脱することなく、上記方法のうち任意のものから削除されてもよい。上記で説明された例のうち任意のものの態様が、説明された他の例のうち任意のものの態様と組み合わせられて、求められる効果を失うことなく、さらなる例を形成してもよい。図面の要素が矢印で接続されて示される場合、上記矢印は、要素間のやりとり（データ及び制御メッセージを含む）の単に一例示的なフローを示すことが十分理解されるであろう。要素間のフローは、いずれかの方向、又は双方向であり得る。
【０１１２】
好適な実施形態の上記説明は単に例として与えられており、様々な修正が当業者によりなされ得ることが理解されるであろう。様々な実施形態がある程度の特定性で、又は１つ以上の個々の実施形態を参照して上記で説明されたが、当業者は、本発明の主旨又は範囲から逸脱することなく、開示された実施形態に対して多数の変更をなし得る。
上記の実施形態につき以下の付記を残しておく。
［付記１］
ａ）四角形パッチを定義する４つの頂点を含む入力を受け取ることであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含み、
ｂ）前記頂点テッセレーション係数を閾値と比較し、
ｃ）すべての４つの頂点テッセレーション係数が前記閾値より小さいか又は等しいと決定することに応答して、前記パッチを２つ又は４つの三角形に分割し、
ｄ）前記４つの頂点テッセレーション係数のうち少なくとも１つが前記閾値を超えると決定することに応答して、
前記パッチに対する中心頂点を生成し、前記の新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出し、
順に、前記の４つの受け取られた頂点のうち各１つを選択することであって、各々の選択された頂点について、
前記選択された頂点に基づいて頂点を定義し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えるか、又は双方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出し、サブ四角形を定義し且つ前記の定義された頂点と前記中心頂点と前記２つの新しい頂点とを含む４つの頂点を、さらなる入力としてａ）に提供し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、正確に一方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、新しい頂点を追加して、前記選択された頂点と前記閾値を超える頂点テッセレーション係数を有する隣接頂点との間のエッジを細分割し、前記の定義された頂点と前記の新たに追加された頂点と前記中心頂点と他方の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割する
ように構成されたハードウェアロジックを含むハードウェアテッセレーションユニット。
［付記２］
前記パッチを２つ又は４つの三角形に分割するように構成された前記ハードウェアロジックは、
前記パッチがトップレベルパッチであるかを決定し、
前記パッチがトップレベルパッチであると決定することに応答して、中心頂点を追加し、各入力頂点を前記中心頂点につなぐことによって４つの三角形を作成し、
前記パッチがトップレベルパッチでないと決定することに応答して、前記パッチのソース頂点を前記パッチの対角線的に対向の頂点に接続することによって２つの三角形を作成する
ように構成されたハードウェアロジックを含む、付記１に記載のハードウェアテッセレーションユニット。
［付記３］
前記パッチに対する中心頂点を生成するように構成された前記ハードウェアロジックは、
トップレベルパッチについて、（ｉ）Ｎ次元空間におけるすべての４つの角の頂点についての位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるすべての４つの角の頂点についての場所の平均と、の重み付けされたブレンドにより与えられる位置を有する中心頂点を生成し、
トップレベルパッチでないパッチについて、（ｉ）Ｎ次元空間における前記選択された頂点と対角線的に対向の頂点との位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間における前記選択された頂点と対角線的に対向の頂点とについての場所の平均と、の重み付けされたブレンドにより与えられる位置を有する中心頂点を生成する
ように構成されたハードウェアロジックを含み、
前記重み付けされたブレンドは、前記頂点テッセレーション係数の関数として決定される重み付けを使用する、
付記１又は２に記載のハードウェアテッセレーションユニット。
［付記４］
前記重み付けは、
MAXi=0..3(MIN(TFi-1,1))
により与えられる、付記３に記載のハードウェアテッセレーションユニット。
［付記５］
前記新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出するように構成された前記ハードウェアロジックは、
最初の頂点テッセレーション係数を、
【数１４】
2020191134.tif 000016
を用いて算出し、
前記新たに追加された中心頂点についての頂点テッセレーション係数TFcentre及びブレンド係数BWcentreを、
InitialTFcentreが２より小さいかを決定し、
InitialTFcentreが２．０より小さいと決定すること応答して、TFcentre=1及びBWcentre=BlendWeightFunc(TF0,TF1,TF2,TF3)を設定することであって、
BlendWeightFunc(TF0,…TF3).=MAXi=0..3(MIN(TFi-1,1))
であり、
InitialTFcentreが２．０より小さくないと決定すること応答して、TFcentre=InitialTFcentre/2及びBWcentre=1.0を設定する
ことによって算出する
ように構成されたハードウェアロジックを含む、付記１乃至４のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記６］
前記選択された頂点に基づいて頂点を定義するように構成された前記ハードウェアロジックは、
前記の定義された頂点のドメイン空間座標を前記選択された頂点のドメイン空間座標に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいかと、前記選択された頂点の頂点テッセレーション係数が２．０より小さいかとを決定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点のブレンド係数に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しくなく、２．０より小さいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点の頂点テッセレーション係数より１少ない値に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が２．０より小さくないと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を前記選択された頂点の頂点テッセレーション係数の半分に等しく設定し、前記定義された頂点のブレンド係数を１に等しく設定する
ように構成されたハードウェアロジックを含む、付記１乃至５のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記７］
２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出するように構成された前記ハードウェアロジックは、頂点ＶＡとＶＢとの間のエッジを細分割する各々の新しい頂点ＶＭについて、
ＶＭについての最初の頂点テッセレーション係数を、
【数１５】
2020191134.tif 000017
を用いて算出し、
前記の新たに追加された頂点ＶＭについての頂点テッセレーション係数ＴＦＭ及びブレンド係数ＢＷＭを、
InitialTFMが２より小さいかを決定し、
InitialTFMが２．０より小さいと決定することに応答して、TFM=1及びBWM=MAX(MIN(TFA-1,1),MIN(TFB-1,1))を設定し、
InitialTFMが２．０より小さくないと決定することに応答して、TFM=InitialTFM/2及びBWM=1.0を設定し、
ドメイン空間におけるＶＭの位置を、ＶＡ及びＶＢのドメイン空間座標の平均であるように、及び、（ｉ）Ｎ次元空間におけるＶＡ及びＶＢの位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるＶＭの位置との、ＢＷＭを用いて重み付けされたブレンドにより与えられる位置を有するＮ次元空間における位置に、設定する
ことによって算出する
ように構成されたハードウェアロジックを含む、付記１乃至６のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記８］
三角形パッチを定義する３つの頂点を含む入力を受け取ることであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含み、
前記頂点テッセレーション係数を閾値と比較し、
前記３つの頂点テッセレーション係数のうち少なくとも１つが前記閾値を超えると決定することに応答して、
前記パッチに対する中心頂点を生成し、前記の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数を算出し、
順に、前記の３つの受け取られた頂点のうち各１つを選択することであって、各々の選択された頂点について、
前記選択された頂点に基づいて頂点を定義し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出し、サブ四角形を定義し且つ前記の定義された頂点と前記中心頂点と前記２つの新しい頂点とを含む４つの頂点を、さらなる入力としてａ）に提供し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、双方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記の定義された頂点と前記の新たに追加された頂点と前記中心頂点と他方の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、次の隣接頂点の頂点テッセレーション係数が前記閾値を超え、前の隣接頂点の頂点テッセレーション係数が前記閾値を超えないと決定することに応答して、新しい頂点を追加して前記選択された頂点と前記次の隣接頂点との間のエッジを細分割し、前記定義された頂点と前記の新たに追加された頂点と前記中心頂点とを接続する１つの三角形を描画し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、次の隣接頂点の頂点テッセレーション係数が前記閾値を超えず、前の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、新しい頂点を追加して前記選択された頂点と前記前の隣接頂点との間のエッジを細分割し、前記定義された頂点と前記の新たに追加された頂点と前記中心頂点と前記次の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割する
ように構成されたハードウェアロジック、をさらに含む付記１乃至７のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記９］
三角形パッチについて、前記パッチに対する中心頂点を生成し、前記の新たに追加された頂点についての頂点テッセレーション係数及びブレンド係数を算出するように構成された前記ハードウェアロジックは、
前記三角形パッチの３つの頂点の平均値により与えられるドメイン空間における位置を有する中心頂点を生成し、
最初の頂点テッセレーション係数を、
【数１６】
2020191134.tif 000018
を用いて算出し、
前記新たに追加された中心頂点についての頂点テッセレーション係数TFcentre及びブレンド係数BWcentreを、
InitialTFcentreが２より小さいかを決定し、
InitialTFcentreが２．０より小さいと決定すること応答して、TFcentre=1及びBWcentre=BlendWeightFunc(TF0,TF1,TF2)を設定することであって、
BlendWeightFunc(TF0,…TF2).=MAXi=0..2(MIN(TFi-1,1))
であり、
InitialTFcentreが２．０より小さくないと決定すること応答して、TFcentre=InitialTFcentre/2及びBWcentre=1.0を設定する
ことによって算出する
ように構成されたハードウェアロジックを含む、付記８に記載のハードウェアテッセレーションユニット。
［付記１０］
三角形パッチについて、前記選択された頂点に基づいて頂点を定義するように構成された前記ハードウェアロジックは、
前記の定義された頂点のドメイン空間座標を前記選択された頂点のドメイン空間座標に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいかと、前記選択された頂点の頂点テッセレーション係数が２．０より小さいかとを決定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点のブレンド係数に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が１．０に等しくなく、２．０より小さいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点の頂点テッセレーション係数より１少ない値に等しく設定し、
前記選択された頂点の頂点テッセレーション係数が２．０より小さくないと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を前記選択された頂点の頂点テッセレーション係数の半分に等しく設定し、前記定義された頂点のブレンド係数を１に等しく設定する
ように構成されたハードウェアロジックを含む、付記８又は９に記載のハードウェアテッセレーションユニット。
［付記１１］
三角形パッチについて、新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出するように構成された前記ハードウェアロジックは、頂点ＶＡとＶＢとの間のエッジを細分割する各々の新しい頂点ＶＭについて、
ＶＭについての最初の頂点テッセレーション係数を、
【数１７】
2020191134.tif 000019
を用いて算出し、
前記の新たに追加された頂点ＶＭについての頂点テッセレーション係数ＴＦＭ及びブレンド係数ＢＷＭを、
InitialTFMが２より小さいかを決定し、
InitialTFMが２．０より小さいと決定することに応答して、TFM=1及びBWM=MAX(MIN(TFA-1,1),MIN(TFB-1,1))を設定し、
InitialTFMが２．０より小さくないと決定することに応答して、TFM=InitialTFM/2及びBWM=1.0を設定し、
ドメイン空間におけるＶＭの位置を、ＶＡ及びＶＢのドメイン空間座標の平均であるように、及び、（ｉ）Ｎ次元空間におけるＶＡ及びＶＢの位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるＶＭの位置との、ＢＷＭを用いて重み付けされたブレンドにより与えられる位置を有するＮ次元空間における位置に、設定する
ことによって算出する
ように構成されたハードウェアロジックを含む、付記８乃至１０のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記１２］
Ｐ＞４においてＰ辺のパッチを定義するＰ個の頂点を含む入力を受け取ることであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含み、
前記頂点テッセレーション係数を閾値と比較し、
すべてのＰ個の頂点テッセレーション係数が前記閾値を超えないと決定することに応答して、中心頂点を追加し、前記パッチをＰ個の三角形に分割し、
前記Ｐ個の頂点テッセレーション係数のうち少なくとも１つが前記閾値を超えると決定することに応答して、
前記パッチについての中心頂点を生成し、前記の新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出し、
順に、前記のＰ個の受け取られた頂点のうち各１つを選択することであって、各々の選択された頂点について、
前記選択された頂点に基づいて頂点を定義し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えるか、又は双方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出し、サブ四角形を定義し且つ前記の定義された頂点と前記中心頂点と前記２つの新しい頂点とを含む４つの頂点を、さらなる入力としてａ）に提供し、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、正確に一方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、新しい頂点を追加して、前記選択された頂点と前記閾値を超える頂点テッセレーション係数を有する隣接頂点との間のエッジを細分割し、前記の定義された頂点と前記の新たに追加された頂点と前記中心頂点と他方の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割する
ように構成されたハードウェアロジック、をさらに含む付記１乃至１１のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記１３］
パッチ又はサブ四角形内における再利用のための頂点データを記憶するように配置されたメモリ素子、をさらに含み、前記パッチ又はサブ四角形の２つ以上の細分割された部分の一部であるエッジを細分割するように追加される頂点が、パッチ又はサブ四角形ごとに１回だけ決定される、付記１乃至１２のうちいずれか１項に記載のハードウェアテッセレーションユニット。
［付記１４］
コンピュータグラフィクスシステムにおいてテッセレーションを実行する方法であって、
ａ）四角形パッチを定義する４つの頂点を含む入力を受け取るステップであって、各頂点は、ドメイン空間座標及び頂点テッセレーション係数を含む、ステップと、
ｂ）前記頂点テッセレーション係数を閾値と比較するステップと、
ｃ）すべての４つの頂点テッセレーション係数が前記閾値を超えないと決定することに応答して、前記パッチを２つ又は４つの三角形に分割するステップと、
ｄ）少なくとも１つのテッセレーション係数が前記閾値を超えると決定することに応答して、
前記パッチに対する中心頂点を生成し、前記の新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出するステップと、
順に、前記の４つの受け取られた頂点のうち各１つを選択するステップであって、各々の選択された頂点について、
前記選択された頂点に基づいて頂点を定義するステップと、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えるか、又は双方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出し、サブ四角形を定義し且つ前記の定義された頂点と前記中心頂点と前記２つの新しい頂点とを含む４つの頂点を、さらなる入力としてａ）に提供するステップと、
前記選択された頂点の頂点テッセレーション係数が前記閾値を超えず、正確に一方の隣接頂点の頂点テッセレーション係数が前記閾値を超えると決定することに応答して、新しい頂点を追加して、前記選択された頂点と前記閾値を超える頂点テッセレーション係数を有する隣接頂点との間のエッジを細分割し、前記の定義された頂点と前記の新たに追加された頂点と前記中心頂点と他方の隣接頂点とにより定義されるサブ四角形を、前記定義された頂点を前記サブ四角形における対角線的に対向の頂点に接続することによって２つの三角形に分割するステップと、
を含む方法。
［付記１５］
前記パッチを２つ又は４つの三角形に分割するステップは、
前記パッチがトップレベルパッチであるかを決定すること、
前記パッチがトップレベルパッチであると決定することに応答して、中心頂点を追加し、各入力頂点を前記中心頂点につなぐことによって４つの三角形を作成こと、及び
前記パッチがトップレベルパッチでないと決定することに応答して、前記パッチのソース頂点を前記パッチの対角線的に対向の頂点に接続することによって２つの三角形を作成すること
を含む、付記１４に記載の方法。
［付記１６］
前記パッチに対する中心頂点を生成するステップは、
トップレベルパッチについて、（ｉ）Ｎ次元空間におけるすべての４つの角の頂点についての位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるすべての４つの角の頂点についての場所の平均と、の重み付けされたブレンドにより与えられる位置を有する中心頂点を生成すること、及び
トップレベルパッチでないパッチについて、（ｉ）Ｎ次元空間における前記選択された頂点と対角線的に対向の頂点との位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間における前記選択された頂点と対角線的に対向の頂点とについての場所の平均と、の重み付けされたブレンドにより与えられる位置を有する中心頂点を生成すること
を含み、
前記重み付けされたブレンドは、前記頂点テッセレーション係数の関数として決定される重み付けを使用する、
付記１４又は１５に記載の方法。
［付記１７］
前記新たに追加された中心頂点についての頂点テッセレーション係数及びブレンド係数を算出するステップは、
最初の頂点テッセレーション係数を、
【数１８】
2020191134.tif 000020
を用いて算出すること、及び
前記新たに追加された中心頂点についての頂点テッセレーション係数TFcentre及びブレンド係数BWcentreを、
InitialTFcentreが２より小さいかを決定し、
InitialTFcentreが２．０より小さいと決定すること応答して、TFcentre=1及びBWcentre=BlendWeightFunc(TF0,TF1,TF2,TF3)を設定することであって、
BlendWeightFunc(TF0,…TF3).=MAXi=0..3(MIN(TFi-1,1))
であり、
InitialTFcentreが２．０より小さくないと決定すること応答して、TFcentre=InitialTFcentre/2及びBWcentre=1.0を設定する
ことによって算出すること、
を含む、付記１４乃至１６のうちいずれか１項に記載の方法。
［付記１８］
前記選択された頂点に基づいて頂点を定義するステップは、
前記の定義された頂点のドメイン空間座標を前記選択された頂点のドメイン空間座標に等しく設定すること、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいかと、前記選択された頂点の頂点テッセレーション係数が２．０より小さいかとを決定すること、
前記選択された頂点の頂点テッセレーション係数が１．０に等しいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点のブレンド係数に等しく設定すること、
前記選択された頂点の頂点テッセレーション係数が１．０に等しくなく、２．０より小さいと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を１．０に等しく設定し、前記定義された頂点のブレンド係数を前記選択された頂点の頂点テッセレーション係数より１少ない値に等しく設定すること、及び
前記選択された頂点の頂点テッセレーション係数が２．０より小さくないと決定することに応答して、前記定義された頂点の頂点テッセレーション係数を前記選択された頂点の頂点テッセレーション係数の半分に等しく設定し、前記定義された頂点のブレンド係数を１に等しく設定すること、
を含む、付記１４乃至１７のうちいずれか１項に記載の方法。
［付記１９］
２つの新しい頂点を追加して前記選択された頂点と隣接頂点との間の各エッジを細分割し、前記新しい頂点の頂点テッセレーション係数及びブレンド係数を算出するステップは、頂点ＶＡとＶＢとの間のエッジを細分割する各々の新しい頂点ＶＭについて、
ＶＭについての最初の頂点テッセレーション係数を、
【数１９】
2020191134.tif 000021
を用いて算出すること、及び
前記の新たに追加された頂点ＶＭについての頂点テッセレーション係数ＴＦＭ及びブレンド係数ＢＷＭを、
InitialTFMが２より小さいかを決定し、
InitialTFMが２．０より小さいと決定することに応答して、TFM=1及びBWM=MAX(MIN(TFA-1,1),MIN(TFB-1,1))を設定し、
InitialTFMが２．０より小さくないと決定することに応答して、TFM=InitialTFM/2及びBWM=1.0を設定し、
ドメイン空間におけるＶＭの位置を、ＶＡ及びＶＢのドメイン空間座標の平均であるように、及び、（ｉ）Ｎ次元空間におけるＶＡ及びＶＢの位置の平均と、（ｉｉ）Ｎ次元空間にマップされる、ドメイン空間におけるＶＭの位置との、ＢＷＭを用いて重み付けされたブレンドにより与えられる位置を有するＮ次元空間における位置に、設定する
ことによって算出すること、
を含む、付記１４乃至１８のうちいずれか１項に記載の方法。
［付記２０］
付記１乃至１３のうちいずれか１項に記載のハードウェアテッセレーションユニットを定義するコンピュータ可読プログラムコードをエンコードさせたコンピュータ可読記憶媒体。
【符号の説明】
【０１１３】
１３００  パイプライン
１３０２  頂点シェーダ
１３０４  テッセレーションユニット（テッセレータ）
１３０６  ドメインシェーダ
１４００  コンピューティングベース装置
１４０２  プロセッサ
１４１２  通信インターフェース
１４１０  メモリ
１４０４  オペレーティングシステム
１４０６  アプリケーションソフトウェア
１４０８  テッセレーションモジュール
【図１】
2020191134.tif 000026
【図２】
2020191134.tif 000027
【図３】
2020191134.tif 000028
【図４】
2020191134.tif 000029
【図５】
2020191134.tif 000030
【図６】
2020191134.tif 000031
【図７】
2020191134.tif 000032
【図８】
2020191134.tif 000033
【図９】
2020191134.tif 000034
【図１０】
2020191134.tif 000035
【図１１】
2020191134.tif 000036
【図１２】
2020191134.tif 000037
【図１３】
2020191134.tif 000038
【図１４】
2020191134.tif 000039
【図１５】
2020191134.tif 000040
【図１６】
2020191134.tif 000041