IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オキュラス ブイアール,エルエルシーの特許一覧

<>
  • 特表-歪み補正ラスタライズ 図1A
  • 特表-歪み補正ラスタライズ 図1B
  • 特表-歪み補正ラスタライズ 図2
  • 特表-歪み補正ラスタライズ 図3A
  • 特表-歪み補正ラスタライズ 図3B
  • 特表-歪み補正ラスタライズ 図3C
  • 特表-歪み補正ラスタライズ 図4A
  • 特表-歪み補正ラスタライズ 図4B
  • 特表-歪み補正ラスタライズ 図4C
  • 特表-歪み補正ラスタライズ 図5
  • 特表-歪み補正ラスタライズ 図6
  • 特表-歪み補正ラスタライズ 図7
  • 特表-歪み補正ラスタライズ 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-16
(54)【発明の名称】歪み補正ラスタライズ
(51)【国際特許分類】
   G06T 15/40 20110101AFI20231109BHJP
   G06T 19/00 20110101ALI20231109BHJP
【FI】
G06T15/40
G06T19/00 A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023516247
(86)(22)【出願日】2021-09-30
(85)【翻訳文提出日】2023-04-11
(86)【国際出願番号】 US2021052912
(87)【国際公開番号】W WO2022093472
(87)【国際公開日】2022-05-05
(31)【優先権主張番号】17/085,940
(32)【優先日】2020-10-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】ゴラス、アビナブ
【テーマコード(参考)】
5B050
5B080
【Fターム(参考)】
5B050AA00
5B050BA09
5B050CA01
5B050EA26
5B050FA02
5B050FA05
5B080AA14
5B080BA00
5B080CA04
5B080FA02
5B080FA17
5B080GA11
(57)【要約】
第1の態様において、方法は、3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することと、ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることと、歪みマップを使用してディスプレイシステムの画面のグリッド表現を歪ませることと、投影された三角形プリミティブと画面の歪ませたグリッド表現とを比較することによって、画面のピクセルに対して三角形プリミティブの可視性を決定することと、三角形プリミティブの決定された可視性に基づいて画像をレンダリングすることを含み、レンダリングされた画像が、歪み特性を有するディスプレイシステムの画面に表示されるように構成される。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって行われる方法であって、
3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することと、
ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることと、
前記歪みマップを使用して、前記ディスプレイシステムの画面のグリッド表現を歪ませることと、
投影された前記三角形プリミティブと前記画面の歪ませた前記グリッド表現とを比較することによって、前記画面のピクセルに対する前記三角形プリミティブの可視性を決定することと、
前記三角形プリミティブの決定された前記可視性に基づいて画像をレンダリングすることと
を含み、
レンダリングされた前記画像が、前記歪み特性を有する前記ディスプレイシステムの前記画面に表示されるように構成される、方法。
【請求項2】
前記グリッド表現は、ピクセルからなる1つまたは複数のブロックを備える、請求項1に記載の方法。
【請求項3】
前記歪みマップは、前記グリッド表現内の各ブロックの各角について、前記ディスプレイシステムの前記画面内の歪み位置を定義するものであり、前記歪み特性は、前記ディスプレイシステムの前記画面上の各ブロックが区分線形特性を有することを示すものであり、好ましくは、区分線形ブロック内の任意の点の歪み位置が、前記ブロックの4つの角の歪み位置のバイリニア補間によって決定される、請求項2に記載の方法。
【請求項4】
請求項3に記載の方法であって、前記画面のピクセルに対する前記三角形プリミティブの可視性を決定することは、
各歪み矩形領域について、投影された前記三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを識別することと、
識別された前記候補ブロックの各々について、投影された前記三角形プリミティブと重なる所定のサイズの候補サブブロックを識別することと、
各候補サブブロック内の各ピクセルについて、該ピクセルが、投影された前記三角形プリミティブをカバーするかを決定することと
を含む方法。
【請求項5】
請求項4に記載の方法であって、歪み矩形領域の候補ブロックを識別することは、投影された前記三角形プリミティブに対して、前記歪み矩形領域の再帰的粗可視性テストを行うことを含み、
好ましくは、投影された前記三角形プリミティブに対する歪み矩形領域の再帰的粗可視性テストは、
投影された前記三角形プリミティブの前記バウンディングボックスに前記歪み矩形領域のバウンディングボックスが重なるかを決定することと、
前記決定に応答して、前記歪み矩形領域のサイズがブロックのサイズよりも大きいかをチェックすることと、
前記チェックに応答して、前記歪み矩形領域を複数の矩形サブ領域に分割することであって、前記複数の矩形サブ領域の各々が1つまたは複数のブロックを備えることと、
前記複数の矩形サブ領域の各々について、投影された前記三角形プリミティブに対して前記矩形サブ領域の再帰的粗可視性テストを行うことと
を含み、
好ましくはさらに、前記歪み矩形領域のバウンディングボックスは、前記歪み矩形領域内のブロックの角に対応する歪み位置座標の最大と、前記歪み矩形領域内のブロックの角に対応する歪み位置座標の最小とを計算することによって識別される、方法。
【請求項6】
請求項4又は5に記載の方法であって、投影された前記三角形プリミティブを含む1つまたは複数の投影された三角形プリミティブのバウンディングボックスは、
前記1つまたは複数の3次元の三角形プリミティブの3次元空間バウンディングボックスの8つの頂点を、2次元の歪み画面空間に投影することと、
投影された前記8つの頂点に適合する2次元境界ボックスの4つの角を識別することと
によって決定される、方法。
【請求項7】
前記所定のサイズの候補サブブロックを識別することは、投影された前記三角形プリミティブに対して、前記ブロックの再帰的詳細可視性テストを行うことを含む、請求項4乃至6の何れか一項に記載の方法。
【請求項8】
請求項7に記載の方法であって、投影された前記三角形プリミティブに対する矩形領域の再帰的粗可視性テストは、
前記矩形領域の各角について、前記角の歪み位置を識別することと、
投影された前記三角形プリミティブに前記矩形領域が重なるかを決定することと、
前記決定に応答して、前記矩形領域のサイズが前記所定のサイズよりも大きいかをチェックすることと、
前記チェックに応答して、前記矩形領域を複数の矩形サブ領域に分割することと、
前記複数の矩形サブ領域の各々について、投影された前記三角形プリミティブに対して前記複数の矩形サブ領域の再帰的粗可視性テストを行うことと
を含み、
好ましくは、前記矩形領域がブロックである場合、前記角の歪み位置を識別することは、前記歪みマップを検索することを含む、方法。
【請求項9】
前記矩形領域が第2矩形領域のサブ領域であり、かつ前記矩形領域の第1の角が前記第2矩形領域の内側にある場合、前記第1の角の歪み位置を識別することは、前記第2矩形領域の4つの角に対応する位置のバイリニア補間を行うことを含む、請求項8に記載の方法。
【請求項10】
前記矩形領域が第2矩形領域のサブ領域であり、かつ前記矩形領域の第1の角が前記第2矩形領域の2つの角をつなぐエッジ上にある場合、前記第1の角の歪み位置を識別することは、前記エッジによってつながる前記第2矩形領域の前記2つの角の位置の線形補間を行うことを含む、請求項8又は9に記載の方法。
【請求項11】
請求項8乃至10の何れか一項に記載の方法であって、投影された前記三角形プリミティブに前記矩形領域が重なるかを決定することは、
投影された前記三角形プリミティブの方向性エッジの各々について、前記矩形領域の少なくとも1つの角が前記方向性エッジの所定の側にあるかを決定することを含み、
好ましくは、投影された前記三角形プリミティブの前記方向性エッジの方向は反時計回りであり、前記所定の側は左側であり、
投影された前記三角形プリミティブの方向性エッジの前記所定の側に前記矩形領域の角があるかを決定することは、前記矩形領域の前記角の歪み位置について、前記方向性エッジに対応するエッジ関数を計算することを含む、方法。
【請求項12】
請求項4乃至11のいずれか一項に記載の方法であって、前記ピクセルが投影された前記三角形プリミティブをカバーするかを決定することは、
前記ピクセル内のサンプリング位置を識別することと、
投影された前記三角形プリミティブの方向性エッジの各々について、識別された前記位置が前記エッジの所定の側にあるかを決定することと
を含む方法。
【請求項13】
プロセッサによって実行された場合に、前記プロセッサに請求項1乃至12の何れか一項に記載の方法を実行させる命令を備える1つまたは複数のコンピュータ可読記憶媒体。
【請求項14】
請求項1乃至12のいずれか一項に記載の方法を実行するように構成された1つまたは複数のプロセッサを備えるシステム。
【請求項15】
プログラムがコンピュータによって実行された場合に、前記コンピュータに請求項1乃至12のいずれか一項に記載の方法を実行させる命令を備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、人工現実システムに関し、特に、ラスタライズおよび可視性計算に関する。
【背景技術】
【0002】
人工現実は、ユーザへの提示の前に何らかの方法で調整された現実の形態であり、例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはそれらの何らかの組み合わせおよび/もしくは派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(例えば、現実世界の写真)と組み合わされた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらのいくつかの組合せを含み得る。それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(視聴者に対して3次元効果を生成するステレオビデオなど)。人工現実は、例えば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(例えば、人工現実におけるアクティビティを実行する)アプリケーション、製品、アクセサリ、サービス、またはそれらのいくつかの組み合わせに関連し得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアローン型HMD、モバイルデバイスまたはコンピューティングシステム、あるいは人工現実コンテンツを1人もしくは複数人の視聴者に提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【発明の概要】
【0003】
本明細書に説明される特定の実施形態は、表示されるときに、多様な要因のために歪んで見えるデジタル画像をレンダリングしながら、所与のプリミティブについてどのピクセル/サンプル/フラグメントをシェーディングするかを決定するためのシステムおよび方法に関する。多様な要因には、レンズの歪み、ずれ、色収差、または任意の適切な要因を含み得るが、これだけに限定されない。従来のグラフィックス処理装置(GPU:Graphics Processing Unit)ハードウェアは、画像内のどのピクセル/サンプル/フラグメントがプリミティブ(例えば、三角形プリミティブ)に影響を受けるかを決定するために、ラスタライズと呼ばれる技術を使用して可視性の問題を解決することができる。従来のGPUにおけるラスタライズは、XおよびY方向のピクセル間の間隔が一定であるという前提に拠る。この前提があることで、すべての最新のGPUで使用されるラスタライザの非常に効率的なハードウェア実装が可能となる。しかしながら、AR/VRデバイスを通して画像がユーザに提示されるときには、レンズの歪み、パネルのずれ等のために、画像が歪むことがある。歪みを打ち消すために、従来の方法であれば、まず、従来のグラフィックスパイプラインを使用して画像をレンダリングし、次いで、ユーザが観察することになる予期される歪みを考慮して、レンダリングされた画像を後処理するであろう。しかしながら、後処理工程は、過度な電力を消費することがあり、また画像の品質を劣化させることがある。モバイルAR/VRヘッドセットなどの、リソースに制約のあるデバイスでは特に、歪み補正のコストを最小限にする必要がある。本明細書に開示される実施形態は、GPUに、歪みマップを使用して逆歪み画像を直接AR/VRディスプレイにレンダリングさせることができる。
【0004】
本開示の第1の態様によると、コンピューティングデバイスによって、3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することと、ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることと、歪みマップを使用して、ディスプレイシステムの画面のグリッド表現を歪ませることと、投影された三角形プリミティブと画面の歪ませたグリッド表現とを比較することによって、画面のピクセルに対して三角形プリミティブの可視性を決定することと、三角形プリミティブの決定された可視性に基づいて画像をレンダリングすることであって、レンダリングされた画像は、歪み特性を有するディスプレイシステムの画面に表示されるように構成される、レンダリングすることと、を備える方法が提供される。
【0005】
グリッド表現は、ピクセルからなる1つまたは複数のブロックを備えることができる。
歪みマップは、グリッド表現内の各ブロックの各角について、ディスプレイシステムの画面内の歪み位置を定義することができる。歪み特性は、ディスプレイシステムの画面上の各ブロックが区分線形特性を有することを示すことができる。
【0006】
区分線形ブロック内の任意の点の歪み位置を、ブロックの4つの角の歪み位置のバイリニア補間によって決定することができる。
画面のピクセルに対する三角形プリミティブの可視性を決定することは、各歪み矩形領域について、投影された三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを識別することと、識別された候補ブロックの各々について、投影された三角形プリミティブと重なる所定のサイズの候補サブブロックを識別することと、各候補サブブロック内の各ピクセルについて、投影された三角形プリミティブをピクセルがカバーするかを決定することと、を備えることができる。
【0007】
歪み矩形領域の候補ブロックを識別することは、投影された三角形プリミティブに対して、歪み矩形領域の再帰的粗可視性テスト(recursive coarse visibility test)を行うことを備えることができる。
【0008】
投影された三角形プリミティブに対する歪み矩形領域の再帰的粗可視性テストは、投影された三角形プリミティブのバウンディングボックスに歪み矩形領域のバウンディングボックスが重なるかを決定することと、決定に応答して、歪み矩形領域のサイズがブロックのサイズよりも大きいかをチェックすることと、チェックに応答して、歪み矩形領域を複数の矩形サブ領域に分割することであって、複数の矩形サブ領域の各々が1つまたは複数のブロックを備える、分割することと、複数の矩形サブ領域の各々について、投影された三角形プリミティブに対して矩形サブ領域の再帰的粗可視性テストを行うことと、を備えることができる。
【0009】
歪み矩形領域のバウンディングボックスは、歪み矩形領域内のブロックの角に対応する歪み位置座標の最大と、歪み矩形領域内のブロックの角に対応する歪み位置座標の最小とを計算することによって識別することができる。
【0010】
投影された三角形プリミティブを含む1つまたは複数の投影された三角形プリミティブのバウンディングボックスは、1つまたは複数の3次元三角形プリミティブの3次元空間バウンディングボックスの8つの頂点を2次元の歪み画面空間に投影することと、投影された8つの頂点に合う2次元バウンディングボックスの4つの角を識別することと、によって決定することができる。
【0011】
所定のサイズの候補サブブロックを識別することは、投影された三角形プリミティブに対して、ブロックの再帰的詳細可視性テスト(recursive fine visibility test)を行うことを備えることができる。
【0012】
投影された三角形プリミティブに対する矩形領域の再帰的詳細可視性テストは、矩形領域の各角について、角の歪み位置を識別することと、投影された三角形プリミティブに矩形領域が重なるかを決定することと、決定に応答して、矩形領域のサイズが所定のサイズよりも大きいかをチェックすることと、チェックに応答して、矩形領域を複数の矩形サブ領域に分割することと、複数の矩形サブ領域の各々について、投影された三角形プリミティブに対して矩形サブ領域の再帰的詳細可視性テストを行うことと、を備えることができる。
【0013】
矩形領域がブロックである場合、角の歪み位置を識別することは、歪みマップを検索することを備えることができる。
矩形領域が第2矩形領域のサブ領域で、矩形領域の第1の角が第2矩形領域の内側にある場合、第1の角の歪み位置を識別することは、第2矩形領域の4つの角に対応する位置のバイリニア補間を行うことを備えることができる。
【0014】
矩形領域が第2矩形領域のサブ領域で、矩形領域の第1の角が第2矩形領域の2つの角をつなぐエッジ上にある場合、第1の角の歪み位置を識別することは、エッジによってつながれる第2矩形領域の2つの角の位置の線形補間を行うことを備えることができる。
【0015】
投影された三角形プリミティブに矩形領域が重なるかを決定することは、投影された三角形プリミティブの方向性エッジの各々について、矩形領域の少なくとも1つの角が方向性エッジの所定の側にあるかを決定することを備えることができる。
【0016】
投影された三角形プリミティブの方向性エッジの方向は、左回りであってもよい。所定の側は左側であってもよい。
投影された三角形プリミティブの方向性エッジの所定の側に矩形領域の角があるかを決定することは、矩形領域の角の歪み位置について、方向性エッジに対応するエッジ関数を計算することを備えることができる。
【0017】
投影された三角形プリミティブをピクセルがカバーするかを決定することは、ピクセル内のサンプリング位置を識別することと、投影された三角形プリミティブの方向性エッジの各々について、識別された位置がエッジの所定の側にあるかを決定することと、を備えることができる。
【0018】
本開示の第2の態様によると、プロセッサによって実行されたときに、プロセッサに第1の態様の方法を実行させる命令を備える1つまたは複数のコンピュータ可読記憶媒体が提供される。記憶媒体は非一時的とすることができる。
【0019】
本開示の第3の態様によると、第1の態様の方法を行うように構成される1つまたは複数のプロセッサを備えるシステムが提供される。
本開示の第4の態様によると、プログラムがコンピュータによって実行されたときに、コンピュータに第1の態様の方法を実行させる命令を備えるコンピュータプログラムが提供される。
【0020】
特定の実施形態においては、コンピューティングデバイスは、3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することができる。ディスプレイシステムの画面は、グリッドで表現することができる。グリッド表現は、1つまたは複数のタイルを備えてもよい。タイルは、1つまたは複数のブロックを備えてもよい。ブロックは、M×N個のピクセルを備えてもよい。特定の実施形態においては、MおよびNは、どちらも2の累乗の整数とすることができる。コンピューティングデバイスは、ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることができる。歪みマップは、グリッド表現内の各ブロックの各角について、ディスプレイシステムの画面内の歪み適用位置を定義することができる。歪み特性は、ディスプレイシステムの画面上の各ブロックが区分線形特性を有し得ること、または、画面またはディスプレイシステム上の各ブロックが区分線形特性を有するように近似化され得ることを示すことができる。区分線形ブロック内の任意の点の歪み適用位置を、ブロックの4つの角の歪み適用位置のバイリニア補間によって決定することができる。コンピューティングデバイスは、歪みマップを使用して、ディスプレイシステムの画面のグリッド表現を歪ませることができる。コンピューティングデバイスは、投影された三角形プリミティブと画面の歪ませたグリッド表現とを比較することによって、画面のピクセルに対する三角形プリミティブの可視性を決定することができる。画面のピクセルに対する三角形プリミティブの可視性を決定するために、コンピューティングデバイスは、まず、各タイルの投影された三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを識別することができる。コンピューティングデバイスは、タイル内の候補ブロックを識別するために、投影された三角形プリミティブに対してタイルの再帰的粗可視性テストを行うことができる。次いで、コンピューティングデバイスは、識別された候補ブロックの各々について、投影された三角形プリミティブと重なる所定のサイズの候補サブブロックを識別することができる。コンピューティングデバイスは、ブロック内の所定のサイズの候補サブブロックを識別するために、投影された三角形プリミティブに対してブロックの再帰的詳細可視性テストを行うことができる。最後に、コンピューティングデバイスは、投影された三角形プリミティブを各候補サブブロック内の各ピクセルがカバーするかを決定することができる。投影された三角形プリミティブをピクセルがカバーするかを決定するために、コンピューティングデバイスは、ピクセル内のサンプリング位置を識別することができる。コンピューティングデバイスは、識別された位置が、投影された三角形プリミティブの方向性エッジの各々の所定の側にあるかを決定することができる。コンピューティングデバイスは、三角形プリミティブの決定された可視性に基づいて、画像をレンダリングすることができる。レンダリングされた画像は、歪み特性を有するディスプレイシステムの画面によって表示されるように構成することができる。
【0021】
本明細書で開示される実施形態は例示に過ぎず、本開示の範囲はこれらに制限されるものではない。特定の実施形態は、上記で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップの全てを含むか、いくつかを含むか、またはいずれも含まなくてもよい。本発明による実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲において開示され、1つの請求項カテゴリ、例えば方法において言及される任意の特徴は、別の請求項カテゴリ、例えばシステムにおいても同様に特許請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的な理由のみのために選択されている。しかしながら、任意の先行する請求項への意図的な参照(特に、多数項従属性)から生じる任意の主題も同様に特許請求され得る。その結果、請求項及びその特徴の任意の組み合わせが開示され、かつ添付の特許請求の範囲において選択された従属性にかかわらず特許請求され得る。特許請求され得る主題は、添付の特許請求の範囲に記載される特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せも含み、特許請求の範囲において記載される各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、および/または本明細書で説明または示される任意の実施形態もしくは特徴との、または添付の請求項の特徴のいずれかとの任意の組み合わせにおいて、請求され得る。
【図面の簡単な説明】
【0022】
図1A】例示的な人工現実システムを示す図である。
図1B】例示的な拡張現実システムを示す図である。
図2】3次元空間で定義されるオブジェクトの三角形プリミティブの、2次元空間への例示的な投影を示す図である。
図3A】例示的な、歪みのない正規化ディスプレイ座標系を示す図である。
図3B】例示的な、歪みのある正規化ディスプレイ座標系を示す図である。
図3C】例示的な、視野(FoV:field-of-view)調整済みで歪みのあるディスプレイの座標系を示す図である。
図4A】投影された三角形プリミティブに対する歪み矩形領域の例示的な粗可視性テストを示す図である。
図4B】投影された三角形プリミティブに対する歪み矩形領域の例示的な粗可視性テストを示す図である。
図4C】投影された三角形プリミティブに対する歪み矩形領域の例示的な粗可視性テストを示す図である。
図5】投影された三角形プリミティブに対する矩形領域の例示的な詳細可視性テストを示す図である。
図6】点が三角形プリミティブの方向性エッジの所定の側にあるかを決定するための例示的なシナリオを示す図である。
図7】ディスプレイシステムの画面のピクセルに対する三角形プリミティブの可視性を決定するための例示的な方法を示す図である。
図8】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0023】
図1Aは、例示的な人工現実システム100Aを示す。特定の実施形態においては、人工現実システム100Aは、ヘッドセット104、コントローラ106、およびコンピューティングデバイス108を備えることができる。ユーザ102は、1つまたは複数のディスプレイ114を通してユーザ102に視覚的な人工現実コンテンツを表示することのできるヘッドセット104を装着し得る。ヘッドセット104は、ユーザ102にオーディオ人工現実コンテンツを提供することのできるオーディオデバイスを含むことができる。ヘッドセット104は、環境の画像および映像をキャプチャすることが可能な1つまたは複数のカメラを含むことができる。ヘッドセット104は、ユーザ102の輻輳距離を決定するために、アイトラッキングシステムを含むことができる。ヘッドセット104は、ユーザ102から入力される声をキャプチャするために、マイクロフォンを含むことができる。ヘッドセット104は、ヘッドマウントディスプレイ(HDM)と呼ばれることもある。1つまたは複数のディスプレイ114に表示される画像は、レンズの歪み、パネルのずれ等のために歪むことがある。コントローラ106は、トラックパッドおよび1つまたは複数のボタンを備えることができる。コントローラ106は、ユーザ102からの入力を受信し、該入力をコンピューティングデバイス108にリレーすることができる。コントローラ206は、ユーザ102に触覚フィードバックも提供することができる。コンピューティングデバイス108は、ケーブルまたは無線接続により、ヘッドセット104およびコントローラ106に接続することができる。コンピューティングデバイス108は、ヘッドセット104およびコントローラ106を制御して、人工現実コンテンツをユーザ102に提供し、ユーザ102からの入力を受信することができる。コンピューティングデバイス108は、スタンドアローン型のホストコンピューティングデバイス、ヘッドセット104と一体化されている内蔵型コンピューティングデバイス、モバイルデバイス、または人工現実コンテンツをユーザ102に提供し、ユーザ102からの入力を受信することが可能な任意の他のハードウェアプラットフォームとすることができる。
【0024】
図1Bは、例示的な拡張現実システム100Bを示す。拡張現実システム100Bは、フレーム112を備えるヘッドマウントディスプレイ(HMD)110(例えば、メガネ)、1つまたは複数のディスプレイ114、およびコンピューティングデバイス108を含むことができる。ディスプレイ114は、HMD110を装着しているユーザがディスプレイ114を通して現実世界を見ることができると同時に、ユーザに視覚的な人工現実コンテンツを表示するように、透明または半透明とすることができる。1つまたは複数のディスプレイ114に表示される画像は、レンズの歪み、パネルのずれ等のために歪むことがある。HMD110は、ユーザにオーディオ人工現実コンテンツを提供することのできるオーディオデバイスを含むことができる。HMD110は、環境の画像および映像をキャプチャすることが可能な1つまたは複数のカメラを含むことができる。HMD110は、HMD110を装着しているユーザの輻輳運動を追跡するために、アイトラッキングシステムを含むことができる。HMD110は、ユーザから入力される声をキャプチャするために、マイクロフォンを含むことができる。拡張現実システム100Bは、トラックパッドおよび1つまたは複数のボタンを備えるコントローラをさらに含むことができる。コントローラは、ユーザからの入力を受信し、該入力をコンピューティングデバイス108にリレーすることができる。コントローラは、ユーザに触覚フィードバックも提供することができる。コンピューティングデバイス108は、ケーブルまたは無線接続により、HMD110およびコントローラに接続することができる。コンピューティングデバイス108は、HMD110およびコントローラを制御して、拡張現実コンテンツをユーザに提供し、ユーザからの入力を受信することができる。コンピューティングデバイス108は、スタンドアローン型のホストコンピュータデバイス、HMD110と一体化されている内蔵型コンピュータデバイス、モバイルデバイス、または人工現実コンテンツをユーザに提供し、ユーザからの入力を受信することが可能な任意の他のハードウェアプラットフォームとすることができる。
【0025】
特定の実施形態においては、コンピューティングデバイス108は、表示されるときに、多様な要因のために歪んで見えるデジタル画像をレンダリングしながら、所与のプリミティブについてどのピクセル/サンプル/フラグメントをシェーディングするかを決定することができる。多様な要因には、レンズの歪み、ずれ、色収差、または任意の適切な要因を含み得るが、これだけに限定されない。従来のグラフィックス処理装置(GPU)ハードウェアは、画像内のどのピクセル/サンプル/フラグメントがプリミティブ(例えば、三角形プリミティブ)に影響を受けるかを決定するために、ラスタライズと呼ばれる技術を使用して可視性の問題を解決することができる。従来のGPUにおけるラスタライズは、XおよびY方向のピクセル間の間隔が一定であるという前提に拠る。この前提があることで、すべての最新のGPUで使用されるラスタライザの非常に効率的なハードウェア実装が可能となる。しかしながら、AR/VRデバイスを通して画像がユーザに提示されるときには、レンズの歪み、パネルのずれ等のために、画像が歪むことがある。歪みを打ち消すために、従来の方法であれば、まず、従来のグラフィックスパイプラインを使用して画像をレンダリングし、次いで、ユーザが観察することになる予期される歪みを考慮して、レンダリングされた画像を後処理するであろう。しかしながら、後処理工程は、過度な電力を消費することがあり、また画像の品質を劣化させることがある。モバイルAR/VRヘッドセットなどの、リソースに制約のあるデバイスでは特に、歪み補正のコストを最小限にする必要がある。本明細書に開示される実施形態は、GPUに、歪みマップを使用して逆歪み画像を直接AR/VRディスプレイにレンダリングさせることができる。
【0026】
特定の実施形態においては、コンピューティングデバイス108は、3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することができる。ディスプレイシステムの画面は、グリッドで表現することができる。グリッド表現は、1つまたは複数のタイルを備えてもよい。タイルは、1つまたは複数のブロックを備えてもよい。ブロックは、M×N個のピクセルを備えてもよい。特定の実施形態においては、MおよびNは、どちらも2の累乗の整数とすることができる。コンピューティングデバイス108は、ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることができる。歪みマップは、グリッド表現内の各ブロックの各角について、ディスプレイシステムの画面内の歪み適用位置を定義することができる。歪み特性は、ディスプレイシステムの画面上の各ブロックが区分線形特性を有し得ることを示すことができる。区分線形ブロック内の任意の点の歪み適用位置を、ブロックの4つの角の歪み適用位置のバイリニア補間によって決定することができる。コンピューティングデバイス108は、歪みマップを使用して、ディスプレイシステムの画面のグリッド表現を歪ませることができる。コンピューティングデバイス108は、投影された三角形プリミティブと画面の歪ませたグリッド表現とを比較することによって、画面のピクセルに対する三角形プリミティブの可視性を決定することができる。画面のピクセルに対する三角形プリミティブの可視性を決定するために、コンピューティングデバイス108は、まず、各タイルの投影された三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを識別することができる。コンピューティングデバイス108は、タイル内の候補ブロックを識別するために、投影された三角形プリミティブに対してタイルの再帰的粗可視性テストを行うことができる。次いで、コンピューティングデバイス108は、識別された候補ブロックの各々について、投影された三角形プリミティブと重なる所定のサイズの候補サブブロックを識別することができる。コンピューティングデバイス108は、ブロック内の所定のサイズの候補サブブロックを識別するために、投影された三角形プリミティブに対してブロックの再帰的詳細可視性テストを行うことができる。最後に、コンピューティングデバイス108は、投影された三角形プリミティブを各候補サブブロック内の各ピクセルがカバーするかを決定することができる。投影された三角形プリミティブをピクセルがカバーするかを決定するために、コンピューティングデバイス108は、ピクセル内のサンプリング位置を識別することができる。特定の実施形態においては、ピクセル内のサンプリング位置は、ピクセルの中心にしてもよい。コンピューティングデバイス108は、識別された位置が、投影された三角形プリミティブの方向性エッジの各々の所定の側にあるかを決定することができる。コンピューティングデバイス108は、三角形プリミティブの決定された可視性に基づいて、画像をレンダリングすることができる。レンダリングされた画像は、歪み特性を有するディスプレイシステムの画面によって表示されるように構成することができる。本明細書に開示される方法は、いずれのディスプレイシステムに適用してもよい。特定の実施形態においては、ディスプレイシステムは、歪みに一切関連しなくてもよい。歪みマップは、ディスプレイシステムの歪み特性(すなわち、この場合、画面のどの場所にも歪みがない)に基づいて生成されてもよい。本開示は、投影された三角形プリミティブをどのピクセルがカバーするかを特定の方法で決定することを記述しているが、本開示は、投影された三角形プリミティブをどのピクセルがカバーするかを任意の適切な方法で決定することを想定している。
【0027】
特定の実施形態においては、コンピューティングデバイス108は、3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することができる。特定の実施形態においては、オブジェクトは仮想オブジェクトであってもよく、これは、テーブル、人などの現実世界のオブジェクトに代わる、シーン内のエンティティの仮想の具体化である。プリミティブは、3次元空間内のオブジェクトのビルディングブロックとしてもよい。プリミティブは、任意のポリゴンにすることが可能であるが、ポリゴンプリミティブは、1つまたは複数の三角形プリミティブに分解され得る。図2は、3次元空間で定義されるオブジェクトの三角形プリミティブの、2次元空間への例示的な投影を示す。限定ではなく、例として、図2に示されるコンピューティングデバイス108は、3次元空間で定義されるオブジェクトに属する三角形プリミティブ201を2次元ディスプレイ空間210に投影し得る。投影のために、コンピューティングデバイス108は、カメラ/目の位置205から3次元空間内の三角形プリミティブ201の各頂点までのベクトルと交差する2次元ディスプレイ空間210上の点を識別することができる。2次元ディスプレイ空間210上で識別された点をつなぐ三角形は、投影された三角形プリミティブ203とすることができる。投影された三角形プリミティブ203は、ディスプレイ空間210の領域内に位置することができる。コンピューティングデバイス108は、ディスプレイ空間210の領域が、投影された三角形プリミティブ203をカバーするかを決定することができる。本開示は、3次元空間で定義されるオブジェクトの三角形プリミティブを特定の方法で2次元空間に投影することを記述しているが、本開示は、3次元空間で定義されるオブジェクトの三角形プリミティブを任意の適切な方法で2次元空間に投影することを想定している。
【0028】
図3Aは、例示的な、歪みのない正規化ディスプレイ座標系を示す。パラメトリック座標は、正規化ディスプレイ空間内の相対位置を示すことができる。パラメトリック座標は、各軸の[-1.0,1.0]範囲にわたる。したがって、ディスプレイ空間内のどの位置も、[-1.0,1.0]範囲内の実数のタプルで表現することが可能である。パラメトリック座標(-1.0,1.0)は、正規化ディスプレイ空間の左上角を示すことができる。パラメトリック座標(-1.0,-1.0)は、正規化ディスプレイ空間の左下角を示すことができる。パラメトリック座標(1.0,1.0)は、正規化ディスプレイ空間の右上角を示すことができる。パラメトリック座標(1.0,-1.0)は、正規化ディスプレイ空間の右下角を示すことができる。パラメトリック座標(0.0,0.0)は、正規化ディスプレイ空間の中心を示すことができる。ピクセル座標は、正規化ディスプレイ空間内のピクセルの位置を示すことができる。ピクセル座標は、横軸の[0,幅]内の整数と縦軸の[0,高さ]内の整数にわたる。正規化ディスプレイ空間の左上角のピクセル座標は、(0,0)とすることができる。正規化ディスプレイ空間の左下角のピクセル座標は、(0,高さ)とすることができる。正規化ディスプレイ空間の右上角のピクセル座標は、(幅,0)とすることができる。正規化ディスプレイ空間の右下角のピクセル座標は、(幅,高さ)とすることができる。正規化ディスプレイ空間の中心のピクセル座標は、(幅/2,高さ/2)とすることができる。特定の実施形態においては、ディスプレイシステムの画面は、グリッドで表現することができる。グリッド表現は、1つまたは複数のタイルを備えてもよい。タイルは、1つまたは複数のブロックを備えてもよい。ブロックは、M×N個のピクセルを備えてもよい。特定の実施形態においては、MおよびNは、どちらも2の累乗の整数とすることができる。
【0029】
特定の実施形態においては、コンピューティングデバイス108は、ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることができる。歪みマップは、グリッド表現内の各ブロックの各角について、ディスプレイシステムの画面内の歪み適用位置を定義してもよい。特定の実施形態においては、ディスプレイシステムは、歪みに一切関連しなくてもよい。歪みマップは、ディスプレイシステムの歪み特性(すなわち、画面のどの場所にも歪みがない)に基づいて生成されてもよい。図3Bは、例示的な、歪みのある正規化ディスプレイ座標系を示す。歪みのある正規化ディスプレイ空間では、歪み(x,y)は、パラメトリック座標(x,y)によって表現される点の歪み適用位置を示すことができる。ピクセル座標(a,b)がパラメトリック座標(x,y)に対応すると仮定する。すると、ピクセル(a,b)の歪み適用位置は、歪み(x,y)になり得る。特定の実施形態においては、コンピューティングデバイス108は、歪みマップを使用して、ディスプレイシステムの画面のグリッド表現を歪ませることができる。ピクセル(a,b)がブロックの角に対応する場合、歪み(x,y)は、歪みマップで定義することができる。特定の実施形態においては、歪み特性は、ディスプレイシステムの画面上の各ブロックが区分線形特性を有することを示すことができる。区分線形ブロック内の任意の点の歪み適用位置を、ブロックの4つの角の歪み適用位置のバイリニア補間によって決定することができる。ピクセル(a,b)がブロックの角に対応しない場合、歪み(x,y)は、ピクセル(a,b)が属するブロックの4つの角の歪み適用位置のバイリニア補間によって決定することができる。本開示は、点の歪み適用位置を特定の方法で決定することを記述しているが、本開示は、点の歪み適用位置を任意の適切な方法で決定することを想定している。
【0030】
図3Cは、例示的な、視野(FoV)調整済みで歪みのあるディスプレイの座標系を示す。FoVは、カメラによってキャプチャすることが可能な世界の範囲であり得る。FoVは、縦軸に沿って見える前方向からの最大角度を定義し得る。したがって、図3Cにおいてext_Yで表されるYの範囲は、tan(FoV/2)となり得る。図3Cにおいてext_Xで表されるXの範囲は、tan(FoV/2)*アスペクト比となり得る。FoV調整済みで歪みのあるディスプレイ空間のパラメトリック座標は、X軸については、[-ext_X,ext_X]範囲にわたり、Y軸については、[-ext_Y,ext_Y]範囲にわたる。パラメトリック座標(ext_X,ext_Y)*歪み(-1.0,1.0)は、FoV調整済みで歪みのあるディスプレイ空間の左上角の歪み適用位置を示すことができる。パラメトリック座標(ext_X,ext_Y)*歪み(-1.0,-1.0)は、正規化ディスプレイ空間の左下角の歪み適用位置を示すことができる。パラメトリック座標(ext_X,ext_Y)*歪み(1.0,1.0)は、正規化ディスプレイ空間の右上角の歪み適用位置を示すことができる。パラメトリック座標(ext_X,ext_Y)*歪み(1.0,-1.0)は、正規化ディスプレイ空間の右下角の歪み適用位置を示すことができる。パラメトリック座標(ext_X,ext_Y)*歪み(0.0,0.0)は、正規化ディスプレイ空間の中心の歪み適用位置を示すことができる。特定の実施形態においては、FoV調整は、歪みマップによって無条件に達成することができる。
【0031】
特定の実施形態においては、コンピューティングデバイス108は、投影された三角形プリミティブと画面の歪ませたグリッド表現とを比較することによって、画面のピクセルに対する三角形プリミティブの可視性を決定することができる。画面のピクセルに対する三角形プリミティブの可視性を決定するために、コンピューティングデバイス108は、まず、各タイルの投影された三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを識別することができる。次いで、コンピューティングデバイス108は、識別された候補ブロックの各々について、投影された三角形プリミティブと重なる所定のサイズの候補サブブロックを識別することができる。最後に、コンピューティングデバイス108は、投影された三角形プリミティブを各候補サブブロック内の各ピクセルがカバーするかを決定することができる。本開示は、画面のピクセルに対する三角形プリミティブの可視性を特定の方法で決定することを記述しているが、本開示は、画面のピクセルに対する三角形プリミティブの可視性を任意の適切な方法で決定することを想定している。
【0032】
特定の実施形態においては、コンピューティングデバイス108は、タイル内の候補ブロックを識別するために、投影された三角形プリミティブに対してタイルの再帰的粗可視性テストを行うことができる。投影された三角形プリミティブに対する歪み矩形領域の再帰的粗可視性テストは、次のように行うことができる。コンピューティングデバイス108は、投影された三角形プリミティブのバウンディングボックスに歪み矩形領域のバウンディングボックスが重なるかを決定することができる。投影された三角形プリミティブのバウンディングボックスに歪み矩形領域のバウンディングボックスが重ならないと決定される場合、歪み矩形領域は、それ以上処理する必要はない。したがって、そのときの粗可視性テストプロシージャは、親プロシージャに戻ることができる。投影された三角形プリミティブのバウンディングボックスに歪み矩形領域のバウンディングボックスが重なると決定される場合、コンピューティングデバイス108は、歪み矩形領域のサイズがブロックのサイズよりも大きいかをチェックすることができる。歪み矩形領域のサイズがブロックのサイズと等しい場合、コンピューティングデバイス108は、歪み矩形領域を候補ブロックのプールに追加することができる。そのときの粗可視性テストプロシージャは、親プロシージャに戻ることができる。歪み矩形領域のサイズがブロックのサイズよりも大きい場合、コンピューティングデバイス108は、歪み矩形領域を複数の矩形サブ領域に分割することができる。複数の矩形サブ領域の各々は、1つまたは複数のブロックを備えてもよい。したがって、コンピューティングデバイス108は、投影された三角形プリミティブに対して複数の矩形サブ領域の各々の再帰的粗可視性テストを行うことができる。図4A図4Cは、投影された三角形プリミティブに対する歪み矩形領域の例示的な粗可視性テストを示す。図4Aは、4つのタイル410、420、430および440を備える、ディスプレイシステム400の一部を図示する。限定ではなく、例として、図4Aに図示されるコンピューティングデバイス108は、投影された三角形プリミティブ401に対してタイル410の再帰的粗可視性テストを行って、候補ブロック405を識別することができる。図4Aに図示される実施例では、タイルは、4×4のブロックを備える。コンピューティングデバイス108は、投影された三角形プリミティブのバウンディングボックス403にタイル430および440のバウンディングボックスが重ならないと決定することができる。したがって、コンピューティングデバイス108は、タイル430および440について、再帰的粗可視性テストを行うのを止めることができる。コンピューティングデバイス108は、投影された三角形プリミティブ401のバウンディングボックス403にタイル410および420のバウンディングボックスが重なると決定することができ、コンピューティングデバイス108は、タイル410および420のサイズがブロックのサイズよりも大きいかをチェックすることができる。タイル410の粗可視性テストを続けるために、図4Bに図示されるように、コンピューティングデバイス108は、タイル410を4つのサブタイル411、412、413および414に分割することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401に対してサブタイル411、412、413および414の各々の再帰的粗可視性テストを行うことができる。コンピューティングデバイス108は、投影された三角形プリミティブ401のバウンディングボックス403にサブタイル411および413のバウンディングボックスが重ならないと決定することができる。したがって、コンピューティングデバイス108は、サブタイル411および413について、再帰的粗可視性テストを行うのを止めることができる。コンピューティングデバイス108は、投影された三角形プリミティブ401のバウンディングボックス403にサブタイル412および414のバウンディングボックスが重なると決定することができる。コンピューティングデバイス108は、サブタイル412および414のサイズがブロックのサイズよりも大きいかをチェックすることができる。サブタイル412の粗可視性テストを続けるために、図4Cに図示されるように、コンピューティングデバイス108は、タイル412を4つのブロック412A、412B、412Cおよび412Dに分割することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401に対してブロック412A、412B、412Cおよび412Dの各々の再帰的粗可視性テストを行うことができる。コンピューティングデバイスは、投影された三角形プリミティブ401のバウンディングボックス403にブロック412Aおよび412Cのバウンディングボックスが重ならないと決定することができる。したがって、コンピューティングデバイスは、ブロック412Aおよび412Cについて、再帰的粗可視性テストを行うのを止めることができる。コンピューティングデバイス108は、投影された三角形プリミティブ401のバウンディングボックス403にブロック412Bおよび412Dのバウンディングボックスが重なると決定することができる。コンピューティングデバイス108は、ブロック412Bおよび412Dのサイズがブロックのサイズと等しいかをチェックすることができる。したがって、コンピューティングデバイス108は、ブロック412Bおよび412Dを候補ブロックとして識別することができる。特定の実施形態においては、候補ブロックのサイズは、歪みマップ内のブロックのサイズと同一にしてもよい。特定の実施形態においては、候補ブロックのサイズは、歪みマップ内のブロックのサイズの整数倍にしてもよい。特定の実施形態においては、歪みマップ内のブロックのサイズは、候補ブロックのサイズの整数倍にしてもよい。本開示は、投影された三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを特定の方法で識別することを記述しているが、本開示は、投影された三角形プリミティブのバウンディングボックスにバウンディングボックスが重なる候補ブロックを任意の適切な方法で識別することを想定している。
【0033】
特定の実施形態においては、コンピューティングデバイス108は、プロセスを加速するために、投影された三角形プリミティブのグループに対してタイルの再帰的粗可視性テストを行うことができる。コンピューティングデバイス108は、3次元の三角形プリミティブのグループの3次元空間バウンディングボックスの8つの頂点を、2次元の歪み画面空間に投影することができる。次いで、コンピューティングデバイス108は、投影された三角形プリミティブのグループの軸平行2次元バウンディングボックスのうち、8つの投影頂点と合う4つの角を識別することができる。軸平行バウンディングボックスは、直方体のエッジが空間の正規直交基底(例えば、X軸、Y軸)に沿ったバウンディングボックスとしてもよい。コンピューティングデバイス108が、投影された三角形プリミティブのグループの2次元バウンディングボックスにタイルが重ならないと決定する場合、コンピューティングデバイス108は、投影された三角形プリミティブのグループのいずれに対しても、タイルの再帰的粗可視性テストを行う必要をなくすことができる。コンピューティングデバイスが、投影された三角形プリミティブのグループの2次元バウンディングボックスにタイルが重なると決定する場合、コンピューティングデバイス108は、投影された三角形プリミティブのグループの各々に対して、タイルの再帰的粗可視性テストを行うことができる。コンピューティングデバイス108は、投影された三角形プリミティブ401のグループの各々のバウンディングボックス403を決定することができる。本開示は、投影された三角形プリミティブのバウンディングボックスを特定の方法で決定することを記述しているが、本開示は、投影された三角形プリミティブのバウンディングボックスを任意の適切な方法で決定することを想定している。
【0034】
特定の実施形態においては、コンピューティングデバイス108は、歪み矩形領域のバウンディングボックスを識別することができる。歪み矩形領域のバウンディングボックスを識別するために、コンピューティングデバイス108は、歪み矩形領域内のブロックの角に対応する歪み適用位置座標の最大と、歪み矩形領域内のブロックの角に対応する歪み適用位置座標の最小とを計算することができる。歪み矩形領域の角の歪み適用位置が識別されたら、識別された角をもつ矩形ボックスを歪み矩形領域のバウンディングボックスとして識別することができる。歪み矩形領域のバウンディングボックスは、軸平行バウンディングボックスとしてもよい。本開示は、歪み矩形領域のバウンディングボックスを特定の方法で識別することを記述しているが、本開示は、歪み矩形領域のバウンディングボックスを任意の適切な方法で識別することを想定している。
【0035】
特定の実施形態においては、コンピューティングデバイス108は、ブロック内の所定のサイズの候補サブブロックを識別するために、投影された三角形プリミティブに対してブロックの再帰的詳細可視性テストを行うことができる。投影された三角形プリミティブに対する矩形領域の再帰的詳細可視性テストは、次のように行うことができる。コンピューティングデバイス108は、矩形領域の各角の歪み適用位置を識別することができる。コンピューティングデバイス108は、投影された三角形プリミティブに矩形領域が重なるかを決定することができる。投影された三角形プリミティブに矩形領域が重ならないと決定される場合、矩形領域は、それ以上処理する必要はない。したがって、そのときの詳細可視性テストプロシージャは、親プロシージャに戻ることができる。投影された三角形プリミティブに矩形領域が重なると決定される場合、コンピューティングデバイス108は、矩形領域のサイズが所定のサイズよりも大きいかをチェックすることができる。矩形領域のサイズが所定のサイズと等しい場合、コンピューティングデバイス108は、矩形領域を候補サブブロックのプールに追加することができる。そのときの詳細可視性テストプロシージャは、親プロシージャに戻ることができる。矩形領域のサイズが所定のサイズと等しい場合、コンピューティングデバイス108は、矩形領域を複数の矩形サブ領域に分割することができる。コンピューティングデバイス108は、投影された三角形プリミティブに対して複数の矩形サブ領域の各々の再帰的詳細可視性テストを行うことができる。図5は、投影された三角形プリミティブに対する矩形領域の例示的な詳細可視性テストを示す。限定ではなく、例として、図5に図示されるコンピューティングデバイス108は、投影された三角形プリミティブ401と重なる候補サブブロックを識別することができる。図5の(a)で示される工程で、コンピューティングデバイス108は、投影された三角形プリミティブ401に対して1つまたは複数のタイルの再帰的粗可視性テストの結果として、ブロック501を候補ブロックの1つとして識別することができる。図5の(b)に示される工程で、コンピューティングデバイス108は、歪みマップを検索することによって、ブロック501の角の歪み適用位置を識別することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401にブロック501が重なると決定することができる。決定プロシージャの詳細を以下に開示する。コンピューティングデバイス108は、図5に示される実施例において、ブロックのサイズ32×32が、所定のサイズ(この実施例では4×4)よりも大きいかをチェックすることができる。ブロック501のサイズは所定のサイズよりも大きいため、コンピューティングデバイス108は、ブロックを、サブブロック503を含む4つのサブブロックに分割することができ、ここで、各サブブロックのサイズは16×16である。コンピューティングデバイス108は、投影された三角形プリミティブ401に対してサブブロックの各々の再帰的詳細可視性テストを行うことができる。図5の(c)によって示される工程で、コンピューティングデバイス108は、投影された三角形プリミティブ401に対してサブブロック503の詳細可視性テストを行うことができる。サブブロック503のサイズは、16×16である。コンピューティングデバイス108は、サブブロック503の角の歪み適用位置を識別することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401にサブブロック503が重なると決定することができる。コンピューティングデバイス108は、サブブロック503のサイズ16×16が所定のサイズ4×4よりも大きいかをチェックすることができる。サブブロック503のサイズは所定のサイズよりも大きいため、コンピューティングデバイス108は、サブブロック503を、サブブロック506およびサブブロック505を含む4つのサブブロックに分割することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401に対してサブブロック505、506の各々の再帰的詳細可視性テストを行うことができる。サブブロック506が、それぞれの詳細可視性テスト中に投影された三角形プリミティブ401に重ならないと決定されるため、コンピューティングデバイス108は、それ以上サブブロック506を処理しなくてもよい。図5の(d)によって示される工程で、コンピューティングデバイス108は、投影された三角形プリミティブ401に対してサブブロック505の詳細可視性テストを行うことができる。サブブロック505のサイズは、8×8である。コンピューティングデバイス108は、サブブロック505の角の歪み適用位置を識別することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401にサブブロック505が重なると決定することができる。サブブロック505のサイズ8×8は所定のサイズ4×4よりも大きいため、コンピューティングデバイス108は、サブブロック505をサブブロック507およびサブブロック508を含む4つのサブブロックに分割することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401に対してサブブロック507、508の各々の再帰的詳細可視性テストを行うことができる。サブブロック508が、その詳細可視性テスト中に投影された三角形プリミティブ401に重ならないと決定されるため、コンピューティングデバイス108は、それ以上サブブロック508を処理しなくてもよい。コンピューティングデバイス108は、投影された三角形プリミティブ401にサブブロック507が重なると決定することができるため、また、サブブロック507のサイズ4×4が所定のサイズ4×4と等しいため、サブブロック507は、候補サブブロックのプールに追加することができる。本開示は、所定のサイズの候補サブブロックを特定の方法で識別することを記述しているが、本開示は、所定のサイズの候補サブブロックを任意の適切な方法で識別することを想定している。
【0036】
特定の実施形態においては、区分線形矩形領域はブロックであってもよい。コンピューティングデバイス108は、歪みマップを検索して、ブロックの角の歪み適用位置を識別することができる。限定ではなく、例として、図5の(b)に示されるコンピューティングデバイス108は、歪みマップを検索することによって、ブロック501の左上角511の歪み適用位置を識別することができ、該歪み適用マップは、ディスプレイシステムの画面内の各ブロックの各角の歪み適用位置を定義する。本開示は、ブロックの角の歪み適用位置を特定の方法で識別することを記述しているが、本開示は、ブロックの角の歪み適用位置を任意の適切な方法で識別することを想定している。
【0037】
特定の実施形態においては、区分線形矩形領域は、第2の区分線形矩形領域のサブ領域であってもよい。第2の区分線形矩形領域は、ブロックまたはサブブロックであってもよい。特定の実施形態においては、区分線形矩形領域の第1の角は、第2の区分線形矩形領域の内側であってもよい。コンピューティングデバイス108は、第2の区分線形矩形領域に対応する歪み適用位置のバイリニア補間を行って、第1の角の歪み適用位置を識別することができる、備える。限定ではなく、例として、図5の(b)に示されるコンピューティングデバイス108は、ブロック501の4つの角に対応する歪み適用位置のバイリニア補間を行うことによって、サブブロック503の右下角515の歪み適用位置を識別することができる。本開示は、ブロックの内側にあるサブブロックの角の歪み適用位置を特定の方法で識別することを記述しているが、本開示は、ブロックの内側にあるサブブロックの角の歪み適用位置を任意の適切な方法で識別することを想定している。
【0038】
特定の実施形態においては、区分線形矩形領域の角は、第2の区分線形矩形領域の2つの角をつなぐエッジ上にあってもよい。コンピューティングデバイス108は、エッジによってつながれている第2の区分線形矩形領域の2つの角について、歪み適用位置の線形補間を行って、角の歪み適用位置を識別することができる。限定ではなく、例として、図5の(b)に図示されるコンピューティングデバイス108は、ブロック501の左上角511および右上角513の歪み適用位置の線形補間を行うことによって、サブブロック503の右上角517の歪み適用位置を識別することができる。本開示は、ブロックの2つの角をつなぐエッジ上にあるサブブロックの角の歪み適用位置を特定の方法で識別することを記述しているが、本開示は、ブロックの2つの角をつなぐエッジ上にあるサブブロックの角の歪み適用位置を任意の適切な方法で識別することを想定している。
【0039】
特定の実施形態においては、コンピューティングデバイス108は、投影された三角形プリミティブ401に矩形領域が重なるかを決定するために、矩形領域の少なくとも1つの角が、投影された三角形プリミティブ401の方向性エッジの各々の所定の側にあるかを決定することができる。投影された三角形プリミティブの方向性エッジの方向は、左回りであってもよい。所定の側は左側であってもよい。図6は、点が三角形プリミティブの方向性エッジの所定の側にあるかを決定するための例示的なシナリオを示す。限定ではなく、例として、図6に示される投影された三角形プリミティブ401のエッジは、第1頂点(x1,y1)を第2頂点(x2,y2)につなぐ。2つの頂点をつなぐ延長線が、2次元平面を2つの半平面に仕切ることができる。対応するエッジ関数f(x,y)=(y-y1)*(x2-x1)-(x-x1)*(y2-yl)は、点(x,y)が位置するのがエッジのどの側かを決定することができる。エッジ関数の出力が負の数である場合、点(x,y)は方向性エッジの右側にある。エッジ関数の出力が正の数である場合、点(x,y)は方向性エッジの左側にある。エッジ関数の出力がゼロである場合、点(x,y)はエッジ上にある。エッジ関数は、方向性エッジを、空間を2つの半空間(内側と外側)に仕切る方向性半平面に一般化することによって、3次元以上の次元に一般化することが可能である。エッジ関数は、より高次元の空間ではレイキャスターと同様に使用することができる。コンピューティングデバイス108は、投影された三角形プリミティブ401の方向性エッジの各々の左側に矩形領域の少なくとも1つの角がある場合、投影された三角形プリミティブ401に矩形領域が重なると決定することができる。本開示は、特定の方法で、投影された三角形プリミティブに矩形領域が重なるかを、投影された三角形プリミティブの方向性エッジに対応するエッジ関数を用いて決定することを記述しているが、本開示は、任意の適切な方法で、投影された三角形プリミティブに矩形領域が重なるかを、投影された三角形プリミティブの方向性エッジに対応するエッジ関数を用いて決定することを想定している。
【0040】
特定の実施形態においては、コンピューティングデバイス108は、投影された三角形プリミティブ401を候補サブブロック内の各ピクセルがカバーするかを決定することができる。投影された三角形プリミティブ401をピクセルがカバーするかを決定するために、コンピューティングデバイス108は、ピクセル内の歪み適用サンプリング位置を識別することができる。コンピューティングデバイス108は、識別された位置が、投影された三角形プリミティブ401の各方向性エッジの所定の側にあるかを決定することができる。識別された位置が、投影された三角形プリミティブ401の各すべての方向性エッジの所定の側にある場合、コンピューティングデバイス108は、投影された三角形プリミティブ401をピクセルがカバーすると決定することができる。本開示は、投影された三角形プリミティブを候補サブブロック内のピクセルがカバーするかを特定の方法で決定することを記述しているが、本開示は、投影された三角形プリミティブを候補サブブロック内のピクセルがカバーするかを任意の適切な方法で決定することを想定している。
【0041】
特定の実施形態においては、コンピューティングデバイス108は、三角形プリミティブの決定された可視性に基づいて、画像をレンダリングすることができる。投影された三角形プリミティブをピクセルがカバーすると決定される場合、コンピューティングデバイス108は、投影された三角形プリミティブに関連する特性に基づいて、ピクセルの色値を決定することができる。レンダリングされた画像は、歪み特性を有するディスプレイシステムの画面によって表示されるように構成することができる。本開示は、三角形プリミティブの決定された可視性に基づいて特定の方法で画像をレンダリングすることを記述しているが、本開示は、三角形プリミティブの決定された可視性に基づいて任意の適切な方法で画像をレンダリングすることを想定している。
【0042】
図7は、ディスプレイシステムの画面のピクセルに対する三角形プリミティブの可視性を決定するための例示的な方法700を示す。方法は、工程710で始まることができ、コンピューティングデバイス108は、3次元空間で定義されるオブジェクトの三角形プリミティブを2次元空間に投影することができる。工程720で、コンピューティングデバイス108は、ディスプレイシステムの歪み特性に基づいて生成される歪みマップにアクセスすることができる。工程730で、コンピューティングデバイス108は、歪みマップを使用して、ディスプレイシステムの画面のグリッド表現を歪ませることができる。工程740で、コンピューティングデバイス108は、投影された三角形プリミティブと画面の歪ませたグリッド表現とを比較することによって、画面のピクセルに対する三角形プリミティブの可視性を決定することができる。工程750で、コンピューティングデバイス108は、三角形プリミティブの決定された可視性に基づいて、画像をレンダリングすることができる。レンダリングされた画像は、歪み特性を有するディスプレイシステムの画面によって表示されるように構成することができる。特定の実施形態は、適切な場合には、図7の方法の1つまたは複数の工程を繰り返し得る。本開示は、図7の方法の特定の工程を特定の順序で発生するものとして記述し示しているが、本開示は、図7の方法の任意の適切な工程が任意の適切な順序で発生することを想定している。さらに、本開示は、図7の方法の特定の工程を含む、ディスプレイシステムの画面のピクセルに対する三角形プリミティブの可視性を決定するための例示的な方法を記述し示しているが、本開示は、任意の適切な工程を含む、ディスプレイシステムの画面のピクセルに対する三角形プリミティブの可視性を決定するための任意の適切な方法を想定しており、任意の適切な工程は、適切な場合には、図7の方法の工程の全部を含んでも、一部を含んでも、または全く含まなくてもよい。さらに、本開示は、図7の方法の特定の工程を実行する特定のコンポーネント、デバイス、またはシステムを記述し示しているが、本開示は、図7の方法の任意の適切な工程を実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定している。
【0043】
システムおよび方法
図8は、例示的なコンピュータシステム800を示す。特定の実施形態では、1つまたは複数のコンピュータシステム800は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実行する。特定の実施形態では、1つまたは複数のコンピュータシステム800は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム800上で動作するソフトウェアは、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実行するか、または本明細書で説明または図示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム800の1つまたは複数の部分を含む。本明細書において、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。さらに、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
【0044】
本開示は、任意の適切な数のコンピュータシステム800を企図する。本開示は、任意の適切な物理的形態をとるコンピュータシステム800を企図する。限定ではなく例として、コンピュータシステム800は、埋め込み型コンピュータシステム、システムオンチップ(SOC)、(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、またはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合には、コンピュータシステム800は、1つまたは複数のコンピュータシステム800を含むか、単一型または分散型であるか、あるいは複数ロケーションにわたるか、複数のマシンにわたるか、複数のデータセンタにわたるか、あるいは1つまたは複数のネットワーク内に1つまたは複数のクラウド構成要素を含み得るクラウド内に常駐し得る。適切な場合には、1つまたは複数のコンピュータシステム800は、実質的な空間的または時間的制限なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実行し得る。限定ではなく、一例として、1つまたは複数のコンピュータシステム800は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアルタイムでまたはバッチモードで実行し得る。1つまたは複数のコンピュータシステム800は、適切な場合、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを異なる時間においてまたは異なるロケーションにおいて実行し得る。
【0045】
特定の実施形態では、コンピュータシステム800は、プロセッサ802、メモリ804、ストレージ806、入力/出力(I/O)インタフェース808、通信インタフェース810、およびバス812を含む。本開示は、特定の数の特定の構成要素を特定の配置で有する特定のコンピュータシステムを説明および例示しているが、本開示は、任意の好適な数の任意の好適な構成要素を任意の好適な配置で有する任意の好適なコンピュータシステムを企図する。
【0046】
特定の実施形態では、プロセッサ802は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを含む。限定ではなく、一例として、命令を実行するために、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806に書き込み得る。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ802を企図する。限定ではなく、一例として、プロセッサ802は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含み得る。命令キャッシュ内の命令は、メモリ804またはストレージ806内の命令のコピーであり得、命令キャッシュは、プロセッサ802によるそれらの命令の取り出しを高速化し得る。データキャッシュ内のデータは、プロセッサ802において実行される命令が動作するためのメモリ804またはストレージ806内のデータのコピー、プロセッサ802において実行される後続の命令によるアクセスのための、またはメモリ804もしくはストレージ806への書込みのための、プロセッサ802で実行された前の命令の結果、または他の好適なデータであり得る。データキャッシュは、プロセッサ802による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ802のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ802を企図する。適切な場合、プロセッサ802は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ802を含み得る。本開示は、特定のプロセッサを説明および例示しているが、本開示は、任意の好適なプロセッサを企図する。
【0047】
特定の実施形態では、メモリ804は、プロセッサ802が実行するための命令、またはプロセッサ802が動作するためのデータを記憶するためのメインメモリを含む。限定ではなく、一例として、コンピュータシステム800は、ストレージ806または(例えば、別のコンピュータシステム800などの)別のソースからメモリ804に命令をロードし得る。次いで、プロセッサ802は、メモリ804から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ802は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中または実行後に、プロセッサ802は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。次いで、プロセッサ802は、それらの結果のうちの1つまたは複数をメモリ804に書き込み得る。特定の実施形態は、プロセッサ802は、1つまたは複数の内部レジスタまたは内部キャッシュ内の、もしくは(ストレージ806または他の場所とは対照的な)メモリ804内の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ内の、もしくは(ストレージ806または他の場所とは対照的な)メモリ804内のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスは、プロセッサ802をメモリ804に結合し得る。バス812は、以下で説明するように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ802とメモリ804との間に常駐し、プロセッサ802によって要求されるメモリ804へのアクセスを可能にする。特定の実施形態では、メモリ804はランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。さらに、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ804は、適切な場合、1つまたは複数のメモリ804を含み得る。本開示は、特定のメモリについて説明および例示しているが、本開示は、任意の好適なメモリを企図する。
【0048】
特定の実施形態では、ストレージ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を含み得る。本開示は、特定のストレージを説明および例示しているが、本開示は、任意の好適なストレージを企図する。
【0049】
特定の実施形態では、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デバイスのための任意の好適なI/Oインタフェース808とを企図する。適切な場合、I/Oインタフェース808は、プロセッサ802がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインタフェース808は、適切な場合、1つまたは複数のI/Oインタフェース808を含み得る。本開示は、特定のI/Oインタフェースを説明および例示しているが、本開示は、任意の好適なI/Oインタフェースを企図する。
【0050】
特定の実施形態では、通信インタフェース810は、コンピュータシステム800と、1つまたは複数の他のコンピュータシステム800または1つまたは複数のネットワークとの間の(例えば、パケットベースの通信などの)通信のための1つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、一例として、通信インタフェース810は、イーサネット(登録商標)または他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークおよびそのネットワークのための任意の好適な通信インタフェース810を企図する。限定ではなく、一例として、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線または無線であり得る。一例として、コンピュータシステム800は、(例えば、BLUETOOTH(登録商標)WPANなどの)無線PAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(例えば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)携帯電話ネットワーク、または他の好適な無線ネットワーク、またはこれらのうちの2つまたはそれ以上の組み合わせと通信し得る。コンピュータシステム800は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インタフェース810を含み得る。通信インタフェース810は、適切な場合、1つまたは複数の通信インタフェース810を含み得る。本開示は、特定の通信インタフェースについて説明および例示しているが、本開示は、任意の好適な通信インタフェースを企図する。
【0051】
特定の実施形態では、バス812は、コンピュータシステム800の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、一例として、バス812は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス812は、適切な場合、1つまたは複数のバス812を含み得る。本開示は、特定のバスについて説明および例示しているが、本開示は、任意の好適なバスまたは相互接続を企図する。
【0052】
本明細書では、1つまたは複数のコンピュータ可読の非一時的記憶媒体は、適切な場合、(例えば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読の非一時的記憶媒体、またはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読の非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性および不揮発性の組み合わせであり得る。
【0053】
その他
本明細書において、「または」は、明示的に別段の指示がない限り、またはコンテキストによって別段の指示がない限り、包括的であり、排他的ではない。従って、本明細書では、「AまたはB」は、明示的に別段の指示がない限り、またはコンテキストによって別段の指示がない限り、「A、B、または両方」を意味する。さらに、「および(and)」は、明示的に別段の指示がない限り、またはコンテキストによって別段の指示がない限り、共同および個別の両方である。従って、本明細書では、「AおよびB」は、明示的に別段の指示がない限り、またはコンテキストによって別段の指示がない限り、「AおよびBを共同でまたは個別に」を意味する。
【0054】
本開示の範囲は、当業者が理解するであろう、本明細書に説明または例示される例示的な実施形態に対する全ての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的な実施形態に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして本明細書のそれぞれの実施形態を説明および例示しているが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のいずれかに説明または例示される構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組み合わせまたは置換を含み得る。さらに、特定の機能を実行するように適合されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する装置またはシステム、あるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適合されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能がアクティブ化されるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。加えて、本開示は、特定の実施形態を特定の利点を提供するものとして説明または例示しているが、特定の実施形態は、これらの利点のいずれも提供しないか、これらの利点の一部または全部を提供し得る。
図1A
図1B
図2
図3A
図3B
図3C
図4A
図4B
図4C
図5
図6
図7
図8
【国際調査報告】