JP2023538828A - 距離場グラフィックスレンダリングのためのアンチエイリアシング - Google Patents

距離場グラフィックスレンダリングのためのアンチエイリアシング Download PDF

Info

Publication number
JP2023538828A
JP2023538828A JP2023507457A JP2023507457A JP2023538828A JP 2023538828 A JP2023538828 A JP 2023538828A JP 2023507457 A JP2023507457 A JP 2023507457A JP 2023507457 A JP2023507457 A JP 2023507457A JP 2023538828 A JP2023538828 A JP 2023538828A
Authority
JP
Japan
Prior art keywords
color
sampling
pixel
texels
determining
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
JP2023507457A
Other languages
English (en)
Inventor
ラリー セイラー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of JP2023538828A publication Critical patent/JP2023538828A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Quality & Reliability (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

一実施形態では、コンピューティングシステムは、ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定し、サンプリング位置に基づいて、複数のテクセル内のテクセルのセットを選択することができる。テクセルのセット内の各テクセルは、距離場を符号化することができる。サンプリング位置に関連付けられた補間距離場は、テクセルのセットに関連付けられた距離場に基づいて計算することができる。補間距離場は、サンプリング位置とテクスチャエッジとの間の相対距離を表すことができる。補間距離場に基づいたブレンド比率に従って、コンピューティングシステムは、エッジの第1の側及びエッジの第2の側に関連付けられた第1の色と第2の色とをブレンドすることによって、サンプリング位置のブレンド色を決定し、ブレンド色に基づいてピクセルの色を出力することができる。【選択図】図1

Description

本開示は、一般に、コンピュータグラフィックスに関する。より具体的には、本開示は、テキスト、シンボル、グリフ、及び距離場を使用して定義された他のグラフィックスをレンダリングするための改善された技術に関する。
コンピュータグラフィックスは、一般に、コンピュータを使用して作成された視覚的シーンである。三次元(3D)コンピュータグラフィックスは、ユーザに特定の視点からの3Dオブジェクトのビューを提供する。3Dシーン内の各オブジェクト(例えば、ティーポット、家、人など)は、基本ジオメトリを使用して3Dモデリング空間内で定義することができる。例えば、円筒形のオブジェクトは、円筒形の管と上下の円形の蓋とを使用してモデリングすることができる。円筒形の管及び円形の蓋はそれぞれ、より小さい多角形(例えば、三角形)のネットワーク又はメッシュによって表すことができる。そして、各多角形は、3Dモデリング空間内のそれぞれの頂点の座標に基づいて記憶することができる。
コンピュータグラフィックスにおける1つの問題は、二次元(2D)グラフィックス(例えば、3Dグラフィックスとは異なるソリッドカラー領域からなる画像で、典型的には影付きの領域又はパターン化領域を含有する)の効率的で高品質のレンダリングである。2Dグラフィックスを3Dシーンに配置し、任意の視点から観察する場合があり、この場合、元の2Dグラフィックスは歪んで見える。ディスプレイのためのシーンを生成するとき、レンダリングシステムは、典型的には、ユーザ/カメラの視点から2Dグラフィックスをサンプリングして、画面のピクセルによって表示されるべき適切な色を決定する。ピクセルによって表示される色は、典型的には、対応するサンプリング位置付近の2Dグラフィック内の複数の色情報に基づいて色を推定するバイリニア補間などのフィルタリング技術を使用して決定される。単一のピクセルの色を推定するために複数の色情報が使用されるので、レンダリングされたグラフィックのエッジはぼやけているか、又はあまり鮮明ではないように見える。2Dグラフィックスに関する前述の問題に対処するための目標は、(1)2Dグラフィックス画像を表すためのよりコンパクトな方法を定義すること、及び(2)幾何学的歪みに対応するために拡張現実及び仮想現実などの多くのグラフィックスアプリケーションで必要とされ、通常はぼやけを引き起こす再サンプルフィルタリングにもかかわらず、ソリッドカラー領域間に鮮明なエッジを有する方法を定義することとして特徴付けることができる。
これらの問題は、テキストをレンダリングするときに特に深刻であり、テキストと背景領域との間の細かいエッジ詳細をレンダリングする必要がある。テキストが静的である場合、それを高精度で事前レンダリングするために時間及び計算リソースを要することは問題ではない。例えば、文字は、テクセルごとにカラーデータ(例えば、赤、緑、及び青)を有するテクスチャとして記憶し、必要に応じて画面上にレンダリングすることができる。文字は、小さいときは適度に良く見えるが、(例えば、変換の変化、視点の変化、又はテキスト自体の変化に起因して)伸長、拡大、回転、又は歪められると、ピクセル化及びエイリアシングがより顕著になる場合がある。
本明細書に記載の実施形態は、上述したように、グラフィックスレンダリングに関する問題に対処する。より具体的には、特定の実施形態は、距離場を使用して定義されたラベル(本明細書で使用される「ラベル」は、文字、フォント、グリフ、アイコン、及びソリッドカラー領域からなる他の2D画像を指す)をレンダリングするための改善された技術に関する。テキストが、本開示によって解決することができる特に困難で共通の問題の例であるため、記載される様々な技術を例示するためにテキストを主な例として使用する。しかしながら、本明細書に記載の技術は、アイコン及び他の2D画像を含む異なる種類のラベルに適用することができることに留意されたい。
距離場をRGB色情報の代わりに使用して、画像内の各ピクセル(又はテクスチャ内の各テクセル)の外観を指定し、テキスト、アイコン、及びベクトルグラフィックスを表すことができる。距離場は、ラベルが拡大及び/又は伸長されるときを含めて、アーチファクトを導入することなく再サンプリングすることができる。しかしながら、距離場をレンダリングする標準的な方法では、ピクセルエイリアス画像が生成される。これは、標準的な方法では、距離場ラベルをサンプリングすると、ピクセルごとに離散的な所定の値が生成されるためである。例えば、特定のサンプリングされた位置の距離場は、4つの最も近いテクセルの距離場のバイリニア補間を使用して計算することができる。サンプリングされた距離場は、サンプリングされた位置がラベルの「内」にあるか「外」にあるかを示すことができる(例えば、テキストの本体内、又は外の背景)。サンプリングされた位置が「内」である場合、対応する色が割り当てられる(例えば、緑の背景上でラベルが赤である場合、「内」距離場に割り当てられた色は赤になる)。同様に、サンプリングされた位置が「外」である場合、対応する背景色が割り当てられる(例えば、緑)。この例では、各ピクセルの色はバイナリ方式で決定され、特定のビュー条件でエイリアシングアーチファクトが導入される可能性がある。
本明細書に記載の特定の実施形態は、距離場によって定義されたラベルをレンダリングするときにアンチエイリアス結果を生成する方法を提供する。例えば、アルファブレンドを使用して、ラベルの「内」色と「外」色をブレンドし、ピクセルの色を決定することができる。ブレンドの比率は、ピクセルに関連付けられたサンプリングされた位置の計算された距離場を使用して決定することができる(例えば、サンプリングされた位置がラベルのエッジの真上にある場合、「内」色と「外」色を50%-50%の方法で均一にブレンドすることができる)。画像が伸長される場合(例えば、テキストがある角度からレビューされる場合、又は3D環境において曲面を包み込む場合)、ジッタを使用してエイリアシングを低減することもできる。特定の実施形態では、より広いサンプル間隔(例えば、画像が最も伸長される方向)を有する方向にジッタを適用することができる。
特定の実施形態では、コンピューティングシステムは、ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定することができる。サンプリング位置に基づいて、コンピューティングシステムは、複数のテクセル内のテクセルのセットを選択することができる。テクセルのセット内の各テクセルは、少なくとも距離場を符号化することができる。テクセルのセットに関連付けられた距離場に基づいて、コンピューティングシステムは、サンプリング位置に関連付けられた補間距離場を計算することができる。補間距離場は、サンプリング位置とテクスチャに描写されたエッジとの間の相対距離を表すことができる。コンピューティングシステムは、補間距離場に基づいてブレンド比率を決定することができる。コンピューティングシステムは、ブレンド比率に従って、エッジの第1の側に関連付けられた第1の色と、エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、サンプリング位置のブレンド色を決定することができる。コンピューティングシステムは、サンプリング位置のブレンド色に基づいて、ピクセルの色を出力することができる。
本開示の態様によると、コンピューティングシステムによって:ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定することと;サンプリング位置に基づいて、複数のテクセル内のテクセルのセットを選択することであって、テクセルのセット内の各テクセルは少なくとも1つの距離場を符号化する、選択することと;テクセルのセットに関連付けられた距離場に基づいて、サンプリング位置に関連付けられた補間距離場を計算することであって、補間距離場はサンプリング位置とテクスチャに描写されたエッジとの間の相対距離を表す、計算することと;補間距離場をテクセル単位からピクセル単位にスケーリングするためのスケーリング係数を決定することと;スケーリング係数を使用して、補間距離場をスケーリングすることと;スケーリングされた補間距離場に基づいてブレンド比率を決定することと;ブレンド比率に従って、エッジの第1の側に関連付けられた第1の色と、エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、サンプリング位置のブレンド色を決定することと;サンプリング位置のブレンド色に基づいてピクセルの色を出力することとを含む、方法が提供される。
いくつかの実施形態では、本方法は、スケーリングされた補間距離場に対する所定のオフセットにアクセスすることをさらに含むことができ、ブレンド比率は、スケーリングされた補間距離場の所定のオフセットに基づいてさらに決定される。
いくつかの実施形態では、本方法は、ピクセル空間内の第1の方向における、複数のテクセルの第1のサンプリング間隔を決定することと;ピクセル空間内の第2の方向における、複数のテクセルの第2のサンプリング間隔を決定することであって、第2の方向は第1の方向に垂直である、決定することと;第1のサンプリング間隔と第2のサンプリング間隔とを比較して小さい方を決定することとをさらに含むことができ、スケーリング係数は、第1のサンプリング間隔又は第2のサンプリング間隔のうちの小さい方に基づいて決定される。
いくつかの実施形態では、本方法は、ピクセルに対して、1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色を決定することと;ピクセルに対するサンプリング位置のブレンド色、及び1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色に基づいて、ピクセルの色を決定することとをさらに含むことができ、ピクセルの色はフレームに含まれる。
いくつかの実施形態では、本方法は、ピクセル空間内の第1の方向における、複数のテクセルの第1のサンプリング間隔を決定することと;ピクセル空間内の第2の方向における、複数のテクセルの第2のサンプリング間隔を決定することであって、第2の方向は第1の方向に垂直である、決定することと;第1のサンプリング間隔と第2のサンプリング間隔との比較に基づいてジッタ配向を決定することとをさらに含むことができ、テクスチャ内のサンプリング位置及び1つ以上の第2の位置は、ジッタ配向に沿って分布しているピクセルの位置に対応する。
いくつかの実施形態では、本方法は、第1のサンプリング間隔と第2のサンプリング間隔との間の差に基づいてジッタ範囲を決定することをさらに含み、テクスチャ内のサンプリング位置及び1つ以上の第2のサンプリング位置に対応するピクセル内の位置は、ジッタ配向に沿ったジッタ範囲内に分布している。
いくつかの実施形態では、ピクセルの色は、フレームシーケンス内の第1のフレームに関連付けることができ、本方法は、フレームシーケンス内の第2のフレーム内の第2のピクセルに関連付けられた第2のサンプリング位置の第2のブレンド色を決定することであって、第1のフレーム内のピクセルの相対位置と、第2のフレーム内の第2のピクセルの相対位置とは同じであり、テクスチャ内のサンプリング位置に対応するピクセル内の位置と、テクスチャ内の第2のサンプリング位置に対応する第2のピクセル内の第2の位置とは異なる、決定することと;第2のサンプリング位置の第2のブレンド色に基づいて第2のピクセルの第2の色を出力することをさらに含むことができ、第2のピクセルの第2の色は第2のフレームに含まれる。
いくつかの実施形態では、本方法は、ピクセル空間内の第1の方向における、複数のテクセルの第1のサンプリング間隔を決定することと;ピクセル空間内の第2の方向における、複数のテクセルの第2のサンプリング間隔を決定することであって、第2の方向は第1の方向に垂直である、決定することと;第1のサンプリング間隔と第2のサンプリング間隔との比較に基づいてジッタ配向を決定することとをさらに含むことができ、ピクセル内の位置及び第2のピクセル内の第2の位置は、ジッタ配向に沿って分布している。
いくつかの実施形態では、サンプリング位置がテクスチャに描写されたエッジから所定の範囲内にあるという決定に応答して、第1の色及び第2の色をブレンドすることができる。
いくつかの実施形態では、所定の範囲は、テクスチャに描写されたエッジから1/2ピクセルであってもよい。
いくつかの実施形態では、ブレンド色に基づく出力色は、第1の百分率(percent proportion)の第1の色及び第2の百分率の第2の色を含有することができる。
いくつかの実施形態では、第1の百分率及び第2の百分率はそれぞれ、第1の色及び第2の色の見かけの(apparent)透明度に対応することができる。
本開示のさらなる態様によると、実行されると:ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定し;サンプリング位置に基づいて、複数のテクセル内のテクセルのセットであって、テクセルのセット内の各テクセルは少なくとも1つの距離場を符号化する、テクセルのセットを選択し;テクセルのセットに関連付けられた距離場に基づいて、サンプリング位置に関連付けられ、サンプリング位置とテクスチャに描写されたエッジとの間の相対距離を表す補間距離場を計算し;補間距離場に基づいてブレンド比率を決定し;ブレンド比率に従って、エッジの第1の側に関連付けられた第1の色と、エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、サンプリング位置のブレンド色を決定し;サンプリング位置のブレンド色に基づいてピクセルの色を出力するように動作可能であるソフトウェアを具現化する1つ以上のコンピュータ可読非一時的記憶媒体が提供される。
いくつかの実施形態では、ソフトウェアは、実行されると、スケーリングされた補間距離場に対する所定のオフセットにアクセスするようにさらに動作可能であり得、ブレンド比率は、スケーリングされた補間距離場の所定のオフセットに基づいてさらに決定される。
いくつかの実施形態では、ソフトウェアは、実行されると:ピクセル空間内の第1の方向における、複数のテクセルの第1のサンプリング間隔を決定し;第1の方向に垂直であるピクセル空間内の第2の方向における、複数のテクセルの第2のサンプリング間隔を決定し;第1のサンプリング間隔と第2のサンプリング間隔とを比較して小さい方を決定するようにさらに動作可能であり得、スケーリング係数は、第1のサンプリング間隔又は第2のサンプリング間隔のうちの小さい方に基づいて決定される。
いくつかの実施形態では、ソフトウェアは、実行されると:ピクセルに対して、1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色を決定し;ピクセルに対するサンプリング位置のブレンド色、及び1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色に基づいて、ピクセルの色を決定するようにさらに動作可能であり得、ピクセルの色はフレームに含まれる。
本開示のさらなる態様によると、システムであって、1つ以上のプロセッサと;プロセッサのうちの1つ以上に結合され、プロセッサのうちの1つ以上によって実行されると、システムに:ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定させ;サンプリング位置に基づいて、複数のテクセル内のテクセルのセットであって、テクセルのセット内の各テクセルは少なくとも1つの距離場を符号化する、テクセルのセットを選択させ;テクセルのセットに関連付けられた距離場に基づいて、サンプリング位置に関連付けられ、サンプリング位置とテクスチャに描写されたエッジとの間の相対距離を表す補間距離場を計算させ;補間距離場に基づいてブレンド比率を決定させ;ブレンド比率に従って、エッジの第1の側に関連付けられた第1の色と、エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、サンプリング位置のブレンド色を決定させ;サンプリング位置のブレンド色に基づいてピクセルの色を出力させる、命令を含む1つ以上のコンピュータ可読非一時的記憶媒体とを備える、システムが提供される。
いくつかの実施形態では、プロセッサは、命令を実行するときに、スケーリングされた補間距離場に対する所定のオフセットにアクセスするようにさらに動作可能であり得、ブレンド比率は、スケーリングされた補間距離場の所定のオフセットに基づいてさらに決定される。
いくつかの実施形態では、プロセッサは、命令を実行するときに:ピクセル空間内の第1の方向における、複数のテクセルの第1のサンプリング間隔を決定し;第1の方向に垂直であるピクセル空間内の第2の方向における、複数のテクセルの第2のサンプリング間隔を決定し;第1のサンプリング間隔と第2のサンプリング間隔とを比較して小さい方を決定するようにさらに動作可能であり得、スケーリング係数は、第1のサンプリング間隔又は第2のサンプリング間隔のうちの小さい方に基づいて決定される。
いくつかの実施形態では、プロセッサは、命令を実行するときに、ピクセルに対して、1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色を決定し、ピクセルに対するサンプリング位置のブレンド色、及び1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色に基づいて、ピクセルの色を決定するようにさらに動作可能であり得、ピクセルの色はフレームに含まれる。
本発明の実施形態は、人工現実システムを含むか、又は人工現実システムと共に実装することができる。人工現実は、ユーザへの提示前に何らかの方法で調整された現実の形態であり、例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、又はそれらの何らかの組み合わせ及び/若しくは派生物を含むことができる。人工現実コンテンツは、完全に生成されたコンテンツ又はキャプチャされたコンテンツ(例えば、現実世界の写真)と組み合わされた生成されたコンテンツを含むことができる。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、又はそれらの何らかの組み合わせを含むことができ、それらのいずれも、単一のチャネル又は複数のチャネル(視聴者に三次元効果を生成するステレオビデオなど)で提示することができる。追加的に、いくつかの実施形態では、人工現実は、例えば、人工現実でコンテンツを作成するために使用される、及び/又は人工現実で(例えば、アクティビティを実施する際に)使用されるアプリケーション、製品、アクセサリ、サービス、又はそれらの何らかの組み合わせに関連付けることができる。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイス若しくはコンピューティングシステム、又は人工現実コンテンツを1人以上の視聴者に提供することができる任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装することができる。
本明細書で開示される実施形態は例示でしかなく、本開示の範囲はこれらに限定されない。特定の実施形態は、本明細書に開示された実施形態の構成要素、要素、特徴、機能、動作、又はステップのすべてを含んでも、一部を含んでも、又はいずれも含まなくてもよい。本発明による実施形態は、特に、方法、記憶媒体、システム、及びコンピュータプログラム製品に関する添付の特許請求の範囲に開示されており、1つの請求項の分野、例えば方法で言及された任意の特徴は、別の請求項の分野、例えばシステムでも特許請求することができる。添付の特許請求の範囲における従属性又は参照は、形式的な理由のみのために選択される。しかしながら、任意の先行する請求項(特に複数の従属性)への意図的な参照から生じる任意の主題も同様に特許請求することができ、その結果、特許請求の範囲及びその特徴の任意の組み合わせが開示され、添付の特許請求の範囲で選択された従属性に関係なく特許請求することができる。特許請求され得る主題は、添付の特許請求の範囲に記載された特徴の組み合わせだけでなく、特許請求の範囲に記載された各特徴を特許請求の範囲の任意の他の特徴又は他の特徴の組み合わせと組み合わせることができる、特許請求の範囲の特徴の任意の他の組み合わせも含む。さらに、本明細書に記載又は描写された実施形態及び特徴のいずれも、別個の請求項として、及び/又は本明細書に記載若しくは描写された任意の実施形態若しくは特徴との組み合わせ、若しくは添付の請求項の特徴のいずれかとの任意の組み合わせとして請求することができる。
様々なサンプリング位置が文字形状のエッジの内側及び外側に配置された例示的なテクセルアレイを示す図である。 サンプリングされているテクセルアレイがX-Yピクセル空間に投影される等方性スケーリングの場合を示す図である。 サンプリングされているテクセルアレイがX-Yピクセル空間に投影される異方性スケーリングの場合を示す図である。 グラフィックスレンダリングにおけるエイリアシングを低減するための例示的な方法を示す図である。 サンプリング間隔がX方向に大きい場合のピクセルのジッタサンプリング位置の例を示す図である。 サンプリング間隔がY方向に大きい場合のピクセルのジッタサンプリング位置の例を示す図である。 ピクセルのサンプリング位置をジッタするための例示的な方法を示す図である。 様々なサンプリング位置が文字形状のエッジの内側及び外側に配置された例示的な二重距離場ラベルを示す図である。 例示的なコンピュータシステムを示す図である。
本出願は、拡張現実(AR)及び仮想現実(VR)におけるグラフィックスレンダリングの状況などにおいて、変換、視点、又はグラフィック自体がリアルタイムで動的に変化し得る場合のグラフィックスレンダリング(例えば、テキスト、アイコン、グリフ、2D画像など)のための技術を記載する。リアルタイムのグラフィックスレンダリングで使用される技術の一例は、符号付き距離場、又は単に距離場と呼ばれる構造に文字形状(例えば、グリフ)を記憶することに依存している。一般に、距離場は、レンダリングされるベクトル形状(例えば、テキスト、アイコンなど)であるN次元空間のサブセットに適用された符号付き距離変換の結果である。距離場は、空間の各点Pにスカラ符号付き距離値をマッピングする。符号付き距離は、以下のように定義することができる:点Pがサブセットに属する場合(例えば、点Pがレンダリングされるテキスト又はアイコン内にある場合)、符号付き距離は、サブセットの形状の最も近いエッジまでの正の最小距離である。これは、「内側」又は「内」とも呼ばれ、mビットの距離場の最上位ビット(MSB)を1にすることによって符号化することができる。サブセットに属さない場合(例えば、点Pがレンダリングされるテキスト又はアイコンの外側にある場合)、符号付き距離は、サブセットの形状の最も近いエッジまでの負の距離である。これは、「外側」又は「外」とも呼ばれ、mビットの距離場のMSBを0にすることによって符号化することができる。距離場は、そのドメインが2次元空間のみであるユークリッド距離を使用することができる。
一般に、AR及び/又はVRディスプレイを駆動するためのディスプレイエンジンの特定の実施形態は、表示するためにデータを供給され、ディスプレイエンジンは、AR/VRディスプレイデバイス(例えば、ユーザによって使用又は着用されるデバイス)の特性を調整するのに必要な歪み、再サンプリング、合成、及び色補正を実施する。ユーザに表示されるシーンの各フレームは、現在の頭部のポジション、現在の眼のポジション、現在の眼の動き、ユーザの他の関連ポジション、又はそれらの任意の組み合わせに基づいて生成される。各フレームのシーンの詳細は、標準的なコンピュータ処理ユニット(CPU)又はグラフィックス処理ユニット(GPU)のレンダリング結果に基づいて生成された表面にバイリニア補間を実施することによって生成することができる。表面は、シーン内のその位置を指定するための変換行列を有する長方形のテクスチャマップであってもよい。テクスチャマップの基本単位は、テクセル(テクスチャ要素又はテクスチャピクセルとしても公知)であり、テクスチャマップは、特定のテクスチャ空間を表すテクセルのアレイを含む。
距離場ラベルは、補間演算によって生じるぼやけたエッジの影響を受けにくい。距離場は、レンダリングの鮮明度を高めて、画像のエッジのぼやけを低減することができる(例えば、テキストのエッジのぼやけを低減することによる)。加えて、距離場は、ラベルが拡大又は伸長されるときを含めて、アーチファクトを導入することなく再サンプリングすることができる。しかしながら、距離場ラベルの副作用は、3D環境における、テキスト、アイコン、グリフ、及び他の2D画像などのグラフィックの、特にグラフィックのエッジ付近でのエイリアシングである。これは、従来の方法では、符号付き距離場を再サンプリングするとピクセルごとに符号付き値が生成されるためであり、符号はサンプルポジションがエッジのどちら側にあるかを指定する。内側の場合、内側の色がレンダリングされ、外側の場合、外側の色がレンダリングされる。本明細書に記載の技術は、距離場を用いてアンチエイリアス結果を生成するための様々な方法を提供する。これらの技術は、単一距離場及び複数距離場の両方で使用することができる。そのような技術の詳細は、本明細書で論じられる米国特許出願第16/583,878号(2019年9月26日出願の「Distance Field Color Palette」)及び米国特許出願第16/584,016号(2019年9月26日出願の「Dual Distance Field Color Palette」)に記載されている。
単一距離場
本明細書に記載の特定の実施形態は、各々が単一距離場を有するテクセルに関する。高レベルでは、距離場は、テクスチャなどの2Dラベル内のソリッドカラー領域(例えば、前景及び背景)間のエッジの位置を示すために使用される。各テクセルは、最も近いエッジまでのエクセル中心の距離の表現を記憶し、距離は、それを超えるとテクセルは特定のアレイの外側にあると決定される最大距離によって制限される。特定の実施形態では、距離値を示すために6ビットを割り当てることができ、MSBは、テクセル中心が「内」(例えば、1で表される)であるか「外」(例えば、0で表される)であるかを表す。テクセルがエッジから遠く離れている場合、残りの5ビットは大きな値になり、逆に、テクセルがエッジに近い場合、残りの5ビットは小さくなる。特定の実施形態では、サンプリング位置Pに対して、4つの最も近いテクセルの距離場のバイリニア補間を使用して、サンプリング位置Pがエッジのいずれの側にあるかを決定することができる。一例として、補間距離の上位ビット(例えば、MSB)内の0はサンプリング位置Pがエッジによって定義される領域の外側にあることを示し、補間距離の上位ビット内の1はサンプリング位置Pがエッジによって定義される領域の内側にあることを示す。距離が0である場合、サンプリング位置Pはエッジの真上にある。特に、本明細書に記載の特定の実施形態における距離場は符号なしの数であってもよく、その結果、最低値は0であり、いかなる値も丁度エッジ上にあるポジションを符号化しない。これは、符号付き値を使用して符号化された他の距離場とは対照的である(例えば、距離場のMSBは、値が「内」若しくは「外」に対応する正若しくは負であるか、又は「エッジ上」に対応する0であるかを表すことができる)。符号なし距離場の符号化は、エッジがテクセルの中心を通過するときなどの特定の問題を回避するので有益である。
特定の実施形態では、ラベルテクスチャの各テクセルは、距離場を含むことができる。距離場によって指定された「内」及び「外」状態は、それぞれラベル色及び背景色にマッピングされる。例えば、ラベル色が赤であり、背景が緑である場合、サンプリングされた「内」の距離場を有するピクセルは赤に対応し、サンプリングされた「外」の距離場を有するピクセルは緑に対応する。特定の実施形態では、ラベルテクスチャの各テクセルは、距離及びカラーインデックス値の両方を含むことができる。カラーインデックス値は、ラベルごとにカスタマイズ可能なカラールックアップテーブル内のエントリを選択するために使用される。一般に、所与のサンプリング位置に対して、どのテクセルのカラーインデックスを選択するかは、サンプリング位置の補間距離(例えば、そのMSB=0(外)又はMSB=1(内))、及び近くのテクセルに対するテクスチャ空間内のサンプリング位置の位置に依存する。単一の距離ラベルの場合、2つの補間されたカラーインデックスが、補間距離のMSBが0(外)又は1(内)である場合に使用する色を指定する。(以下でより詳細に説明する)二重距離ラベルの場合、4つの補間されたカラーインデックスが、2つの補間距離のMSBの4つの組み合わせに使用する色を指定する。
図1は、様々なサンプリング位置が文字形状110のエッジの内側及び外側に配置された例示的なテクセルアレイ100を示す。文字形状110は、「A」を示しており、エッジ120が背景130の色から文字形状110の色(例えば、影付きの領域)を分離している。影付きの領域内のテクセル(簡略化のために図示せず)は、それらが「内」であることを示す距離値(MSB=1)で符号化され、影付きの領域外のテクセルは、それらが「外」であることを示す距離値(MSB=0)で符号化される。加えて、境界140が、アレイテクセル100を超える領域から背景130を描写している。文字形状110のエッジ120によって定義された領域の内側に位置するサンプリング位置150、文字形状110のエッジ120によって定義された領域の外側に位置するサンプリング位置160、文字形状110のエッジ120上に位置するサンプリング位置170、及びテクセルアレイ100の境界140の外側に位置するサンプル180を含む、様々なサンプリング位置が示されている。
以下でより詳細に説明するように、サンプリング位置150、160のそれぞれに対する4つの最も近いテクセルの符号なし距離関数の線形補間は、サンプリング位置150の補間距離がMSB=1(内)を有し、サンプリング位置160の補間距離がMSB=0(外)を有すると決定する。加えて、サンプリング位置170に対する4つの最も近いテクセルの距離関数の線形補間は、補間距離が符号なし距離場の範囲の正確に半分であると決定し、これは、サンプリング位置170がエッジ120の真上にあることを示す(距離場が符号なしではなく符号付きである場合、「エッジ上にある」シナリオは0の補間距離によって表される)。さらに、サンプリング位置180は、テクセルアレイ100の外側にあると決定され、したがって、0の符号なし距離及び色なし、すなわち「透明」結果に関連付けられた0のインデックスを有する。
特定の実施形態では、サンプリング位置に対して計算した補間距離を、アンチエイリアシングのためのアルファブレンド値を決定するために使用することができる。特定の実施形態では、アルファブレンドを使用して、エッジの真上又はエッジ付近のサンプリング位置によって表されるピクセル領域の色を決定することができる。各サンプリング位置は、サンプリング位置によって表されるピクセル領域に対応するフィルタ領域を有することができる。サンプリング位置及びそのフィルタ領域が完全にラベルの内側にある場合、サンプリング位置に対応するピクセルの色は、ラベルの「内」色になる。例えば、図1では、サンプリング位置150は、サンプリング位置150とエッジ120との間の距離よりも短い半径を有するフィルタ領域151を有する。したがって、サンプリング位置150に対応するピクセルの色は、「A」ラベルの「内」色になる。この場合、アルファブレンドは必要ない。同様に、サンプリング位置及びそのフィルタ領域が完全にラベルの外側にある場合、サンプリング位置に対応するピクセルの色は、ラベルの「外」色になる。例えば、サンプリング位置160は、サンプリング位置160とエッジ120との間の距離よりも短い半径を有するフィルタ領域161を有する。したがって、サンプリング位置160に対応するピクセルの色は、ラベルの「外」色になる。したがって、この場合もアルファブレンドは必要ない。
サンプリング位置のフィルタ領域がエッジの両側を含む場合、アルファブレンドを使用して「内」色と「外」色とをブレンドし、対応するピクセルのブレンド色を生成することができる。例えば、サンプリング位置160がサンプリング位置160とエッジ120との間の距離よりも大きい、より大きなフィルタ領域162を有する場合、フィルタ領域162は内側及び外側の両方の色を含む。図示の例では、2つの色がブレンドされる場合、外側の色は内側の色よりも著しく重み付けされる。別の例として、エッジ120上に位置するサンプリング位置170は、ラベルの内側及び外側の両方を均等に覆うフィルタ領域171を有する。したがって、内側及び外側の色を均一にブレンドして、対応するピクセルの色を生成することができる。
上記の例に示すように、サンプリング位置のフィルタ領域がエッジと重なる場合、アンチエイリアシングが使用されるべきである。特定の実施形態では、サンプリング位置の補間距離を使用してアルファブレンド値を決定することができ、値は、0の補間距離がアルファでは0.5になるようにオフセットすることができる。アンチエイリアスを適切に行うには、フィルタ半径を約1/2ピクセル(例えば、正方形ピクセルの対角長の1/2)にする必要がある。そのため、最も近いエッジからのサンプリング位置の距離が1/2ピクセルより大きい場合、アンチエイリアシングは必要ない。逆に、最も近いエッジからのサンプリング位置の距離が1/2ピクセルよりも小さい場合、アンチエイリアシングが実施されるべきである。しかしながら、サンプリング位置と最も近いエッジとの間の距離を表す補間距離場は、ピクセルではなく、テクセルの単位で測定される場合がある。したがって、補間距離場は、テクセル単位からピクセル単位に変換される必要がある場合がある。さらに、3Dコンピュータグラフィックスでは、ラベルが現れる表面は、一般に、カメラから斜めの角度で見られる場合があり、ラベルのテクスチャの塗りつぶし領域は正方形にならない。このような異方性の場合も、距離変換を適切に実施するために対処する必要がある。以下に説明するアルファブレンド技術は、アルファがエッジから、それぞれ外側又は内側に1/2ピクセルで0及び1の値に達するように、これらの問題に対処する。アルゴリズムは、テクセル単位からピクセル単位へのサンプリング位置の補間距離を変換するためのスケール係数を計算することを含む。次いで、変換された距離を使用して、内側及び外側の色をブレンドするための適切なアルファブレンド値を決定することができる。加えて、アルゴリズムは、より鮮明又はよりぼやけるように調整することができる。
アルファブレンド
単一距離場ラベルのためのアルファブレンド方法の説明は、図2及び図3に示された実施形態、並びに図4に記載された方法に焦点を当てる。上で簡単に説明したように、スケール係数は、テクセル単位からピクセル単位への補間距離を変換するために使用される。
特定の実施形態では、スケール係数は、ピクセル空間に投影されたテクセルの寸法に基づいて計算することができる。図2は、サンプリングされているテクセルアレイがX-Yピクセル空間に投影される等方性スケーリングの場合を示す。図2は、ピクセル中心210におけるサンプリング位置のアレイと、テクセルポジション220(テクセルポジション220a、220b、220c、及び220dを総称する)の斜方(askew)アレイとを示す。具体的には、図2は、ピクセル中心210におけるサンプリング位置の例示的な4×4アレイを示し、各ピクセル中心は、X軸212及びY軸214に沿って「X」によって表される。テクセルポジション220は、U軸222及びV軸224に沿って「O」でそれぞれ表される。ピクセル210間の間隔は、X方向及びY方向において同じであり、テクセルポジション220間の間隔226は、U軸222及びV軸224に沿って同じである。これは等方性スケーリングの場合と呼ばれる。
図3は、異方性スケーリングの場合を示す。図2と同様に、図3は、ピクセル中心310におけるサンプリング位置のアレイと、テクセルポジション320(テクセルポジション320a、320b、320c、及び320dを総称する)の斜方アレイとを示す。ピクセル中心310は、X軸312及びY軸314上に配列され、テクセルポジションは、U軸322及びV軸324上に配列される。ピクセル310間の間隔はX方向とY方向で同じであるが、テクセルポジション320間の間隔(例えば、340及び342)はU軸とV軸に沿って同じではない。これは異方性スケーリングの場合と呼ばれる。
特定の実施形態では、サンプリング位置の補間距離をテクセル単位からピクセル単位に変換するためのスケール係数は、図2及び図3に示すように、X-Yピクセル空間に投影されたテクセルポジション間の距離に基づくことができる。テクセルポジション間の距離は、様々な方法(例えば、直接距離又はユークリッド距離を測定する)で測定することができるが、この例の目的のために、マンハッタン距離が使用される。
ピクセルアレイのX及びY方向におけるテクセル位置間のマンハッタン距離は、一実施形態では以下のように測定される。図2を参照すると、点線の直線232、234、236、及び238は、2つの接続されたテクセルポジション220aと220dとの間のマンハッタン距離を測定する。例えば、X方向
Figure 2023538828000002
におけるテクセル200aと220dとの間のマンハッタン距離は、以下に見られるように、U軸及びX軸に沿ったポジションの変化(dU/dX)232と、V軸及びX軸に沿ったポジションの変化(dV/dX)234とを合計することによって決定される。
Figure 2023538828000003
Y方向
Figure 2023538828000004
におけるテクセルポジション220aと220dとの間のマンハッタン距離は、以下に見られるように、U軸及びY軸(dU/dY)236に沿ったポジションの変化と、V軸及びY軸(dV/dY)238に沿ったポジションの変化とを合計することによって決定される。
Figure 2023538828000005
これらの式は、図3に示す異方性スケーリングの場合にも適用することができる。点線の直線332(dU/dX)、334(dV/dX)、336(dU/dY)、及び338(dV/dY)は、接続された2つのテクセルポジション320aと320dとの間のマンハッタン距離を測定する。
距離
Figure 2023538828000006
及び
Figure 2023538828000007
を決定した後、2つの距離の最小値を、以下を使用して決定することができる。
Figure 2023538828000008
テクセル間の間隔が同じ場合(例えば、等方性)、図2に示すように、
Figure 2023538828000009
は、
Figure 2023538828000010
に等しい。しかしながら、テクセル間の間隔が同じでない場合(例えば、異方性)、図3に示すように、
Figure 2023538828000011
は、
Figure 2023538828000012
に等しくなく、
Figure 2023538828000013

Figure 2023538828000014
との間の最小値がスケーリングを計算するために選択される。典型的には、サンプル間隔がより小さい方向がエイリアシングの増加を犠牲にしてぼやけの減少をもたらすため、最小値が選択される。スケーリングSは、以下を使用して計算することができる:
Figure 2023538828000015
(式中、係数Fは調整可能である)。例えば、Fは、通常の設定では1.0に設定することができるが、Fを増加させて、ぼやけが増加するものの、アルファブレンドから生じるエイリアシングを低減することができ、又はFを減少させて、エイリアシングが増加するものの、アルファブレンドから生じるぼやけを低減することができる。ピクセル単位のフィルタ半径の幅は、Fの逆数1/F(例えば、最小の長さを有するX又はY方向における)を使用して測定することができる。したがって、F=1の場合、フィルタ半径は1ピクセル幅である。Fが0に近づくにつれて、フィルタ半径は増加し、Fが無限大に近づくにつれて、フィルタ半径は減少する。一例として、F=2の場合、フィルタ半径は1/2ピクセル幅になり、F=1/2の場合、フィルタ半径は2ピクセル幅になる。次に、スケールSを使用して、サンプリング位置の補間距離をテクセル単位からピクセル単位に変換する。前述のように、サンプリング位置に対して、4つの最も近いテクセルの距離場を補間して、テキスト、アイコン、グリフ、又は他の2D画像のエッジからの符号付き距離Dを決定することができる。いくつかの実施形態では、Dは、テクセルの単位で測定することができる(例えば、Dが0.5である場合、テクセル中心はエッジから0.5テクセル離れている)。一例として、再び図1を参照すると、4つの最も近いテクセルの補間を使用して、サンプリング位置150が文字形状110のエッジ120によって定義された領域の内側に位置すること、サンプリング位置160が文字形状110のエッジ120によって定義された領域の外側に位置すること、サンプリング位置170が文字形状110のエッジ120上に位置すること、又はサンプリング位置180がテクセルアレイ100の境界140の外側に位置することを決定することができる。
サンプリング位置のスケーリングS及び距離Dが決定されると、アルファ値α(又は透明度値)を決定することができる。アルファ値αは「内」色の比率を指定し、1-αは「外」色を指定する(又はその逆)。すなわち、アルファ値に基づいてブレンド比率を決定することができる。アルファ値は、範囲[0,1]に固定され、サンプリング位置がエッジの真上にある(D=0)ときにアルファ値が1/2になるように、例えば1/2だけオフセットされたスケーリング後の距離(すなわち、S*D)に基づいて計算される。アルファ値αは、以下を使用して計算することができる。
Figure 2023538828000016
エッジの内側の色のアルファ値及びエッジの外側の色のアルファ値を求めた後、サンプリング位置のブレンド色は、エッジの第1の側に関連付けられた第1の色(例えば、「内」色)とエッジの第2の側に関連付けられた第2の色(例えば、「外」色)とをブレンドすることによって決定することができる。例えば、エッジの内側の色と外側の色とをブレンドすることができる。サンプリング位置を含有するピクセルの色は、以下を使用して決定することができる。
Figure 2023538828000017
ブレンド色に基づく出力色は、第1の百分率の第1の色及び第2の百分率の第2の色を含有することができる。第1の百分率及び第2の百分率はそれぞれ、第1の色及び第2の色の見かけの透明度に対応することができる。例えば、Dが0に等しい場合(サンプリング位置が文字のエッジの真上にある場合)、その位置のアルファ値は内側及び外側の両方のアルファ値に対して1/2であり、色の透明度が文字の内側の既知の色の50%で、文字の外側の既知の色の50%であることを示す。したがって、黒のテキストが白の背景上にある場合、文字のエッジに位置するサンプリング位置(例えば、図1の文字Aのエッジの真上にあるサンプリング位置170)は、黒の内側と白の外側の色との均等なブレンド、すなわちグレーになる。アルファ値は、[0,1]の範囲に固定することができる。さらに、スケーリング後の距離(すなわち、S*D)に対して1/2ピクセルのオフセットが記載されているが、アンチエイリアシングカラーを「内」又は「外」色のいずれかにバイアスするために、サンプリング位置がテクスチャに描写されたエッジから1/8、1/4、3/8、5/8、3/4、又は7/8ピクセルである場合などの他のオフセット(例えば、サンプリング位置がテクスチャに描写されたエッジから所定の範囲内にあるとき、第1の色と第2の色とがブレンドされる)も可能である。スケーリング後の距離(すなわち、S*D)をオフセットすると、ピクセル単位で指定されたオフセット距離だけエッジが効果的に移動する。いくつかの実施形態では、スケーリング後の距離をオフセットする代わりに、スケーリング前の距離Dをオフセットして、テクセル単位の指定されたオフセット距離だけエッジを効果的に移動させることができる。例えば、Dを3/4だけオフセットすることで、エッジを3/4テクセルだけ効果的に移動させる。また、本開示は、2つのカラー画像を互いに組み合わせることによるアルファブレンドを記載しているが、ディゾルブ、乗算及びスクリーン、又は他のモードなどの他の形態のブレンド又は混合モードも想定される。
図4は、グラフィックスレンダリングにおけるエイリアシングを低減するための例示的な方法400を示す。本方法は、ステップ410で開始することができ、コンピューティングシステムは、ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定する。ステップ420において、コンピューティングシステムは、サンプリング位置に基づいて、複数のテクセル内のテクセルのセットを選択し、テクセルのセット内の各テクセルは、少なくとも距離場を符号化する。ステップ430において、コンピューティングシステムは、テクセルのセットに関連付けられた距離場に基づいて、サンプリング位置に関連付けられた補間距離場を計算し、補間距離場は、サンプリング位置とテクスチャに描写されたエッジとの間の相対距離を表す。ステップ440において、コンピューティングシステムは、テクセル単位からピクセル単位へと補間距離場をスケーリングするためのスケーリング係数を決定する。ステップ450において、コンピューティングシステムは、スケーリング係数を使用して補間距離場をスケーリングする。ステップ460において、コンピューティングシステムは、補間距離場に基づいてブレンド比率を決定する。ステップ470において、コンピューティングシステムは、ブレンド比率に従って、エッジの第1の側に関連付けられた第1の色と、エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、サンプリング位置のブレンド色を決定する。ステップ480において、コンピューティングシステムは、サンプリング位置のブレンド色に基づいて、ピクセルの色を出力する。特定の実施形態は、適切な場合には、図4の方法の1つ以上のステップを繰り返すことができる。本開示は、図4の方法の特定のステップを特定の順序で発生するものとして説明及び図示しているが、本開示は、図4の方法の任意の適切なステップが任意の適切な順序で発生することを企図している。さらに、本開示は、図4の方法の特定のステップを含む、グラフィックスレンダリングにおけるエイリアシングを低減するための例示的な方法を説明及び図示しているが、本開示は、適切な場合には、図4の方法のステップのすべてを含んでも、一部を含んでも、又はいずれも含まなくてもよい任意の適切なステップを含む、グラフィックスレンダリングにおけるエイリアシングを低減するための任意の適切な方法を企図している。さらに、本開示は、図4の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムを説明及び図示しているが、本開示は、図4の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、又はシステムの任意の適切な組み合わせを企図している。
ジッタ
アルファブレンド手法の1つの限界は、ラベルが伸長されるときに生じる。これが起こると、(U,V)座標によってインデックス付けされた距離を記憶するテクスチャは、U方向及びV方向において異なる間隔でサンプリングされる。例えば、文字「A」のテクスチャがピクセル空間に投影されたときに幅広に見える(すなわち、水平方向に伸長される)場合、テクスチャは垂直方向よりも水平方向に疎にサンプリングされている。したがって、同じサンプリングフィルタを使用すると、一方の方向に過剰なぼやけが発生するか、又は他方の方向にエイリアシングが発生する。
特定の実施形態は、過度のぼやけを回避するために、より小さいサンプル間隔(例えば、len最小に基づく)を有する方向におけるアルファブレンドを最適化することができる。しかしながら、これは、他の方向(例えば、len最大方向)により多くのエイリアスされたエッジをもたらす。この問題は、より広いサンプル間隔を有する方向にジッタ又はスーパーサンプリングを使用することによって軽減することができる。
従来のジッタ方法では、アンチエイリアシングは、複数のサンプリング位置を使用してピクセルの色を決定するように、ピクセルのサンプリング位置(例えば、サンプリング位置は、ピクセルの中心に対応し得る)に異なる2次元(x,y)オフセットを適用することによって達成される。ジッタは、フレームごとに各1×1ピクセル領域内の複数のサンプリング位置を散在させることによって達成することができる。すなわち、任意の所与のフレームに対するピクセルのブレンド色は、ピクセル領域内の複数のサンプリング位置に基づいて決定することができる。例えば、ピクセル領域内に散在する5つのジッタサンプリング位置により、異なる色をもたらすことができる(例えば、各サンプリング位置の色は、上述のアルファブレンド技術を使用して決定され得る)。ジッタサンプリング位置に対応する5つの色を平均化して、ピクセルの色を決定することができる。しかしながら、この空間ジッタ手法は、各フレームを生成するためにより多くの計算が必要であることを意味する。
計算負荷を低減するために、別の選択肢は、1フレームにあたりピクセルごとに使用されるサンプリング位置の数が同じ(例えば、1フレームにあたりピクセルごとに1つのサンプリング位置)のままであるが、各フレームで異なる(x,y)オフセットが使用されるように、時間的にジッタすることである。例えば、特定のピクセルに対して、p…pがそれぞれフレーム1…n内のそのピクセルの色を表すとする。色p…pは、ピクセル内の異なるサンプリング位置を使用してテクスチャからサンプリングされる。サンプリング位置は異なるため、同じピクセルの色p…pはフレームごとに異なる可能性がある。したがって、時間的にジッタすることは、フレームレートが高いか、又はセット内のフレーム数が少ない場合を除いて、点滅アーチファクトを生成する傾向がある。例えば、フレームレートが1000fpsである場合、シーケンスが毎秒約60回繰り返されるように16フレームシーケンスを選択することができる。フレームレートが180fpsである場合、シーケンスが毎秒45回繰り返されるように、4フレームシーケンスを選択することができる。
特定の実施形態では、ラベルが伸長されたときのエイリアシングを低減するために、上述のアルファブレンド技術と共にジッタを使用することができる。より小さいサンプル間隔(例えば、len最小)を有する方向に対してアルファブレンドで最適化することができ、より大きいサンプル間隔(例えば、len最大)を有する方向にジッタを使用することができる。これは、2次元(x,y)オフセットの代わりに(x)又は(y)オフセットのいずれかのみを伴うので、必要とされるサンプリング位置の数が少なくなる。結果として、点滅アーチファクトを導入することなく、より低いフレームレートでアンチエイリアシングを達成することができる。一次元ジッタサンプリング位置間の分離は、Uサンプル間隔とVサンプル間隔との間の差(例えば、len最大-len最小)に基づいている。結果として、伸長がない場合(例えば、len最大-len最小)、ジッタサンプリング位置は、フレームにわたって同じ場所に留まる。伸長の量が増加するにつれて、ジッタサンプリング位置は、補償するためにより遠くに離れていく。
上記の方法で説明したように、
Figure 2023538828000018
及び
Figure 2023538828000019
を決定した後
Figure 2023538828000020
を決定することができる。さらに、以下に示すように、
Figure 2023538828000021
すなわち、テクセルポジション間の2つの距離のうちの大きい方(例えば、X軸312又はY軸314を横切る)を決定することができる。
Figure 2023538828000022
Figure 2023538828000023
及び
Figure 2023538828000024
のうち大きい方が、ジッタ配向を決定することができる。例えば、画像が最も伸長される方向に対応する方向である
Figure 2023538828000025
にのみジッタすることによって、計算歪みを低減することができる。例えば、この方向は、テクスチャ内の水平サンプリング空間又はテクスチャ内の垂直サンプリング空間のいずれかに対応することができる。
Figure 2023538828000026
及び
Figure 2023538828000027
の決定に続いて、以下を使用して、
Figure 2023538828000028
を計算することができる。
Figure 2023538828000029
len最大に対応する方向のジッタサンプリング位置は、ジッタ最大と+ジッタ最大との内部になるように選択することができる。
図5Aは、サンプリング間隔がX方向に大きい場合のピクセル500のジッタサンプリング位置501~505の例を示す。例えば、上述のアルファブレンドアルゴリズムを使用して、コンピューティングシステムは、len最小がlenに対応すると決定することができる。その結果、システムは、lenに基づいてアルファブレンドアルゴリズムで使用されるスケーリング係数Sを最適化することができる。X方向のエイリアシングを低減するために、システムは、図5Aに示すように、サンプリング位置をX方向にジッタすることができる。計算されたジッタ最大値は、ジッタの空間範囲を決定するために使用することができる。ジッタ最大はlen最大-len最小に比例するため、ジッタの空間範囲は、サンプリング間隔が大きい場合に大きくなり、ジッタの空間範囲は、サンプリング間隔が小さい場合に小さくなる。例えば、図5Aに示すように、サンプリング位置は、中心サンプリング位置501からジッタ最大によって定義される閾値距離内でX方向に分布することができる。範囲が決定されると、その範囲内で任意の適切な数のサンプリング位置を選択することができる(例えば、図5Aは、5つのサンプリング位置が使用されていることを示す)。空間ジッタが使用される場合、5つのジッタサンプリング位置501~505を使用して、単一のフレームのテクスチャをサンプリングすることができる。時間ジッタが使用される場合、フレームシーケンス内の第1のフレームが、サンプリング位置501を使用してピクセル500の色を決定することができ、フレームシーケンス内の第2のフレームが、サンプリング位置502を使用してピクセル500の色を決定することができ、以下同様である。特定の実施形態では、空間及び時間の両方のジッタを同時に使用することができる。例えば、フレームシーケンス内の第1のフレームが、サンプリング位置502及び503を使用してピクセル500の色を決定することができ、フレームシーケンス内の第2のフレームが、サンプリング位置501、504及び505を使用してピクセル500の色を決定することができる。
図5Bは、サンプリング間隔がY方向に大きい場合のピクセル550のジッタサンプリング位置551~555の例を示す。例えば、上述のアルファブレンドアルゴリズムを使用して、コンピューティングシステムは、len最小がlenに対応すると決定することができる。その結果、システムは、lenに基づいてアルファブレンドアルゴリズムで使用されるスケーリング係数Sを最適化することができる。Y方向のエイリアシングを低減するために、システムは、図5Bに示すように、サンプリング位置をY方向にジッタすることができる。計算されたジッタ最大値は、ジッタの空間範囲を決定するために使用することができる。例えば、図5Bに示すように、サンプリング位置は、中心サンプリング位置551からジッタ最大によって定義される閾値距離内でY方向に分布することができる。範囲が決定されると、その範囲内で任意の適切な数のサンプリング位置を選択することができる(例えば、図5Bは、5つのサンプリング位置が使用されていることを示す)。前述したように、サンプリング位置は、空間ジッタ方式、時間ジッタ方式、又は空間ジッタ方式と時間ジッタ方式との組み合わせで使用することができる。
図6は、ジッタのための例示的な方法600を示す。本方法は、ステップ605で開始することができ、コンピューティングシステムは、ピクセル空間内のX方向のテクセルのサンプリング空間を決定することができる。ステップ610において、コンピューティングシステムは、ピクセル空間内のY方向のテクセルのサンプリング空間を決定することができる。ステップ615において、コンピューティングシステムは、X方向のテクセルのサンプリング空間又はY方向のテクセルのサンプリング空間のうちの大きい方の方向にジッタ配向を設定することができる。ステップ620において、コンピューティングシステムは、2つのサンプリング間隔の間の差に基づいてジッタ範囲を決定することができる。ステップ625において、コンピューティングシステムは、ジッタ配向におけるジッタ範囲内のサンプリング位置を選択することができる。サンプリング位置は、空間ジッタ方式、時間ジッタ方式、又は空間ジッタ方式と時間ジッタ方式との組み合わせで使用することができる。ステップ630において、コンピューティングシステムは、アルファブレンドを使用してサンプリング位置の各々においてサンプリングすることができる。特定の実施形態は、適切な場合には、図6の方法の1つ以上のステップを繰り返すことができる。本開示は、図6の方法の特定のステップを特定の順序で発生するものとして説明及び図示しているが、本開示は、図6の方法の任意の適切なステップが任意の適切な順序で発生することを企図している。さらに、本開示は、図6の方法の特定のステップを含む空間ジッタの例示的な方法を説明及び図示しているが、本開示は、適切な場合には、図6の方法のステップのすべてを含んでも、一部を含んでも、又はいずれも含まなくてもよい任意の適切なステップを含む空間ジッタのための任意の適切な方法を企図している。さらに、本開示は、図6の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムを説明及び図示しているが、本開示は、図6の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、又はシステムの任意の適切な組み合わせを企図している。
複数距離のブレンド
上述したアルファブレンド及びジッタ技術は、テクセルごとに2つ以上の距離場を有するテクスチャにも適用することができる。1つのエッジまでの距離に基づく単一距離場を使用すると、特に距離場の解像度が低下するときに、文字又はグリフの鋭い角(例えば、ダイヤモンド形状)がレンダリングされるときに丸く又は滑らかに見える場合がある。これに対する解決策は、二重距離場を使用して、2つのエッジ間の交差部における情報を取り込むことである。特定の実施形態では、ラベル(例えば、文字、グリフなど)が作成されると、ラベルを作成したオーサリングソフトウェアは、エッジを識別して、type0及びtype1のエッジなどとラベル付けすることができる。二重距離場は、交差データを保存するために2つの異なるタイプのエッジまでのテクセルの距離を取り込む。二重距離場ラベル内の各テクセルは2つの距離値を有し、distance0は、テクセルから最も近いtype0のエッジまでの距離を示し、distance1は、テクセルから最も近いtype1のエッジまでの距離を示す。
前述したように、テクセルの各距離値は、距離が測定されるエッジに対してテクセルが「内」であるか「外」であるかを符号化する。二重距離場のテクセルの場合、その距離値の各々は「内」又は「外」のいずれかとすることができ、これは、各テクセルに「内」と「外」との4つの組み合わせがあることを意味する。図7は、文字「F」に関連付けられた例示的なテクスチャ700を示しており、2つの異なるエッジタイプのエッジが頂点で交わり、各エッジの内側又は外側に関する4つの異なる組み合わせに関連付けられた4つの異なる領域をもたらす。図7に示すように、type0のエッジ710とtype1のエッジ712とは点714で交差する。エッジ710、712は実線で描かれているが、各エッジ710、712の全長がラベル内で必ずしもすべて見えるとは限らない(見えない部分は点線で示されている)。エッジ712の下方にあるテクセルは、エッジ712に対して「内」であると見なすことができ、エッジ712の上方にあるテクセルは、エッジ712に対して「外」であると見なすことができる。同様に、エッジ710の右側にあるテクセルは、エッジ710に対して「内」であると見なすことができ、エッジ710の左側にあるテクセルは、エッジ710に対して「外」であると見なすことができる。
type0のエッジ710は点714でtype1のエッジ712と交差するため、4つの異なる領域(すなわち、左上領域、右上領域、左下領域、右下領域)が形成される。各領域のテクセルは、2つのエッジ710、712に対して異なる「内」と「外」との組み合わせを有する。例えば、左上領域のテクセルは、エッジ710/712に対してそれぞれ外/外の組み合わせを有し、右上領域のテクセルは内/外の組み合わせを有し、左下領域のテクセルは外/内の組み合わせを有し、右下領域のテクセルは内/内の組み合わせを有する。「内」と「外」との各組み合わせは、色と関連付けることができる。例えば、内/内にある領域は前景であると見なされ、それ以外のすべて(すなわち、外/外、内/外、又は外/内)は背景であると見なされる。例として図7を使用すると、点714における文字「F」の鋭角の場合、内/内は前景を指定し、残りは背景に設定される。
上述したアルファブレンド及びジッタ技術は、以下のように多距離場を有するテクセルに適用することができる。各内/外の組み合わせは、色に対応することができる。例えば、上記の例を続けると、内/内の組み合わせは色Cに対応することができ、他の3つの組み合わせはすべて色Cに対応することができる。これらの2つの色のアルファブレンド比率は、上述の方法を使用して計算されたアルファ値を使用して計算することができる。α1が一方のエッジ(例えば、エッジ710)「内」にあることのアルファ値を表し、α2が他方のエッジ(例えば、エッジ712)「内」にあることのアルファ値を表すとする。ピクセルの色は、以下を使用して計算することができる。
Figure 2023538828000030
上記の方法は、ピクセルのサンプリング位置の近くの複数のエッジが3つ以上の色を選択する場合にさらに使用することができる。一般的な場合、各エッジのアルファ又は1マイナスアルファの積は、内側の色と外側の色との組み合わせに関連付けられた色の寄与を表す。エッジの組み合わせに関連付けられた色は、グローバルルール又は距離テクスチャの異なる部分に対応するデータのアレイ若しくは他の構造を含む様々な方法で指定することができる。再び図7を参照すると、外/外領域は色C外-外に関連付けることができ、内/内領域は色C内-内に関連付けることができ、内/外領域は色C内-外に関連付けることができ、外/内領域は色C外-内に関連付けることができる。点714の近くをサンプリングするとき、サンプリング位置は、エッジ710からの補間距離と、エッジ712からの別の補間距離とを有する。2つのエッジのうちのどちらがサンプリング位置に近いかに応じて、アルファブレンド技術は、そのより近いエッジまでの補間距離に適用することができる。結果として得られるアルファブレンド比率は、サンプリング位置がある領域に関連付けられた色、及びより近いエッジを横切る隣接領域に関連付けられた色に適用することができる。例えば、サンプリング位置720を考える。エッジ712からのその補間距離とエッジ710からのその補間距離とを比較することによって、コンピューティングシステムは、サンプリング位置720がエッジ712により近いと決定することができる。エッジ712までの補間距離に基づいて、システムは、色C内-内と色C内-外との間のアルファブレンド比率を計算することができる。ブレンド結果は、対応するピクセルの色として使用される。例えば、α1が一方のエッジ(例えば、エッジ710)「内」にあることのアルファ値を表し、α2が他方のエッジ(例えば、エッジ712)「内」にあることのアルファ値を表すとする。ピクセルの色は、以下を使用して計算することができる。
Figure 2023538828000031
システム及び方法
図8は、例示的なコンピュータシステム800を示す。特定の実施形態では、1つ以上のコンピュータシステム800は、本明細書に記載又は図示される1つ以上の方法の1つ以上のステップを実施する。特定の実施形態では、1つ以上のコンピュータシステム800は、本明細書に記載又は図示される機能を提供する。特定の実施形態では、1つ以上のコンピュータシステム800上で実行されるソフトウェアは、本明細書に記載若しくは図示される1つ以上の方法の1つ以上のステップを実施するか、又は本明細書に記載若しくは図示される機能を提供する。特定の実施形態は、1つ以上のコンピュータシステム800の1つ以上の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合には、コンピューティングデバイスを包含することができ、逆もまた同様である。さらに、コンピュータシステムへの言及は、適切な場合には、1つ以上のコンピュータシステムを包含することができる。
本開示は、任意の適切な数のコンピュータシステム800を企図している。本開示は、任意の適切な物理的形態をとるコンピュータシステム800を企図している。限定ではなく、例として、コンピュータシステム800は、組み込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)又はシステムオンモジュール(SOM))、デスクトップコンピュータシステム、ラップトップ若しくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、又はこれらのうちの2つ以上の組み合わせであってもよい。適切な場合には、コンピュータシステム800は、1つ以上のコンピュータシステム800を含むことができ、単一型又は分散型であり得、複数の場所にまたがることができ、複数の機械にまたがることができ、複数のデータセンターにまたがることができ、又は1つ以上のネットワーク内の1つ以上のクラウドコンポーネントを含み得るクラウド内に存在することができる。適切な場合には、1つ以上のコンピュータシステム800は、本明細書に記載又は図示される1つ以上の方法の1つ以上のステップを、実質的な空間的又は時間的制限なしに実施することができる。限定ではなく、例として、1つ以上のコンピュータシステム800は、本明細書に記載又は図示される1つ以上の方法の1つ以上のステップを、リアルタイム又はバッチモードで実施することができる。1つ以上のコンピュータシステム800は、適切な場合には、本明細書に記載又は図示される1つ以上の方法の1つ以上のステップを、異なる時間又は異なる場所で実施することができる。
特定の実施形態では、コンピュータシステム800は、プロセッサ802と、メモリ804と、ストレージ806と、入力/出力(I/O)インターフェース808と、通信インターフェース810と、バス812とを含む。本開示は、特定の配置構成内の特定の数の特定の構成要素を有する特定のコンピュータシステムを説明及び図示しているが、本開示は、任意の適切な配置構成内の任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータシステムを企図している。
特定の実施形態では、プロセッサ802は、コンピュータプログラムを構成するものなどの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、又はストレージ806から命令を取り出し(又はフェッチし);命令を復号して実行し;次いで、内部レジスタ、内部キャッシュ、メモリ804、又はストレージ806に1つ以上の結果を書き込むことができる。特定の実施形態では、プロセッサ802は、データ、命令、又はアドレスのための1つ以上の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ802を企図している。限定ではなく、例として、プロセッサ802は、1つ以上の命令キャッシュ、1つ以上のデータキャッシュ、及び1つ以上のトランスレーションルックアサイドバッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ804又はストレージ806内の命令のコピーであってもよく、命令キャッシュは、プロセッサ802によるそれらの命令の取り出しを高速化することができる。データキャッシュ内のデータは、プロセッサ802において実行して動作する命令のためのメモリ804若しくはストレージ806内のデータのコピー;プロセッサ802で実行される後続の命令によるアクセスのため、又はメモリ804若しくはストレージ806への書き込みのための、プロセッサ802で実行された先行命令の結果;又は他の適切なデータであってもよい。データキャッシュは、プロセッサ802による読み込み動作又は書き込み動作を高速化することができる。TLBは、プロセッサ802の仮想アドレス変換を高速化することができる。特定の実施形態では、プロセッサ802は、データ、命令、又はアドレスのための1つ以上の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ802を企図している。適切な場合には、プロセッサ802は、1つ以上の算術論理演算ユニット(ALU)を含んでも、マルチコアプロセッサであっても、又は1つ以上のプロセッサ802を含んでもよい。本開示は、特定のプロセッサを説明及び図示しているが、本開示は、任意の適切なプロセッサを企図している。
特定の実施形態では、メモリ804は、プロセッサ802が実行するための命令又はプロセッサ802が動作するためのデータを記憶するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム800は、ストレージ806又は別のソース(例えば、別のコンピュータシステム800など)からメモリ804に命令をロードすることができる。次いで、プロセッサ802は、メモリ804から内部レジスタ又は内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ802は、内部レジスタ又は内部キャッシュから命令を取り出し、命令を復号することができる。命令の実行中又は実行後に、プロセッサ802は、1つ以上の結果(中間結果又は最終結果であり得る)を内部レジスタ又は内部キャッシュに書き込むことができる。次いで、プロセッサ802は、それらの結果のうちの1つ以上をメモリ804に書き込むことができる。特定の実施形態では、プロセッサ802は、(ストレージ806又は他の場所とは対照的に)1つ以上の内部レジスタ若しくは内部キャッシュ又はメモリ804内の命令のみを実行し、(ストレージ806又は他の場所とは対照的に)1つ以上の内部レジスタ若しくは内部キャッシュ又はメモリ804内のデータのみに対して動作する。1つ以上のメモリバス(各々がアドレスバス及びデータバスを含み得る)は、プロセッサ802をメモリ804に結合することができる。バス812は、後述するように、1つ以上のメモリバスを含むことができる。特定の実施形態では、1つ以上のメモリ管理ユニット(MMU)が、プロセッサ802とメモリ804との間に存在し、プロセッサ802によって要求されるメモリ804へのアクセスを容易にする。特定の実施形態では、メモリ804は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合には、揮発性メモリであってもよい。適切な場合には、このRAMは、ダイナミックRAM(DRAM)であっても、スタティックRAM(SRAM)であってもよい。さらに、適切な場合には、このRAMは、シングルポートRAMであっても、マルチポートRAMであってもよい。本開示は、任意の適切なRAMを企図している。メモリ804は、適切な場合には、1つ以上のメモリ804を含むことができる。本開示は、特定のメモリを説明及び図示しているが、本開示は、任意の適切なメモリを企図している。
特定の実施形態では、ストレージ806は、データ又は命令のための大容量ストレージを含む。限定ではなく、例として、ストレージ806は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、若しくはユニバーサルシリアルバス(USB)ドライブ、又はこれらのうちの2つ以上の組み合わせを含むことができる。ストレージ806は、適切な場合には、取り外し可能又は取り外し不可能な(又は固定された)媒体を含むことができる。ストレージ806は、適切な場合には、コンピュータシステム800の内部にあっても、外部にあってもよい。特定の実施形態では、ストレージ806は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ806は、読み出し専用メモリ(ROM)を含む。適切な場合には、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的変更可能ROM(EAROM)、若しくはフラッシュメモリ、又はこれらのうちの2つ以上の組み合わせであってもよい。本開示は、任意の適切な物理的形態をとる大容量ストレージ806を企図している。ストレージ806は、適切な場合には、プロセッサ802とストレージ806との間の通信を容易にする1つ以上のストレージユニットを含むことができる。適切な場合には、ストレージ806は、1つ以上のストレージ806を含むことができる。本開示は、特定のストレージを説明及び図示しているが、本開示は、任意の適切なストレージを企図している。
特定の実施形態では、I/Oインターフェース808は、コンピュータシステム800と1つ以上のI/Oデバイスとの間の通信のための1つ以上のインターフェースを提供するハードウェア、ソフトウェア、又はその両方を含む。コンピュータシステム800は、適切な場合には、これらのI/Oデバイスのうちの1つ以上を含むことができる。これらのI/Oデバイスのうちの1つ以上は、人とコンピュータシステム800との間の通信を可能にすることができる。限定ではなく、例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、又はこれらのうちの2つ以上の組み合わせを含むことができる。I/Oデバイスは、1つ以上のセンサを含むことができる。本開示は、任意の適切なI/Oデバイス及びそれらのための任意の適切なI/Oインターフェース808を企図している。適切な場合には、I/Oインターフェース808は、プロセッサ802がこれらのI/Oデバイスのうちの1つ以上を駆動することを可能にする1つ以上のデバイス又はソフトウェアドライバを含むことができる。I/Oインターフェース808は、適切な場合には、1つ以上のI/Oインターフェース808を含むことができる。本開示は、特定のI/Oインターフェースを説明及び図示しているが、本開示は、任意の適切なI/Oインターフェースを企図している。
特定の実施形態では、通信インターフェース810は、コンピュータシステム800と、1つ以上の他のコンピュータシステム800又は1つ以上のネットワークとの間の通信(例えば、パケットベースの通信など)のための1つ以上のインターフェースを提供するハードウェア、ソフトウェア、又はその両方を含む。限定ではなく、例として、通信インターフェース810は、イーサネット若しくは他の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)若しくはネットワークアダプタ、又はWI-FIネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)若しくは無線アダプタを含むことができる。本開示は、任意の適切なネットワーク及びそのための任意の適切な通信インターフェース810を企図している。限定ではなく、例として、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、若しくはインターネットの1つ以上の部分、又はこれらのうちの2つ以上の組み合わせと通信することができる。これらのネットワークのうちの1つ以上の1つ以上の部分は、有線であっても、無線であってもよい。一例として、コンピュータシステム800は、無線PAN(WPAN)(例えばBLUETOOTH WPANなど)、WI-FIネットワーク、WI-MAXネットワーク、携帯電話ネットワーク(例えば、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)ネットワーク)、若しくはその他の適切な無線ネットワーク、又はこれらのうちの2つ以上の組み合わせと通信することができる。コンピュータシステム800は、適切な場合には、これらのネットワークのいずれかのための任意の適切な通信インターフェース810を含むことができる。通信インターフェース810は、適切な場合には、1つ以上の通信インターフェース810を含むことができる。本開示は、特定の通信インターフェースを説明及び図示しているが、本開示は、任意の適切な通信インターフェースを企図している。
特定の実施形態では、バス812は、コンピュータシステム800の構成要素を互いに結合するハードウェア、ソフトウェア、又はその両方を含む。限定ではなく、例として、バス812は、アクセラレーテッドグラフィクスポート(AGP)若しくは他のグラフィックスバス、エンハンスト・インダストリー・スタンダード・アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)インターコネクト、インダストリースタンダードアーキテクチャ(ISA)バス、INFINIBANDインターコネクト、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCIエクスプレス(PCIe)バス、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル(VLB)バス、若しくは別の適切なバス、又はこれらのうちの2つ以上の組み合わせを含むことができる。バス812は、適切な場合には、1つ以上のバス812を含むことができる。本開示は、特定のバスを説明及び図示しているが、本開示は、任意の適切なバス又は相互接続部を企図している。
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合には、1つ又は複数の半導体ベース若しくは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、SECURE DIGITALカード若しくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、又はこれらのうちの2つ以上の任意の適切な組み合わせを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合には、揮発性、不揮発性、又は揮発性と不揮発性との組み合わせであってもよい。
本明細書では、他に明示的に示されるか、又は文脈によって他に示されない限り、「又は」は包括的であり、排他的ではない。したがって、本明細書では、他に明示的に示されるか、又は文脈によって他に示されない限り、「A又はB」は、「A、B、又はその両方」を意味する。さらに、他に明示的に示されるか、又は文脈によって他に示されない限り、「及び」は、共同的及び個別的(joint and several)の両方である。したがって、本明細書では、他に明示的に示されるか、又は文脈によって他に示されない限り、「A及びB」は、「A及びBであり、共同的又は個別的」を意味する。
本開示の範囲は、当業者が理解するであろう、本明細書に記載又は図示された例示的な実施形態に対するすべての変更(changes)、置換、変形、改変(alterations)、及び修正を包含する。本開示の範囲は、本明細書に記載又は図示された例示的な実施形態に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、又はステップを含むものとして本明細書のそれぞれの実施形態を説明及び図示しているが、これらの実施形態のいずれも、当業者が理解するであろう本明細書のどこかに記載又は図示されている構成要素、要素、特徴、機能、動作、又はステップのいずれかの任意の組み合わせ又は順列を含むことができる。さらに、特定の機能を実施するように適合され、配置され、能力を有し、構成され、可能にされ、動作可能であり、又は動作する装置若しくはシステム又は装置若しくはシステムの構成要素への添付の特許請求の範囲における参照は、その装置、システム又は構成要素がそのように適合され、配置され、能力を有し、構成され、可能にされ、動作可能であり、又は動作する限り、それ又はその特定の機能が起動し、オンになり、又はロック解除されているか否かにかかわらず、その装置、システム、構成要素を包含する。追加的に、本開示は、特定の利点を提供するものとして特定の実施形態を説明又は例示しているが、特定の実施形態は、これらの利点のいずれも提供しなくても、一部を提供しても、又はすべてを提供してもよい。

Claims (15)

  1. コンピューティングシステムによって、
    ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定することと、
    前記サンプリング位置に基づいて、前記複数のテクセル内のテクセルのセットを選択することであって、前記テクセルのセット内の各テクセルは少なくとも1つの距離場を符号化する、テクセルのセットを選択することと、
    前記テクセルのセットに関連付けられた前記距離場に基づいて、前記サンプリング位置に関連付けられ、前記サンプリング位置と前記テクスチャに描写されたエッジとの間の相対距離を表す補間距離場を計算することと、
    前記補間距離場をテクセル単位からピクセル単位にスケーリングするためのスケーリング係数を決定することと、
    前記スケーリング係数を使用して、前記補間距離場をスケーリングすることと、
    前記スケーリングされた補間距離場に基づいてブレンド比率を決定することと、
    前記ブレンド比率に従って、前記エッジの第1の側に関連付けられた第1の色と、前記エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、前記サンプリング位置のブレンド色を決定することと、
    前記サンプリング位置の前記ブレンド色に基づいて前記ピクセルの色を出力することと
    を含む、方法。
  2. 前記スケーリングされた補間距離場に対する所定のオフセットにアクセスすることをさらに含み、前記ブレンド比率は、前記スケーリングされた補間距離場の前記所定のオフセットに基づいてさらに決定される、請求項1に記載の方法。
  3. ピクセル空間内の第1の方向における、前記複数のテクセルの第1のサンプリング間隔を決定することと、
    前記第1の方向に垂直であるピクセル空間内の第2の方向における、前記複数のテクセルの第2のサンプリング間隔を決定することと、
    前記第1のサンプリング間隔と前記第2のサンプリング間隔とを比較して小さい方を決定することと、をさらに含み、
    前記スケーリング係数は、前記第1のサンプリング間隔又は前記第2のサンプリング間隔のうちの前記小さい方に基づいて決定される、請求項1又は請求項2に記載の方法。
  4. 前記ピクセルに対して、1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色を決定することと、
    前記ピクセルに対する前記サンプリング位置の前記ブレンド色、及び前記1つ以上の第2のサンプリング位置の前記1つ以上の第2のブレンド色に基づいて、前記ピクセルの前記色を決定することと、をさらに含み、
    前記ピクセルの前記色はフレームに含まれる、請求項1から3のいずれか一項に記載の方法。
  5. ピクセル空間内の第1の方向における、前記複数のテクセルの第1のサンプリング間隔を決定することと、
    前記第1の方向に垂直であるピクセル空間内の第2の方向における、前記複数のテクセルの第2のサンプリング間隔を決定することと、
    前記第1のサンプリング間隔と前記第2のサンプリング間隔との比較に基づいてジッタ配向を決定することと、をさらに含み、
    前記テクスチャ内の前記サンプリング位置及び前記1つ以上の第2のサンプリング位置は、前記ジッタ配向に沿って分布する前記ピクセル内の位置に対応し、好ましくは、前記方法が、
    前記第1のサンプリング間隔と前記第2のサンプリング間隔との間の差に基づいてジッタ範囲を決定することをさらに含み、
    前記テクスチャ内の前記サンプリング位置及び1つ以上の第2のサンプリング位置に対応する前記ピクセル内の前記位置は、前記ジッタ配向に沿った前記ジッタ範囲内に分布している、請求項1から4のいずれか一項に記載の方法。
  6. 前記ピクセルの前記色は、フレームシーケンス内の第1のフレームに関連付けられ、前記方法は、
    前記フレームシーケンス内の第2のフレーム内の第2のピクセルに関連付けられた第2のサンプリング位置の第2のブレンド色を決定することであって、
    前記第1のフレーム内の前記ピクセルの相対位置と、前記第2のフレーム内の前記第2のピクセルの相対位置とは同じであり、
    前記テクスチャ内の前記サンプリング位置に対応する前記ピクセル内の位置と、前記テクスチャ内の前記第2のサンプリング位置に対応する前記第2のピクセル内の第2の位置とは異なる、第2のブレンド色を決定することと、
    前記第2のサンプリング位置の前記第2のブレンド色に基づいて前記第2のピクセルの第2の色を出力することと、をさらに含み、
    前記第2のピクセルの前記第2の色は、前記第2のフレームに含まれる、請求項1から5のいずれか一項に記載の方法。
  7. ピクセル空間内の第1の方向における、前記複数のテクセルの第1のサンプリング間隔を決定することと、
    前記第1の方向に垂直であるピクセル空間内の第2の方向における、前記複数のテクセルの第2のサンプリング間隔を決定することと、
    前記第1のサンプリング間隔と前記第2のサンプリング間隔との比較に基づいてジッタ配向を決定することと、をさらに含み、
    前記ピクセル内の前記位置及び前記第2のピクセル内の第2の位置は、前記ジッタ配向に沿って分布している、請求項1から6のいずれか一項に記載の方法。
  8. 前記サンプリング位置が前記テクスチャに描写された前記エッジから所定の範囲内にあるという決定に応答して、前記第1の色と前記第2の色とがブレンドされ、好ましくは、前記所定の範囲は、前記テクスチャに描写された前記エッジから1/2ピクセルである、請求項1から7のいずれか一項に記載の方法。
  9. 前記ブレンド色に基づく前記出力される色が、第1の百分率の前記第1の色及び第2の百分率の前記第2の色を含有し、好ましくは、前記第1の百分率及び前記第2の百分率はそれぞれ、前記第1の色及び前記第2の色の見かけの透明度に対応する、請求項1から8のいずれか一項に記載の方法。
  10. ソフトウェアを具現化する1つ以上のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されると、
    ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定し、
    前記サンプリング位置に基づいて、前記複数のテクセル内のテクセルのセットであって、前記テクセルのセット内の各テクセルは少なくとも1つの距離場を符号化する、テクセルのセットを選択し、
    前記テクセルのセットに関連付けられた前記距離場に基づいて、前記サンプリング位置に関連付けられ、前記サンプリング位置と前記テクスチャに描写されたエッジとの間の相対距離を表す補間距離場を計算し、
    前記補間距離場に基づいてブレンド比率を決定し、
    前記ブレンド比率に従って、前記エッジの第1の側に関連付けられた第1の色と、前記エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、前記サンプリング位置のブレンド色を決定し、
    前記サンプリング位置の前記ブレンド色に基づいて前記ピクセルの色を出力する、ように動作可能である
    媒体。
  11. 前記ソフトウェアは、実行されると、
    スケーリングされた前記補間距離場に対する所定のオフセットにアクセスするようにさらに動作可能であり、
    前記ブレンド比率は、前記スケーリングされた補間距離場の前記所定のオフセットに基づいてさらに決定され、かつ/又は好ましくは、前記ソフトウェアは、実行されると、
    ピクセル空間内の第1の方向における、前記複数のテクセルの第1のサンプリング間隔を決定し、
    前記第1の方向に垂直であるピクセル空間内の第2の方向における、前記複数のテクセルの第2のサンプリング間隔を決定し、
    前記第1のサンプリング間隔と前記第2のサンプリング間隔とを比較して小さい方を決定する、ようにさらに動作可能であり、
    スケーリング係数は、前記第1のサンプリング間隔又は前記第2のサンプリング間隔のうちの前記小さい方に基づいて決定される、請求項10に記載の媒体。
  12. 前記ソフトウェアは、実行されると、
    前記ピクセルに対して、1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色を決定し、
    前記ピクセルに対する前記サンプリング位置の前記ブレンド色、及び前記1つ以上の第2のサンプリング位置の前記1つ以上の第2のブレンド色に基づいて、前記ピクセルの前記色を決定する、ようにさらに動作可能であり、
    前記ピクセルの前記色はフレームに含まれる、請求項10又は請求項11に記載の媒体。
  13. システムであって、
    1つ以上のプロセッサと、
    前記プロセッサのうちの1つ以上に結合され、命令を含む、1つ以上のコンピュータ可読非一時的記憶媒体と、を備え、前記命令は、前記プロセッサのうちの1つ以上によって実行されると、前記システムに、
    ピクセルに対して、複数のテクセルを含むテクスチャ内のサンプリング位置を決定させ、
    前記サンプリング位置に基づいて、前記複数のテクセル内のテクセルのセットであって、前記テクセルのセット内の各テクセルは少なくとも1つの距離場を符号化する、テクセルのセットを選択させ、
    前記テクセルのセットに関連付けられた前記距離場に基づいて、前記サンプリング位置に関連付けられ、前記サンプリング位置と前記テクスチャに描写されたエッジとの間の相対距離を表す補間距離場を計算させ、
    前記補間距離場に基づいてブレンド比率を決定させ、
    前記ブレンド比率に従って、前記エッジの第1の側に関連付けられた第1の色と、前記エッジの第2の側に関連付けられた第2の色とをブレンドすることによって、前記サンプリング位置のブレンド色を決定させ、
    前記サンプリング位置の前記ブレンド色に基づいて前記ピクセルの色を出力させる、ように動作可能である、
    システム。
  14. 前記プロセッサは、前記命令を実行するときに、
    スケーリングされた前記補間距離場に対する所定のオフセットにアクセスするようにさらに動作可能であり、
    前記ブレンド比率は、前記スケーリングされた補間距離場の前記所定のオフセットに基づいてさらに決定され、かつ/又は好ましくは、前記プロセッサは、前記命令を実行するときに、
    ピクセル空間内の第1の方向における、前記複数のテクセルの第1のサンプリング間隔を決定し、
    前記第1の方向に垂直であるピクセル空間内の第2の方向における、前記複数のテクセルの第2のサンプリング間隔を決定し、
    前記第1のサンプリング間隔と前記第2のサンプリング間隔とを比較して、小さい方を決定する、ようにさらに動作可能であり、
    スケーリング係数は、前記第1のサンプリング間隔又は前記第2のサンプリング間隔のうちの前記小さい方に基づいて決定される、請求項13に記載のシステム。
  15. 前記プロセッサは、前記命令を実行するときに、
    前記ピクセルに対して、1つ以上の第2のサンプリング位置の1つ以上の第2のブレンド色を決定し、
    前記ピクセルに対する前記サンプリング位置の前記ブレンド色、及び前記1つ以上の第2のサンプリング位置の前記1つ以上の第2のブレンド色に基づいて、前記ピクセルの前記色を決定する、ようにさらに動作可能であり、
    前記ピクセルの前記色はフレームに含まれる、請求項13又は請求項14に記載のシステム。
JP2023507457A 2020-08-13 2021-07-30 距離場グラフィックスレンダリングのためのアンチエイリアシング Pending JP2023538828A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/992,890 2020-08-13
US16/992,890 US11288788B2 (en) 2020-08-13 2020-08-13 Anti-aliasing for distance field graphics rendering
PCT/US2021/044049 WO2022035627A1 (en) 2020-08-13 2021-07-30 Anti-aliasing for distance field graphics rendering

Publications (1)

Publication Number Publication Date
JP2023538828A true JP2023538828A (ja) 2023-09-12

Family

ID=77412393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023507457A Pending JP2023538828A (ja) 2020-08-13 2021-07-30 距離場グラフィックスレンダリングのためのアンチエイリアシング

Country Status (6)

Country Link
US (2) US11288788B2 (ja)
EP (1) EP4196958A1 (ja)
JP (1) JP2023538828A (ja)
KR (1) KR20230051217A (ja)
CN (1) CN116113988A (ja)
WO (1) WO2022035627A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037592B2 (en) * 2015-06-05 2018-07-31 Mindaptiv LLC Digital quaternion logarithm signal processing system and method for images and other data types
US10403005B2 (en) * 2017-10-10 2019-09-03 Adobe Inc. Using signed distance fields in multicolored vector approximation
US11257275B2 (en) 2018-10-31 2022-02-22 Facebook Technologies, Llc. Dual distance field color palette

Also Published As

Publication number Publication date
US20220051381A1 (en) 2022-02-17
CN116113988A (zh) 2023-05-12
WO2022035627A1 (en) 2022-02-17
US11288788B2 (en) 2022-03-29
KR20230051217A (ko) 2023-04-17
EP4196958A1 (en) 2023-06-21
US20220245783A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
US10964088B2 (en) Mipmap with mixed texture types
EP3559914B1 (en) Foveated rendering in tiled architectures
US7742060B2 (en) Sampling methods suited for graphics hardware acceleration
US7348996B2 (en) Method of and system for pixel sampling
CN106204712B (zh) 分段线性不规则光栅化
US20160048999A1 (en) System, method, and computer program product for shading using a dynamic object-space grid
US9202258B2 (en) Video retargeting using content-dependent scaling vectors
TWI503791B (zh) 針對各向異性過濾運算細節位準之技術
TW200842758A (en) Efficient 2-D and 3-D graphics processing
TW201539374A (zh) 用於高解析度顯示緩衝器之有效構造之方法
US10592242B2 (en) Systems and methods for rendering vector data on static and dynamic-surfaces using screen space decals and a depth texture
US7038678B2 (en) Dependent texture shadow antialiasing
US11138800B1 (en) Optimizations to reduce multi-channel ray casting for color sampling
US7679620B2 (en) Image processing using saltating samples
CN115330986B (zh) 一种分块渲染模式图形处理方法及***
TW202320022A (zh) 合成器層外推
JP2023538828A (ja) 距離場グラフィックスレンダリングのためのアンチエイリアシング
US20160321835A1 (en) Image processing device, image processing method, and display device
US20230298133A1 (en) Super resolution upscaling
US20230298212A1 (en) Locking mechanism for image classification
WO2023208385A1 (en) A soft shadow algorithm with contact hardening effect for mobile gpu

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240514