(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-30
(54)【発明の名称】マルチビュー画像収束面傾斜を用いたマルチビューディスプレイシステム及び方法
(51)【国際特許分類】
H04N 13/111 20180101AFI20231122BHJP
H04N 13/128 20180101ALI20231122BHJP
H04N 13/302 20180101ALI20231122BHJP
H04N 13/356 20180101ALI20231122BHJP
G06T 15/00 20110101ALI20231122BHJP
【FI】
H04N13/111
H04N13/128
H04N13/302
H04N13/356
G06T15/00 501
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023528731
(86)(22)【出願日】2020-12-18
(85)【翻訳文提出日】2023-05-15
(86)【国際出願番号】 US2020066251
(87)【国際公開番号】W WO2022108609
(87)【国際公開日】2022-05-27
(32)【優先日】2020-11-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】514274546
【氏名又は名称】レイア、インコーポレイテッド
【氏名又は名称原語表記】LEIA INC.
(74)【代理人】
【識別番号】100092783
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100093676
【氏名又は名称】小林 純子
(74)【代理人】
【識別番号】100120134
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100126354
【氏名又は名称】藤田 尚
(72)【発明者】
【氏名】ダルクィスト,ニコラス
(72)【発明者】
【氏名】オジュグ,ジェシー
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA19
5B080BA02
5B080BA04
5B080CA01
5B080CA04
5B080DA06
5B080FA02
5B080FA15
5B080GA00
5B080GA22
(57)【要約】
システム及び方法は、マルチビュー画像のビューをメモリにロードすることを対象とする。ビューは、ピクセル座標系によって定義されたビットマップとしてフォーマットされ得る。ビューと中心視点との間の距離が識別され得る。その後、ビューは、ピクセル座標系の軸に沿って適用される剪断機能に従って、剪断ビューとしてグラフィックスパイプラインにレンダリングされ得る。剪断機能の剪断強度は、ビューと中心視点との間の距離と相関する。
【特許請求の範囲】
【請求項1】
コンピュータ実装される、マルチビュー画像の収束面を傾斜させる方法であって、前記方法は、
前記マルチビュー画像のビューをメモリにロードするステップであって、前記ビューは、ピクセル座標系によって定義されるビットマップとしてフォーマットされる、ステップと、
前記ビューと中心視点との間の距離を識別するステップと、
前記ピクセル座標系の軸に沿って適用される剪断機能に従って、剪断ビューとして、グラフィックスパイプラインにおいて前記ビューをレンダリングするステップであって、前記剪断機能の剪断強度は、前記距離と相関する、ステップと、
を含む、マルチビュー画像の収束面を傾斜させる方法。
【請求項2】
前記剪断機能は、前記ビューを前記ピクセル座標系の水平軸に沿ってのみスキューするように構成される、請求項1に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項3】
前記マルチビュー画像は、ナビゲーションアプリケーションによって生成されたマップを含む、請求項2に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項4】
前記ビューと前記中心視点との間の前記距離は、前記マルチビュー画像の前記ビューの順序付けられたビュー番号を決定することによって識別される、請求項1に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項5】
ユーザインターフェースからユーザ入力を受信するステップと、
前記ユーザ入力に基づいて前記剪断強度を決定するステップと、
を更に含む、請求項1に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項6】
前記方法は、
前記マルチビュー画像の前記ビューと別のビューとの間の共通点における視差値を計算することによって、前記剪断強度を自動的に決定するステップを更に含む、請求項1に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項7】
ユーザインターフェースからユーザ入力を受信するステップと、
前記ユーザ入力に基づいて視差値範囲を決定するステップと、
前記視差値範囲内の視差値を有するピクセルに応答して、前記ビューの前記ピクセルに対して動作するようにシェーダを構成するステップと、
を更に含む、請求項1に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項8】
前記シェーダは、透明度動作および被写界深度動作のうちの少なくとも1つを実行するように構成される、請求項7に記載のマルチビュー画像の収束面を傾斜させる方法。
【請求項9】
マルチビューディスプレイシステムであって、前記システムは、
プロセッサと、
複数の命令を記憶するメモリと、を備え、前記複数の命令は、実行されると、前記プロセッサに、
マルチビュー画像のビューを前記メモリにロードするステップであって、前記ビューは、ピクセル座標系によって定義されるビットマップとしてフォーマットされる、ステップと、
前記ピクセル座標系の軸に沿って適用される剪断機能に従って、前記ビューを剪断ビューとしてレンダリングする命令をグラフィックスパイプラインに送信するステップであって、前記剪断機能の剪断強度は、前記マルチビュー画像内の他のビューに対する前記ビューの位置と相関する、ステップと、を行わせ、
前記グラフィックスパイプラインは、前記ビットマップのピクセルが前記グラフィックスパイプラインによってサンプリングされるときに前記剪断機能を実装するように構成され、
前記マルチビューディスプレイシステムは、前記グラフィックスパイプラインにおいて収束面を傾斜させるように構成される、マルチビューディスプレイシステム。
【請求項10】
前記剪断機能は、前記ビューを前記ピクセル座標系の水平軸に沿ってのみスキューするように構成される、請求項9に記載のマルチビューディスプレイシステム。
【請求項11】
前記マルチビュー画像は、ナビゲーションアプリケーションによって生成されたマップを含む、請求項9に記載のマルチビューディスプレイシステム。
【請求項12】
前記複数の命令は、実行されると、前記プロセッサに、
ユーザインターフェースからユーザ入力を受信するステップと、
前記ユーザ入力に基づいて前記剪断強度を決定するステップと、
を更に行わせる、請求項9に記載のマルチビューディスプレイシステム。
【請求項13】
前記複数の命令は、実行されると、前記プロセッサに、前記マルチビュー画像の前記ビューと別のビューとの間の共通点における視差値を計算することによって、前記剪断強度を自動的に決定するステップを更に行わせる、請求項9に記載のマルチビューディスプレイシステム。
【請求項14】
前記複数の命令は、実行されると、前記プロセッサに、
ユーザインターフェースからユーザ入力を受信するステップと、
前記ユーザ入力に基づいて視差値範囲を決定するステップと、
前記視差値範囲内の視差値を有するピクセルに応答して前記ビューの前記ピクセルに対して動作するようにシェーダを構成するステップと、
を更に行わせる、請求項9に記載のマルチビューディスプレイシステム。
【請求項15】
前記シェーダは、透明度動作および被写界深度動作のうちの少なくとも1つを実行するように構成される、請求項14に記載のマルチビューディスプレイシステム。
【請求項16】
前記マルチビューディスプレイシステムは、広角バックライトを使用して2Dモード中に広角放射光を提供するように構成され、
前記マルチビューディスプレイシステムは、マルチビーム要素のアレイを有するマルチビューバックライトを使用してマルチビューモード中に指向性放射光を提供するように構成され、前記指向性放射光は、前記マルチビーム要素アレイの各マルチビーム要素によって提供される複数の指向性光ビームを含み、
前記マルチビューディスプレイシステムは、前記2Dモードに対応する第1の順次時間間隔中に前記広角バックライトを、前記マルチビューモードに対応する第2の順次時間間隔中に前記マルチビューバックライトを順次アクティブ化するために、モードコントローラを使用して前記2Dモードと前記マルチビューモードとを時間多重化するように構成され、
前記複数の指向性光ビームの指向性光ビーム方向は、マルチビュー画像の異なるビュー方向に対応する、請求項9に記載のマルチビューディスプレイシステム。
【請求項17】
前記マルチビューディスプレイシステムは、導光体内の光を導波光として導波するように構成され、
前記マルチビューディスプレイシステムは、前記マルチビーム要素アレイのマルチビーム要素を使用して、前記導波光の一部を前記指向性放射光として散乱させるように構成され、前記マルチビーム要素アレイの各マルチビーム要素は、回折格子、微小屈折要素、及び微小反射要素のうちの1つ又はそれ以上を備える、請求項16に記載のマルチビューディスプレイシステム。
【請求項18】
コンピューティングシステムのプロセッサによって実行されると、グラフィックスパイプラインにおいて収束面を傾斜させることを実装する命令を記憶する非一時的コンピュータ可読記憶媒体であって、
マルチビュー画像の複数のビューを生成するステップであって、各ビューは、ピクセル座標系によって定義されるビットマップとしてフォーマットされ、前記複数のビューは、第1のビューと第2のビューとを備える、ステップと、
前記ピクセル座標系の軸に沿って適用される剪断機能の第1の剪断強度に従って、第1の剪断ビューとして、前記グラフィックスパイプラインにおいて前記第1のビューをレンダリングするステップと、
前記ピクセル座標系の前記軸に沿って適用される前記剪断機能の第2の剪断強度に従って、第2の剪断ビューとして、前記グラフィックスパイプラインにおいて前記第2のビューをレンダリングするステップと、
を含む、非一時的コンピュータ可読記憶媒体。
【請求項19】
前記剪断機能は、前記ピクセル座標系の水平軸に沿ってのみ適用される、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記剪断機能は、前記ピクセル座標系の垂直軸に沿って前記第1のビュー及び前記第2のビューをスキューするように構成される、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項21】
前記第1の剪断強度は、負の剪断強度であり、前記第2の剪断強度は、正の剪断強度である、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項22】
前記グラフィックスパイプラインは、前記マルチビュー画像の前記ビットマップのピクセルが前記グラフィックスパイプラインによってサンプリングされるときに前記剪断機能を実装するように構成される、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年11月18日に出願された米国仮特許出願第63/115,531号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
連邦政府資金による研究開発の記載
N/A
【背景技術】
【0003】
3次元(3D)空間内のシーンは、視野角に応じて複数の視点から見ることができる。加えて、立体視を用いてユーザによって視認されると、場面の異なる視点を表す複数のビューが、同時に知覚され、ユーザによって知覚され得る深度の感覚を効果的に生成することができる。マルチビューディスプレイは、3D世界においてシーンがどのように知覚されるかを表すために、複数のビューを有する画像を提示する。マルチビューディスプレイは、異なるビューを同時にレンダリングして、ユーザに現実的な体験を提供する。マルチビュー画像は、ソフトウェアによって動的に生成及び処理することができる。その後、これらをグラフィックスパイプラインによってリアルタイムでレンダリングすることができる。グラフィックスパイプラインは、表示のためにマルチビュー画像をレンダリングするときに、マルチビュー画像に対して種々の動作を適用することができる。
【発明の概要】
【0004】
本明細書で説明する原理による例及び実施形態の種々の特徴は、添付の図面とともに以下の詳細な説明を参照することによってより容易に理解され得、同様の参照番号は同様の構造要素を示す。
【図面の簡単な説明】
【0005】
【
図1】本明細書で説明する原理と一致する一実施形態による、一例におけるマルチビュー画像を示す。
【0006】
【
図2】本明細書で説明する原理と一致する一実施形態による、マルチビュー画像を生成する一例を示す。
【0007】
【
図3】本明細書で説明する原理と一致する一実施形態による、マルチビュー画像の収束面を傾斜させる一例を示す。
【0008】
【
図4】本明細書で説明する原理と一致する一実施形態による、マルチビュー画像の収束面を傾斜させるコンピューティングシステムの一例を示す。
【0009】
【
図5A】本明細書で説明する原理と一致する一実施形態による、剪断機能を適用する例を示す。
【0010】
【
図6】本明細書で説明する原理と一致する一実施形態による、グラフィックスパイプラインとのインターフェースの一例を示す。
【0011】
【
図7A】本明細書で説明する原理と一致する実施形態による、マルチビュー画像のレンダリングを構成するためのユーザインターフェースの例を示す。
【0012】
【
図8】本明細書で説明される原理と一致する一実施形態による、ピクセルがサンプリングされるときに剪断機能を適用するコンピューティングシステムの一例を示す。
【0013】
【
図9】本明細書で説明する原理と一致する一実施形態による、マルチビュー画像の収束面を傾斜させるシステム及び方法のフローチャートを示す。
【0014】
【
図10】本明細書で説明する原理と一致する一実施形態による、マルチビューディスプレイを提供するマルチビューディスプレイシステムの1つの例示的な図を示す概略ブロック図である。
【発明を実施するための形態】
【0015】
一部の例及び実施形態は、上記で参照した図に示された特徴に加えて、かつその代わりの特徴のうちの1つである他の特徴を有する。これら及び他の特徴は、上記で参照された図を参照して以下に詳述される。
【0016】
本明細書で説明する原理による例及び実施形態は、収束面を傾斜させることによってマルチビュー画像を知覚するユーザ体験を改善するための技術を提供する。デフォルトとして、収束面は、典型的には、カメラからある程度離れたカメラレンズと平行である。収束面と交差する物体は、かかる物体の異なるビュー間に視差がないように焦点が合って見える。しかしながら、視点が、例えば、鳥瞰ビュー角度などの極端な角度に変化すると、マルチビュー画像中の対象物体は、視認体験に悪影響を及ぼすように視差を受ける可能性がある。本明細書で説明するように、実施形態は、カメラのビューの角度に基づいて物体が知覚される方法を改善するために収束面を傾斜させることを対象とする。鳥瞰ビューの場合、収束面は、地面と実質的に平行になるように傾斜させることができる。その結果、地面により近い物体は、視認者の視点からより明確に知覚され得る。
【0017】
実施形態は、リアルタイムグラフィックスパイプラインにおいて収束面を傾斜させるためにグラフィックスレベル操作を適用することを対象とする。例えば、収束面は、マルチビュー画像がリアルタイムでレンダリングされるときに後処理動作の一部として傾斜されてもよい。グラフィックスパイプライン中のシェーダは、収束面を効果的に傾斜させるために異なるビューに剪断機能を適用するように構成され得る。例えば、シェーダは、得られたビューを剪断するようにマルチビュー画像のビューからピクセルをサンプリングしてもよい。剪断量は、特定のビューが中心視点から離れている程度に対応し得る。この目的のために、剪断機能は、マルチビューの異なるビューをリアルタイムで剪断して、収束面を効果的に傾斜させ、それによって、視認者にとってより良好な視認体験を作り出す。
【0018】
図1は、本明細書で説明する原理と一致する一実施形態による、一例におけるマルチビュー画像103を示している。マルチビュー画像103は、複数のビュー106を有する。ビュー106の各々は、異なるビュー方向109に対応する。ビュー106は、マルチビューディスプレイ112による表示のためにレンダリングされる。
図1に示されるマルチビュー画像103は、鳥瞰視点からの地上の種々の建物のビューを示している。各ビュー106は、マルチビュー画像103の異なる視野角を表す。したがって、異なるビュー106は、互いに対してあるレベルの視差を有する。一部の実施形態では、視認者は、その右眼で1つのビュー106を知覚しながら、その左眼で異なるビュー106を知覚することができる。これは、視認者が同時に異なるビューを知覚することを可能にし、結果として立体視をもたらす。換言すれば、異なるビュー106は、3次元(3D)効果を生成する。
【0019】
一部の実施形態では、視認者がマルチビューディスプレイ112に対して自分の視野角を物理的に変更すると、視認者の眼は、マルチビュー画像103の異なるビュー106を捉えることができる。その結果、視認者は、マルチビューディスプレイ112と対話して、マルチビュー画像103の異なるビュー106を見ることができる。例えば、視認者が左に移動するにつれて、視認者は、マルチビュー画像103内の建物の左側のより多くを見ることができる。マルチビュー画像103は、水平面に沿って複数のビュー106を有することができ、かつ/又は垂直面に沿って複数のビュー106を有することができる。したがって、ユーザが異なるビュー106を見るために視野角を変更すると、視認者は、マルチビュー画像103の追加の視覚的詳細を得ることができる。表示のために処理されると、マルチビュー画像103は、異なるビュー106を記録するフォーマットのデータとして記憶される。
【0020】
上述のように、各ビュー106は、マルチビューディスプレイ112によって、異なる対応する主極大角度方向109に提示される。表示のためにマルチビュー画像103を提示するとき、ビュー106は、実際には、マルチビューディスプレイ112上又はその近傍に現れることができる。2Dディスプレイは、マルチビュー画像103の異なるビュー106とは対照的に、2Dディスプレイが概して単一のビュー(例えば、ビューのうちの1つのみ)を提供するように構成されることを除いて、マルチビューディスプレイ112と実質的に同様であり得る。
【0021】
本明細書では、「2次元ディスプレイ」又は「2Dディスプレイ」は、画像が見られる方向にかかわらず(すなわち、2Dディスプレイの所定の視野角又は範囲内で)実質的に同じである画像のビューを提供するように構成されたディスプレイとして定義される。2Dディスプレイの例として、スマートフォン及びコンピュータモニタに見られる従来の液晶ディスプレイ(LCD)が挙げられる。対照的に、本明細書では、「マルチビューディスプレイ」は、ユーザの視点から同時に、異なるビュー方向に又は異なるビュー方向からマルチビュー画像の異なるビューを提供するように構成された電子ディスプレイ又はディスプレイシステムとして定義される。特に、異なるビュー106は、マルチビュー画像103の異なる斜視図を表すことができる。
【0022】
マルチビューディスプレイ112は、同時に知覚されるように異なる画像ビューの提示に対応する種々の技術を使用して実装することができる。マルチビューディスプレイの一例は、異なるビュー106の主な角度方向を制御するために回折格子を使用するものである。一部の実施形態によれば、マルチビューディスプレイ112は、異なるビューに対応する異なる色及び異なる方向の複数の光ビームを提示するものであるライトフィールドディスプレイであり得る。一部の例では、ライトフィールドディスプレイは、深度を知覚するために特別なアイウェアを必要とすることなくマルチビュー画像の裸眼立体表現を提供するために回折格子を使用し得る、いわゆる「裸眼」3次元(3D)ディスプレイである。一部の実施形態では、マルチビューディスプレイ112は、どのビュー106がユーザの各眼によって知覚されるかを制御するために眼鏡又は他のアイウェアを必要とする場合がある。
【0023】
一部の実施形態では、マルチビューディスプレイ112は、マルチビュー画像及び2D画像をレンダリングするマルチビューディスプレイシステムの一部である。このそれぞれにおいて、マルチビューディスプレイシステムは、異なるモードで動作する複数のバックライトを含み得る。例えば、マルチビューディスプレイシステムは、広角バックライトを使用して2Dモード中に広角放射光を提供するように構成されてもよい。加えて、マルチビューディスプレイシステムは、マルチビーム要素のアレイを有するマルチビューバックライトを使用してマルチビューモード中に指向性放射光を提供するように構成することができ、指向性放射光は、マルチビーム要素アレイの各マルチビーム要素によって提供される複数の指向性光ビームを含む。マルチビューディスプレイシステムは、2Dモードに対応する第1の順次時間間隔中に広角バックライトを、マルチビューモードに対応する第2の順次時間間隔中にマルチビューバックライトを順次アクティブ化するために、モードコントローラを使用して2Dモードとマルチビューモードとを時間多重化するように構成され得る。指向性光ビームの指向性光ビーム方向は、マルチビュー画像の異なるビュー方向に対応し得る。
【0024】
例えば、2Dモードでは、広角バックライトは、マルチビューディスプレイシステムが2Dディスプレイのように動作するように画像を生成してもよい。定義により、「広角」放射光は、マルチビュー画像又はマルチビューディスプレイのビューの円錐角よりも大きい円錐角を有する光として定義される。特に、一部の実施形態では、広角放射光は、約20度よりも大きい(例えば、>±20°)円錐角を有することができる。他の実施形態では、広角放射光円錐角は、約30度超(例えば、>±30°)又は約40度超(例えば、>±40°)又は50度超(例えば、>±50°)であってもよい。例えば、広角放射光の円錐角は、約60度(例えば、>±60°)であってもよい。
【0025】
マルチビューモードは、広角バックライトの代わりにマルチビューバックライトを使用することができる。マルチビューバックライトは、互いに異なる主極大角度方向を有する複数の指向性光ビームとして光を散乱させるマルチビーム要素のアレイを有することができる。例えば、マルチビューディスプレイ112が、4つのビューを有するマルチビュー画像を表示するためにマルチビューモードで動作する場合、マルチビューバックライトは、光を4つの指向性光ビームに散乱させることができ、各指向性光ビームは異なるビューに対応する。モードコントローラは、マルチビューバックライトを用いてマルチビュー画像が第1の順次時間間隔で表示され、広角バックライトを用いて2D画像が第2の順次時間間隔で表示されるように、2Dモードとマルチビューモードとを連続的に切り替えることができる。
【0026】
一部の実施形態では、マルチビューディスプレイシステムは、導光体内の光を導波光として導波するように構成される。本明細書では、「導光体」は、全内部反射すなわち「TIR」を使用して構造内で光を導く構造として定義される。特に、導光体は、導光体の動作波長で実質的に透明なコアを含み得る。種々の例では、「導光体」という用語は、概して、導光体の誘電体材料とその導光体を取り囲む材料又は媒体との間の界面において光を導波するために全内部反射を採用する誘電体光導波路を指す。定義によれば、全内部反射の条件は、導光体の屈折率が、導光体材料の表面に隣接する周囲媒体の屈折率よりも大きいことである。一部の実施形態では、導光体は、全内部反射を更に促進するために、前述の屈折率差に加えて、又はその代わりに、コーティングを含んでもよい。コーティングは、例えば、反射コーティングであってもよい。導光体は、プレート又はスラブガイド及びストリップガイドのうちの1つ又は両方を含むが、それらに限定されない、複数の導光体のうちのいずれかであり得る。導光体は、プレート又はスラブのような形状であり得る。導光体は、光源(例えば、発光デバイス)によってエッジ照明されてもよい。
【0027】
一部の実施形態では、マルチビューディスプレイシステムは、マルチビーム要素アレイのマルチビーム要素を使用して、導波光の一部分を指向性放射光として散乱させるように構成され、マルチビーム要素アレイの各マルチビーム要素は、回折格子、微小屈折要素、及び微小反射要素のうちの1つ又はそれ以上を備える。一部の実施形態では、マルチビーム要素の回折格子は、複数の個々のサブ格子を含み得る。一部の実施形態では、微小反射要素は、導波光部分を複数の指向性光ビームとして反射的に結合又は散乱させるように構成される。微小反射要素は、誘導光が散乱される方法を制御するための反射コーティングを有し得る。一部の実施形態では、マルチビーム要素は、屈折によって、又は屈折を使用して、導波光部分を複数の指向性光ビームとして結合又は散乱させる(すなわち、導波光部分を屈折的に散乱させる)ように構成された微小屈折要素を備える。
【0028】
図1に示すように、マルチビューディスプレイ112は、マルチビュー画像103を表示するスクリーンを備える。画面は、例えば、電話(例えば、携帯電話、スマートフォンなど)、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータのコンピュータモニタ、カメラディスプレイ、又は実質的に任意の他のデバイスの電子ディスプレイの表示画面であってもよい。
【0029】
図2は、本明細書で説明する原理と一致する一実施形態による、マルチビュー画像115を生成する一例を示している。
図2のマルチビュー画像115は、地面120上の木118などの種々の物体を含む。木118及び地面120は物体と称されることがあり、これらは一緒にシーンの少なくとも一部を形成する。マルチビュー画像115は、
図1に関して説明した方法と同様の方法で表示し、見ることができる。マルチビュー画像115を生成するために、カメラ121を使用してシーンをキャプチャすることができる。一部の実施形態では、カメラ121は、1つ又はそれ以上の物理カメラを含み得る。例えば、物理カメラは、光を捕捉し、それを画像として記録するためのレンズを含む。シーンの異なるビューをキャプチャしてマルチビュー画像115を作成するために、複数の物理カメラが使用され得る。例えば、各物理カメラは、シーン中の物体の異なるパースペクティブがキャプチャされることを可能にするために、定義された距離で離間されてもよい。異なる物理カメラ間の距離は、視認者の眼の間の距離が3Dビジョンを可能にするのと同じように、シーンの奥行きをキャプチャする能力を可能にする。
【0030】
カメラ121はまた、物理的なカメラとは対照的に、仮想(例えば、シミュレートされた又は仮想の)カメラを表すことができる。シーンは、コンピュータ生成情報を操作するコンピュータグラフィックス技術を使用して生成することができる。この例では、カメラ121は、画像を編集するためのソフトウェアツールを使用してシーンを生成するための視点を有する仮想カメラとして実装される。仮想カメラは、3Dモデルの視野角及び座標に関して定義することができる。3Dモデルは、仮想カメラによってキャプチャされる種々の物体を定義することができる。
【0031】
一部の実施形態では、マルチビュー画像115の1つ又はそれ以上のビューは、自動化アルゴリズム(例えば、コンピュータビジョン、人工知能、画像バッチ処理など)を通して生成することができる。例えば、物理カメラ又は仮想カメラを使用してシーンのビューを生成又はキャプチャした後、元のビューから予測、補間、又は外挿することによって、1つ又はそれ以上の他のビューが人工的に生成されてもよい。例えば、種々のコンピュータビジョン技術が、1つ又はそれ以上の入力ビューに基づいて追加のビューを生成してもよい。これは、1つ又はそれ以上の入力ビューから異なるビューを予測、補間、及び/又は外挿する訓練されたコンピュータビジョンモデルを採用することを含むことができる。
【0032】
カメラ121を使用してシーンのビューを生成又はキャプチャするとき、マルチビュー画像は、収束面127を有し得る。「収束面」又は「収束平面」は、異なるビュー間に視差がほとんどないように、異なるビューが整合される位置のセットとして定義される。収束面127は、ゼロ視差面(ZDP)と称されることもある。収束面127は、カメラ121の前方に生じる。カメラ121と収束面127との間の物体は、視認者のより近くに見え、一方、収束面127の背後の物体は、視認者からより遠くに見える。この点に関して、異なるビュー間の視差の程度は、物体が収束面127から離れて配置されるほど増加する。収束面127に沿った物体は、視認者に対して焦点が合って見える。したがって、マルチビュー画像115を生成するとき、特定の物体を主要な被写体として特徴付けることを望む作成者は、収束面127が主要な被写体に当たることを望む場合がある。ZDP上にレンダリングされたピクセルは、ディスプレイ上に位置しているかのように見え、ZDPの前にレンダリングされたピクセルは、ディスプレイの前に位置しているかのように見え、ZDPの後ろにレンダリングされたピクセルは、ディスプレイの後ろに位置しているかのように見えることがある。
【0033】
カメラ121は、カメラ121の視錐台130内に入るシーンをキャプチャする。視錐台130は、シーンの視野角範囲を定義する上限及び下限を有するように示されている。典型的には、デフォルトの収束面127は、カメラ121のカメラレンズによって形成される平面に平行であり、その結果、それは、視錐台130に対して台形を形成する。
図2において、収束面127は、(カメラ121に対して)木118の底部及び木118の背面と交差する。その結果、木118の底部は、焦点が合っているように見え、ディスプレイ上に位置しているように見えるため、視認者にとって関心のある特徴点として見えることになる。
【0034】
図2はまた、マルチビュー画像115のビューのうちの1つの視差マップ133を示している。視差マップ133は、ビューのうちの少なくとも1つについて生成され得る。場合によっては、視差マップは生成されない。いずれの場合も、視差マップ133は、本明細書で説明される実施形態に関連する概念を示すために説明される。視差マップ133は、各ピクセル(又は潜在的にピクセルのクラスタ)を対応する視差値に関連付ける。視差値は、異なるビューの対応するピクセルに対する距離に関して視差を定量化する。例えば、第1のビューに対して大きい視差値を有するピクセルは、第2のビュー内の対応するピクセルに関して、ピクセル及び対応するピクセルが特定の視野角から視認者に見える場所に大きい差があることを意味する。
【0035】
本明細書において、「視差マップ」は、マルチビュー画像115の少なくとも2つのビュー間の明らかなピクセル差を示す情報として定義される。この点について、視差マップは、マルチビュー画像の2つのビューの2つのピクセル間の位置の差を示すことができる。視差がゼロである(例えば、ゼロに等しいか又はゼロに近い)場合、物体を表すピクセルは、視認者には同じ位置に見える。換言すれば、ユーザによって焦点が合っている物体は、複数のビュー(例えば、左眼ビュー及び右眼ビュー)の間でゼロ視差を有する。視差がほとんど又は全くない領域は、収束面127(又はZDP)に対応すると見なされる。焦点が合っている物体の前又は後ろに現れる物体は、種々の程度の視差で視差を有するため、収束面を超えている。例えば、カメラ121と収束面127との間の物体を表すピクセルは、正の視差値を有してもよく、収束面127の背後の物体を表すピクセルは、負の視差値を有してもよい。視差の絶対値が大きいほど、収束面127から遠ざかる。視差は、深度に反比例する。
【0036】
図2は、3つの領域135a~cを有する視差マップ133を示している。各領域135a~cは、種々の視差値を表すピクセルを包含する。例えば、下部領域135aは、木118の前の地面120を表すピクセルに対応し、中間領域135bは、木118の下端を表すピクセルに対応し、上部領域135cは、木118の上端を表すピクセルに対応する。下部領域135aにおける視差値は、収束面127の前のピクセルを表すため、比較的大きく、正であり得る。中間領域135bにおける視差値は、収束面127上のピクセルを表すため、ゼロに近くてもよい。上部領域135cにおける視差値は、収束面127の背後のピクセルを表すため、比較的大きく、負であり得る。マルチビューディスプレイ上にレンダリングされると、マルチビュー画像115は、地面120に対して広範囲の視差が存在するようにユーザによって知覚される。言い換えれば、地面120のごく一部のみに焦点が合ってディスプレイ上に位置するように見える。地面120の残りの部分は、ディスプレイの前又はディスプレイの後ろに現れる。この結果は、一部の用途では望ましくない場合がある。例えば、地面120に沿って移動する被写体又は地面上の種々の位置にある複数の被写体を特徴とするマルチビューコンテンツは、鳥瞰ビューから視認者に最適な方法で提示されないことがある。かかる場合には、収束面を傾斜させることが望ましい。
【0037】
図3は、本明細書で説明する原理と一致する一実施形態によるマルチビュー画像の収束面127を傾斜させる一例を示している。例えば、カメラ121の(仮想又は物理)レンズによって形成された平面に対して最初は平行である収束面127は、カメラ121の(仮想又は物理)レンズによって形成された平面に対して平行でない傾斜収束面138を形成するように傾斜されてもよい。
図3は、収束面127(初期収束面と称され得る)と傾斜収束面138との間の角度として定量化され得る傾斜量141を示している。傾斜収束面138は、回転点(初期収束面127と傾斜収束面138との交点に示される)の周りで収束面127を回転させた結果として生成され得る。
【0038】
傾斜収束面138を適用することによって、マルチビュー画像は、より審美的に心地よい視認体験をもたらすことができる。例えば、傾斜収束面138は、地面120によって形成された平面に対応してもよい。その結果、地面に沿った物体は視差を有さず、それにより、地面がマルチビュー画像に広がるにつれて、視認者の注意を地面の方に引き付ける。例えば、地面上又は地面付近に位置する物体は、ディスプレイ上にあるかのように見え、地面より上の物体は、ディスプレイの前に見え、地面より下の物体は、ディスプレイの後ろに見える。
【0039】
数学的関係に関して、収束面127は、以下の式(1)に従って視差マップを修正することによって垂直(y)軸に沿って傾斜させることができる。
D’(X,Y)=D(X,Y)+T*Y+C (1)
ここで、「D」は視差値を指し、「D’」は更新された視差値を指し、視差値はピクセルのX及びY座標の関数であり、「T」は傾斜量141を定量化し、「C」は回転軸150によって定義される収束面127の回転の位置に対応する。上記の式を視差マップ133に適用することによって、視差は、回転軸150から離れるほど視差の変化が大きくなるように、垂直軸に沿って修正される。
【0040】
視差マップ133を修正して傾斜収束面138を作成することは、視差マップ133が容易に利用可能でないことがあるため、一部の実施形態では選択肢ではない場合がある。例えば、リアルタイムレンダリング環境では、視差マップを生成する帯域幅又は能力がないとき、マルチビュー画像がオンザフライでレンダリングされ、後処理されてもよい。この目的のために、視差マップ上で動作することは、グラフィックスパイプラインにおけるリアルタイムレンダリングを可能にしない場合がある。以下の図では、グラフィックスパイプラインを使用して、リアルタイムレンダリング環境において収束面127を傾斜させることを説明する。
【0041】
マルチビュー画像を生成又はレンダリングするとき、画像が表示される方法を制御する種々の視覚特性又は効果がある。これらの視覚特性として、例えば、視差、被写界深度(DoF)、ベースライン、収束面、収束オフセット、透明度などが挙げられる。マルチビュー画像の視覚特性は、後処理動作としてレンダリング時に適用され得る。
【0042】
本明細書で使用される場合、「視差」は、対応する位置におけるマルチビュー画像の少なくとも2つのビュー間の差として定義される。例えば、立体視のコンテキストでは、左眼及び右眼は、眼の間の視野角の差により、同じ物体を見るが、わずかに異なる位置において見ることができる。この差は、視差として定量化することができる。マルチビュー画像にわたる視差の変化は、奥行きの感覚を伝える。
【0043】
本明細書で使用されるように、「被写界深度」は、焦点が合っていると見なされる2つの物体間の深度の差として定義される。例えば、マルチビュー画像の大きい被写界深度は、比較的大きい範囲の深度間の少量の視差をもたらす。
【0044】
本明細書で使用される場合、「ベースライン」又は「カメラベースライン」は、マルチビュー画像の対応するビューをキャプチャする2つのカメラ間の距離として定義される。例えば、立体視の文脈では、ベースラインは、左眼と右眼との間の距離である。より大きいベースラインは、視差の増加をもたらし、マルチビュー画像の3D効果を向上させ得る。
【0045】
本明細書で使用されるように、「収束オフセット」は、カメラと収束面に沿った点との間の距離を指す。収束オフセットを修正することは、異なる深度における新しい物体上にマルチビュー画像を再合焦させるように、収束面の場所を変化させる。
【0046】
本明細書で使用されるように、「透明度」は、物体の背後の他の物体が見られ得る程度を定義する物体特性を指す。物体は、マルチビュー画像の最終的なビューを形成するレイヤとしてレンダリングされ得る。前面層の透明度を増加させると、背面層が見えるようになる。最小透明度(例えば、透明度なし)は、背面層が見られることを防止し、最大透明度は、背面層を完全に露出させるように、特定の層を不可視にする。
【0047】
更に、本明細書で使用される場合、冠詞「a」は、特許技術分野におけるその通常の意味、すなわち「1つ又はそれ以上の」を有することが意図される。例えば、本明細書では、「プロセッサ」は1つ又はそれ以上のプロセッサを意味し、したがって、「メモリ」は「1つ又はそれ以上のメモリ構成要素」を意味する。
【0048】
図4は、本明細書で説明する原理と一致する一実施形態による、マルチビュー画像の収束面を傾斜させるコンピューティングシステムの一例を示している。収束面を傾斜させる動作は、視差マップを使用せずにグラフィックスパイプライン200において行うことができる。
図4は、収束面を傾斜させるためにグラフィックスパイプライン200とインターフェースする一実施形態を示している。本明細書で使用される「グラフィックスパイプライン」は、モデルをレンダリングして表示するコンピュータ実装環境として定義される。グラフィックスパイプラインは、1つ又はそれ以上のグラフィックス処理装置(GPU)、GPUコア、又は画像コンテンツを画面にレンダリングするために最適化された他の専用処理回路を含み得る。例えば、GPUは、データのアレイに対して並列に動作するように命令セットを実行するベクトルプロセッサを含んでもよい。グラフィックスパイプライン200は、グラフィックスカード、グラフィックスドライバ、又はグラフィックスをレンダリングするために使用される他のハードウェア及びソフトウェアを含み得る。グラフィックスパイプライン200は、マルチビューディスプレイ112上に画像をレンダリングするように構成され得る。グラフィックスパイプライン200は、ディスプレイの対応する位置上にピクセルをマッピングし、画像をレンダリングするために光を放射するようにディスプレイを制御し得る。
【0049】
図4に示されるコンピューティングシステムはまた、1つ又はそれ以上の中央処理装置(CPU)202を含み得る。CPU202は、命令を実行し、オペレーティングシステムをサポートし、ユーザレベルアプリケーション205を提供する汎用プロセッサであり得る。一部の実施形態において、グラフィックスパイプライン200は、CPU202とは別個のサブシステムである。例えば、グラフィックスパイプライン200は、CPU202とは別個の専用プロセッサ(例えば、GPU)を含んでもよい。一部の実施形態では、グラフィックスパイプライン200は、CPU202によって純粋にソフトウェアとして実装される。例えば、CPU202は、専用グラフィックスハードウェアなしにグラフィックスパイプライン200として動作するソフトウェアモジュールを実行してもよい。一部の実施形態では、グラフィックスパイプライン200の一部は、専用ハードウェアで実装され、他の部分は、CPU202によってソフトウェアモジュールとして実装される。
【0050】
アプリケーション205は、マルチビューディスプレイ112上に表示するためにグラフィックスパイプライン200によってレンダリングされるユーザインターフェースを生成するユーザレベルアプリケーションであり得る。例えば、アプリケーション205は、通り、建物、及び他の地理的ランドマークを示す種々のマップをロードするナビゲーションアプリケーションであってもよい。ナビゲーションアプリケーションは、地理的エリアの3Dモデルを生成するユーザインターフェースを提供することができる。ナビゲーションアプリケーションは、仮想カメラの配向に基づいて3Dモデルの一部の視覚出力を生成するために、3Dモデルにおける仮想カメラの視野角を動的に更新することができる。
【0051】
コンピューティングシステムはまた、メモリ208を含み得る。メモリ208は、メインメモリ(例えば、システムメモリ)、キャッシュ、又はデータを迅速に処理するための他の高速メモリを含み得る。メモリ208は、揮発性メモリであってもよいが、以下で更に詳細に説明するように、不揮発性メモリを含んでもよい。メモリ208は、CPU202及びグラフィックスパイプライン200が同じメモリリソースを共有するように、CPU202のためのメモリとグラフィックスパイプライン200のためのメモリとを含み得る。一部の実施形態では、メモリ208は、CPU専用の第1のメモリ(例えば、CPUメモリ)を含み、グラフィックスパイプライン200専用の第2のメモリ(例えば、GPUメモリ、テクスチャメモリなど)を含む。この実施形態では、グラフィックスパイプライン200は、CPUメモリからGPUメモリにコンテンツをロードし、コピーし、又は別様に移動させることができる。
【0052】
上述したように、アプリケーション205は、3Dモデリングのためのコンピュータグラフィックス技術を使用して3Dモデルを生成することができる。3Dモデルは、異なる物体の種々の表面及びテクスチャの数学的表現であり、物体間の空間的関係を含み得る。アプリケーション205は、ユーザ入力に応じて3Dモデルを生成及び更新することができる。ユーザ入力は、カーソルをクリック又はドラッグすること、方向ボタンを押すこと、ユーザの物理的位置を3Dモデル内の仮想位置に変換することなどによって3Dモデルをナビゲートすることを含み得る。3Dモデルは、メモリ208にロードされ、その後、更新され得る。
【0053】
3Dモデルは、3Dモデルへのウィンドウを明らかにするマルチビュー画像211に変換することができる。ウィンドウは、3Dモデル内の座標のセット、視野角、焦点距離、ベースラインなどを有する仮想カメラによって定義することができる。マルチビュー画像211のシーケンスは、特定のフレームレート(例えば、毎秒30フレーム)で表示されるビデオを形成することができる。各マルチビュー画像211は、複数のビュー214a~dから構成され得る。
図4の例は、4つのビューを有する4ビュー画像としてフォーマットされたマルチビュー画像211を示すが、任意の数のビューが使用され得る。ビュー214a~dは、水平視差、垂直視差、又は両方を提供するように構成され得る。例えば、水平視差があるとき、ビュー214a~dは、視認者がマルチビューディスプレイ112に対して左から右に移動するにつれて変化するように見える。
【0054】
アプリケーション205は、マルチビュー画像211のビュー214a~dをメモリ208にロードすることができる。例えば、アプリケーション205は、3Dモデルを、3Dモデルから導出されたマルチビュー画像211を示すためのレンダリングされたシーンに変換するように構成されてもよい。1つ又はそれ以上のビュー214a~dは、アプリケーション205によって生成され、メモリ208の特定のブロックに配置される。ビュー214a~dは、ピクセル座標系によって定義されたビットマップとしてフォーマットされ得る。例えば、ビュー214a~dは、水平(X)軸及び垂直(Y)軸に沿ったビットマップの2次元アレイとして表現されてもよい。ビットマップ内の各ピクセルは、ディスプレイ上の対応する位置を有する。例えば、ビットマップの最も左上のピクセルは、ディスプレイの最も左上のピクセルの出力を制御する。加えて、各ビュー214a~dは、対応するビューインデックス番号220を有し得る。ビューインデックス番号220は、マルチビュー画像211内のビューの順序付けられたビュー番号であり得る。例えば、4ビューマルチビューフォーマットでは、4つのビューの各々は、1、2、3、及び4と番号付けされてもよい。ビューインデックス番号220は、他のビューに対するビューの位置を示す。例えば、ビュー1は最左ビューであり得、ビュー2は左中央ビューであり得、ビュー3は右中央ビューであり得、ビュー4は最右ビューであり得る。この場合、最大視差は、ビュー1とビュー4との間である。
【0055】
ビュー214a~dが生成され、メモリ208にロードされると、アプリケーション205は、グラフィックスパイプライン200へのレンダリングコマンド221を呼び出すことができる。レンダリングコマンド221は、グラフィックスパイプライン200にマルチビュー画像211のレンダリングを開始するように命令する。レンダリングコマンド221は、グラフィックスパイプライン200にマルチビュー画像211をレンダリングさせるためのグラフィックスドライバへの関数呼び出しとすることができる。レンダリングコマンド221は、レンダリングされる特定のマルチビュー画像211を識別することができる。例えば、レンダリングコマンド221は、マルチビュー画像211が記憶されているアドレスブロックを識別してもよい。
【0056】
グラフィックスパイプライン200は、マルチビュー画像211をレンダリングするための1つ又はそれ以上のシェーダ226を含み得る。シェーダ226は、ハードウェアデバイス(例えば、シェーダコア)、ソフトウェアモジュール、又はそれらの組み合わせであり得る。シェーダ226は、グラフィックスパイプライン200のGPUによって実行され得る。マルチビュー画像211の初期レンダリングは、マルチビュー画像211の単純版又はラフ版をレンダリングするために、例えば、ラスタライゼーションなどの種々の技術を実行するモジュールによって実行され得る。初期レンダリング動作は、表示のためにシーンジオメトリをピクセルに変換するための、迅速で非常に効率的な動作であり得る。初期レンダリングは、より高度な光学的に高度な効果を含まなくてもよい。一部の実施形態では、シェーダ226が初期レンダリングにおいて使用され得る。
【0057】
初期レンダリングが実行された後、最初にレンダリングされたマルチビュー画像に1つ又はそれ以上の高度な光学効果を適用することができる。光学効果は、1つ又はそれ以上のシェーダ226を使用して適用することができる。最初にレンダリングされたマルチビュー画像211に作用することによって、シェーダ226は、後処理効果を実装すると見なされる。本明細書で使用される場合、「後処理」は、グラフィックスパイプライン200におけるレンダリングプロセスの一部として最初にレンダリングされる画像に対して実行される動作として定義される。異なるシェーダ226を、後処理を実行するように構成することができる。後処理の一部の例として、限定はしないが、色飽和を修正すること、色相を修正すること、輝度を調整すること、コントラストを調整すること、ブラーを適用すること、ボリュメトリックライティングを実行すること、深度効果を適用すること、セルシェーディングを実行すること、ボケ効果を生成すること、1つ又はそれ以上のフィルタを適用することが挙げられる。本明細書で使用する「シェーダ」は、例えば、初期レンダリング又は後処理を含む特定のグラフィックス動作を適用するグラフィックスパイプライン内のグラフィックス構成要素であると定義される。
【0058】
アプリケーション205は、1つ又はそれ以上のアプリケーションプログラミングインターフェース(API)を使用してグラフィックスパイプライン200とインターフェースすることができる。APIの一例は、アプリケーション205がグラフィックスパイプライン200において実行される機能を呼び出すことを可能にするためのインターフェースを提供するOpenGLである。例えば、最初にレンダリングされたマルチビュー画像211に対して後処理を実行する特定のシェーダ226を呼び出すために、アプリケーション205によってAPIが使用されてもよい。
【0059】
実施形態は、リアルタイムレンダリング中に収束面を傾斜させるためにグラフィックスパイプライン200において機能を実装することを対象とする。以下は、コンピューティングシステム内で行われ得る機能及び動作の一例を提供する。上述したように、アプリケーション205は、マルチビュー画像211のビュー214a~dを生成し、メモリ208にロードすることができる。オペレーティングシステム上で実行されるアプリケーション205は、ビュー214a~dをメモリ208のブロックにロードするようにCPUに命令することができる。
【0060】
ビュー214a~dは、ピクセル座標系によって定義されたビットマップとしてフォーマットされ得る。ビュー214a~dは、3Dモデルの特定の視点及び視野角を識別し、それをビットマップに変換することによって、3Dモデルから生成され得る。これは、マルチビュー画像211の各ビューについて実行することができる。次いで、アプリケーション205は、レンダリングコマンド221を呼び出して、マルチビュー画像211のビュー214a~dを最初にレンダリングすることができる。例えば、アプリケーション205は、APIを使用して、初期レンダリングを実行するようにグラフィックスパイプライン200に要求してもよい。それに応答して、グラフィックスパイプライン200は、例えば、ラスタライゼーションを実行することによって、最初にレンダリングされたビュー214a~dを生成してもよい。リアルタイムグラフィックスレンダリング環境では、グラフィックスパイプライン200は、オンザフライでビュー214a~dを迅速にレンダリングするように最適化され得る。これは、新しいマルチビュー画像211が動的に生成される(及び事前レンダリングされない)ため、シームレスな体験を視認者に提供する。
【0061】
次に、アプリケーション205は、収束面をリアルタイムで傾斜させるように構成される。例えば、アプリケーション205は、ビュー214a~dと中心視点との間の距離を識別してもよい。異なるビュー214a~dが、中心視点に対して種々の程度の水平視差を有する場合を仮定すると、水平軸に沿った各ビューと中心視点との間の距離が決定され得る。この距離は、ベースライン(例えば、ビュー間の距離)に依存する。例えば、ベースラインが大きいほど、中心視点からの距離が大きくなる。一部の実施形態では、ビュー214a~dと中心視点との間の距離は、マルチビュー画像211内のビュー214a~dの順序付けられたビュー番号(例えば、ビューインデックス番号220)を決定することによって識別される。例えば、マルチビュー画像211のビュー214a~dが1から4まで順序付けられる場合、ビュー1は最も左側に配置され、ビュー4は最も右側に配置される。ビューインデックス番号220は、ビュー214a~dと中心視点との間の距離に対応する。例えば、1のビューインデックス番号220は、中心の左に50ピクセルの距離に対応し得、2のビューインデックスは、中心の左に25ピクセルの距離に対応し得、3のビューインデックス番号220は、中心の右に25ピクセルの距離に対応し得、4のビューインデックスは、中心の右に50ピクセルの距離に対応し得る。中心からの距離は、ビューが中心の左にあるかどうかを示すための符号付きの数(例えば、正又は負)であり得る。例えば、負の距離は、ビューが中心の左にあることを示し得、一方、正の距離は、ビューが中心の右にあることを示し得る。
【0062】
中心視点からのビュー214a~dの距離を決定することは、リアルタイムグラフィックスパイプライン200において収束面をどのように傾斜させるかを判定することの一部である。アプリケーション205は、剪断機能を使用することによって、収束面を傾斜させるためのレンダリング命令を生成することができる。アプリケーション205は、グラフィックスパイプライン200に、ビューを剪断ビューとしてレンダリングする命令を送信することができる。この点において、アプリケーション205は、ピクセル座標系の軸に沿って適用される剪断機能に従って剪断されるように、最初にレンダリングされたマルチビュー画像を後処理するための命令を呼び出すことができる。具体的には、グラフィックスパイプライン200は、グラフィックスパイプライン200内のビュー214a~dを、剪断機能に従って剪断ビューとしてレンダリングすることができる。剪断機能の剪断強度は、ビュー214a~dと中心視点との間の距離と相関する。本明細書で使用される「剪断機能」は、剪断強度による方向に沿って画像のピクセルを変位させるグラフィックス操作として定義される。剪断強度は、剪断機能によって画像に適用される剪断効果の量を定量化する。剪断機能の剪断強度は、マルチビュー画像内の他のビューに対するビューの位置と相関し得る。以下に説明する
図5は、剪断機能の視覚的説明を提供する。
【0063】
剪断機能を実行すると、マルチビュー画像211がグラフィックスパイプラインにおいてレンダリングされるときに、収束面がリアルタイムで傾斜する。シェーダ226は、剪断機能を実装するようにカスタマイズすることができる。この点において、アプリケーション205は、シェーダ226を呼び出して、最初にレンダリングされたマルチビュー画像211に対して剪断機能を実行することができる。剪断機能をマルチビュー画像のビュー214a~dに適用した後、グラフィックスパイプライン200は、その結果を剪断マルチビュー画像232としてメモリ208にロードすることができる。グラフィックスパイプライン200は、剪断マルチビュー画像232でマルチビュー画像211をオーバーライドすることができ、又は剪断マルチビュー画像232をメモリ208の別個の部分にロードすることができる。最終的にマルチビューディスプレイ112上にレンダリングされる前に、剪断マルチビュー画像232に追加の後処理を適用することができる。
【0064】
図5A及び
図5Bは、本明細書で説明する原理と一致する一実施形態による、剪断機能を適用する一例を示している。
図5Aは、マルチビュー画像の異なるビューを示している。各ビューは、例えば
図4のメモリ208などのメモリに記憶又はロードされるビットマップ画像としてフォーマットされ得る。4つのビューが示されているが、マルチビュー画像は任意の数のビューを有することができる。
図5Aに示されるビュー(例えば、ビュー1、ビュー2、ビュー3、及びビュー4)は、水平視差を有する。
図5Aのマルチビュー画像は、中心視点235を有することができる。視認者は、水平軸に沿って(例えば、左から右に又は右から左に)移動することによってマルチビュー画像中の物体の周りを見ることができる。
【0065】
各ビューは、中心視点235までの対応する距離を有し得る。
図5Aは、各ビューの中心から測定されたこの距離を示すが、距離は、例えば、左端又は右端などのビューの任意の点から測定されてもよい。ビュー1は、中心視点235から「D1」の距離だけ離れている。ビュー2は、中心視点235から「D2」の距離だけ離れている。ビュー3は、中心視点235から「D2」の距離だけ離れている。ビュー4は、中心視点235から「D4」の距離だけ離れている。距離D1及びD2は、それが中心視点235の左にあることを示す負の値であり得、距離D3及びD4は、それが中心視点235の右にあることを示す正の値であり得る。
【0066】
図5Aは、メモリにロードされるときのマルチビュー画像と、後処理の前にグラフィックスパイプラインによって最初にレンダリングされるときにどのように見えるかとを示している。
図5Bは、リアルタイムグラフィックスパイプライン(例えば、
図4のグラフィックスパイプライン200)における後処理の一部として剪断機能によって剪断された後のマルチビュー画像を示している。具体的には、
図5Bは、ビュー1から生成された剪断ビュー1、ビュー2から生成された剪断ビュー2、ビュー3から生成された剪断ビュー3、及びビュー4から生成された剪断ビュー4を示している。剪断ビュー1~4の各々は、剪断強度を適用する剪断機能によって生成される。剪断強度は、ビューと中心視点235との間の距離(例えば、D1~D4)に基づいて決定される。例えば、中心視点235からの距離が大きくなるほど、剪断強度は大きくなる。加えて、剪断強度の符号(例えば、正又は負)は、距離の符号によって定義される。剪断強度の符号は、剪断機能によって加えられる剪断の方向を制御する。
【0067】
剪断機能はまた、剪断線238によって定義することができる。剪断線238は、各ビューがどのように剪断されるかを制御する特定の軸に沿って延在することができる。剪断機能は、剪断線238に従って動作する。
図5Bの例は、水平軸に沿った剪断線238を示している。その結果、剪断機能は、ピクセル座標系の水平軸に沿ってのみビューをスキューするように構成される。この点、ピクセル座標系上のピクセルは水平方向にのみ変位する。ピクセル変位の方向及び程度は、中心視点235までのビューの距離(例えば、正又は負の距離のいずれか)、並びに変位されているピクセルが剪断線238の上方又は下方にあるかどうかに依存する。例えば、剪断ビュー1及び剪断ビュー2では、剪断線238の上のピクセルは右にスキューされ、剪断線238の下のピクセルは左にスキューされる。剪断ビュー3及び剪断ビュー4では、剪断線238より上のピクセルは左にスキューされ、剪断線238より下のピクセルは右にスキューされる。
【0068】
図5Bはまた、対応する剪断ビュー1~4の剪断効果241a~dを示している。より強い剪断効果は、ビューをより剪断させる。剪断効果は、大きな剪断強度がより大きな剪断効果241a~dをもたらすように、剪断強度によって決定される。例えば、剪断強度は、収束面の傾斜量に基づいてもよい。加えて、剪断強度は、ビューが中心視点235から離れるにつれて増加する。例えば、剪断ビュー1の剪断効果241aは、剪断ビュー2の剪断効果241bよりも強いが、これは、剪断ビュー1は、中心視点235からより遠く離れているからである。加えて、剪断ビュー1及び剪断ビュー4は中心視点235から等距離にあるため、剪断ビュー1の剪断効果241aは剪断ビュー4の剪断効果241dと同様である。しかしながら、剪断ビュー1及び剪断ビュー4は、中心視点235の反対側にあるため、剪断効果241a、241dの反対の方向を有する。
【0069】
剪断線238は、デフォルトとして、垂直軸に沿って中央に位置する水平線を形成することができる。他の実施形態では、剪断線238は、種々の垂直位置に配置されてもよく、ユーザ指定されてもよい。
図5Bは水平剪断線238を示しているが、剪断線238は垂直であってもよい。この実施形態では、剪断機能は、ピクセル座標系の垂直軸に沿って第1のビュー及び第2のビューをスキューするように構成される。一部の実施形態では、剪断線238は、水平軸及び垂直軸に沿って変化する点を有するように傾斜又は湾曲している。この例では、ピクセルは、X方向及びY方向の両方に沿って変位され得る。
【0070】
一実施形態は、ユーザが物理空間又は仮想空間をナビゲートしているときにマップシーンのマルチビュー画像を動的に生成するためにナビゲーションアプリケーションを使用することを企図している。カメラ角度が鳥瞰ビューと同様であるか、又はそれに近い場合、収束面は水平軸の周りに傾斜され得る。その結果、剪断機能は、ピクセル座標系の水平軸に沿ってのみビューをスキューするように構成される。
【0071】
図6は、本明細書で説明する原理と一致する一実施形態による、グラフィックスパイプラインとのインターフェースの一例を示している。上述のように、アプリケーション205は、グラフィックスパイプライン200とインターフェースすることができる。例えば、アプリケーション205は、クライアントデバイスのオペレーティングシステム上で実行されるユーザレベルアプリケーションであってもよい。アプリケーション205はまた、サーバ上で実行され、クライアントデバイスを介してユーザに提供されるクラウドベースのアプリケーションとして実装されてもよい。アプリケーション205は、1つ又はそれ以上のAPIを使用してグラフィックスパイプライン200とインターフェースすることができる。アプリケーション205は、ビューを計算する役割を担う。ビューは、ユーザが入力を提供するにつれて、3Dモデルから動的に計算され得る。例えば、ユーザは、3Dモデルによって定義されたシーンをキャプチャするカメラのパースペクティブ、ズーム、配向、又は位置を変更するための命令又は入力を与えてもよい。これに応答して、アプリケーション205は、マルチビュー画像のビューをリアルタイムで計算することができる。この場合、マルチビュー画像は、リアルタイムグラフィックスパイプラインにおいてレンダリングされるべきビデオのフレームであり得る。
【0072】
マルチビュー画像のビューは、ユーザ対話に応答して動的に計算することができる。アプリケーション205は、アプリケーション205によって計算されているいずれか又は全てのビューのリアルタイムレンダリングを実行するために、グラフィックスパイプライン200へのコマンドを生成することができる。例えば、アプリケーション205は、API関数呼び出しをグラフィックスパイプライン200に送信して、ビューをレンダリングしてもよい。
【0073】
リアルタイムレンダリングは、初期レンダリング部分及び後処理部分を含み得る。初期レンダリング部分は、初期ビューをレンダリングするためのグラフィックスパイプライン200を含む。上記で説明したように、ビューは、高度な光学効果なしにディスプレイ上にマルチビュー画像のピクセルを迅速にレンダリングするために最初にレンダリングされる。初期レンダリングを実行するためにシェーダが使用され得る。その後、アプリケーション205は、1つ又はそれ以上の後処理動作を呼び出して、初期レンダリングを最終レンダリングに変換することができる。後処理は、最初にレンダリングされた画像の品質又はリアリズムを改善する画像編集操作を適用することができる。実施形態によれば、アプリケーション205は、収束面を傾斜させるようにグラフィックスパイプライン200に命令する。例えば、グラフィックスパイプライン200は、各ビューに剪断機能を適用する。剪断機能の剪断強度は、マルチビュー画像内の他のビューに対するビューの位置と相関する。剪断機能を実装するためにシェーダが使用され得る。アプリケーション205は、剪断強度、剪断線、又はその両方をグラフィックスパイプラインへの入力として提供することができる。マルチビュー画像の剪断ビューは、次いで、マルチビューディスプレイ112上にレンダリングされる。このプロセスは、アプリケーション205がリアルタイムでレンダリングされる新しいマルチビュー画像を生成するときに連続的に行われる。
【0074】
図7A及び
図7Bは、本明細書で説明する原理と一致する実施形態による、マルチビュー画像のレンダリングを構成するためのユーザインターフェース244の例を示している。概して、ソフトウェア開発及び使用の2つのモード、すなわち、構成モード及びランタイムモードがある。構成モードは、開発者がソフトウェアアプリケーションを作成し、構成するモードを指す。例えば、アプリケーションは、開発者が構成モード中にナビゲーションアプリケーションを作成することを可能にしてもよい。開発者は、所望のカメラアングル、後処理動作、及びマルチビュー画像がどのようにレンダリングされるかの他の態様を指定することができる。ランタイムモードは、エンドユーザが、開発者によって構成されたソフトウェアを実行するモードを指す。
【0075】
ユーザインターフェース244は、クライアントデバイス上でレンダリングされ、ランタイムモード中にマルチビュー画像を最終的にレンダリングするアプリケーションを開発している開発者によって構成モード中に使用され得る。ユーザインターフェースは、ユーザに提示される情報(例えば、テキスト及びグラフィックス)を含むウィンドウを含み得る。ユーザインターフェース244は、エンドユーザアプリケーションを設計するために使用されるアプリケーションによって生成され得る。例えば、ユーザインターフェース244は、ナビゲーションアプリケーション、ゲームアプリケーション、又は他のアプリケーションを設計するために開発者によって使用されてもよい。ユーザインターフェース244は、グラフィックスを設計する開発者、及びグラフィックスが他のユーザに提示される方法によって使用されてもよい。ユーザインターフェース244はまた、エンドユーザアプリケーションによってレンダリングされ得る。ユーザインターフェース244は、ユーザが、異なる後処理動作に関するユーザ選択を行うことによって、構成モード中にシェーダを構成することを可能にし得る。シェーダがユーザ入力に従って構成されると、シェーダは、ランタイムにおいてマルチビュー画像を後処理することができる。
【0076】
ユーザインターフェース244は、マルチビュー画像又はその表現を表示するための第1の部分247を有することができる。第1の部分247は、マルチビュー画像のレンダリングを含み得る。例えば、マルチビュー画像のレンダリングは、ユーザ設定がランタイム中にマルチビュー画像にどのように適用されるかをシミュレートすることができる。ユーザインターフェース244は、メニューを含む第2の部分250を有することができる。メニューは、例えば、スライダ、テキストボックス、チェックボックス、ラジオボタン、ドロップダウンメニューなどの種々の入力要素を含んでもよい。メニューは、マルチビュー画像が第1の部分にレンダリングされるときに、ユーザがマルチビュー画像の種々の視覚的パラメータを変更することを可能にする。これらの視覚的パラメータは、例えば、カメラベースライン、収束オフセット、ZDP回転、自動ZDPオプション、被写界深度(DoF)閾値、DoF強度、透明度閾値、透明度強度、及び潜在的に他の視覚的パラメータを含む。ユーザは、1つ又はそれ以上の入力要素を操作することによって入力を提供することができる。その結果、ユーザ入力がユーザインターフェース244から受信される。
【0077】
図7Aは、ユーザインターフェースからユーザ入力を受信し、ユーザ入力に基づいて剪断強度を決定する一例を示している。例えば、ユーザは、ZDP回転スライダをスライドさせて、ZDP回転の範囲を選択してもよい。スライダが一端にあるように最小値(例えば、ゼロ回転)に設定されると、収束面は回転されない。スライダを他方の端部に移動させることによって最大値に設定されると、収束面は対応する方法で傾斜される。すなわち、ユーザ指定のZDP回転の量を使用して、傾斜量を決定する。これにより、ランタイム中に剪断機能を適用するときの剪断の強度を定量化することができる。
【0078】
剪断機能はまた、ユーザ指定され得るベースラインに従って剪断の強度を計算することができる。ベースラインは、少なくとも2つのビュー間の距離を増加させることによって、各ビューと中心視点との間の距離を制御する。したがって、ベースラインを増加させることで、ビューが中心視点からより遠くに移動し、それによって、そのビューにより強い剪断効果を受けるようになる。この目的のために、外側ビューは、収束面を傾斜させる効果を達成するために、より大きな程度まで剪断される。
【0079】
図7Bは、構成モード中に収束面の傾斜の量を自動的に決定するオプションをユーザが選択することを可能にするユーザインターフェースの一例を示している。例えば、アプリケーションは、マルチビュー画像のビューと別のビューとの間の共通点における視差値を計算することによって、剪断強度を自動的に決定してもよい。例えば、アプリケーションは、所定の位置における特徴を識別してもよい。特徴は、ピクセル、または共通の色を有するピクセルの集合であり得る。所定の位置は、ビューの水平軸又は垂直軸に沿った中間点であり得る。アプリケーションは、別のビュー内の対応する特徴の位置を識別して、他のビューの異なるビュー角度に起因してシフトした量を決定することができる。アプリケーションは、レイキャスト操作を呼び出して、所定の位置における特徴を識別することができる。レイキャスティングは、3Dモデルの特定の位置に向かって特定の角度から仮想光線を投影することを指す。出力は、3Dモデルの特徴を識別する。レイキャスティングは、3Dモデルからの異なるビュー間の視差を決定するために使用され得る。2つのビューの間で特徴が変位する量は、視差に等しい。2つのビュー間の視差が特定の位置で識別されると、収束面を傾斜した結果としてその特定の位置における視差が除去されるように、最適な剪断強度を決定することができる。この点に関して、計算された剪断強度を使用して収束面を傾斜させることは、視差が存在しないように所定の位置にビューを整合させることになる。
【0080】
図7A及び
図7Bはまた、後処理動作を選択的に適用するためのユーザインターフェースを示している。一部の実施形態では、マルチビュー画像の選択された領域に後処理動作を適用することができる。例えば、アプリケーションは、ユーザインターフェースからユーザ入力を受信し、ユーザ入力に基づいて視差値範囲を決定し、視差値範囲内の視差値を有するピクセルに応答してビューのピクセルに対して動作するようにシェーダを構成するように構成されてもよい。ユーザインターフェース244は、例えば、DoF閾値、透明度閾値、又は他の後処理動作のための閾値など、閾値を選択するためのメニューを含み得る。閾値は、視差の範囲に対応する値の範囲であり得る。低い閾値は、低い量の視差(例えば、0又は0に近い視差)に対応するビューの領域を包含し得る。より高い閾値は、ビュー全体が選択されるように、大量の視差に対応するビューの領域を包含し得る。閾値選択は、ビューの選択をゼロ視差面の両方向(内及び外)に拡張する。したがって、閾値選択に基づいて、アプリケーションは、視差値範囲を決定し、視差値範囲内に入るビュー中の領域を選択することができる。
【0081】
ビューの領域を選択した後、アプリケーションは、選択された領域のみにシェーダ動作(例えば、後処理動作)を適用する。シェーダは、透明度動作又は被写界深度動作、あるいは潜在的に他の後処理動作を実行するように構成される。透明度動作は、物体の背後の他の物体が見える程度を変化させる。この程度は、ユーザインターフェースを使用してユーザ指定されてもよい。例えば、
図7A及び
図7Bに示すように、ユーザは、透明度閾値内のピクセルの透明度を制御するために、透明度強度を指定してもよい。透明度動作を実行するシェーダは、透明度強度に従って構成され、透明度閾値によって定義される選択されたピクセルに対して動作する。
【0082】
被写界深度動作は、焦点が合っていると見なされる2つの物体間の深度の差を修正する。例えば、被写界深度動作は、選択されたピクセル内のピクセルの視差値を変更してもよい。例えば、被写界深度閾値が-30と+30との間の視差値を有するピクセルを選択する場合、大きな被写界深度強度は、選択されたピクセルに適用されるぼかしの程度を指定することができる。被写界深度動作は、被写界深度強度に対応するように、選択されたピクセルをぼかす。
【0083】
ユーザインターフェース244は、ユーザが閾値及び後処理動作パラメータに対して特定の選択を行うことを可能にする。これらの設定は、シェーダを構成するために使用される。ランタイム中、シェーダは、ユーザインターフェース244を介して適用された設定に従って動作する。
【0084】
図8は、本明細書で説明される原理と一致する一実施形態による、ピクセルがサンプリングされるときに剪断機能を適用するコンピューティングシステムの一例を示している。
図8は、少なくともプロセッサ及びメモリ303を含むコンピューティングシステムを示し、メモリ303は、実行されたときにプロセッサに種々の動作を実行させる複数の命令を記憶する。メモリ303は、
図4のメモリ208と同様であり得る。プロセッサ及びメモリを示すこのコンピューティングアーキテクチャの一例は、
図10に関してより詳細に説明される。
【0085】
コンピューティングシステムは、マルチビュー画像のビューをメモリ303にロードすることができる。例えば、
図4に関して上記で説明したように、アプリケーション(例えば、アプリケーション205)は、1つ又はそれ以上のマルチビュー画像309を生成し、異なるビュー312をリアルタイムでメモリ303にロードしてもよい。ビュー312は、ピクセル座標系によって定義されたビットマップとしてフォーマットされ得る。
図8に示すように、ビットマップは、水平(X)軸及び垂直(Y)軸を有することができる。例示すると、各ピクセルは、列の文字(A~G)及び行の番号(1~7)によって参照されてもよい。最も左上のピクセルは、ビュー312のピクセルA1と称される。各ビュー312についてのピクセルの数は、
図8に示されるピクセルの数よりも著しく大きくてもよいことを理解されたい。
【0086】
次に、コンピューティングシステムは、ピクセル座標系の軸323に沿って適用される剪断機能に従って、剪断ビュー320としてビューをレンダリングするための命令(レンダリング命令317)をグラフィックスパイプライン315に送信することができる。グラフィックスパイプライン315は、
図4のグラフィックスパイプライン200と同様であり得る。レンダリング命令317は、剪断機能を適用するように構成されたシェーダを呼び出すことによって、ビューを剪断ビュー320としてレンダリングするためのAPI関数呼び出しであり得る。剪断ビュー320は、各ビュー312が対応する剪断ビュー320を有するように、シーミングされたマルチビュー画像326の一部である。レンダリング命令317は、剪断されるビューを識別することができる。レンダリング命令317は、アプリケーションによって動的に生成されるマルチビュー画像211をレンダリングするためにグラフィックスパイプライン315にリアルタイムで送信される命令であってもよい。剪断機能は、例えば、
図4のシェーダ226などのシェーダによって実装されてもよい。シェーダは、例えば、
図7A及び
図7Bのユーザインターフェース244などのユーザインターフェースを使用して、ユーザによって構成モード中に構成されてもよい。
【0087】
剪断機能の剪断強度は、マルチビュー画像309内の他のビューに対するビュー312の位置と相関する。例えば、ビューインデックス番号は、他のビューに対するビュー312の位置を識別してもよい。上記で説明したように、一部の実施形態では、剪断強度は、ユーザインターフェースを介してユーザ入力を提供する構成モード中にユーザによって決定され得る。剪断強度は、ユーザ入力から決定され、ランタイム中に適用される。
【0088】
グラフィックスパイプライン315は、ビットマップのピクセルがグラフィックスパイプライン315によってサンプリングされるときに剪断機能を実装するように構成される。例えば、剪断機能は、ビュー312からピクセルをサンプリングすることによって剪断ビューを形成することを含んでもよい。1対1の対応で一様にサンプリングするのではなく、剪断機能は、剪断強度を使用して剪断線に沿ってピクセルをサンプリングして、剪断効果を引き起こす。例えば、剪断機能は、剪断線を形成する軸323に従って動作する。剪断ビュー320のピクセルは、ビュー312の対応する位置に近い位置からサンプリングされる。剪断ビュー320のピクセルが軸323から(垂直方向に)より遠くに移動するにつれて、水平変位の量は、ピクセルがサンプリングされている場所に対して増加する。
【0089】
例示すると、剪断ビュー320のピクセルD3は、行3及び4の近くにある軸に近い。剪断ビュー320のこのピクセルは、ビュー312のピクセルD3からサンプリングされる。これは、ピクセルサンプリングが同じ対応する位置で実行されるため、剪断効果がないことになる。しかしながら、ピクセルが垂直方向に更に上方に位置するにつれて、剪断効果はより明らかになる。剪断ビューのピクセルD1は、ビュー312のピクセルC1からサンプリングされる。この点に関して、軸323の北側のピクセルは右にスキューされている。これは、剪断効果を剪断ビューに適用させるサンプリングオフセットである。同様に、剪断ビュー320のピクセルD7は、ビュー312のピクセルE7からサンプリングされる。軸323の南側のピクセルは左にスキューされている。このスキュー機能は、ビュー312の特定のエッジの近くで動作するとき、無効な位置においてピクセルをサンプリングすることにつながり得る。例えば、剪断ビュー320のピクセルG7は、ビューの外側の位置(Xとして示される)からサンプリングされる。この場合、剪断ビュー320のG7についてのピクセルを生成するためにデフォルトピクセルが使用され得る。デフォルトピクセルは、ゼロ色値をもつピクセル(例えば、黒色ピクセル)であり得るか、又は任意の他のデフォルトピクセル値を有し得る。一部の実施形態では、デフォルトピクセル値は、境界内にある最も近いピクセルにマッチングすることによって決定され得る。
【0090】
図8は、ビュー312をピクセル座標系の水平軸(例えば、軸323)に沿ってのみスキューするように構成された剪断機能を示している。しかしながら、任意の軸配向を適用することができる。加えて、
図7A及び
図7Bに関して上述したように、後処理動作(収束面を傾斜させることを含む)は、ユーザインターフェース(例えば、ユーザインターフェース244)を使用して構成モード中に構成されてもよい。その後、剪断機能は、グラフィックスパイプライン315においてランタイム中に適用され得る。
【0091】
図9は、本明細書で説明する原理と一致する一実施形態によるマルチビュー画像の収束面を傾斜させるシステム及び方法のフローチャートを示している。
図9のフローチャートは、命令セットを実行するコンピューティングデバイス(例えば、マルチビューディスプレイシステム)によって実装される異なるタイプの機能の一例を提供する。代替として、
図9のフローチャートは、1つ又はそれ以上の実施形態による、コンピューティングデバイスにおいて実装される方法の要素の一例を示すものと見なされ得る。
【0092】
項目404において、コンピューティングデバイスは、マルチビュー画像の複数のビューを生成する。例えば、アプリケーション(例えば、
図4のアプリケーション205)は、ユーザ入力に応答してマルチビュー画像のビューを動的に生成することができる。アプリケーションは、ビューをメモリ(例えば、
図4のメモリ208、
図8のメモリ303)にロードすることができる。
【0093】
項目407において、コンピューティングデバイスは、各ビューと中心視点との間の距離を識別する。例えば、アプリケーションは、別のビューに対する各ビューの位置を示すビューインデックス番号に基づいて、この距離を識別してもよい。ビューインデックス番号は、ビューが中心の右にあるか左にあるかと、インデックス番号が順序付けられるときにビューが中心にどれだけ近いかとを示すことができる。距離は、ベースラインに従って計算され得る。ベースラインが予め決定されている場合、ビューインデックスは、ビューと中心視点との間の距離を推測するのに十分であり得る。
【0094】
項目410において、コンピューティングデバイスは、剪断機能を各ビューに適用して剪断ビューを生成する。例えば、グラフィックスパイプライン(例えば、
図4のグラフィックスパイプライン200、
図8のメモリ303)は、後処理剪断機能を適用するようにアプリケーションによって命令されてもよい。グラフィックスパイプラインは、ピクセル座標系の軸に沿って適用される剪断機能の第1の剪断強度に従って、第1の剪断ビューとしてグラフィックスパイプラインにおいて第1のビューをレンダリングすることができる。グラフィックスパイプラインは、ピクセル座標系の軸に沿って適用される剪断機能の第2の剪断強度に従って、第2の剪断ビューとしてグラフィックスパイプラインにおいて第2のビューをレンダリングすることができる。第1の剪断強度及び第2の剪断強度は異なり、ビューと中心視点との間の距離に基づく。例えば、第1の剪断強度は負の剪断強度であってもよく、第2の剪断強度は正の剪断強度であってもよい。剪断強度の符号は、ビューに適用される剪断の方向を制御し、これは、中心視点に対するビューの相対位置に依存する。
【0095】
項目413において、コンピューティングデバイスは、レンダリングされた剪断ビューを表示する。剪断ビューは、各ビューに適用される剪断量によって制御される傾斜収束面を効果的に有する。ビューは、マルチビューディスプレイ上にマルチビュー画像としてレンダリングされ得る。例えば、グラフィックスパイプラインは、例えば、グラフィックスドライバ及び/又はファームウェアを使用してマルチビューディスプレイと通信して、マルチビュー画像を表示のためにレンダリングさせてもよい。
【0096】
上記で説明した
図9のフローチャートは、命令セットの実装形態の機能及び動作を有する、収束面をリアルタイムで傾斜させるシステム又は方法を示し得る。ソフトウェアで具現化される場合、各ボックスは、指定された論理機能(複数可)を実装するための命令を含むモジュール、セグメント、又はコードの一部を表し得る。命令は、プログラミング言語で書かれた人間可読ステートメントを含むソースコード、ソースコードからコンパイルされた物体コード、又はプロセッサ、コンピューティングデバイスなどの適切な実行システムによって認識可能な数値命令を含む機械コードの形態で具現化され得る。マシンコードは、ソースコードなどから変換されてもよい。ハードウェアで具現化される場合、各ブロックは、指定された論理機能(複数可)を実装するための回路又は複数の相互接続された回路を表してもよい。
【0097】
図9のフローチャートは特定の実行順序を示すが、実行順序は図示されたものと異なってもよいことが理解される。例えば、2つ以上のボックスの実行順序は、示された順序に対してスクランブルされてもよい。また、示される2つ以上のボックスは、同時に、又は部分的に同時に実行されてもよい。更に、一部の実施形態では、ボックスのうちの1つ又はそれ以上がスキップ又は省略され得る。
【0098】
図10は、本明細書で説明する原理と一致する一実施形態によるマルチビューディスプレイシステムを提供するマルチビューディスプレイシステム1000の例示的な図を示す概略ブロック図である。マルチビューディスプレイシステム1000は、マルチビューディスプレイシステム1000のユーザのために種々のコンピューティング動作を実行する構成要素のシステムを含み得る。マルチビューディスプレイシステム1000は、ラップトップ、タブレット、スマートフォン、タッチスクリーンシステム、インテリジェントディスプレイシステム、又は他のクライアントデバイスであり得る。マルチビューディスプレイシステム1000は、例えば、プロセッサ(複数可)1003、メモリ1006、入力/出力(I/O)構成要素(複数可)1009、ディスプレイ1012、及び潜在的に他の構成要素などの種々の構成要素を含み得る。これらの構成要素は、マルチビューディスプレイシステム1000の構成要素が互いに通信することを可能にするローカルインターフェースとして機能するバス1015に結合することができる。マルチビューディスプレイシステム1000の構成要素は、マルチビューディスプレイシステム1000内に収容されるように示されているが、構成要素の少なくとも一部は、外部接続を介してマルチビューディスプレイシステム1000に結合することができることを理解されたい。例えば、構成要素は、外部ポート、ソケット、プラグ、又はコネクタを介してマルチビューディスプレイシステム1000に外部から差し込むか、又は他の方法で接続してもよい。
【0099】
プロセッサ1003は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、コンピューティング処理動作を実行する任意の他の集積回路、又はそれらの任意の組み合わせであり得る。プロセッサ(複数可)1003は、1つ又はそれ以上の処理コアを含み得る。プロセッサ(複数可)1003は、命令を実行する回路を備える。命令は、例えば、コンピュータコード、プログラム、ロジック、又は他のマシン可読命令を含み、これらは、プロセッサ(複数可)1003により受け取られて実行され、命令に具現化されたコンピューティング機能を遂行する。プロセッサ(複数可)1003は、データ上で動作するための命令を実行し得る。例えば、プロセッサ(複数可)1003は、入力データ(例えば、画像)を受信し、命令セットに従って入力データを処理し、出力データ(例えば、処理された画像)を生成してもよい。別の例として、プロセッサ(複数可)1003は、命令を受信し、後続の実行のために新しい命令を生成し得る。プロセッサ1003は、グラフィックスパイプライン(例えば、
図4のグラフィックスパイプライン200、
図8のグラフィックスパイプライン315)を実装するためのハードウェアを備え得る。例えば、プロセッサ(複数可)1003は、1つ又はそれ以上のGPUコア、ベクトルプロセッサ、スケーラプロセス、又はハードウェアアクセラレータを備えてもよい。
【0100】
メモリ1006は、1つ又はそれ以上のメモリ構成要素を含み得る。メモリ1006は、本明細書では、揮発性メモリ及び不揮発性メモリのいずれか又は両方を含むものとして定義される。揮発性メモリ構成要素は、電力喪失時に情報を保持しないものである。揮発性メモリは、例えば、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、磁気ランダムアクセスメモリ(MRAM)、又は他の揮発性メモリ構造を含んでもよい。システムメモリ(例えば、メインメモリ、キャッシュなど)は、揮発性メモリを使用して実装され得る。システムメモリは、プロセッサ(複数可)1003を支援するために、迅速な読み出し及び書き込みアクセスのためのデータ又は命令を一時的に記憶し得る高速メモリを指す。メモリ1006は、
図4のメモリ208若しくは
図8のメモリ303、又は1つ又はそれ以上の他のメモリデバイスを含み得る。
【0101】
不揮発性メモリ構成要素は、電力喪失時に情報を保持するものである。不揮発性メモリとして、読み出し専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープが挙げられる。ROMは、例えば、プログラマブルリードオンリメモリ(PROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、又は他の同様のメモリデバイスを含んでもよい。記憶メモリは、データ及び命令の長期保持を提供するために、不揮発性メモリを使用して実装され得る。
【0102】
メモリ1006は、命令並びにデータを記憶するために使用される揮発性メモリと不揮発性メモリとの組み合わせを指すことがある。例えば、データ及び命令は、不揮発性メモリに記憶され、プロセッサ(複数可)1003による処理のために揮発性メモリにロードされ得る。命令の実行は、例えば、不揮発性メモリから揮発性メモリにロードされ、次いでプロセッサ1003によって実行され得るフォーマットのマシンコードに変換されるコンパイルされたプログラム、プロセッサ1003による実行のために揮発性メモリにロードされ得る物体コードなどの好適なフォーマットに変換されるソースコード、又は揮発性メモリ中に命令を生成するために別の実行可能プログラムによって解釈され、プロセッサ1003によって実行されるソースコードなどを含んでもよい。命令は、例えば、RAM、ROM、システムメモリ、ストレージ、又はそれらの任意の組み合わせを含むメモリ1006の任意の部分又は構成要素に記憶又はロードされてもよい。
【0103】
メモリ1006は、マルチビューディスプレイシステム1000の他の構成要素とは別個のものとして示されているが、メモリ1006は、1つ又はそれ以上の構成要素に少なくとも部分的に埋め込むか、又は他の方法で統合することができることを理解されたい。例えば、プロセッサ(複数可)1003は、処理動作を実行するためのオンボードメモリレジスタ又はキャッシュを含み得る。
【0104】
I/O構成要素(複数可)1009は、例えば、タッチスクリーン、スピーカー、マイクロフォン、ボタン、スイッチ、ダイヤル、カメラ、センサ、加速度計、又はユーザ入力を受信するか、若しくはユーザへの出力を生成する他の構成要素を含む。I/O構成要素(複数可)1009は、ユーザ入力を受信し、それをメモリ1006に記憶するための、又はプロセッサ(複数可)1003によって処理するためのデータに変換することができる。I/O構成要素(複数可)1009は、メモリ1006又はプロセッサ(複数可)1003によって出力されたデータを受信し、それらをユーザによって知覚されるフォーマット(例えば、音、触覚応答、視覚情報など)に変換し得る。
【0105】
特定のタイプのI/O構成要素1009は、ディスプレイ1012である。ディスプレイ1012は、マルチビューディスプレイ(例えば、マルチビューディスプレイ112)、2Dディスプレイと組み合わされたマルチビューディスプレイ、又は画像を提示する任意の他のディスプレイを含み得る。I/O構成要素1009として機能する容量性タッチスクリーン層は、ユーザが視覚出力を同時に知覚しながら入力を提供することを可能にするために、ディスプレイ内に積層され得る。プロセッサ(複数可)1003は、ディスプレイ1012上に提示するための画像としてフォーマットされるデータを生成し得る。プロセッサ(複数可)1003は、ユーザによって知覚されるためにディスプレイ上に画像をレンダリングするための命令を実行し得る。
【0106】
バス1015は、プロセッサ(複数可)1003、メモリ1006、I/O構成要素(複数可)1009、ディスプレイ1012、及びマルチビューディスプレイシステム1000の任意の他の構成要素の間の命令及びデータの通信を容易にする。バス1015は、データ及び命令の通信を可能にするために、アドレス変換器、アドレスデコーダ、ファブリック、導電性トレース、導電性ワイヤ、ポート、プラグ、ソケット、及び他のコネクタを含み得る。
【0107】
メモリ1006内の命令は、ソフトウェアスタックの少なくとも一部を実装するように、種々の形態で具現化され得る。例えば、命令は、オペレーティングシステム1031、アプリケーション(複数可)1034、デバイスドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、又は他のソフトウェア構成要素として具現化されてもよい。オペレーティングシステム1031は、タスクのスケジューリング、I/O構成要素1009の制御、ハードウェアリソースへのアクセスの提供、電力の管理、及びアプリケーション1034のサポートなど、マルチビューディスプレイシステム1000の基本機能をサポートするソフトウェアプラットフォームである。
【0108】
アプリケーション(複数可)1034は、オペレーティングシステム1031上で実行され、オペレーティングシステム1031を介してマルチビューディスプレイシステム1000のハードウェアリソースへのアクセスを得ることができる。この点において、アプリケーション(複数可)1034の実行は、オペレーティングシステム1031によって少なくとも部分的に制御される。アプリケーション(複数可)1034は、高レベルの機能、サービス、及び他の機能性をユーザに提供する、ユーザレベルのソフトウェアプログラムであってもよい。一部の実施形態では、アプリケーション1034は、マルチビューディスプレイシステム1000上でユーザにダウンロード可能であるか、又は別様にアクセス可能な専用の「アプリ」とすることができる。ユーザは、オペレーティングシステム1031によって提供されるユーザインターフェースを介してアプリケーション(複数可)1034を起動することができる。アプリケーション(複数可)1034は、開発者によって開発され、種々のソースコードフォーマットで定義されてもよい。アプリケーション1034は、例えば、C、C++、C#、Objective C、Java(登録商標)、Swift、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Go、又は他のプログラミング言語などの一部のプログラミング言語又はスクリプト言語を使用して開発され得る。アプリケーション(複数可)1034は、コンパイラによって物体コードにコンパイルされてもよいし、プロセッサ(複数可)1003による実行のためにインタープリタによって解釈されてもよい。アプリケーション1034は、
図4のアプリケーション205であり得る。アプリケーションはまた、
図4のアプリケーション205を作成している開発者のための構成モードの一部としてユーザインターフェース(例えば、ユーザインターフェース244)を提供する別のアプリケーションであり得る。
【0109】
例えば、ディスプレイドライバ1037などのデバイスドライバは、オペレーティングシステム1031が種々のI/O構成要素1009と通信することを可能にする命令を含む。各I/O構成要素1009は、それ自体のデバイスドライバを有することができる。デバイスドライバは、それらがストレージに記憶され、システムメモリにロードされるようにインストールされ得る。例えば、インストール時に、ディスプレイドライバ1037は、オペレーティングシステム1031から受信された高レベル表示命令を、画像を表示するためにディスプレイ1012によって実装される低レベル命令に変換する。
【0110】
例えば、ディスプレイファームウェア1040などのファームウェアは、I/O構成要素1009又はディスプレイ1012が低レベル動作を実行することを可能にするマシンコード又はアセンブリコードを含んでもよい。ファームウェアは、特定の構成要素の電気信号をより高いレベルの命令又はデータに変換することができる。例えば、ディスプレイファームウェア1040は、電圧又は電流信号を調整することによって、ディスプレイ1012が個々のピクセルを低レベルでどのようにアクティブ化するかを制御してもよい。ファームウェアは、不揮発性メモリに記憶され、不揮発性メモリから直接実行されてもよい。例えば、ディスプレイファームウェア1040は、ROMチップがマルチビューディスプレイシステム1000の他のストレージ及びシステムメモリから分離されるように、ディスプレイ1012に結合されたROMチップ内に具現化されてもよい。ディスプレイ1012は、ディスプレイファームウェア1040を実行するための処理回路を含み得る。
【0111】
オペレーティングシステム1031、アプリケーション(複数可)1034、ドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、及び場合によっては他の命令セットはそれぞれ、上記で説明した機能及び動作を実行するためにマルチビューディスプレイシステム1000のプロセッサ(複数可)1003又は他の処理回路によって実行可能な命令を含み得る。本明細書に記載される命令は、上述のようにプロセッサ(複数可)1003によって実行されるソフトウェア又はコードで具現化されてもよいが、代替として、命令はまた、専用ハードウェア又はソフトウェアと専用ハードウェアとの組み合わせで具現化されてもよい。例えば、上述の命令によって実行される機能及び動作は、一部の技術のうちのいずれか1つ又はそれらの組み合わせを採用する回路又は状態機械として実装されてもよい。これらの技術は、限定はしないが、1つ又はそれ以上のデータ信号の印加時に種々の論理機能を実装するための論理ゲートを有するディスクリート論理回路、適切な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の構成要素などを含み得る。
【0112】
一部の実施形態では、上記で説明した機能及び動作を実行する命令は、非一時的コンピュータ可読記憶媒体において具現化され得る。コンピュータ可読記憶媒体は、マルチビューディスプレイシステム1000の一部であっても、そうでなくてもよい。命令は、例えば、コンピュータ可読媒体からフェッチされ、処理回路(例えば、プロセッサ(複数可)1003)によって実行され得るステートメント、コード、又は宣言を含み得る。本明細書で論じる文脈では、「非一時的コンピュータ可読媒体」は、例えば、マルチビューディスプレイシステム1000などの命令実行システムによって、又はそれに関連して使用するために、本明細書で説明する命令を含み、記憶し、又は維持することができる任意の媒体とすることができる。
【0113】
非一時的コンピュータ可読媒体は、例えば、磁気、光学、又は半導体媒体などの多くの物理媒体のうちのいずれか1つを備えることができる。適切なコンピュータ可読媒体のより具体的な例は、磁気テープ、磁気フロッピーディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、又は光ディスクを含み得るが、これらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)及びダイナミックランダムアクセスメモリ(DRAM)を含むランダムアクセスメモリ(RAM)、又は磁気ランダムアクセスメモリ(MRAM)であってもよい。加えて、コンピュータ可読媒体は、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、又は他のタイプのメモリデバイスであってもよい。
【0114】
マルチビューディスプレイシステム1000は、上述の動作のいずれかを実行するか、又は上述の機能を実装することができる。例えば、上記で説明したフローチャート及びプロセスフローは、命令を実行し、データを処理するマルチビューディスプレイシステム1000によって実行されてもよい。マルチビューディスプレイシステム1000は単一のデバイスとして示されているが、実施形態はそのように限定されない。一部の実施形態では、マルチビューディスプレイシステム1000は、複数のマルチビューディスプレイシステム1000又は他のコンピューティングデバイスが一緒に動作して、分散配置で記憶又はロードすることができる命令を実行するように、分散方式で命令の処理をオフロードすることができる。例えば、少なくとも一部の命令又はデータは、マルチビューディスプレイシステム1000とともに動作するクラウドベースのシステムに記憶され、ロードされ、又は実行されてもよい。
【0115】
以上、マルチビュー画像の収束面を傾斜させる例及び実施形態について説明した。例えば、収束面は、マルチビュー画像が表示のためにレンダリングされるときに、リアルタイムグラフィックスパイプラインにおいて傾斜されてもよい。この点において、収束面は、各ビューの相対位置に基づいてマルチビュー画像の異なるビューに剪断機能を適用することによって傾斜され得る。上述の例は、本明細書に記載された原理を表す多くの特定の例のうちの一部の単なる例示であることを理解されたい。明らかに、当業者は、以下の特許請求の範囲によって定義される範囲から逸脱することなく、多数の他の構成を容易に考案することができる。
【符号の説明】
【0116】
1~4 剪断ビュー
103 マルチビュー画像
106 ビュー
109 ビュー方向、主極大角度方向
112 マルチビューディスプレイ
115 マルチビュー画像
118 木
120 地面
121 カメラ
127 収束面
130 視錐台
133 視差マップ
135a 下部領域
135b 中間領域
135c 上部領域
138 傾斜収束面
141 傾斜量
150 回転軸
200 リアルタイムグラフィックスパイプライン
202 CPU
205 ユーザレベルアプリケーション
208 メモリ
211 マルチビュー画像
214a~d ビュー
220 ビューインデックス番号
221 レンダリングコマンド
226 シェーダ
232 剪断マルチビュー画像
235 中心視点
238 水平剪断線
241a 剪断効果
241b 剪断効果
241d 剪断効果
244 ユーザインターフェース
247 第1の部分
250 第2の部分
303 メモリ
309 マルチビュー画像
312 ビュー
315 グラフィックスパイプライン
317 レンダリング命令
320 剪断ビュー
323 軸
326 マルチビュー画像
1000 マルチビューディスプレイシステム
1003 プロセッサ
1006 メモリ
1009 入力/出力(I/O)構成要素
1012 ディスプレイ
1015 バス
1031 オペレーティングシステム
1034 アプリケーション
1037 ディスプレイドライバ
1040 ディスプレイファームウェア
【手続補正書】
【提出日】2023-06-12
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正の内容】
【0004】
本明細書で説明する原理による例及び実施形態の種々の特徴は、添付の図面とともに以下の詳細な説明を参照することによってより容易に理解され得、同様の参照番号は同様の構造要素を示す。
本開示は、以下の[1]から[22]を含む。
[1]コンピュータ実装される、マルチビュー画像の収束面を傾斜させる方法であって、上記方法は、
上記マルチビュー画像のビューをメモリにロードするステップであって、上記ビューは、ピクセル座標系によって定義されるビットマップとしてフォーマットされる、ステップと、
上記ビューと中心視点との間の距離を識別するステップと、
上記ピクセル座標系の軸に沿って適用される剪断機能に従って、剪断ビューとして、グラフィックスパイプラインにおいて上記ビューをレンダリングするステップであって、上記剪断機能の剪断強度は、上記距離と相関する、ステップと、
を含む、マルチビュー画像の収束面を傾斜させる方法。
[2]上記剪断機能は、上記ビューを上記ピクセル座標系の水平軸に沿ってのみスキューするように構成される、上記[1]に記載のマルチビュー画像の収束面を傾斜させる方法。
[3]上記マルチビュー画像は、ナビゲーションアプリケーションによって生成されたマップを含む、上記[2]に記載のマルチビュー画像の収束面を傾斜させる方法。
[4]上記ビューと上記中心視点との間の上記距離は、上記マルチビュー画像の上記ビューの順序付けられたビュー番号を決定することによって識別される、上記[1]に記載のマルチビュー画像の収束面を傾斜させる方法。
[5]ユーザインターフェースからユーザ入力を受信するステップと、
上記ユーザ入力に基づいて上記剪断強度を決定するステップと、
を更に含む、上記[1]に記載のマルチビュー画像の収束面を傾斜させる方法。
[6]上記方法は、
上記マルチビュー画像の上記ビューと別のビューとの間の共通点における視差値を計算することによって、上記剪断強度を自動的に決定するステップを更に含む、上記[1]に記載のマルチビュー画像の収束面を傾斜させる方法。
[7]ユーザインターフェースからユーザ入力を受信するステップと、
上記ユーザ入力に基づいて視差値範囲を決定するステップと、
上記視差値範囲内の視差値を有するピクセルに応答して、上記ビューの上記ピクセルに対して動作するようにシェーダを構成するステップと、
を更に含む、上記[1]に記載のマルチビュー画像の収束面を傾斜させる方法。
[8]上記シェーダは、透明度動作および被写界深度動作のうちの少なくとも1つを実行するように構成される、上記[7]に記載のマルチビュー画像の収束面を傾斜させる方法。
[9]マルチビューディスプレイシステムであって、上記システムは、
プロセッサと、
複数の命令を記憶するメモリと、を備え、上記複数の命令は、実行されると、上記プロセッサに、
マルチビュー画像のビューを上記メモリにロードするステップであって、上記ビューは、ピクセル座標系によって定義されるビットマップとしてフォーマットされる、ステップと、
上記ピクセル座標系の軸に沿って適用される剪断機能に従って、上記ビューを剪断ビューとしてレンダリングする命令をグラフィックスパイプラインに送信するステップであって、上記剪断機能の剪断強度は、上記マルチビュー画像内の他のビューに対する上記ビューの位置と相関する、ステップと、を行わせ、
上記グラフィックスパイプラインは、上記ビットマップのピクセルが上記グラフィックスパイプラインによってサンプリングされるときに上記剪断機能を実装するように構成され、
上記マルチビューディスプレイシステムは、上記グラフィックスパイプラインにおいて収束面を傾斜させるように構成される、マルチビューディスプレイシステム。
[10]上記剪断機能は、上記ビューを上記ピクセル座標系の水平軸に沿ってのみスキューするように構成される、上記[9]に記載のマルチビューディスプレイシステム。
[11]上記マルチビュー画像は、ナビゲーションアプリケーションによって生成されたマップを含む、上記[9]に記載のマルチビューディスプレイシステム。
[12]上記複数の命令は、実行されると、上記プロセッサに、
ユーザインターフェースからユーザ入力を受信するステップと、
上記ユーザ入力に基づいて上記剪断強度を決定するステップと、
を更に行わせる、上記[9]に記載のマルチビューディスプレイシステム。
[13]上記複数の命令は、実行されると、上記プロセッサに、上記マルチビュー画像の上記ビューと別のビューとの間の共通点における視差値を計算することによって、上記剪断強度を自動的に決定するステップを更に行わせる、上記[9]に記載のマルチビューディスプレイシステム。
[14]上記複数の命令は、実行されると、上記プロセッサに、
ユーザインターフェースからユーザ入力を受信するステップと、
上記ユーザ入力に基づいて視差値範囲を決定するステップと、
上記視差値範囲内の視差値を有するピクセルに応答して上記ビューの上記ピクセルに対して動作するようにシェーダを構成するステップと、
を更に行わせる、上記[9]に記載のマルチビューディスプレイシステム。
[15]上記シェーダは、透明度動作および被写界深度動作のうちの少なくとも1つを実行するように構成される、上記[14]に記載のマルチビューディスプレイシステム。
[16]上記マルチビューディスプレイシステムは、広角バックライトを使用して2Dモード中に広角放射光を提供するように構成され、
上記マルチビューディスプレイシステムは、マルチビーム要素のアレイを有するマルチビューバックライトを使用してマルチビューモード中に指向性放射光を提供するように構成され、上記指向性放射光は、上記マルチビーム要素アレイの各マルチビーム要素によって提供される複数の指向性光ビームを含み、
上記マルチビューディスプレイシステムは、上記2Dモードに対応する第1の順次時間間隔中に上記広角バックライトを、上記マルチビューモードに対応する第2の順次時間間隔中に上記マルチビューバックライトを順次アクティブ化するために、モードコントローラを使用して上記2Dモードと上記マルチビューモードとを時間多重化するように構成され、
上記複数の指向性光ビームの指向性光ビーム方向は、マルチビュー画像の異なるビュー方向に対応する、上記[9]に記載のマルチビューディスプレイシステム。
[17]上記マルチビューディスプレイシステムは、導光体内の光を導波光として導波するように構成され、
上記マルチビューディスプレイシステムは、上記マルチビーム要素アレイのマルチビーム要素を使用して、上記導波光の一部を上記指向性放射光として散乱させるように構成され、上記マルチビーム要素アレイの各マルチビーム要素は、回折格子、微小屈折要素、及び微小反射要素のうちの1つ又はそれ以上を備える、上記[16]に記載のマルチビューディスプレイシステム。
[18]コンピューティングシステムのプロセッサによって実行されると、グラフィックスパイプラインにおいて収束面を傾斜させることを実装する命令を記憶する非一時的コンピュータ可読記憶媒体であって、
マルチビュー画像の複数のビューを生成するステップであって、各ビューは、ピクセル座標系によって定義されるビットマップとしてフォーマットされ、上記複数のビューは、第1のビューと第2のビューとを備える、ステップと、
上記ピクセル座標系の軸に沿って適用される剪断機能の第1の剪断強度に従って、第1の剪断ビューとして、上記グラフィックスパイプラインにおいて上記第1のビューをレンダリングするステップと、
上記ピクセル座標系の上記軸に沿って適用される上記剪断機能の第2の剪断強度に従って、第2の剪断ビューとして、上記グラフィックスパイプラインにおいて上記第2のビューをレンダリングするステップと、
を含む、非一時的コンピュータ可読記憶媒体。
[19]上記剪断機能は、上記ピクセル座標系の水平軸に沿ってのみ適用される、上記[18]に記載の非一時的コンピュータ可読記憶媒体。
[20]上記剪断機能は、上記ピクセル座標系の垂直軸に沿って上記第1のビュー及び上記第2のビューをスキューするように構成される、上記[18]に記載の非一時的コンピュータ可読記憶媒体。
[21]上記第1の剪断強度は、負の剪断強度であり、上記第2の剪断強度は、正の剪断強度である、上記[18]に記載の非一時的コンピュータ可読記憶媒体。
[22]上記グラフィックスパイプラインは、上記マルチビュー画像の上記ビットマップのピクセルが上記グラフィックスパイプラインによってサンプリングされるときに上記剪断機能を実装するように構成される、上記[18]に記載の非一時的コンピュータ可読記憶媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
上述のように、各ビュー106は、マルチビューディスプレイ112によって、異なる対応するビュー方向109に提示される。表示のためにマルチビュー画像103を提示するとき、ビュー106は、実際には、マルチビューディスプレイ112上又はその近傍に現れることができる。2Dディスプレイは、マルチビュー画像103の異なるビュー106とは対照的に、2Dディスプレイが概して単一のビュー(例えば、ビューのうちの1つのみ)を提供するように構成されることを除いて、マルチビューディスプレイ112と実質的に同様であり得る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
例えば、2Dモードでは、広角バックライトは、マルチビューディスプレイシステムが2Dディスプレイのように動作するように画像を生成してもよい。定義により、「広角」放射光は、マルチビュー画像又はマルチビューディスプレイのビューの円錐角よりも大きい円錐角を有する光として定義される。特に、一部の実施形態では、広角放射光は、約20度よりも大きい(例えば、>±20°)円錐角を有することができる。他の実施形態では、広角放射光円錐角は、約30度超(例えば、>±30°)又は約40度超(例えば、>±40°)又は約50度超(例えば、>±50°)であってもよい。例えば、広角放射光の円錐角は、約60度超(例えば、>±60°)であってもよい。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0054
【補正方法】変更
【補正の内容】
【0054】
アプリケーション205は、マルチビュー画像211のビュー214a~dをメモリ208にロードすることができる。例えば、アプリケーション205は、3Dモデルを、3Dモデルから導出されたマルチビュー画像211を示すためのレンダリングされたシーンに変換するように構成されてもよい。1つ又はそれ以上のビュー214a~dは、アプリケーション205によって生成され、メモリ208の特定のブロックに配置される。ビュー214a~dは、ピクセル座標系によって定義されたビットマップ217としてフォーマットされ得る。例えば、ビュー214a~dは、水平(X)軸及び垂直(Y)軸に沿ったビットマップの2次元アレイとして表現されてもよい。ビットマップ217内の各ピクセルは、ディスプレイ上の対応する位置を有する。例えば、ビットマップ217の最も左上のピクセルは、ディスプレイの最も左上のピクセルの出力を制御する。加えて、各ビュー214a~dは、対応するビューインデックス番号220を有し得る。ビューインデックス番号220は、マルチビュー画像211内のビューの順序付けられたビュー番号であり得る。例えば、4ビューマルチビューフォーマットでは、4つのビューの各々は、1、2、3、及び4と番号付けされてもよい。ビューインデックス番号220は、他のビューに対するビューの位置を示す。例えば、ビュー1は最左ビューであり得、ビュー2は左中央ビューであり得、ビュー3は右中央ビューであり得、ビュー4は最右ビューであり得る。この場合、最大視差は、ビュー1とビュー4との間である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0060
【補正方法】変更
【補正の内容】
【0060】
ビュー214a~dは、ピクセル座標系によって定義されたビットマップ217としてフォーマットされ得る。ビュー214a~dは、3Dモデルの特定の視点及び視野角を識別し、それをビットマップ217に変換することによって、3Dモデルから生成され得る。これは、マルチビュー画像211の各ビューについて実行することができる。次いで、アプリケーション205は、レンダリングコマンド221を呼び出して、マルチビュー画像211のビュー214a~dを最初にレンダリングすることができる。例えば、アプリケーション205は、APIを使用して、初期レンダリングを実行するようにグラフィックスパイプライン200に要求してもよい。それに応答して、グラフィックスパイプライン200は、例えば、ラスタライゼーションを実行することによって、最初にレンダリングされたビュー214a~dを生成してもよい。リアルタイムグラフィックスレンダリング環境では、グラフィックスパイプライン200は、オンザフライでビュー214a~dを迅速にレンダリングするように最適化され得る。これは、新しいマルチビュー画像211が動的に生成される(及び事前レンダリングされない)ため、シームレスな体験を視認者に提供する。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0061
【補正方法】変更
【補正の内容】
【0061】
次に、アプリケーション205は、収束面をリアルタイムで傾斜させるように構成される。例えば、アプリケーション205は、ビュー214a~dと中心視点との間の距離を識別してもよい。異なるビュー214a~dが、中心視点に対して種々の程度の水平視差を有する場合を仮定すると、水平軸に沿った各ビューと中心視点との間の距離が決定され得る。この距離は、ベースライン(例えば、ビュー間の距離)に依存する。例えば、ベースラインが大きいほど、中心視点からの距離が大きくなる。一部の実施形態では、ビュー214a~dと中心視点との間の距離は、マルチビュー画像211内のビュー214a~dの順序付けられたビュー番号(例えば、ビューインデックス番号220)を決定することによって識別される。例えば、マルチビュー画像211のビュー214a~dが1から4まで順序付けられる場合、ビュー1は最も左側に配置され、ビュー4は最も右側に配置される。ビューインデックス番号220は、ビュー214a~dと中心視点との間の距離に対応する。例えば、1のビューインデックス番号220は、中心の左に50ピクセルの距離に対応し得、2のビューインデックス番号220は、中心の左に25ピクセルの距離に対応し得、3のビューインデックス番号220は、中心の右に25ピクセルの距離に対応し得、4のビューインデックス番号220は、中心の右に50ピクセルの距離に対応し得る。中心からの距離は、ビューが中心の左にあるかどうかを示すための符号付きの数(例えば、正又は負)であり得る。例えば、負の距離は、ビューが中心の左にあることを示し得、一方、正の距離は、ビューが中心の右にあることを示し得る。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0065
【補正方法】変更
【補正の内容】
【0065】
各ビューは、中心視点235までの対応する距離を有し得る。
図5Aは、各ビューの中心から測定されたこの距離を示すが、距離は、例えば、左端又は右端などのビューの任意の点から測定されてもよい。ビュー1は、中心視点235から「D1」の距離だけ離れている。ビュー2は、中心視点235から「D2」の距離だけ離れている。ビュー3は、中心視点235から「D
3」の距離だけ離れている。ビュー4は、中心視点235から「D4」の距離だけ離れている。距離D1及びD2は、それが中心視点235の左にあることを示す負の値であり得、距離D3及びD4は、それが中心視点235の右にあることを示す正の値であり得る。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0093
【補正方法】変更
【補正の内容】
【0093】
項目407において、コンピューティングデバイスは、各ビューと中心視点との間の距離を識別する。例えば、アプリケーションは、別のビューに対する各ビューの位置を示すビューインデックス番号に基づいて、この距離を識別してもよい。ビューインデックス番号は、ビューが中心の右にあるか左にあるかと、インデックス番号が順序付けられるときにビューが中心にどれだけ近いかとを示すことができる。距離は、ベースラインに従って計算され得る。ベースラインが予め決定されている場合、ビューインデックス番号は、ビューと中心視点との間の距離を推測するのに十分であり得る。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0098
【補正方法】変更
【補正の内容】
【0098】
図10は、本明細書で説明する原理と一致する一実施形態によるマルチビューディスプレ
イを提供するマルチビューディスプレイシステム1000の例示的な図を示す概略ブロック図である。マルチビューディスプレイシステム1000は、マルチビューディスプレイシステム1000のユーザのために種々のコンピューティング動作を実行する構成要素のシステムを含み得る。マルチビューディスプレイシステム1000は、ラップトップ、タブレット、スマートフォン、タッチスクリーンシステム、インテリジェントディスプレイシステム、又は他のクライアントデバイスであり得る。マルチビューディスプレイシステム1000は、例えば、プロセッサ(複数可)1003、メモリ1006、入力/出力(I/O)構成要素(複数可)1009、ディスプレイ1012、及び潜在的に他の構成要素などの種々の構成要素を含み得る。これらの構成要素は、マルチビューディスプレイシステム1000の構成要素が互いに通信することを可能にするローカルインターフェースとして機能するバス1015に結合することができる。マルチビューディスプレイシステム1000の構成要素は、マルチビューディスプレイシステム1000内に収容されるように示されているが、構成要素の少なくとも一部は、外部接続を介してマルチビューディスプレイシステム1000に結合することができることを理解されたい。例えば、構成要素は、外部ポート、ソケット、プラグ、又はコネクタを介してマルチビューディスプレイシステム1000に外部から差し込むか、又は他の方法で接続してもよい。
【国際調査報告】