(57)【要約】【課題】説明される技術は、メモリに保管されており、３次元シーンにおける各ピクセルと関連する深度を定義する深度マップを受信し、かつ、第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義するように実行可能な深度レイシェーダを含む。ここで、第１ピクセル値と第２ピクセル値との間のカラーグラデーションにおける各連続ステップは、基準点に対して大きさが増加している対応する深度に対して割り当てられる。深度レイシェーダは、さらに、グラフィックスエンジンに、３次元シーンの選択部分に対して深度レイ層を適用させる命令を提供し、深度レイ層は、選択部分における各ピクセルを変更し、深度マップによって指定されたピクセルの深度に対応するようにカラーグラデーションの中で定義されたピクセル値を想定する。
2021532470.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、前記メモリに保管された深度レイシェーダと、
を含む、システムであって、
前記深度レイシェーダは、
３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信し、
第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義し、
第１ピクセル値と第２ピクセル値との間の前記カラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられており、
前記３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供し、
前記深度レイ層は、前記３次元シーンの前記選択部分における各ピクセルを変更し、前記深度マップによって前記ピクセルと関連付けられた前記深度に対応する、前記カラーグラデーションから選択されたピクセル値を想定する、
ように、実行可能である、
システム。
【請求項２】
前記３次元シーンの前記選択部分は、少なくとも１つの前景オブジェクトを取り囲む周囲によって境界が作られ、
前記前景オブジェクトは、前記周囲の内部のピクセルによって画定され、かつ、前記深度レイ層から除外される、
請求項１に記載のシステム。
【請求項３】
前記深度レイ層は、前記３次元シーンの少なくとも１つの背景オブジェクトのピクセル値を変更する、
請求項２に記載のシステム。
【請求項４】
前記３次元シーンの前記選択部分は、透明な前景オブジェクトを含み、
前記深度レイ層は、少なくとも１つの背景オブジェクトの形状を示すために、前記透明な前景オブジェクトの境界の内部のピクセル値を変化させる、
請求項１に記載のシステム。
【請求項５】
前記深度レイシェーダは、前記３次元シーンの前記選択部分における少なくとも１つの前景オブジェクトのピクセル値に基づいて、前記カラーグラデーションを定義し、
前記定義されたカラーグラデーションの各値は、前記少なくとも１つの前景オブジェクトとの閾値コントラスト比を提供する、
請求項１に記載のシステム。
【請求項６】
前記深度レイシェーダは、ユーザが選択可能なカラープリファレンスに基づいて、カラーグラデーションを定義する、
請求項１記載のシステム。
【請求項７】
前記カラーグラデーションは、色調、トーン、およびシェードのうち少なくとも１つにおいて、別の色相から変化する同じ色相のピクセル値の範囲を画定する、
請求項１に記載のシステム。
【請求項８】
３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信するステップと、
第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義するステップであり、
第１ピクセル値と第２ピクセル値との間の前記カラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられている、ステップと、
前記３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供するステップであり、
前記深度レイ層は、前記３次元シーンの前記選択部分における各ピクセルを変更し、前記深度マップによって前記ピクセルと関連付けられた前記深度に対応する、前記カラーグラデーションに含まれるピクセル値を想定する、
ステップと、
を含む、方法。
【請求項９】
前記３次元シーンの前記選択部分は、少なくとも１つの前景オブジェクトを取り囲む周囲によって境界が作られ、
前記前景オブジェクトは、前記周囲の内部のピクセルによって画定され、かつ、前記深度レイ層から除外される、
請求項８に記載の方法。
【請求項１０】
前記深度レイ層は、前記３次元シーンの少なくとも１つの背景オブジェクトのピクセル値を変更する、
請求項８に記載の方法。
【請求項１１】
前記３次元シーンの前記選択部分は、透明な前景オブジェクトを含み、
前記深度レイ層は、少なくとも１つの背景オブジェクトの形状を示すために、前記透明な前景オブジェクトの境界の内部のピクセル値を変化させる、
請求項８に記載の方法。
【請求項１２】
前記カラーグラデーションを定義する前記ステップは、さらに、
前記３次元シーンの前記選択部分における少なくとも１つの前景オブジェクトのピクセル値に基づいて、前記カラーグラデーションを定義するステップ、を含み、
前記定義されたカラーグラデーションの各値は、前記少なくとも１つの前景オブジェクトとの閾値コントラスト比を提供する、
請求項８に記載の方法。
【請求項１３】
前記カラーグラデーションを定義する前記ステップは、さらに、
ユーザが選択可能なカラープリファレンスに基づいて、カラーグラデーションを定義するステップ、を含む、
請求項８に記載の方法。
【請求項１４】
前記カラーグラデーションは、色調、トーン、およびシェードのうち少なくとも１つにおいて、別の色相から変化する同じ色相のピクセル値の範囲を画定する、
請求項８に記載の方法。
【請求項１５】
コンピュータプロセスを実行するための１つ以上の符号化された命令を含む有形のコンピュータで読取り可能な記憶媒体であって、
前記コンピュータプロセスは、
３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信するステップと、
第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義するステップであり、
第１ピクセル値と第２ピクセル値との間の前記カラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられている、ステップと、
前記３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供するステップであり、
前記深度レイ層は、前記３次元シーンの前記選択部分における各ピクセルを変更し、前記深度マップによって前記ピクセルと関連付けられた前記深度に対応する、前記カラーグラデーションに含まれるピクセル値を想定する、
ステップと、
を含む、コンピュータで読取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
アプリケーショングラフィックスおよびユーザーインターフェイスを設計するときに、ソフトウェア開発者は、選択されたピクセルの色、テクスチャ、およびシェーディングが、前景オブジェクトと背景オブジェクトの間との適切なコントラストを提供することを確実にするように努力する。白色テキストがベージュ色の背景に置かれるといった、前景オブジェクトと背景オブジェクトとの間で低レベルのコントラストが存在する場合に、前景オブジェクトは見にくくなり得る。さらに、いくらかの開発者は、視覚障害（例えば、色盲）を伴う人がサービスについて平等なアクセスを有することを確実にするといった、設定された色のコントラスト要件を定義する規制上の差別禁止ガイドラインを遵守するように努めている。この理由のため、多くのコンピュータオペレーティングシステムは、コンピュータスクリーン上に表示される前景オブジェクトと背景オブジェクトとの間のコントラストレベルをユーザが選択的に増加させることを可能にする調整可能なコントラスト設定を提供している。
【０００２】
３Ｄアプリケーションでは、前景オブジェクトおよび背景オブジェクトが、相互に頻繁にシフトし得るので、急速に台頭している３Ｄ仮想現実（virtual  reality）及び／又は拡張現実（augmented  reality）テクノロジー業界で働くソフトウェア開発者にとっては、前景オブジェクトと背景オブジェクトとの間の適切なコントラストを確保することと関連するチャレンジが著しく増大されている。
【発明の概要】
【０００３】
３次元シーンにおける視覚的ノイズを低減するためのシステムは、３次元シーンにおける各ピクセル（pixel）と関連する深度（depth）を指定する深度マップを受信し、そして、第１ピクセル値と第２ピクセル値との間にまたがるカラーグラデーション（color  gradient）の色に対して深度値（depth  value）を割り当てる、深度レイシェーダ（depth  ray  shader）を含んでいる。一つの実施形態において、第１ピクセル値と第２ピクセルとの間のカラーグラデーションの各連続ステップは、基準点（reference  point）に関して大きさが増加している対応する深度に割り当てられる。深度レイシェーダは、さらに、グラフィックスエンジンによって実行可能な命令を提供するように実行可能であり、３次元シーンの選択部分を深度レイ層（depth  ray  layer）で置き換える。深度レイ層は、選択された部分の各ピクセルを変更して、深度マップによってピクセルと関連付けられた深度に対応するカラーグラデーションの中に含まれるピクセルの深度に対応するように、カラーグラデーションの中で定義されるピクセル値を想定（assume）する。
【０００４】
この概要は、以下の詳細な説明においてさらに記述される概念のセレクションを簡略化された形式で紹介するために提供されている。この概要は、請求される技術的事項（subject  matter）の主要な特徴または本質的な機能を特定するように意図されたものではなく、また、請求される技術的事項の範囲を限定するために使用されるように意図されたものでもない。以下の詳細な説明を読めば、これら及び様々な他の特徴および利点が明らかであろう。
【図面の簡単な説明】
【０００５】
【図１】図1は、グラフィックスシステムの一つの例を示しており、プロセッサによってレンダリングされた３次元シーンの部分を、バックグラウンドノイズを低減するピクセル値と選択的に置き換え、一方で、また、３次元シーン内のオブジェクトの深度および形状も保存している。
【図２】図2は、一つの例示的な深度レイ層を適用する前後でのプロセッサでレンダリングされた（processor-rendered）シーンの画像を示している。
【図３】図3は、プロセッサでレンダリングされた３次元シーンに対して適用される別の例示的な深度レイ層を示している。
【図４】図4は、プロセッサでレンダリングされた３次元シーンに対して適用されるさらに別の例示的な深度レイ層を示している。
【図５】図5は、プロセッサでレンダリングされた３次元シーンにおける視覚的ノーズを低減するように深度レイ層を適用するための例示的なオペレーションを示している。
【図６】図6は、開示さるた技術の態様を実施するのに適した処理装置に係る一つの例示的な概略図を示している。
【発明を実施するための形態】
【０００６】
３Ｄアプリケーションにおいて、オブジェクトは、しばしば、他のオブジェクトに対して空間に浮いて見えるように設計されており、そして、ユーザと同じ座標系内で固定されている。ユーザが歩き回ると、前景オブジェクトと背景オブジェクトの相対的位置は、ユーザの位置に基づいて、相互に対してシフトする。例えば、ユーザは、前景オブジェクトの前方で左から右へ歩くことができ、または、前景オブジェクトの周りを歩くことさえできる。この移動の最中に、背景オブジェクトは、前景オブジェクトに対してユーザの視線（line  of  sight）と一貫した位置においてシフトする。結果として、背景オブジェクトと前景オブジェクトとの間のアライメント（alignment）が連続的に変化し得る。前景オブジェクトと背景オブジェクトとの間のアライメントにおける、この一定で、ユーザ依存の変動は、ユーザの３Ｄ体験の全体を通して、連続的に適切なコントラストを確保することにおける困難さを増加させる。ここにおいて使用される場合、「十分なコントラスト（“adequate  contrast”）」とは、定義された閾値を満足するコントラスト比を指す。いくつかの管轄区域では、他の規制上のガイドラインが、スクリーン上のテキストまたは他のグラフィックスのサイズに依存し得る最小コントラスト比を提供している。
【０００７】
バックグラウンドノイズを低減する（かつ、それによって、コントラストを増加する）ための１つの一般的なアプローチは、前景オブジェクトを判読（decipher）するユーザの能力を妨害し得るシーンの背景領域をぼやかす（blur）ために、種々の視覚的効果を使用することである。例えば、シーンの背景領域が、テクスチャを低減するようにぼやかされてよく、そして、テキストが、次いで、ぼやけた領域の上に提示されてよい。ぼやかし（blurring）は、実装するために計算コストがかかり得るものであり、そして、従って、全てのアプリケーションにおいて実現可能なものではない。さらに、３Ｄ環境におけるぼやかしは、いくらかのユーザに対して迷惑をかけることも知られている。
【０００８】
適切な前景および背景のコントラストを確保するためのさらに別のアプローチは、前景オブジェクトとオーバーラップしている領域または近位の領域における背景オブジェクトを単純に「消去（“erase”）」することである。例えば、浮いている白色テキストは、シーンの背景を表すピクセルに直接的に隣接し（接触するエッジを有している）分離して浮動しているものと比較して、シーンの中央における中実な黒色の四角形に対して提示されてよい。しかしながら、仮想現実のアプリケーションにおいて、３Ｄ連続性の突然の崩壊は、方向感覚の喪失（disorientation）、めまい、および、場合によっては乗り物酔いのフィーリングを含むユーザの不快感を引き起こすことが知られている。これらの理由のため、背景オブジェクトの形状、および、それらのオブジェクトと関連する深度に係るユーザの一般的な知覚を維持しながらも、適切なコントラストを確保するソリューションを提供することが望ましい。
【０００９】
ここにおいて開示される技術は、背景オブジェクトの色およびテクスチャを、ここにおいて「深度レイ層（“depth  ray  layer”）」として参照されるスライディングスケール（sliding-scale）のカラーグラデーションから選択された深度ベース（depth-based）のピクセル値に置き換えるように、選択されたピクセル値を変更することによって、ノイズを選択的に低減（かつ、それによって、コントラストを改善）するために実装され得るグラフィカル技術を提供する。一つの実装に従って、深度レイ層は、根底にある（underlying）（例えば、背景）オブジェクトの色およびコントラストを制御するように、イマーシブ（immersive）な３Ｄ体験にわたり選択的に引き出される。深度レイ層は、滑らかなカラーランプを画定し、ここで、ランプに沿った各ステップは、ユーザから増加または減少している対応する距離に割り当てられる。例えば、だんだん濃くなる青色のシェード（shade）が、ユーザからだんだん遠い距離に対して割り当てられてよい。
【００１０】
深度レイ層の適用は、シーンの定義された領域をマスクする効果を有し、オリジナルの背景色とテクスチャを取り除く。オリジナルのピクセル値は、ユーザに関して対応するシーンのオブジェクトの深度に基づいて選択された滑らかなカラーランプからの値で置き換えられる。この技術は、仮想オブジェクトの形状、および、ユーザに対するそれらの仮想オブジェクトの見かけの深度を保存し、一方で、また、低い計算コストで、かつ、ユーザの方向感覚の喪失を生じさせること、または、ユーザの３Ｄ体験を中断することなく、ノイズを低減する。以下でさらに説明するように、深度レイ層は、３Ｄシーン全体の背景をマスクするため、または、前景テキストの背後にある部分といった、３Ｄシーンの一部を選択的にマスクするために適用され得る。
【００１１】
図1は、プロセッサによってレンダリングされた３次元シーンの部分を、バックグラウンドノイズを低減し、一方で、３次元シーン内のオブジェクトの深度および形状を保存するピクセル値に選択的に置き換える例示的なグラフィックスシステム100を示している。ここにおいて使用される「ノイズ（“noise”）」とは、前景色および背景色が類似しており、かつ、２つの比率が所定の閾値を超える場合といった、低レベルのコントラストを指す。グラフィックスシステム100は、中央処理装置112によって実行可能な１つ以上のアプリケーションを保管するメモリ110を含む処理装置102内に組み込まれている。CPU112に加えて、処理装置102は、ユーザ106の視野内で（例えば、スクリーン上のピクセル、または、３次元空間へのピクセルの投影のいずれかとして）グラフィックスをレンダリングするために、種々のアプリケーションからのレンダリング命令を実行する、グラフィックス処理ユニット（GPU）108を含み得る。
【００１２】
図1において、メモリ110は、２つのアプリケーションを含むように示されている−深度レイシェーダ104およびVR/ARアプリケーション114である。ここにおいて使用されるように、「VR/AR」アプリケーションは、ユーザに３Ｄ体験を提供するあらゆる仮想現実または拡張現実アプリケーションを指す。一般的に、深度レイシェーダ104は、VR/ARアプリケーション114によって生成されたグラフィックスの視覚的コントラストを改善するために、ピクセル値を選択的に変更するように実行可能であり、一方で、様々なグラフィックスオブジェクトと関連する形状および相対的な深度を保持している。深度レイシェーダ104のオペレーションは、主に、３Ｄアプリケーションにおけるノイズ低減に関して議論されるが（例えば、オブジェクトが相互に対してシフトするように頻繁に示されている場合）、同一または類似の技術が、２Ｄアプリケーションにおけるノイズ低減について同様な効用を伴って同様に実装され得ることが理解されるべきである。従って、いくつかの実装において、VR/ARアプリケーション114は、２Ｄアプリケーションである。
【００１３】
処理装置102は、異なる実装（例えば、モバイル装置、デスクトップコンピュータ、タブレット）において様々な形態を想定し得るが、図1において、処理装置102は、ユーザ106の視野の中に仮想コンテンツを投影するために１つ以上の光学システムを使用するヘッドマウント型装置（HMD）であるように示されている。この実装において、HMDデバイスは、仮想現実モード（ユーザがもっぱら仮想環境だけを見る場合）、または、拡張現実モード（ユーザが現実世界の環境に対して投影された１つ以上の仮想オブジェクトを見る場合）といった、１つ以上の複合現実（mixed  reality）使用モードにおけるオペレーションのために構成されている。
【００１４】
様々な実装において、深度レイシェーダ104は、VR/ARアプリケーション114に対するプラグインの形態、オペレーティングシステムツール、または、（例えば、GPU  API130内の）GPU108へのアプリケーションプログラミングインターフェイス（API）の一部として、といった異なる方法において実装され得る。
【００１５】
VR/ARアプリケーション114によって選択的に呼び出されると、深度レイシェーダ104は、VR/ARアプリケーション114によってアクティブに（actively）レンダリングされているグラフィカルシーン（以下「シーン118」という）の中のピクセルのサブセットを変更するために深度レイ層116をレンダリングするように、GPU  API130に命令を与える。深度レイ層116は、関連領域におけるコントラストを改善するために、シーンピクセルのサブセットについて値を変更するために適用されるマスクとして理解され得る。
【００１６】
一つの実施形態において、深度レイ層116は、シーン118の離散（discrete）ピクセル領域に対して適用される。図1に示される概ね長方形の領域（シーン118の中でユーザの見かけ上の３次元的な存在を示すために湾曲を伴う）といったものである。離散ピクセル領域は、シーン118内の１つ以上の背景オブジェクトを含んでよく、かつ／あるいは、ユーザ106の現在の視線に従って、前景オブジェクト（例えば、テキスト）に隣接して現れるシーン118の一部分をスパン（span）してよい。さらに他の実装において、深度レイ層116は、シーン118のサブセットではなく、シーン118の全てのピクセルに対して適用される。深度レイ層116は―図1におけるように―（例えば、シーン118内に示される白色テキストを除外することによって）前景オブジェクトを表すために定義されたピクセルを選択的に除外するように定義され得る。
【００１７】
一つの実施形態において、VR/ARアプリケーション114は、既定のシーンクライテリアの満足に応答して深度レイ層116を提示するように、深度レイシェーダ104を選択的に呼び出す。所定のメニューオプションが提示されているとき、または、ユーザの動き（例えば、周囲を見回していること）が、不十分なコントラストで前景および背景オブジェクトを相互のアライメントへと移動させ得る可能性が存在するとき、といったものである。
【００１８】
深度レイシェーダ104は、ユーザ106に対してシーン118内の様々なオブジェクトのz方向深度を定義する深度マップ128へのアクセスを有している。図1において、深度レイシェーダ104は、GPU  API130によって管理される深度バッファ126から深度マップ128を取り出す（retrieve）。深度レイシェーダ104は、深度マップ128を使用して、深度レイ層116と関連して予め定義されたピクセルのセットについて新しいピクセル値を選択する。深度バッファ126をこのように再目的化することにより、深度レイ層116は、最小の処理コストで実装され得る。
【００１９】
深度レイシェーダ104は、滑らかなカラーランプ120、ここにおいてカラーグラデーション（color  gradient）とも呼ばれるもの、を定義する。図1においては白黒で示されているが、滑らかなカラーランプ120は、色調、トーン、およびシェード（shade）のうち少なくとも１つにおいて相互に変化する１つ以上の色相（色）を含み得る。例えば、滑らかなカラーランプ120は、明るい青色から暗い青色までの範囲の、青色ピクセル値の範囲を含み得る。図1に示されるように、滑らかなカラーランプ120は、第１ピクセル値122と第２ピクセル値124との間に延在しており、それらの間で可変ピクセル値（例えば、変化する色調、トーン、及び／又は、シェード）の滑らかなランプを伴う。深度レイシェーダ104は、滑らかなカラーランプ120における各連続ステップに、増加する大きさの深度値を割り当てる。例えば、特定の光シェードピクセル値（light  shade  pixel  value）が、ユーザ106から１ｍのオブジェクトの深度に対して割り当てられ、一方で、特定の媒体シェードピクセル値が、ユーザ106から４ｍのオブジェクトの深度に対して割り当てられ、かつ、特定の暗いシェードピクセル値が、ユーザ106から１０ｍのオブジェクトの深度に対して割り当てられ得る。
【００２０】
滑らかなカラーランプ120の値は、異なる実装において、異なる方法で選択され得る。一つの実施形態においては、第１ピクセル値122が、深度マップ128において現在の最も浅い深度値（例えば、最も近いオブジェクト）に対応するように設定され、一方、第２ピクセル値124が、深度マップ128において現在最も深い深度値（例えば、最も遠いオブジェクト）に対応するように設定される。カラーグラデーション内に含まれる実際の色相（hue）が、同様に予め定義されてよい。一つの実施形態において、滑らかなカラーランプ120に含まれる色（color）は、深度レイ層116のピクセルに隣接し、かつ／あるいは、ユーザの視線に沿ってそうしたピクセルをオーバーラップする前景オブジェクトといった、深度レイ層116のピクセルに隣接して配置された前景オブジェクト（例えば、ピクセルの既定（predefined）のサブセット）の色に基づいて選択される。別の実装において、前景オブジェクトは、ユーザ106の個人化されたプリファレンスに基づいて選択され、滑らかなカラーランプ120に含まれる色は、VR/ARアプリケーション114のためのユーザの識別プロファイルにおいて定義されたプリファレンスに基づいて選択される。
【００２１】
シーン118と関連付けられた滑らかなカラーランプ120および深度マップ128を使用して、深度レイシェーダ104は、深度レイ層116のアプリケーションによって影響を受けるピクセルの規定のサブセット内にも含まれる深度マップ128によって表される各ピクセルに対応する、滑らかなカラーランプ120からピクセル値を識別する。ピクセルのこの規定のサブセットは、以下、既定の深度レイ領域（depth  ray  region）として参照される。
【００２２】
規定の深度レイ領域における各ピクセルについて、深度レイシェーダ104は、ピクセル値（例えば、VR/ARアプリケーション114によって最初に定義されているもの）を選択的に変更し、深度マップ128によって定義されるように、シーン118内の対応するピクセルのz深度に対して割り当てられる滑らかなカラーランプ120内に含まれる値を想定する。例えば、既定の深度レイ領域は、シーン118の１つ以上の背景オブジェクトを含む離散ピクセル領域であり得る。これらのオブジェクトのうち、ユーザ106に対してより近接して現れるように定義されたものは、第１ピクセル値122によって表されるシェード（shade）に類似したシェードを表すピクセル値を有してよく、一方で、ユーザ106に対してさらに近接して現れるように定義されたものは、第２ピクセル値124により表されるシェードに類似したシェードを表すピクセル値を有する。
【００２３】
いくつかのアプリケーション（図2−図3に示されるようなもの）において、既定の深度レイ領域は、離散ピクセル領域（例えば、矩形ピクセル領域といった、囲まれたパラメータの内部の領域）を含むが、定義された前景オブジェクトと関連する離散ピクセル領域の境界の内部のピクセルに係る選択されたサブセットを除外する。同様に、図4に関してより詳細に示されるように、深度レイ層116は、他の実施において、前景オブジェクトが透明であるという外観（appearance）を与えるといった、１つ以上の前景オブジェクトの境界に対して部分的または全体的に内部にある離散的なピクセル領域を含み得る。
【００２４】
各使用例において、深度レイ層116は、それでなければシーン118の対応するピクセルにおいて見える視覚的ノイズを均等に低減または除去する。事実上、深度レイ層116は、シーンテクスチャを除去するが、シーンオブジェクトの形状および深度を保存し、深度レイ層116の中でカプセル化された異なるオブジェクト間の十分なコントラスト、及び／又は、深度レイ層116と、深度レイ層116から除外された前景オブジェクトとの間のコントラストを保証している。
【００２５】
図2は、一つの例示的な深度レイ層210の適用の前後での、プロセッサレンダリング（processor-rendered）・３次元シーン（以下、「シーン200」）の画像（202および204）を示している。シーン200は、ユーザから様々な深度において現れるように設計された多数のオブジェクトを含んでいる。シーン200に係る前の画像（before  image）202は、種々の背景オブジェクトに対するシーン前景（scene  foreground）において提示される白色テキスト208を示している（例えば、前景テキストおよび背景オブジェクトは、ユーザの視線に沿ってオーバーラップしている）。ここで、シーン背景（scene  background）における様々なテクスチャは、白色テキストの部分を読みにくくする、視覚的なノイズ（前景テキストとのコントラストが低い領域）を生成する。
【００２６】
シーン200に係る後の画像（after  image）204は、シーン200の離散ピクセル領域に対して深度レイ層210を適用することによって達成される、ノイズの低減を示している。深度レイ層210の様々な属性は、図1に関して説明されたのと同一または類似のものであってよい。ここで、深度レイ層210によって取り囲まれる離散ピクセル領域は、一般的に、ユーザの視野の中心を横切って水平方向に延びる矩形の領域である。離散ピクセル領域は、境界を有し（例えば、深度レイ層210を囲む白線によって示されている）、そして、この境界について内部の全てのピクセルは、前景テキストに対応するピクセルを除いて、深度レイ層210に含まれている。従って、前景テキストは、深度レイ層210から除外され、そして、その適用によって影響を受けない。
【００２７】
図1に関して説明したように、深度レイ層210は、カラーグラデーションを定義し、かつ、ユーザに関して異なる深度（z値座標）にカラーグラデーション内で増加する各ステップを割り当てる、深度レイシェーダによって生成され得る。一つの実施形態において、深度レイシェーダは、シーン200の各ピクセルに関する深度情報を取り出す。シーン200を生成している仮想現実アプリケーションと関連する既存の深度バッファにおけるデータにアクセスすることによる、といったものである。深度レイ発生器は、深度レイ層210内に含まれるように予め定義された各ピクセルを変更し、ピクセルの検索された深度（z値）に対応する定義されたカラーグラデーションから選択されたピクセル値を想定する。
【００２８】
深度レイ層210の例において、より浅い深度（より小さいz値）は、より白色のシェードと関連し、そして、増加する暗さ（darkness）のシェードは、増加する深度の距離に対応している。深度レイ層210の適用により、ユーザは、シーン200内の各オブジェクトに対する形状および距離について途切れることなく認識することができ、一方で、また、白色テキストといった、前景オブジェクトを容易に解読できるようにする保証された最小のコントラストも提供されている。
【００２９】
図2は黒と白で描かれているので、深度レイ層210のカラー勾配スケールが、前景テキストとのコントラストの十分に高い最小レベルを確実にするために選択され得る、この技術の他の現実世界のアプリケーションにおけるように、後の画像204によって示されるノイズの減少は視覚的に顕著ではない。例えば、前景テキストが白色であり、かつ、カラーグラデーションが青色の範囲（水色から濃青色まで）である場合に、深度レイ層210内の最も明るい青は、前景の白色テキスト208と十分な程度のコントラストを提供するように選択され得る。深度レイ層210は、任意の最小のコントラスト比を確保するように設計され得るが、本技術の一つの実装は、（例えば、前景テキストと深度レイ層210内の色との間で）最小のコントラスト比4.5対1を実装する。
【００３０】
図3は、プロセッサレンダリングされた３次元シーン（「シーン300」）に適用された別の深度レイ層310を示しており、図2で示されたシーン200と同一または類似の特徴を含んでいる。図3において、深度レイ層310は、図2の深度レイ層210を介して示されたものとは反対の方法に従って、種々の深度に対してカラーグラデーションをマッピングする。ここで、減少する暗さのシェード（shades）は、増加する深度の距離に対応している。従って、より浅い深度（より小さなz値）は、より暗いシェードと関連付けされ、かつ、より深い深度は、より明るいシェードと関連付けられる。詳細に説明されていない深度レイ層310の他の態様は、図1および2に関して説明されたのと同一または類似のものであってよい。
【００３１】
図4は、プロセッサレンダリングされた３次元シーン（「シーン400」）に適用されたさらに別の例の深度レイ層410を示している。シーン400は、子犬アバター406の前方に現れる前景における多数の選択可能なアイコンを含んでいる。これらの選択可能なアイコンの１つであるアイコン408は、図示されるように、子犬アバター406と整列したときに半透明に見えるように設計されている。深度レイ層410は、アイコン408の境界の内部のピクセル値を変更し、子犬アバター406の形状を示しながら、一方で、同時に視覚的ノイズを軽減している。従って、子犬アバター406の輪郭が、アイコン408の内部の領域において見えている。図2−図3における例示的な深度レイ層とは対照的に、深度レイ層410は、前景オブジェクトの境界の内部にあるピクセルについて排他的に影響を及ぼす。この実施例において、深度レイ層410は、２つのピクセル値を含んでいる−子犬アバター406と関連する深度に対応する１つのピクセル値および子犬アバター406の背後のシーンの深度と関連する深度に対応する別のピクセル値である。
【００３２】
図5は、プロセッサレンダリングされた３次元シーンの中の視覚的ノイズを低減するために、深度レイ層を適用するための例示的なオペレーション500を示している。トリガー検出オペレーション502は、現在のシーン条件が、深度レイ層の適用をトリガーするために既定の基準を満足するか否かを判断する。
【００３３】
異なる実装において、既定の基準は、異なる形態を想定してよく、そして、定義された条件の範囲の満足に応答して深度レイ層が適用されてよい。一つの実装においては、シーンの前面におけるメニューオプションの提示（例えば、テキスト及び／又はアイコン）を要求する入力をユーザが提供する場合に、既定の基準が満たされているとみなされる。別の実装においては、不十分なコントラストが生じる閾値確率が存在する場合に、既定の基準が満たされる。シーンが、ユーザが特定のアクションをとる場合に整列する可能性がある類似の色の前景オブジェクトおよび背景オブジェクトを含む場合、といったものである。さらに別の実装においては、深度レイ層の適用を意図的にトリガーする入力をユーザが提供する場合に、既定の基準が満たされる。アプリケーションメニューから「高コントラスト」のオプションを選択することによる、といったものである。
【００３４】
トリガー検出オペレーション502が、現在のシーン条件が、深度レイ層の適用をトリガーする既定の基準を満たさないと判断した場合には、既定の基準が満たされるまで待機オペレーション504に入る。
【００３５】
一旦、トリガー検出オペレーション502が、現在のシーン条件が既定の基準を満たしていると判断すると、深度マップ検索オペレーション506は、３次元シーンに対応する深度マップを取り出す。深度マップは、深度レイ層によって影響が及ぼされる既定のサブセットの各ピクセルと関連する深度を指定する。一つの実装において、深度マップ検索オペレーション506は、３次元シーンにおけるレンダリングのためにプロセッサ実行可能命令をアクティブに生成するアプリケーションと関連する既存の深度バッファから深度マップを取り出す。
【００３６】
定義オペレーション508は、第１色と第２色との間の、シェード、色調、及び／又は、トーンの滑らかなランプを含むカラーグラデーションを定義する。一つの実装において、カラーグラデーションは、同じ色相の異なるシェード、トーン、および、色調を含んでいる。例えば、カラーグラデーションは、明るい赤から暗い赤まで、またはその逆の、範囲の赤の範囲を定義している。
【００３７】
深度割り当てオペレーション510は、カラーグラデーションによって表される各連続ステップに対して、増加する大きさ（magnitude）の深度を割り当てる。一つの実装において、深度マップ割り当てオペレーション510は、カラーグラデーションによって表されるピクセル値の全範囲を取り囲むように、深度マップに含まれる深度値の範囲をスケーリング（scaling）することによって実行される。例えば、カラーグラデーションの第１端部は、深度マップに含まれる最も浅い深度（最小のZ値）に対応するように定義されてよく、一方で、カラーグラデーションの第２端部は、深度マップに含まれる最も深い深度（最大のZ値）に対応するように定義されてよい。
【００３８】
ピクセル置き換えオペレーション512は、グラフィックスエンジンに、シーンピクセルの規定のサブセット内の各ピクセルを、深度マップが対応するシーンピクセルと関連するのと同じ深度に対しても（割り当てオペレーション510によって）割り当てられるカラーグラデーションから選択される新しいピクセル値と選択的に置き換えるように実行可能な１つ以上の命令を提供する。
【００３９】
図6は、開示される技術の態様を実装するのに適した処理装置600の例示的な概略図を示している。処理装置600は、１つ以上のプロセッサユニット602、メモリ604、ディスプレイ606、および、他のインターフェイス608（例えば、ボタン）を含んでいる。メモリ604は、一般的に、揮発性メモリ（例えば、RAM）および不揮発性メモリ（例えば、フラッシュメモリ）の両方を含んでいる。Microsoft社のWindows(R)オペレーティングシステム、Microsoft社のWindows(R)Phoneオペレーティングシステム、または、ゲーム装置用に設計された特定のオペレーティングシステムといった、オペレーティングシステム610は、メモリ604内に存在し、そして、プロセッサユニット602によって実行されるが、他のオペレーティングシステムが使用され得ることが理解されるべきである。
【００４０】
図1の深度レイシェーダ104といった、１つ以上のアプリケーション612が、メモリ604内にロードされ、そして、プロセッサユニット602によってオペレーティングシステム610上で実行される。アプリケーション612は、マイクロホン634、入力アクセサリ635（例えば、キーパッド、マウス、スタイラス、タッチパッド、ゲームパッド、レーシングホイール、ジョイスティック）といった様々な入力装置から、または、１つ以上のカメラ、近接センサ、等といった様々な環境センサ636から入力を受け取ることができる。処理装置600は、VRまたはAR装置モードで動作するときに、アプリケーション612の仮想オブジェクトを投影するための投影光学系632を含んでいる。処理装置600は、さらに、１つ以上のバッテリまたは他の電源によって給電され、そして、処理装置600の他のコンポーネントに対して電力を供給する電源616を含む。電源616は、また、内蔵バッテリまたは他の電源を無効にし、または、再充電する外部電源（図示なし）に対して接続されてもよい。
【００４１】
処理装置600は、ネットワーク接続性（例えば、移動電話ネットワーク、Wi-Fi(R)、ブルートゥース（登録商標））を提供するために、１つ以上の通信トランシーバ630およびアンテナ638を含んでいる。処理装置600は、また、位置決めシステム（例えば、全地球測位衛星トランシーバ）、１つ以上の加速度計、１つ以上のカメラ、オーディオインターフェイス（例えば、マイクロホン634、オーディオアンプ、およびスピーカ、及び／又はオーディオジャック）、および、ストレージ装置628、といった様々な他のコンポーネントも含み得る。他の構成も、また、採用され得る。
【００４２】
一つの例示的な実装において、モバイル・オペレーティングシステム、種々のアプリケーション（例えば、深度レイシェーダ）、および、他のモジュールおよびサービスは、メモリ604及び／又はストレージ装置628に保管され、かつ、プロセッサユニット602によって処理される命令によって具現化されるハードウェア及び／又はソフトウェアを有し得る。メモリ604は、ホスト装置またはホストに結合するアクセサリのメモリであってよい。
【００４３】
処理装置600は、種々の有形のコンピュータで読取り可能な記憶媒体および無形のコンピュータで読取り可能な通信信号を含み得る。有形のコンピュータで読取り可能なストレージは、処理装置600によってアクセスされ得る任意の利用可能な媒体によって具現化することができ、そして、揮発性および不揮発性の記憶媒体、取り外し可能および取り外し不可能な記憶媒体の両方を含む。有形のコンピュータで読取り可能な記憶媒体は、無形および一時的な通信信号を除外し、そして、コンピュータで読取り可能な命令、データ構造、プログラムモジュール、または他のデータといった、情報の保管のための任意の方法または技術において実装される揮発性および不揮発性、取り外し可能および取り外し不可能な記憶媒体を含む。有形のコンピュータで読取り可能な記憶媒体は、これらに限定されるわけではないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CDROM、デジタル多用途ディスク（DVD）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、もしくは、所望の情報を保管するために使用することができ、かつ、処理装置600によってアクセスすることができる任意の他の有形な媒体を含んでいる。有形のコンピュータで読取り可能な記憶媒体とは対照的に、無形のコンピュータで読取り可能な通信信号は、コンピュータで読取り可能な命令、データ構造、プログラムモジュール、もしくは、搬送波または他の信号転送機構といった、変調されたデータ信号に存在する他のデータを具現化することができる。用語「変調されたデータ信号（”modulated  data  signal”）」は、１つ以上のその特性のセットを有し、または、信号内の情報を符号化するような方法で変更された信号を意味する。例として、そして、限定するものではなく、無形の通信信号は、有線ネットワークまたは直接有線接続といった有線媒体、そして、音響、RF、赤外線、および、他の無線媒体といった無線媒体、を含む。
【００４４】
いくつかの実装形態は、製造物品を含み得る。製造物品は、ロジックを保管する有形の記憶媒体を含み得る。記憶媒体の例は、電子データを保管することができる１つ以上のタイプのプロセッサで読取り可能な記憶媒体を含んでよく、揮発性メモリまたは不揮発性メモリ、リムーバブルまたは非リムーバブルメモリ、消去可能または非消去可能メモリ、書き込み可能または再書き込み可能メモリ、等を含んでいる。ロジックの例は、種々のソフトウェアエレメントを含む。ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、オペレーションセグメント、メソッド、プロシージャ、ソフトウェアインターフェイス、アプリケーションプログラムインターフェイス（API）、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、バリュー、シンボル、または、これらの任意の組合せ、といったものである。一つの実施形態において、例えば、製造物品は、コンピュータによって実行されるとき、説明された実施形態に従って、方法及び／又はオペレーションをコンピュータに実行させる、実行可能なコンピュータプログラム命令を保管し得る。実行可能なコンピュータプログラム命令は、任意の適切なタイプのコードを含み得る。ソースコード、コンパイルされたコード、解釈されたコード、実行可能なコード、静的コード、動的コード、等といったものである。実行可能なコンピュータプログラム命令は、所定のオペレーションセグメントを実行するようにコンピュータに指示するために、規定のコンピュータ言語、方法、または構文に従って実装され得る。命令は、任意の適切なハイレベル、低レベル、オブジェクト指向、視覚的、コンパイルされ、かつ／あるいは、解釈されたプログラミング言語を使用して実装され得る。
【００４５】
ここにおいて開示される一つの例示的なシステムは、３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信し、かつ、第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義する、深度レイシェーダを含む。ここで、第１ピクセル値と第２ピクセル値との間のカラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられている。深度レイシェーダは、３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供し、３次元シーンの選択部分における各ピクセルを変更して、深度マップによってピクセルと関連付けられた深度に対応する、カラーグラデーションから選択されたピクセル値を想定する。
【００４６】
任意の先行するシステムに従った、別の例示的なシステムにおいて、３次元シーンの選択部分は、周囲の内部のピクセルによって画定される、少なくとも１つの前景オブジェクトを取り囲む周囲によって境界が作られ、そして、深度レイ層から除外される。任意の先行するシステムに従った、さらに別の例示的なシステムにおいて、深度レイ層は、３次元シーンの少なくとも１つの背景オブジェクトのピクセル値を変更する。
【００４７】
任意の先行するシステムに従った、なおも別の例示的なシステムにおいて、３次元シーンの選択部分は、透明な前景オブジェクトを含み、そして、深度レイ層は、少なくとも１つの背景オブジェクトの形状を示すために、透明な前景オブジェクトの境界の内部のピクセル値を変化させる。
【００４８】
任意の先行するシステムに従った、なおも別の例示的なシステムにおいて、深度レイシェーダは、３次元シーンの選択部分における少なくとも１つの前景オブジェクトのピクセル値に基づいて、カラーグラデーションを定義し、そうして、定義されたカラーグラデーションの各値は、少なくとも１つの前景オブジェクトとの閾値コントラスト比を提供する。
【００４９】
任意の先行するシステムに従った、さらに別の例示的なシステムにおいて、深度レイシェーダは、ユーザが選択可能なカラープリファレンスに基づいて、カラーグラデーションを定義する。
【００５０】
任意の先行するシステムに従った、なおも、さらに別の例示的なシステムにおいて、カラーグラデーションは、色調、トーン、およびシェードのうち少なくとも１つにおいて、別の色相から変化する同じ色相のピクセル値の範囲を画定する。
【００５１】
ここにおいて開示される一つの例示的な方法は、３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信するステップと、第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義するステップであり、そうして、第１ピクセル値と第２ピクセル値との間のカラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられているステップと、を含む。本方法は、さらに、３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供するステップを含み、３次元シーンの選択部分における各ピクセルを変更し、深度マップによってピクセルと関連付けられた深度に対応する、カラーグラデーションに含まれるピクセル値を想定する。
【００５２】
任意の先行する方法に従った、別の例示的な方法において、３次元シーンの選択部分は、少なくとも１つの前景オブジェクトを取り囲む周囲によって境界が作られ、そして、前景オブジェクトは、深度レイ層から除外される、周囲の内部のピクセルによって画定される。
【００５３】
任意の先行する方法に従った、さらに別の例示的な方法において、深度レイ層は、３次元シーンの少なくとも１つの背景オブジェクトのピクセル値を変更する。
【００５４】
任意の先行する方法に従った、なおも別の例示的な方法において、３次元シーンの選択部分は、透明な前景オブジェクトを含み、そして、深度レイ層は、少なくとも１つの背景オブジェクトの形状を示すために、透明な前景オブジェクトの境界の内部のピクセル値を変化させる。
【００５５】
任意の先行する方法に従った、なおも、さらに別の例示的な方法において、カラーグラデーションを定義するステップは、さらに、３次元シーンの選択部分における少なくとも１つの前景オブジェクトのピクセル値に基づいて、カラーグラデーションを定義するステップを含み、そうして、定義されたカラーグラデーションの各値は、少なくとも１つの前景オブジェクトとの閾値コントラスト比を提供する。
【００５６】
任意の先行する方法に従った、なおも別の例示的な方法において、カラーグラデーションは、ユーザが選択可能なカラープリファレンスに基づいて定義される。
【００５７】
任意の先行する方法に従った、さらに別の例示的な方法において、カラーグラデーションは、色調、トーン、およびシェードのうち少なくとも１つにおいて、別の色相から変化する同じ色相のピクセル値の範囲を画定する。
【００５８】
ここにおいて開示される一つの例示的なコンピュータプロセスは、３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信するステップと、第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義するステップであり、そうして、第１ピクセル値と第２ピクセル値との間のカラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられているステップと、を含む。コンピュータプロセスは、さらに、３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供するステップを含み、深度レイ層は、３次元シーンの選択部分における各ピクセルを変更し、深度マップによってピクセルと関連付けられて定義された深度に対応する、カラーグラデーションに含まれるピクセル値を想定する。
【００５９】
任意の先行するコンピュータプロセスに従った、別の例示的なコンピュータプロセスにおいて、３次元シーンの選択部分は、深度レイ層から除外される、周囲の内部のピクセルによって画定される少なくとも１つの前景オブジェクトを取り囲む周囲によって境界が作られる。
【００６０】
任意の先行するコンピュータプロセスに従った、さらに別の例示的なコンピュータプロセスにおいて、深度レイ層は、３次元シーンの少なくとも１つの背景オブジェクトのピクセル値を変更する。
【００６１】
任意の先行するコンピュータプロセスに従った、なおも別の例示的なコンピュータプロセスにおいて、カラーグラデーションは、３次元シーンの選択部分における少なくとも１つの前景オブジェクトのピクセル値に基づいて定義され、そうして、定義されたカラーグラデーションの各値は、少なくとも１つの前景オブジェクトとの閾値コントラスト比を提供する。
【００６２】
任意の先行するコンピュータプロセスに従った、別の例示的なコンピュータプロセスにおいて、３次元シーンの選択部分は、透明な前景オブジェクトを含み、そして、深度レイ層は、少なくとも１つの背景オブジェクトの形状を示すために、透明な前景オブジェクトの境界の内部のピクセル値を変化させる。
【００６３】
任意の先行するコンピュータプロセスに係る、さらに別の例示的なコンピュータプロセスにおいて、カラーグラデーションは、ユーザが選択可能なカラープリファレンスに基づいて定義される。
【００６４】
ここにおいて開示される一つの例示的な方法は、３次元シーンを形成している複数のピクセルのそれぞれと関連する深度を定義する深度マップを受信するための手段と、第１ピクセル値と第２ピクセル値との間のカラーグラデーションを定義するための手段であり、第１ピクセル値と第２ピクセル値との間のカラーグラデーションにおける各連続ステップは、大きさが増加している対応する深度と関連付けられている手段と、３次元シーンの選択部分に対して深度レイ層を適用するためのグラフィックスエンジンによって実行可能な命令を提供するための手段であり、３次元シーンの選択部分における各ピクセルを変更し、深度マップによってピクセルと関連付けられた深度に対応する、カラーグラデーションに含まれるピクセル値を想定する手段と、を含む。
【００６５】
ここにおいて説明される実施形態は、１つ以上のコンピュータシステムにおいて論理ステップとして実装される。論理演算は、（１）１つ以上のコンピュータシステムで実行されるプロセッサに実装されたステップのシーケンスとして、および、（２）１つ以上のコンピュータシステム内の相互接続されたマシンまたは回路モジュールとして、実装され得る。実施形態は、利用されるコンピュータシステムの性能要件に依存する、選択事項である。従って、ここにおいて説明される実装を構成する論理演算は、オペレーション、ステップ、オブジェクト、またはモジュールとして様々に呼ばれる。さらに、論理演算は、そうでないものと明示的に請求され、または、特定の順序が請求項の言語によって本質的に必要とされない限り、任意の順序で実行され得ることが理解されるべきである。上記の仕様、実施例、およびデータは、添付される付属物と共に、例示的な実施の構造および使用に係る完全な説明を提供する。
【図１】
2021532470.tif 000003
【図２】
2021532470.tif 000004
【図３】
2021532470.tif 000005
【図４】
2021532470.tif 000006
【図５】
2021532470.tif 000007
【図６】
2021532470.tif 000008
【国際調査報告】
2021532470.tif 000009
2021532470.tif 000010
2021532470.tif 000011