(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022092740
(43)【公開日】2022-06-23
(54)【発明の名称】XR環境における3次元オブジェクトを描画するための方法及び装置
(51)【国際特許分類】
G06T 19/00 20110101AFI20220616BHJP
G06T 15/00 20110101ALI20220616BHJP
G06F 3/04815 20220101ALI20220616BHJP
【FI】
G06T19/00 A
G06T15/00 501
G06F3/0481 150
【審査請求】未請求
【請求項の数】7
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2020205621
(22)【出願日】2020-12-11
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】518427524
【氏名又は名称】未來市股▲ふん▼有限公司
(74)【代理人】
【識別番号】100081961
【弁理士】
【氏名又は名称】木内 光春
(74)【代理人】
【識別番号】100112564
【弁理士】
【氏名又は名称】大熊 考一
(74)【代理人】
【識別番号】100163500
【弁理士】
【氏名又は名称】片桐 貞典
(74)【代理人】
【識別番号】230115598
【弁護士】
【氏名又は名称】木内 加奈子
(72)【発明者】
【氏名】胡 智偉
【テーマコード(参考)】
5B050
5B080
5E555
【Fターム(参考)】
5B050BA09
5B050BA13
5B050CA07
5B050DA10
5B050EA07
5B050EA18
5B050EA19
5B050FA02
5B050FA09
5B050GA08
5B080AA19
5B080BA02
5B080CA01
5B080DA06
5B080FA02
5B080FA03
5B080FA08
5B080FA09
5B080FA17
5B080GA02
5B080GA22
5E555AA27
5E555BA02
5E555BA04
5E555BA05
5E555BA06
5E555BA83
5E555BB02
5E555BB04
5E555BB05
5E555BB06
5E555BE17
5E555DA02
5E555DA08
5E555DB53
5E555DC43
5E555FA00
(57)【要約】 (修正有)
【課題】XR環境における3次元オブジェクトを描画するための方法及び装置を提供する。
【解決手段】第1のオブジェクトの第1の部分が第2のオブジェクトと共に、第1のオブジェクトの第2の部分なしに、第1のレンダーパス上に提示される。第1の部分は第2のオブジェクトよりもユーザ側に近い。第2のオブジェクトは第2の部分よりもユーザ側に近い。第2の部分が第2のオブジェクトと共に、第1の部分なしに、第2のレンダーパス上に提示される。第1のレンダーパスと第2のレンダーパスとに基づき、最終フレームが生成される。第1のオブジェクトの第1及び第2の部分と第2のオブジェクトとが最終フレームに提示され、最終フレームはディスプレイ上に表示されるために用いられる。従って、3次元オブジェクトを描画するための柔軟な方法が提供される。
【選択図】
図2
【特許請求の範囲】
【請求項1】
XR(extended reality)環境における3次元オブジェクトを描画するための方法であって、
第1のオブジェクトの第1の部分を第2のオブジェクトと共に、前記第1のオブジェクトの第2の部分なしに、第1のレンダーパス上に提示することであって、前記第1のオブジェクトの前記第1の部分が前記第2のオブジェクトよりもユーザ側に近く、前記第2のオブジェクトが前記第1のオブジェクトの前記第2の部分よりも前記ユーザ側に近いことと、
前記第1のオブジェクトの前記第2の部分を前記第2のオブジェクトと共に、前記第1のオブジェクトの前記第1の部分なしに、第2のレンダーパス上に提示することと、
前記第1のレンダーパスと前記第2のレンダーパスとに基づき、最終フレームを生成することであって、前記第1のオブジェクトの前記第1の部分及び前記第2の部分と前記第2のオブジェクトとが前記最終フレームに提示され、前記最終フレームがディスプレイ上に表示されるために用いられることと
を含む、
方法。
【請求項2】
XR(extended reality)環境における3次元オブジェクトを描画するための装置であって、
プログラムコードを格納する、メモリと、
前記メモリに連接され、
第1のオブジェクトの第1の部分を第2のオブジェクトと共に、前記第1のオブジェクトの第2の部分なしに、第1のレンダーパス上に提示することであって、前記第1のオブジェクトの前記第1の部分が前記第2のオブジェクトよりもユーザ側に近く、前記第2のオブジェクトが前記第1のオブジェクトの前記第2の部分よりも前記ユーザ側に近いことと、
前記第1のオブジェクトの前記第2の部分を前記第2のオブジェクトと共に、前記第1のオブジェクトの前記第1の部分なしに、第2のレンダーパス上に提示することと、
前記第1のレンダーパスと前記第2のレンダーパスとに基づき、最終フレームを生成することであって、前記第1のオブジェクトの前記第1の部分及び前記第2の部分と前記第2のオブジェクトとが前記最終フレームに提示され、前記最終フレームがディスプレイ上に表示されるために用いられることと
を実行するためプログラムコードを読み込む、プロセッサと
を含む、
装置。
【請求項3】
前記第1のオブジェクトの前記第2の部分を前記第2のオブジェクトと共に、前記第1のオブジェクトの前記第1の部分なしに、前記第2のレンダーパス上に提示するステップが、
深度閾値を、深度テストの後に更新しないよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの画素の深度が前記深度閾値よりも大きいことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第2のレンダーパス上に描かれるよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素の前記深度が前記深度閾値よりも大きくないことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第2のレンダーパス上に描かれないよう設定することと
を含む、
請求項1に記載の方法、
又は、
前記プロセッサが、
深度閾値を、深度テストの後に更新しないよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの画素の深度が前記深度閾値よりも大きいことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第2のレンダーパス上に描かれるよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素の前記深度が前記深度閾値よりも大きくないことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第2のレンダーパス上に描かれないよう設定することと
を実行するよう更に構成された、
請求項2に記載の装置。
【請求項4】
前記第1のオブジェクトの前記第1の部分を前記第2のオブジェクトと共に、前記第1のオブジェクトの前記第2の部分なしに、前記第1のレンダーパス上に提示するステップが
深度閾値を、深度テストの後に更新されるよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの画素の深度が前記深度閾値よりも大きくないことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第1のレンダーパス上に描かれるよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素の前記深度が前記深度閾値よりも大きいことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第1のレンダーパス上に描かれないよう設定することと
を含む、
請求項1に記載の方法、
又は、
前記プロセッサが、
深度閾値を、深度テストの後に更新されるよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの画素の深度が前記深度閾値よりも大きくないことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第1のレンダーパス上に描かれるよう設定することと、
前記深度テストを、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素の前記深度が前記深度閾値よりも大きいことに応じて、前記第1のオブジェクト又は前記第2のオブジェクトの前記画素が前記第1のレンダーパス上に描かれないよう設定することと
を実行するよう更に構成された、
請求項2に記載の装置。
【請求項5】
前記第1のオブジェクトの前記第2の部分を前記第2のオブジェクトと共に、前記第1のオブジェクトの前記第1の部分なしに、前記第2のレンダーパス上に提示するステップが、
前記第1のオブジェクトの前記第2の部分に前記第2のオブジェクトを用いてアルファ合成を実行すること
を含む、
請求項1に記載の方法、
又は、
前記プロセッサが、
前記第1のオブジェクトの前記第2の部分に前記第2のオブジェクトを用いてアルファ合成を実行する
よう更に構成された、
請求項2に記載の装置。
【請求項6】
前記第1のオブジェクトのコンテンツが、前記第2のオブジェクトのコンテンツよりも高い優先度を有する、
請求項1に記載の方法、
又は、
請求項2に記載の装置。
【請求項7】
前記第1のオブジェクトがユーザインターフェイスである、
請求項1に記載の方法、
又は、
請求項2に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、XR(extended reality)シミュレーションに関するものであり、特に、XR環境における3次元オブジェクトを描画するための方法及び装置に関するものである。
【背景技術】
【0002】
仮想現実(VR)、拡張現実(AR)、複合現実(MR)といった、感覚、知覚、及び/又は環境をシミュレートするためのXR技術は、最近人気が高まっている。前記技術は、ゲーム、軍事訓練、医療、遠隔操作等といった、複数の分野に応用することができる。
【0003】
XRにおいて、1つの環境には多くの仮想オブジェクト及び/又は現実オブジェクトが存在する。基本的に、これらオブジェクトは、これらの深度に基づきフレーム上に描画される。即ち、ユーザ側に近い1つのオブジェクトは、ユーザ側から遠いもう1つのオブジェクトを覆う。しかし、状況によっては、いくつかのオブジェクトは、他のオブジェクトにより覆われるとしても、常にフレーム上に提示されるべきである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
オブジェクトの一部が他により覆われるとしても、オブジェクト全体を提示する必要がある。従って、本発明は、既定の描画規則を改変するための、XR環境における3次元オブジェクトを描画するための方法及び装置を対象とする。
【課題を解決するための手段】
【0005】
例示的な実施形態の1つにおいて、XR環境における3次元オブジェクトを描画する方法は、以下のステップを含むが、これに限定されない。第1のオブジェクトの第1の部分が第2のオブジェクトと共に、第1のオブジェクトの第2の部分なしに、第1のレンダーパス上に提示される。第1のオブジェクトの第1の部分は、第2のオブジェクトよりもユーザ側に近い。第2のオブジェクトは、第1のオブジェクトの第2の部分よりもユーザ側に近い。第1のオブジェクトの第2の部分が第2のオブジェクトと共に、第1のオブジェクトの第1の部分なしに、第2のレンダーパス上に提示される。第1のレンダーパスと第2のレンダーパスとに基づき最終フレームが生成される。第1のオブジェクトの第1の部分及び第2の部分と、第2のオブジェクトとが最終フレームに提示され、最終フレームはディスプレイ上に表示されるために用いられる。
【0006】
例示的な実施形態の1つにおいて、XR環境における3次元オブジェクトを描画するための装置は、メモリとプロセッサとを含むが、これに限定されない。メモリはプログラムコードを格納する。プロセッサはメモリに連接され、以下のステップを実行するためプログラムコードを読み込む。プロセッサは、第1のオブジェクトの第1の部分を第2のオブジェクトと共に、第1のオブジェクトの第2の部分なしに、第1のレンダーパス上に提示する。第1のオブジェクトの第1の部分は、第2のオブジェクトよりもユーザ側に近い。。第2のオブジェクトは、第1のオブジェクトの第2の部分よりもユーザ側に近い。プロセッサは、第1のオブジェクトの第2の部分を第2のオブジェクトと共に、第1のオブジェクトの第1の部分なしに、第2のレンダーパス上に提示する。プロセッサは、第1のレンダーパスと第2のレンダーパスとに基づき最終フレームを生成する。第1のオブジェクトの第1の部分及び第2の部分と、第2のオブジェクトとが最終フレームに提示され、最終フレームはディスプレイ上に表示されるために用いられる。
【発明の効果】
【0007】
上記を鑑み、XR環境における3次元オブジェクトを描画するため方法及び装置によると、第1のオブジェクトの第2の部分が第2のオブジェクトよりもユーザ側に近くないとはいえ、第1のオブジェクトの第2の部分を1つのレンダーパス上に提示し、第1のオブジェクト全体が最終フレームに提示される。従って、3次元オブジェクトを描画するための柔軟な方法を提供する。
【0008】
ただし、この概要は本発明の全ての様態と実施形態を含むものではなく、如何なる方法でも限定又は制限を意図するものではないことを理解されたい。そして、ここで開示される発明は、その明らかな改善と改変を含むと当業者により理解される。
【図面の簡単な説明】
【0009】
本発明の更なる理解のため添付図面が含まれ、本明細書に包含され、本明細書の一部を構成する。図面は本発明の実施形態を表し、明細書と共に、本発明の原理を説明する役割を果たす。
【0010】
【
図1】
図1は、本発明の例示的な実施形態の1つによる、XR環境における3次元オブジェクトを描画するための装置を表すブロック図である。
【0011】
【
図2】
図2は、本発明の例示的な実施形態の1つによる、XR環境における3次元オブジェクトを描画するための方法を表すフロー図である。
【0012】
【
図3A】
図3Aは、本発明の例示的な実施形態の1つによる第1のレンダーパスを表す概略図である。
【0013】
【0014】
【
図4A】
図4Aは、本発明の例示的な実施形態の1つによる第2のレンダーパスを表す概略図である。
【0015】
【0016】
【
図5A】
図5Aは、本発明の例示的な実施形態の1つによる最終フレームを表す概略図である。
【0017】
【発明を実施するための形態】
【0018】
本発明の好ましい実施形態の詳細を述べる。実施例は添付の図面に表される。可能な限り、図面と明細書において同一の符号が同一又は類似の部材に対し用いられる。
【0019】
図1は、本発明の例示的な実施形態の1つによる、XR環境における3次元オブジェクトを描画するための装置100を表すブロック図である。
図1を参照し、装置100は、メモリ110とプロセッサ130とを含むが、これに限定されない。1つの実施形態において、装置100は、コンピュータ、スマートフォン、ヘッドマウントディスプレイ、デジタルメガネ、タブレット、又は他の演算装置であることができる。いくつかの実施形態において、装置100は、VR、AR、MRといったXR、又は他の現実シミュレーション関連技術に適合されてよい。
【0020】
メモリ110は、固定又は取り外し可能なランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、類似のデバイス、又は上記デバイスの組合せの如何なる種類であってもよい。メモリ110は、プログラムコード、デバイス設定、バッファ又は(描画パラメータ、レンダーパス、又はフレームといった)永続的データを記録し、これらデータについては後に紹介する。。
【0021】
プロセッサ130は、メモリ110と連接される。プロセッサ130は、本発明の例示的な実施形態の手順を実行するため、メモリ110に格納されたプログラムコードを読み込むよう構成される。
【0022】
いくつかの実施形態において、プロセッサ130は、中央処理装置(CPU)、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッシングユニット(GPU)、デジタル信号処理(DSP)チップ、フィールドプログラマブルゲートアレイ(FPGA)であってよい。プロセッサ130の機能は、独立した電子デバイス又は集積回路(IC)により実装されてもよく、プロセッサ130の動作はソフトウェアにより実装されてもよい。
【0023】
1つの実施形態において、装置100は、LCD、LEDディスプレイ、又はOLEDディスプレイといった、ディスプレイ150を更に含む。
【0024】
1つの実施形態において、HMD又はデジタルメガネ(即ち、装置100)は、メモリ110と、プロセッサ130と、ディスプレイ150とを含む。いくつかの実施形態において、プロセッサ130は、ディスプレイ150と同一の装置に設けられなくてもよい。ただし、プロセッサ130、ディスプレイ150をそれぞれ搭載する機器は、互いにデータを送受信するため、Bluetooth、Wi-Fi、赤外線無線通信といった、互換性のある通信技術を有する通信トランシーバ、又は物理的な伝送路を更に含んでよい。例えば、ディスプレイ150がコンピュータの外部のモニタに設けられるのに対し、プロセッサ130はコンピュータ内に設けられてよい。
【0025】
本発明の1以上の実施形態において提供される動作処理をより理解し易くするよう、装置100の動作処理を詳述するため、いくつかの実施形態を以下に例示する。装置100内のデバイスとモジュールは、ここで提供されるXR環境における3次元オブジェクトを描画するための方法を説明するための、下記の実施形態において適用される。方法の各ステップは実際の実装状況に応じて調整でき、ここで説明されるものに限定されるべきではない。
【0026】
図2は、本発明の例示的な実施形態の1つによる、XR環境における3次元オブジェクトを描画するための方法を表すフロー図である。
図2を参照し、プロセッサ130は、第1のオブジェクトの第1の部分を第2のオブジェクトと共に、第1のオブジェクトの第2の部分なしに、第1のレンダーパス上に提示してよい(ステップS210)。具体的には、第1のオブジェクトと第2のオブジェクトは、現実又は仮想の3次元シーン、アバター、映像、写真、又は3次元XR環境における他の仮想又は現実オブジェクトであってよい。3次元環境は、ゲーム環境、仮想社交環境、又は仮想会議であってよい。1つの実施形態において、第1のオブジェクトのコンテンツは、第2のオブジェクトのコンテンツよりも高い優先度を有する。例えば、第1のオブジェクトは、メニュー、ナビゲーションバー、仮想キーボードのウィンドウ、ツールバー、ウィジェット、設定、又はアプリケーションショートカットといったユーザインターフェイスであることができる。時には、ユーザインターフェイスは1以上のアイコンを含んでよい。第2のオブジェクトは、壁、ドア、又は机である。いくつかの実施形態において、同一のXR環境において他のオブジェクトが存在する。
【0027】
加えて、第1のオブジェクトは第1の部分と第2の部分とを含む。ディスプレイ150上の1つのユーザの視野において、第1のオブジェクトの第1の部分は第2のオブジェクトよりもユーザ側に近いと仮定する。ただし、第2のオブジェクトは第1のオブジェクトの第2の部分よりもユーザ側に近い。更に、第2のオブジェクトは、ユーザのこの視野において、第1のオブジェクトの第2の部分と重なる。いくつかの実施形態において、第2のオブジェクトは、ユーザのこの視野において、第1のオブジェクトの第1の部分と更に重なる。
【0028】
一方、マルチパス技術において、同一のオブジェクトは何回も描画されてよく、オブジェクトの各描画は、最終値に累積される別々の演算を行う。状態の特定のセットを伴うオブジェクトの各描画は、「パス」又は「レンダーパス」と呼ばれる。
【0029】
1つの実施形態において、プロセッサ130は、深度テストの後に更新されるよう深度閾値を構成してよく、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きくない場合に第1又は第2のオブジェクトの画素が第1のレンダーパス上に描かれるよう深度テストを設定し、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きい場合に第1又は第2のオブジェクトの画素が第1のレンダーパス上に描かれないよう深度テストを設定してよい。具体的には、深度は、ユーザ側からオブジェクトの特定画素までの距離の測定である。UnityシェーダのZTestといった深度テストを実装する場合、深度テクスチャ(又は深度バッファ)がレンダーパス上に加えられる。深度テクスチャは、カラーテクスチャがカラー値を保持するのと同一の方法にて、第1のオブジェクト又は第2のオブジェクトの各画素のための深度値を格納する。深度値は、通常、各頂点について深度を算出して、ハードウェアにこれら深度値を補間させることにより、各フラグメントに対し算出される。プロセッサ130は、オブジェクトの新たなフラグメントを、それが深度テクスチャに格納された現在の値(実施形態において深度閾値と呼ばれる)よりもユーザ側に近いか否かを見るためテストしてよい。即ち、第1又は第2のオブジェクトの画素の深度が深度閾値よりも低いか否かが判定される。Unityシェーダを例とすると、ZTestの関数が「lequal」に設定され、深度テストは、フラグメントの深度値が格納された深度値(即ち、深度閾値)以下である場合(又は以下である場合にのみ)、パスされることができる。さもなくば、プロセッサ130はフラグメントを破棄する。即ち、第1又は第2のオブジェクトの画素は、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きくない場合(又は大きくない場合にのみ)、第1のレンダ―パス上に描かれる。更に、第1又は第2のオブジェクトの画素は、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きい場合(又は大きい場合にのみ)、第1のレンダーパスで破棄される。
【0030】
加えて、Unityシェーダを例として、ZWriteの関数が「on」に設定された場合、フラグメントの深度が深度テストをパスした場合(又はパスした場合のみ)、深度閾値が更新される。
【0031】
1つの実施形態において、第1に、第1のオブジェクトの第2の部分の画素について、該画素は第1のレンダーパス上に描かれ、深度閾値が第1のオブジェクトの第2の部分の深度に更新される。第2に、第2のオブジェクトの画素について、該画素は第1のレンダーパス上に描かれる。第2のオブジェクトは第1のオブジェクトの第2の部分を覆い、深度閾値が第2のオブジェクトの深度に更新される。第3に、第1のオブジェクトの第1の部分の画素について、該画素は第1のレンダーパス上に描かれ、深度閾値が第1のオブジェクトの第1の部分の深度に更新される。更に、第1のオブジェクトの第1の部分が第2のオブジェクトを覆ってよい。
【0032】
例えば、
図3Aは、本発明の例示的な実施形態の1つによる第1のレンダーパスを表す概略図であり、
図3Bは、
図3Aの位置関係の上面図である。
図3Aと3Bを参照し、第2のオブジェクトO2が仮想壁であり、ユーザUが第2のオブジェクトO2の前方に立っていると仮定する。ただし、第2のオブジェクトO2の表面はユーザUのユーザ側に対し平行ではなく、
図3Bに示されるように、第1のオブジェクトO1の第2の部分O12が第2のオブジェクトO2の背後に位置する。このため、第1のレンダーパスにおいて、第1のオブジェクトO1の第2の部分O12は第2のオブジェクトO2により完全に覆われ、第1のオブジェクトの第2の部分は不可視である。ただし、第1のオブジェクトO1の第1の部分O11は第2のオブジェクトO2を覆う。即ち、
図3Aに示されるように、第1のオブジェクトO1の第1の部分O11は可視である。
【0033】
プロセッサ130は、第1のオブジェクトの第2の部分を第2のオブジェクトと共に、第1のオブジェクトの第1の部分を除き、第2のレンダーパス上に提示してよい(ステップS230)。第1のレンダーパスの規則とは異なり、1つの実施形態において、プロセッサ130は深度テストの後に更新しないよう深度閾値を設定し、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きいことに応じて、第1又は第2のオブジェクトの画素が第2のレンダーパス上に描かれるよう深度テストを設定し、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きくないことに応じて、第1又は第2のオブジェクトの画素を第2のレンダーパス上に描かないよう深度テストを設定してよい。具体的には、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きいか否かが判定される。Unityシェーダを例とすると、ZTestの関数が「greater」に設定され、深度テストは、フラグメントの深度値が格納された深度値(即ち、深度閾値)よりも大きい場合(又は大きい場合にのみ)、パスされる。さもなくば、プロセッサ130はフラグメントを破棄してよい。即ち、第1又は第2のオブジェクトの画素は、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きい場合(又は大きい場合にのみ)、第2のレンダーパス上に描かれる。更に、第1又は第2のオブジェクトの画素は、第1又は第2のオブジェクトの画素の深度が深度閾値よりも大きくない場合(又は大きくない場合にのみ)、第2のレンダーパスで破棄される。
【0034】
加えて、Unityシェーダを例とすると、ZWriteの関数が「off」に設定された場合、フラグメントの深度値が深度テストをパスした場合(又はパスした場合にのみ)、深度閾値が更新されない。
【0035】
1つの実施形態において、第1に、第1のオブジェクトの第2の部分の画素について、該画素は第2のレンダーパス上に描かれ、深度閾値が第1のオブジェクトの第2の部分の深度に更新される。第2に、第2のオブジェクトの画素について、該画素は、第1のオブジェクトの第2の部分と重なる部分を除き、第2のレンダーパス上に描かれる。第1のオブジェクトの第2の部分は第2のオブジェクトを覆い、深度閾値は第1のオブジェクトの第2の部分の深度に維持される。第3に、第1のオブジェクトの第1の部分の画素について、該画素は第2のレンダーパスで破棄され、深度閾値が第1のオブジェクトの第2の部分の深度に維持される。更に、第2のオブジェクトが第1のオブジェクトの第1の部分を覆ってよい。
【0036】
例えば、
図4Aは、本発明の例示的な実施形態の1つによる第2のレンダーパスを表す概略図であり、
図4Bは、
図4Aの位置関係の上面図である。
図4Aと4Bを参照し、第1のオブジェクトO1の第2の部分O12は、
図4Bに示されるように、第2のオブジェクトO2の背後に位置する。このため、第2のレンダーパスにおいては、第1のオブジェクトO1の第2の部分O12は第2のオブジェクトO2により完全に覆われ、第1のオブジェクトO1の第1の部分O11は不可視である。ただし、第1のオブジェクトO1の第2の部分O12が第2のオブジェクトO2を覆う。即ち、
図4Bに示されるように、第1のオブジェクトO1の第2の部分O12は可視である。
【0037】
1つの実施形態において、プロセッサ130は、第1のオブジェクトの第2の部分に第2のオブジェクトを用いてアルファ合成を実行してよい。アルファ合成は、部分的又は完全な透過度の外観を形成するため、1つの画像を背景又はもう1つの画像と組み合わせる処理である。絵素(画素)が別々のパス又はレイヤーに描画されるとき、結果として得られた2次元画像を単一の、最終画像/フレームに組み合わせることを合成と呼ぶ。第1のオブジェクトの第2の部分の画素が、第2のオブジェクトの画素と組み合わされる。
【0038】
例えば、
図3Aと4Aを参照し、第1のオブジェクトO1の第2の部分O12は部分的な透過度を有し、第2の部分O12及び第2のオブジェクトO2の画素が組み合わされる。ただし、第1のオブジェクトO1の第1の部分O11は透過度なしに提示される。
【0039】
いくつかの実施形態において、グレーレベル処理又は他の画像処理が第1のオブジェクトの第2の部分に実行されてよい。
【0040】
プロセッサ130は、第1のレンダーパスと第2のレンダーパスとに基づき、最終フレームを生成してよい(ステップS250)。具体的には、最終フレームは、ディスプレイ150上に表示されるために用いられる。第1のレンダーパスにおいて、第1のオブジェクトの第1の部分が、第2の部分なしに提示される。第2のレンダーパスにおいて、第1のオブジェクトの第2の部分が、第1の部分なしに提示される。プロセッサ130は、第1及び第2のレンダーパスのうちの1つに提示されたオブジェクトの一部又はオブジェクトの全体を、最終フレーム上に描画してよい。最終的に、第1のオブジェクトの第1の部分及び第2の部分と第2のオブジェクトとが最終フレームに提示される。次いで、ユーザは第1のオブジェクトの第1及び第2の部分(これは第1のオブジェクト全体であってよい)をディスプレイ150上に目にすることができる。
【0041】
例えば、
図5Aは、本発明の例示的な実施形態の1つによる最終フレームを表す概略図であり、
図5Bは、
図5Aの位置関係の上面図である。
図5Aと5Bを参照し、
図3Aの第1のレンダーパスと
図4Aの第2のレンダーパスとに基づき、最終フレームにおいて、第1のオブジェクトO1の第1の部分O11及び第2の部分O12と第2のオブジェクトO2とが提示される。このため、ユーザUはディスプレイ150上にユーザインターフェイス全体を目にすることができる。
【0042】
まとめると、上述した例示的な実施形態は、XR環境における3次元オブジェクトのための方法及び装置を描写している。より遠い位置にある第1のオブジェクトの第2の部分が1つのレンダーパス上に提示される。次いで、ディスプレイ上に表示すべき最終フレームが、第1のオブジェクトの第2の部分を有するレンダーパスを参照することにより生成される。このため、第1のオブジェクトの第1の部分と第2の部分とが最終フレーム上に描かれる。従って、3次元オブジェクトを描画するための柔軟な方法を提供できる。
【0043】
当業者にとって、本発明の範囲又は精神から逸脱することなく、本発明の構造に様々な改変と変形を行うことができることは明らかであろう。上記を鑑み、本発明は、以下の特許請求の範囲及びそれらの均等物の範囲内にあるという条件で、本発明の改変及び変形を網羅することを意図している。
【産業上の利用可能性】
【0044】
本発明の3次元オブジェクトを描画するための方法及び装置は、XRに応用することができる。
【符号の説明】
【0045】
100:装置
110:メモリ
130:プロセッサ
S210~S250:ステップ
U:ユーザ
O1:第1のオブジェクト
O11:第1の部分
O12:第2の部分
O2:第2のオブジェクト
【外国語明細書】