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

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

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特許7190042シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム
<>
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図1
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図2
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図3
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図4
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図5
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図6
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図7
  • 特許-シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-06
(45)【発行日】2022-12-14
(54)【発明の名称】シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム
(51)【国際特許分類】
   G06T 15/60 20060101AFI20221207BHJP
【FI】
G06T15/60
【請求項の数】 12
(21)【出願番号】P 2021530180
(86)(22)【出願日】2020-03-17
(65)【公表番号】
(43)【公表日】2022-06-03
(86)【国際出願番号】 CN2020079618
(87)【国際公開番号】W WO2020207202
(87)【国際公開日】2020-10-15
【審査請求日】2021-06-17
(31)【優先権主張番号】201910290577.3
(32)【優先日】2019-04-11
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ホウ,ツァンジエン
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特表2016-523401(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00-19/20
(57)【特許請求の範囲】
【請求項1】
コンピュータデバイスによって実行されるシャドウレンダリング方法であって、
仮想シーンにおける光照射方向に基づいて、前記仮想シーンにおける少なくとも1つのレンダリング構造体を取得するステップであって、前記少なくとも1つのレンダリング構造体は、少なくとも1つの仮想オブジェクトの少なくとも1つのシャドウをレンダリングするために使用されるものであり、各レンダリング構造体には、複数のピクセルポイントが含まれるステップと、
現在の視角と、前記複数のピクセルポイントの深度情報とに基づいて、前記複数のピクセルポイントのモデル座標を取得するステップであって、1つのモデル座標は、1つの仮想オブジェクトのモデル基点に対する1つのピクセルポイントのテクスチャ情報を記述するために使用されるものであるステップと、
前記複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、前記複数のピクセルポイントに対応する複数のサンプリングポイントを得るステップであって、各シャドウマップは、1つのシャドウのテクスチャ情報を提供するために使用されるものであるステップと、
前記仮想シーンにおいて、前記複数のサンプリングポイントをレンダリングし、前記少なくとも1つのシャドウを得るステップと、
を含むことを特徴とするシャドウレンダリング方法。
【請求項2】
前記現在の視角と、前記複数のピクセルポイントの深度情報とに基づいて、前記複数のピクセルポイントのモデル座標を取得するステップは、
前記現在の視角と、前記複数のピクセルポイントの深度情報とに基づいて、前記複数のピクセルポイントのワールド座標を取得するステップであって、1つのワールド座標は、前記仮想シーンのシーン基点に対する1つのピクセルポイントの位置情報を記述するために使用されるものであるステップと、
前記複数のピクセルポイントのワールド座標に基づいて、前記複数のピクセルポイントのモデル座標を取得するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記現在の視角と、前記複数のピクセルポイントの深度情報とに基づいて、前記複数のピクセルポイントのワールド座標を取得するステップは、
各ピクセルポイントに対して、前記現在の視角の視点を射線端点とし、前記視点と前記ピクセルポイントとによって決定された射線方向において、前記視点との間の距離が前記ピクセルポイントの深度情報に合致するターゲットピクセルポイントを決定するステップと、
前記ターゲットピクセルポイントのワールド座標を前記ピクセルポイントのワールド座標として決定するステップと、を含む、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記複数のピクセルポイントのワールド座標に基づいて、前記複数のピクセルポイントのモデル座標を取得するステップは、
前記現在の視角の視点行列を前記複数のピクセルポイントのワールド座標に左乗し、前記複数のピクセルポイントのローカル座標を得るステップと、
前記複数のピクセルポイントのローカル座標をテクスチャマッピング空間にマッピングし、前記複数のピクセルポイントのモデル座標を得るステップと、を含む、
ことを特徴とする請求項2に記載の方法。
【請求項5】
前記現在の視角と、前記複数のピクセルポイントの深度情報とに基づいて、前記複数のピクセルポイントのモデル座標を取得する前に、前記方法は、
前記複数のピクセルポイントのスクリーン座標に基づいて、深度マップから前記複数のピクセルポイントの深度情報を取得するステップであって、1つのスクリーン座標は、端末スクリーンのスクリーン基点に対する1つのピクセルポイントの位置情報を記述するために使用されるものであるステップ、をさらに含む、
ことを特徴とする請求項1~請求項4のうちのいずれか1項に記載の方法。
【請求項6】
前記仮想シーンにおける光照射方向に基づいて、前記仮想シーンにおける少なくとも1つのレンダリング構造体を取得するステップは、
前記少なくとも1つの仮想オブジェクトに基づいて、前記少なくとも1つのレンダリング構造体の初期サイズと初期位置を決定するステップであって、前記初期サイズと初期位置が、前記少なくとも1つの仮想オブジェクトとマッチングするものであるステップと、
前記光照射方向に基づいて、前記少なくとも1つのレンダリング構造体の方向を決定し、前記初期サイズと初期位置を調整し、前記少なくとも1つのレンダリング構造体を得るステップと、を含む、
ことを特徴とする請求項1~請求項5のうちのいずれか1項に記載の方法。
【請求項7】
前記少なくとも1つのレンダリング構造体は、立方体、球体または円柱体である、
ことを特徴とする請求項1~請求項6のうちのいずれか1項に記載の方法。
【請求項8】
前記複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、前記複数のピクセルポイントに対応する複数のサンプリングポイントを得る前に、前記方法は、
前記光照射方向の視点行列を前記少なくとも1つの仮想オブジェクトのワールド座標に左乗し、前記光照射方向から前記少なくとも1つの仮想オブジェクトに対してシャドウ投影を行う前記少なくとも1つのシャドウマップを生成するステップ、をさらに含む、
ことを特徴とする請求項1~請求項7のうちのいずれか1項に記載の方法。
【請求項9】
前記方法は、
遮蔽が許可されない仮想オブジェクトの材質をターゲット材質としてマークするステップであって、前記ターゲット材質が、レンダリング中にシャドウレンダリングがサポートされていな材質であるステップ、をさらに含む、
ことを特徴とする請求項1~請求項8のうちのいずれか1項に記載の方法。
【請求項10】
シャドウレンダリング装置であって、
仮想シーンにおける光照射方向に基づいて、前記仮想シーンにおける少なくとも1つのレンダリング構造体を取得する第1取得モジュールであって、前記少なくとも1つのレンダリング構造体は、少なくとも1つの仮想オブジェクトの少なくとも1つのシャドウをレンダリングするために使用されるものであり、各レンダリング構造体には、複数のピクセルポイントが含まれる第1取得モジュールと、
現在の視角と、前記複数のピクセルポイントの深度情報とに基づいて、前記複数のピクセルポイントのモデル座標を取得する第2取得モジュールであって、1つのモデル座標は、1つの仮想オブジェクトのモデル基点に対する1つのピクセルポイントのテクスチャ情報を記述するために使用されるものである第2取得モジュールと、
前記複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、前記複数のピクセルポイントに対応する複数のサンプリングポイントを得るサンプリングモジュールであって、各シャドウマップは、1つのシャドウのテクスチャ情報を提供するために使用されるものであるサンプリングモジュールと、
前記仮想シーンにおいて、前記複数のサンプリングポイントをレンダリングし、前記少なくとも1つのシャドウを得るレンダリングモジュールと、
を備えることを特徴とするシャドウレンダリング装置。
【請求項11】
コンピュータデバイスであって、メモリと、プロセッサとを備え、前記メモリにコンピュータ読み取り可能な命令が記憶されており、前記コンピュータ読み取り可能な命令が前記プロセッサによって実行される場合、前記プロセッサに、
請求項1~請求項9のうちのいずれか1項に記載のシャドウレンダリング方法のステップを実行させる
ことを特徴とするコンピュータデバイス。
【請求項12】
コンピュータプログラムであって、
請求項1~請求項9のうちのいずれか1項に記載のシャドウレンダリング方法のステップをコンピュータデバイスに実行させる、
ことを特徴とするコンピュータプログラム
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2019年04月11日に中国特許局へ出願された、出願番号が201910290577.3であり、出願名称が「シャドウレンダリング方法、装置、端末および記憶媒体」である中国特許出願の優先権を主張し、その全ての内容が参照することにより本願に組み込まれる。
[技術分野]
本願は、画像レンダリングの技術分野に関し、特にシャドウレンダリング方法、装置、コンピュータデバイスおよび記憶媒体に関する。
【背景技術】
【0002】
画像レンダリング技術の発展に伴い、よりリアルな三次元シーンをシミュレートするために、端末は、通常、3次元シーン内のオブジェクトのシャドウをリアルタイムでレンダリングし、このオブジェクトは人物であってもよく、物体であってもよい。
【発明の概要】
【発明が解決しようとする課題】
【0003】
現在、リアルタイムシャドウレンダリングは、サードパーティ・プラグイン(例えば、Fast Shadow Receiver、高速シャドウレシーバー)によって実現され得る。例えば、光源データと、ベイク処理されたシーンメッシュとに基づいて、このシーンメッシュからシャドウ領域のメッシュを取得し、シャドウテクスチャをこのシャドウ領域にレンダリングして、シャドウ付きのシーンメッシュを得る。サードパーティ・プラグインによって直接にレンダリングされたシャドウは、通常、シーン内の元の三次元モデルと「ゴースト(ghost)」(例えば、地形の間の相互浸透(interpenetration)、地面にデカール( Decals)があることなど)の問題が発生し、シャドウレンダリングの効果が悪くなってしまう。
【課題を解決するための手段】
【0004】
本願によって提供される各実施形態によれば、シャドウレンダリング方法、装置、コンピュータデバイスおよび記憶媒体が提供される。
【0005】
一態様によれば、コンピュータデバイスによって実行されるシャドウレンダリング方法が提供されており、この方法は、
仮想シーンにおける光照射方向に基づいて、この仮想シーンにおける少なくとも1つのレンダリング構造体を取得するステップであって、この少なくとも1つのレンダリング構造体が、少なくとも1つの仮想オブジェクトの少なくとも1つのシャドウをレンダリングするために使用されるものであり、各レンダリング構造体には、複数のピクセルポイントが含まれるステップと、
現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのモデル座標を取得するステップであって、1つのモデル座標が、1つの仮想オブジェクトのモデル基点に対する1つのピクセルポイントのテクスチャ情報を記述するために使用されるものであるステップと、
この複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップ(Shadow map)をサンプリングし、この複数のピクセルポイントに対応する複数のサンプリングポイントを得るステップであって、各シャドウマップが、1つのシャドウのテクスチャ情報を提供するために使用されるものであるステップと、
この仮想シーンにおいて、この複数のサンプリングポイントをレンダリングし、この少なくとも1つのシャドウを得るステップと、
を含む。
【0006】
一態様によれば、シャドウレンダリング装置が提供されており、この装置は、
仮想シーンにおける光照射方向に基づいて、この仮想シーンにおける少なくとも1つのレンダリング構造体を取得する第1取得モジュールであって、この少なくとも1つのレンダリング構造体が、少なくとも1つの仮想オブジェクトの少なくとも1つのシャドウをレンダリングするために使用されるものであり、各レンダリング構造体には、複数のピクセルポイントが含まれる第1取得モジュールと、
現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのモデル座標を取得する第2取得モジュールであって、1つのモデル座標が、1つの仮想オブジェクトのモデル基点に対する1つのピクセルポイントのテクスチャ情報を記述するために使用されるものである第2取得モジュールと、
この複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、この複数のピクセルポイントに対応する複数のサンプリングポイントを得るサンプリングモジュールであって、各シャドウマップが、1つのシャドウのテクスチャ情報を提供するために使用されるものであるサンプリングモジュールと、
この仮想シーンにおいて、この複数のサンプリングポイントをレンダリングし、この少なくとも1つのシャドウを得るレンダリングモジュールと、
を備える。
【0007】
一態様によれば、コンピュータデバイスが提供されており、このコンピュータデバイスは、
メモリと、プロセッサとを備え、前記メモリにコンピュータ読み取り可能な命令が記憶されており、前記コンピュータ読み取り可能な命令が前記プロセッサによって実行される場合、前記プロセッサに、上記のいずれかの可能な実装形態のシャドウレンダリング方法によって実行される動作を実行させる。
【0008】
一態様によれば、コンピュータ読み取り可能な命令が記憶されている1つまたは複数の不揮発性記憶媒体が提供されており、この不揮発性記憶媒体は、
前記コンピュータ読み取り可能な命令が1つまたは複数のプロセッサによって実行される場合、1つまたは複数のプロセッサに、上記のいずれかの可能な実装形態のシャドウレンダリング方法によって実行される動作を実行させる。
【0009】
本願の1つまたは複数の実施形態の詳細は、以下の図面および説明において記載されている。本願の他の特徴、目的および利点は、明細書、図面および請求の範囲から明らかになっている。
【図面の簡単な説明】
【0010】
本願の実施形態に係る技術案をより明確に説明するために、以下、実施形態の説明において必要とされる図面を簡単に紹介し、明らかに、以下の説明における図面は、本願のいくつかの実施形態にすぎず、当業者にとっては、創造的な労働を行わない前提で、これらの図面に基づいて他の図面を得ることもできる。
図1】本願の実施形態によって提供されるシャドウレンダリング方法の実施環境の概略図である。
図2】本願の実施形態によって提供されるシャドウレンダリング方法のフローチャートである。
図3】本願の実施形態によって提供される、ターゲットピクセルポイントを決定することの概略図である。
図4】本願の実施形態によって提供されるレンダリング効果の概略図である。
図5】本願の実施形態によって提供されるレンダリング効果の概略図である。
図6】本願の実施形態によって提供されるレンダリング効果の概略図である。
図7】本願の実施形態によって提供されるシャドウレンダリング装置の構成の概略図である。
図8】本願の実施形態に概略端末の構成の概略図である。
【発明を実施するための形態】
【0011】
本願の目的、技術案および利点をより明確にするために、以下、図面を参照しながら本願の実装形態をさらに詳細に説明する。
【0012】
図1は、本願の実施形態によって提供されるシャドウレンダリング方法の実施環境の概略図である。図1を参照すると、この実施環境では、端末101にレンダリングエンジン102がインストールされてもよい。端末101は、サーバ103から仮想シーンを取得して展示することができ、サーバ103は、ゲームサーバであってよく、端末101は、ゲームサーバからゲームシーンを取得することができる。
【0013】
ここで、この端末101は、シャドウレンダリングサービスを提供するために使用され、端末101は、このレンダリングエンジン102に基づいて、いずれかの仮想シーンにおける仮想オブジェクトおよび仮想オブジェクトのシャドウをレンダリングすることができ、この仮想オブジェクトは、人物であってもよく、物体であってもよいし、この仮想シーンは、端末に展示されているいずれかの仮想シーンであってもよく、例えば、この仮想シーンは、ゲームシーン、室内デザインシミュレーションシーンなどであってもよいし、本願の実施形態は、この仮想シーンのコンテンツを具体的に限定しない。
【0014】
いくつかの実施形態では、このレンダリングエンジン102は、独立したレンダリングクライアントの形式で端末にインストールされ、これにより、端末は、このレンダリングクライアントを介して、シャドウレンダリングを直接に実現することができ、例えば、このレンダリングエンジン102は、unity3D(ユニティ3D)であってもよく、Unreal(unreal engine、アンリアルエンジン)であってもよいし、OpenGL(open graphics library、オープン・グラッフィクス・ライブラリー)などであってもよい。
【0015】
いくつかの実施形態では、仮想シーンを提供するためのアプリケーションクライアントが端末にインストールされてもよく、このアプリケーションクライアントは、ゲームクライアント、3次元設計クライアントなどであってよく、このレンダリングエンジン102は、API(application programming interface、アプリケーションプログラミングインタフェース)の形式で端末オペレーティングシステムのカーネル層に実装されてもよく、端末オペレーティングシステムは、上層のアプリケーションクライアントにこのAPIを提供し、これにより、端末上のこのアプリケーションクライアントは、このAPIを呼び出して、仮想シーンにおける仮想オブジェクトおよびこの仮想オブジェクトのシャドウをレンダリングすることができる。
【0016】
関連技術では、端末は、サードパーティ・プラグイン(例えば、Fast Shadow Receiver、高速シャドウレシーバー)に基づきシャドウレンダリングを行い、ベイク(bake)処理されたシーンメッシュ(mesh)に基づいてシャドウ領域のメッシュを取得するため、サードパーティ・プラグインの動作中に使用されるシーンメッシュは、通常、1.5~4Mのメモリを占有し、これによって、端末のメモリリソースが圧迫され、端末CPUの処理効率に影響を与える。
【0017】
一方、このシーンメッシュは、通常、アプリケーションクライアントのSDK(software development kit、ソフトウェア開発キット)に埋め込まれているため、5~10Mのディスク空間を占有することがあり、これによって、このアプリケーションクライアントのSDKのインストールパッケージのサイズを増大させ、例えば、ベイク処理された10Mのシーンメッシュは、通常、インストールパッケージのサイズを2M増加させ、これは、クライアントのSDKのボリュームを簡素化するのに不便である。
【0018】
上記の実施環境に基づいて、図2は、本願の実施形態によって提供されるシャドウレンダリング方法のフローチャートであり、図2を参照すると、本実施形態は、端末に適用されてもよく、端末上のアプリケーションクライアントに適用されてもよいし、本願の実施形態は、端末のみを例として説明を行い、このシャドウレンダリング方法は、以下のステップを含み、即ち、
201で、端末は、仮想シーンの深度マップ(depth map)を取得する。
【0019】
ここで、この仮想シーンは、端末に展示されているいずれかの仮想シーンであってもよく、この仮想シーンのデータは、ローカルに記憶されてもよく、クラウドから供給されてもよい。この仮想シーンには、少なくとも1つの仮想オブジェクトが含まれてもよく、少なくとも1つの仮想オブジェクトをモデル化することにより、少なくとも1つのモデルが取得され、これにより、この少なくとも1つのモデルに基づいて、この少なくとも1つの仮想オブジェクトを表示し、ここで、1つのモデルは、1つの仮想オブジェクトの具体的な表示形式を表すために使用され、この仮想オブジェクトは、人物であってもよく、オブジェクトであってもよい。
【0020】
ここで、この深度マップは、この仮想シーンにおけるこの少なくとも1つの仮想オブジェクトの深度情報を表すために使用されるものであり、この深度情報は、仮想オブジェクトの現在の視角での前後位置関係を表すために使用されるものであり、例えば、1つの仮想シーンの深度マップにおいて、人物Aの深度が建物Bの深度よりも小さい場合、この仮想シーンにおいて提示される視覚効果は、人物Aが建物Bの前にある(つまり、人物Aが現在の視角により近い位置にある)、ということである。
【0021】
上記のステップ201で、端末は、レンダリングエンジンにおけるターゲットバッファを介してこの深度マップを取得することができ、このターゲットバッファには、通常、レンダリング中の複数のマップ、例えば、光照射マップ、深度マップ、法線マップなどが記憶されており、「複数」は、少なくとも2つを意味する。したがって、取得プロセスでは、端末は、深度マップ識別子をインデックスとして使用し、ターゲットバッファでこのインデックスに基づいてクエリーを行い、このインデックスがいずれかのマップにヒットできる場合、このマップをこの深度マップとして取得する。例えば、レンダリングエンジンがunity3Dである場合、Camera.SetTarget Buffersを介してターゲットバッファからこの深度マップを取得することができる。
【0022】
いくつかの実施形態では、リアルタイムレンダリングされているシーンでは、端末が、まず、この深度マップに基づいて仮想シーンをレンダリングし、そして、この仮想シーンにおいて各仮想オブジェクトのシャドウをレンダリングする、ということを考慮すると、従って、端末は、この深度マップを取得した後、この深度マップに基づいて、この深度マップと同じ深度マップコピーを生成し、後続のステップ202~213で、この深度マップコピーに直接にアクセスすることができ、これにより、レンダリング中に、同一の深度マップを同時に読み書き操作することができないという問題が解決された。例えば、端末は、この仮想シーンのBeforeForwardAlphaレンダリング段階で、この仮想シーンの深度マップに対してBlit命令を実行して、この深度マップコピーを得ることができる。
【0023】
いくつかの実施形態では、端末は、2つの同一の深度マップをローカルに直接に記憶することができ、これにより、仮想シーンをレンダリングする際に、そのうちの1つの深度マップにアクセスし、仮想シーンにおけるシャドウをレンダリングする際に、そのうちのもう1つの深度マップにアクセスすることができる。
【0024】
いくつかの実施形態では、端末は、レンダリングエンジンに内蔵された深度取得インターフェースに基づいて、この深度マップを取得することもでき、例えば、レンダリングエンジンがunity3Dである場合、Camera.depthTextureModeをDepthに設定する方式により、この深度マップを取得することができる。
【0025】
202で、端末は、光照射方向の視点行列をこの仮想シーンにおける少なくとも1つの仮想オブジェクトのワールド座標に左乗し、この光照射方向からこの少なくとも1つの仮想オブジェクトに対してシャドウ投影を行う少なくとも1つのシャドウマップを生成する。
【0026】
いくつかの実施形態では、レンダリングエンジンでレンダリングを行う場合、通常、複数の座標系間の座標変換に関連し、この複数の座標系は、モデル座標系(model/object coordinates、オブジェクト座標系とも呼ばれる)、ワールド座標系(world coordinates)、視界(eye/camera coordinates、カメラ座標系ともいう)座標系およびスクリーン座標系(window/screen coordinates、ウィンドウ座標系とも呼ばれる)を含むようにしてよく、ここで、モデル座標系は、以下のステップ208~209で詳細に説明され、スクリーン座標系は、以下のステップ205で詳細に説明される。
【0027】
いくつかの実施形態では、ワールド座標系は、この仮想シーンが所在している真実の座標系であり、1つの仮想シーンにとって、通常、1つのワールド座標系のみがあり、ワールド座標系は、仮想シーンのシーン基点を座標の原点として、各仮想オブジェクトのピクセルポイントのワールド座標系における位置がワールド座標と呼ばれる。
【0028】
いくつかの実施形態では、視界座標系は、ユーザが現在の視角に基づいて仮想シーンを観察する際に所在している座標系であり、視界座標系は、視点を座標の原点として、各仮想オブジェクトのピクセルポイントの視界座標系における位置が視界座標と呼ばれる。通常のレンダリングエンジンでは、現在の視角は、カメラ(camera)の形式として表現されてもよいので、視界座標系がカメラ座標系と呼ばれることもできる。ユーザが現在の視角に基づいてこの仮想シーンを観察することは、仮想シーンにおける1つのカメラを介してこの仮想シーンを観察することに相当し、ここで、このカメラは、1つの特殊な透明仮想オブジェクトのモデルに相当する。
【0029】
このような状況に基づき、現在の視角は、レンダリングエンジンにおけるカメラとして表現されてもよく、同様に、光源は、カメラの形式としても表現されてもよいし、そうすると、シャドウマップは、光源が光照射方向からこの仮想シーン内の各仮想オブジェクトに対してシャドウ投影を行って得たマップに相当する。ここで、光源cameraも特殊な透明仮想オブジェクトのモデルに相当するので、この光照射方向の視点(view)行列は、即ち、ワールド座標系からこの光源のモデル座標系にマッピングする変換行列である。
【0030】
上記のプロセスでは、端末は、直接に光照射方向の視点行列を仮想シーン内の少なくとも1つの仮想オブジェクトのワールド座標に左乗し、この少なくとも1つの仮想オブジェクトを現在の視角から光照射方向の視角に変換し、光照射方向の視角でのこの少なくとも1つの仮想オブジェクトのリアルタイム画像をこの少なくとも1つのシャドウマップとして取得し、ここで、各シャドウマップは、1つの仮想オブジェクトに対応するものであり、各シャドウマップは、1つの仮想オブジェクトのシャドウのテクスチャ(UV)情報を提供するために使用されるものである。
【0031】
上記のステップ202で、端末は、視点行列の変換に基づいて、現在の視角の単一カメラから、光源視角(光源camera)でのシャドウマップを直接に取得することができ、つまり、光源に新しいカメラを配置することは避けられ、これにより、レンダリングカメラの数を低減させ、端末のレンダリング時間が短縮され、端末のレンダリング効率を向上させることができる。
【0032】
いくつかの実施形態では、端末は、現在の視角に対応するメインカメラに、1つのスレーブカメラを搭載(即ち、配置)することができ、光線方向の視点行列をこのスレーブカメラに入力すると、このシャドウマップを出力することができ、ここで、このスレーブカメラは、このメインカメラに従属するものであり、これにより、レンダリングカメラの数を低減させ、端末のレンダリング時間が短縮され、端末のレンダリング効率を向上させることができ、例えば、このスレーブカメラは、CommandBufferであってよい。
【0033】
もちろん、いくつかの実施形態では、端末は、視点行列の変換を行わずに、光源に新しいカメラを直接に設定することもでき、この新しいカメラに基づいて、このシャドウマップを取得し、これにより、シャドウレンダリングプロセスの計算量を低減させることができる。
【0034】
203で、端末は、この少なくとも1つの仮想オブジェクトに基づいて、少なくとも1つのレンダリング構造体の初期サイズと初期位置を決定し、この初期サイズと初期位置は、この少なくとも1つの仮想オブジェクトとマッチングする。
【0035】
ここで、この少なくとも1つのレンダリング構造体は、この少なくとも1つの仮想オブジェクトの少なくとも1つのシャドウをレンダリングするために使用され、各レンダリング構造体は、1つの仮想オブジェクトの1つのシャドウに対応し、各レンダリング構造体には、複数のピクセルポイントが含まれている。
【0036】
オプションとして、この少なくとも1つのレンダリング構造体は、立方体(cube)、球体または円柱体であってよく、異なるレンダリングエンジンにおいて、同一の仮想シーンに対してシャドウレンダリングを行う場合、異なるレンダリング構造体を採用することができ、本願の実施形態は、このレンダリング構造体の形態を具体的に限定するものではなく、例えば、unity3Dでは、通常、立方体がレンダリング構造体として使用される。
【0037】
オプションとして、端末は、仮想シーンのタイプを識別することにより、この仮想シーンのタイプに基づいて、このタイプに対応するレンダリング構造体を決定することができ、例えば、端末は、仮想シーンがゲームシーンであることを識別すると、レンダリング構造体を立方体として決定する。
【0038】
上記のプロセスでは、初期サイズと初期位置が少なくとも1つの仮想オブジェクトとマッチングするということは、各仮想オブジェクトに対して、この仮想オブジェクトに対応するレンダリング構造体の底面面積が、この仮想オブジェクトのモデルの底面面積以上であり、このレンダリング構造体の初期位置が、この仮想オブジェクトのモデルの底面と水平方向および垂直方向の両方で重ね合わせることができる位置にある、ということを指す。
【0039】
上記のプロセスでは、各仮想オブジェクトに対して、端末は、この仮想オブジェクトに基づいて初期サイズと初期位置を決定し、この初期サイズと初期位置に従って、レンダリング構造体を生成し、上記プロセスを繰り返し実行して、少なくとも1つのレンダリング構造体を得ることができる。
【0040】
いくつかの実施形態では、レンダリング構造体が立方体である場合、端末は、各仮想オブジェクトに対して、仮想オブジェクトのモデル底面をちょうど包含できる正方形を立方体の底面として決定し、立方体の6つの面が同じであるため、この立方体の各面の初期サイズを決定することができ、さらに、この立方体の底面中心をこの仮想オブジェクトの底面中心と重ね合わせて配置することにより、この立方体の初期位置を得ることができ、ここで、この底面中心は、底面の幾何中心を指すようにしてもよく、底面の幾何重心を指すようにしてもよい。
【0041】
204で、端末は、光照射方向に基づいて、この少なくとも1つのレンダリング構造体の方向を決定し、この初期サイズと初期位置を調整して、この少なくとも1つのレンダリング構造体を得る。
【0042】
上記のプロセスでは、端末は、各仮想オブジェクトに対して、この仮想オブジェクトに対応するレンダリング構造体の方向(即ち、レンダリング構造体の向き)をこの光照射方向として決定し、この仮想オブジェクトのこの光照射方向での複数の接線を決定して、この複数の接線とこの仮想シーンにおけるシャドウ投影面のとの間の複数の交点によって囲まれた領域をシャドウ領域として決定することができ、これにより、このレンダリング構造体が上記ステップ203で決定された初期位置から、このシャドウ領域をカバーすることができる位置に平行移動され、このレンダリング構造体が初期サイズから、このシャドウ領域のサイズをカバーすることができるサイズに調整される。ここで言及されている「カバー」とは、このレンダリング構造体のいずれかの表面がこのシャドウ領域とオーバーラップし、またはこのレンダリング構造体がこのシャドウ領域をこのレンダリング構造体の内部に包含することができる、ということを意味する。
【0043】
上記ステップ204により、端末は、次のことを可能にし、即ち、各レンダリング構造体は、シャドウ領域をカバーし、かつシャドウレンダリングの効果に影響を及ぼさない場合、このレンダリング構造体においてレンダリングが必要とされるピクセルポイントの数を減少させ、レンダリング効率を向上させることができる。上記の例示に基づき、立方体形状のレンダリング構造体の初期サイズを調整すると、この立方体は、通常、直方体に調整され、本願の実施形態は、このレンダリング構造体の調整後の形態を具体的に限定しない。
【0044】
ここで、このシャドウ投影面は、仮想シーンにおける、シャドウ投影をサポートするいずれかの面であってもよく、このシャドウ投影面は、滑らかであってもよく、凹凸であってもよいし、例えば、このシャドウ投影面は、芝生、壁面、または路面などであってもよい。
【0045】
上記ステップ203~204では、端末は、仮想シーンにおける光照射方向に基づいて、この仮想シーンにおける少なくとも1つのレンダリング構造体を取得することができ、各レンダリング構造体が1つの仮想オブジェクトのシャドウに対応しているので、端末が各レンダリング構造体をレンダリングするプロセスは、各シャドウをレンダリングするプロセスであり、このレンダリング構造体をレンダリングするプロセスにおいて、頂点の着色段階と画素ピクセルの着色段階の2つの段階を含むようにしてよい。
【0046】
上記の場合、端末は、頂点の着色段階では、各レンダリング構造体の各ピクセルポイントの頂点データにこの仮想シーンにおける視点位置、および、この視点とこのピクセルポイントとによって決定された射線方向を記憶することにより、頂点データに記憶されている情報に基づいて、下記のステップ206を実行することができる。また、端末は、ピクセルの着色段階では、下記のステップ205を実行することで、各ピクセルポイントの深度情報を取得することもできる。
【0047】
いくつかの実施形態では、端末は、上記のステップ204を実行しなくてもよく、即ち、端末は、仮想オブジェクトに基づいてレンダリング構造体の初期サイズと初期位置を決定し、および、光照射方向に基づいてレンダリング構造体の方向を決定した後、レンダリング構造体を生成し、このレンダリング構造体の大きさおよび位置をさらに調整せずに、下記のステップ206を直接に実行し、これにより、シャドウレンダリングの流れは簡略化された。
【0048】
205で、端末は、各レンダリング構造体における複数のピクセルポイントのスクリーン座標に基づいて、深度マップからこの複数のピクセルポイントの深度情報を取得し、1つのスクリーン座標が、端末スクリーンのスクリーン基点に対する1つのピクセルポイントの位置情報を記述するために使用されるものである。
【0049】
ここで、スクリーン座標系とは、端末スクリーンに基づいてこの仮想シーンを表示する際に所在している座標系であり、スクリーン座標系は、端末スクリーンのスクリーン基点を座標原点として、各仮想オブジェクトのピクセルポイントのスクリーン座標系における位置がスクリーン座標と呼ばれる。このスクリーン基点は、端末スクリーン上のいずれかの点であってもよく、例えば、このスクリーン基点は、スクリーンの左上隅にある点であってもよい。いくつかの実施形態では、端末スクリーン上では、通常、この仮想シーンが完全に表示されることができないが、ユーザは、現在の視角の平行移動や回転などの操作を制御することにより、仮想シーンにおけるより多くの仮想オブジェクトを観察することができる。
【0050】
上記のプロセスでは、各レンダリング構造体に複数のピクセルポイントが含まれてもよく、各レンダリング構造体における各ピクセルポイントにとって、端末は、このピクセルポイントのスクリーン座標に基づいて、座標がこのピクセルポイントのスクリーン座標と一致している点を深度マップから決定し、この点の深度情報をピクセルポイントの深度情報として決定することができ、上記のプロセスを繰り返し実行することにより、各レンダリング構造体における複数のピクセルポイントの深度情報を取得することができる。説明すべきものとして、端末に2つの深度マップが含まれている場合、上記のステップ205でアクセスされた深度マップは、上記のステップ201で言及された深度マップコピーであってもよい。
【0051】
206で、端末は、各ピクセルポイントに対して、この現在の視角の視点を射線端点として、この視点とこのピクセルポイントとによって決定された射線方向では、この視点との間の距離がこのピクセルポイントの深度情報に合致するターゲットピクセルポイントを決定する。
【0052】
上記のステップ204で言及された頂点の着色段階では、端末は、視点位置とこの射線方向を各ピクセルポイントの頂点データに記憶することができるので、上記のステップ206において、端末は、各ピクセルポイントの頂点データを直接にアクセスし、この視点位置とこの射線方向と取得することができ、1つの端点と1つの方向が1つの射線を一意的に決定することができるため、端末は、視点を射線端点とすることにより、この射線方向では、このピクセルポイントの深度情報に基づいて、1つのターゲットピクセルポイントを一意的に決定することができる。
【0053】
オプションとして、端末は、この視点位置とこの射線方向を頂点データに記憶せずに、頂点の着色段階では1つの視点位置だけを個別に記憶し、上記のステップ206で、頂点データからこの視点位置を取得し、この視点位置からこのピクセルポイント位置への接続ラインによって示される方向をこの射線方向として決定することにより、このターゲットピクセルポイントを決定することもでき、ここで、詳細に説明しない。
【0054】
図3は、本願の実施形態によって提供される、ターゲットピクセルポイントを決定することの概略図であり、図3に示すように、このレンダリング構造体が立方体であることを例として説明し、図3では、立方体の一面が模式的に示され、実際には、立方体のいずれかの面のいずれかのピクセルポイントについても、同様に類推することができ、即ち、立方体をレンダリングする際に、立方体表面のピクセルポイントをレンダリングし、立方体表面のいずれかのピクセルポイントAに対して、A点の頂点データから視点Vの位置および射線方向を取得することができるため、A点の座標と、V点の座標および射線方向とによって、一本の射線VAを一意的に決定することができ、上記のステップ205で深度マップから取得されたA点の深度値が600であると仮定すると、V点から開始して、射線VA上で、V点からの深度が600であるB点を決定することができ、A点の深度値が、立方体表面の点が立方体内部に実際に対応する深度を表すことができるので、上記のステップ205~206では、端末が実際に決定したターゲットピクセルポイントBは、A点の深度マップ上で対応するピクセルポイント(即ち、A点の仮想オブジェクト上で対応するピクセルポイント)である。
【0055】
上記のプロセスでは、端末は、レンダリング構造体上の各ピクセルポイントの深度値に基づいて、このピクセルポイントに対応する深度マップ上のターゲットピクセルポイントを決定することができることにより、後続のステップ210では、各ターゲットピクセルポイントのモデル座標に基づいてサンプリングすることができ、つまり、シャドウマップを深度マップ上のターゲットピクセルポイントのモデル座標に従ってこのレンダリング構造体にマッピングことができ、従って、仮想シーンにおいても、各仮想オブジェクトのシャドウをリアルタイムにレンダリングすることができる。上記の例示に基づいて、即ち、A点をサンプリングしてマッピングする段階で、B点のモデル座標に従ってシャドウマップをサンプリングし、さらに、レンダリング完了後のA点で、B点が対応するシャドウの視覚効果を示すことができ、以下のステップ207~209で、B点のモデル座標を取得するプロセスを詳細に説明する。
【0056】
207で、端末は、このターゲットピクセルポイントのワールド座標をこのピクセルポイントのワールド座標として決定する。
【0057】
ここで、1つのワールド座標は、この仮想シーンのシーン基点に対する1つのピクセルポイントの位置情報を記述するために使用されるものである。
【0058】
上記のプロセスでは、端末は、ターゲットピクセルポイントのワールド座標系における値をレンダリング構造体のピクセルポイントのワールド座標として決定し、各レンダリング構造体の複数のピクセルポイントに対して、上記ステップ206~207を繰り返し実行して、これにより、端末は、この現在の視角とこの複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのワールド座標を取得することができる。
【0059】
208で、端末は、この現在の視角の視点行列をこの複数のピクセルポイントのワールド座標に左乗することにより、この複数のピクセルポイントのローカル座標を得て、この視点行列が、ワールド座標系からモデル座標系にマッピングされる変換行列である。
【0060】
いくつかの実施形態では、レンダリングエンジンにおけるモデル座標系は、仮想オブジェクトが3次元モデルに所在している座標系であり、仮想シーンにおける少なくとも1つの仮想オブジェクトにとって、各仮想オブジェクトのモデルは、それぞれ自身のモデル座標系を有し、各仮想オブジェクトのピクセルポイントのモデル座標系における位置は、すなわちモデル座標系である。言い換えれば、1つの仮想シーンにおいて少なくとも1つのモデル座標系を有することができ、モデル座標系の数は、仮想オブジェクトの数に等しくて、モデル座標系は、仮想座標系であり、各仮想オブジェクトの中心を座標原点とし、したがって、仮想オブジェクトが動的に変化しても、このモデル座標系と仮想オブジェクトとの間の相対位置は、常に変わらない。
【0061】
上記のプロセスでは、1つのローカル座標とは、1つのピクセルポイントのモデル座標系の[-1,1]空間での座標値を指し、現在の視角の視点行列がワールド座標系から少なくとも1つのレンダリング構造体のモデル座標系にマッピングされる変換行列であるため、この現在の視角の視点行列を、この複数のピクセルポイントのワールド座標に左乗することにより、複数のピクセルポイントのローカル座標を得ることができる。
【0062】
209で、端末は、この複数のピクセルポイントのローカル座標をテクスチャマッピング空間にマッピングし、この複数のピクセルポイントのモデル座標を得る。
【0063】
上記のプロセスでは、端末は、この複数のピクセルポイントのワールド座標に基づいて、この複数のピクセルポイントのモデル座標を取得する。ここで、1つのモデル座標は、1つの仮想オブジェクトのモデル基点に対する1つのピクセルポイントのテクスチャ情報を記述するために使用されるものである。
【0064】
上記のステップ209で、1つのモデル座標とは、1つのピクセルポイントのモデル座標系の[0,1]空間下での座標値を指し、上記のステップ202で取得された少なくとも1つのシャドウマップのテクスチャ(UV)情報の値の範囲が[0,1]であり、視点行列が複数のピクセルポイントのワールド座標に左乗された後、実際に得られるのは、値の範囲が[-1,1]内にあるローカル座標であるため、この複数のピクセルポイントを[-1,1]空間のローカル座標から[0,1]空間のモデル座標にマッピングする必要があり、これにより、[0,1]空間でのモデル座標は、シャドウマップにおけるテクスチャ情報と一対一に対応することができ、これによって、下記のステップ210のサンプリングプロセスを容易に実行することができる。
【0065】
いくつかの実施形態では、端末が複数のピクセルポイントのローカル座標をテクスチャマッピング空間(UV空間)にマッピングする場合、各ピクセルポイントのローカル座標を変換関数に入力することにより、この複数のピクセルポイントのUV空間でのモデル座標を出力することができ、この変換関数は、レンダリングエンジンに内蔵された関数であってよい。
【0066】
上記のステップ206~209では、端末は、現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのモデル座標を取得し、即ち、複数のピクセルポイントのワールド座標を取得し、視点行列を介して複数のピクセルポイントのワールド座標を複数のピクセルポイントのローカル座標に変換し、さらに、UV空間にマッピングして複数のピクセルポイントのモデル座標を得る。
【0067】
210で、端末は、遮蔽が許可されない仮想オブジェクトの材質をターゲット材質としてマークし、このターゲット材質が、レンダリングプロセスにおいてシャドウレンダリングがサポートされていない材質である。
【0068】
いくつかの実施形態では、この複数のピクセルポイントのモデル座標に直接に基づいてサンプリングおよびレンダリングを行うと、レンダリングされたシャドウが仮想オブジェクトの本体に対して遮蔽効果をもたらし、例えば、図4は、本願の実施形態によって提供されるレンダリング効果の概略図であり、図4を参照すると、図中の人物のシャドウが逆に人物のブーツに対して遮蔽を与えて、仮想シーンのレンダリング効果に影響を与えてしまう。
【0069】
仮想オブジェクトのシャドウが仮想オブジェクトの本体を遮蔽しないようにするため、端末は、上記のステップ210を実行することにより、遮蔽が許可されない仮想オブジェクトの材質(material)をターゲット材質としてマークすることができ、このターゲット材質がシャドウレンダリングをサポートしない材質であるため、下記のステップ211~212のレンダリングプロセスでは、ターゲット材質がマークされたいずれかの仮想オブジェクトに対してオーバーラップレンダリングを実行することができなくなり、シャドウが仮想オブジェクトを遮蔽することを避けて、仮想シーンのレンダリング効果を最適化し、シャドウレンダリングの擬真度を向上させることができる。なお、上記のプロセスで仮想オブジェクトの材質をマークする場合は、仮想オブジェクトの材質を実質的に交換するのではなく、マーカーを作るだけである。
【0070】
いくつかの実施形態では、レンダリングエンジンがunity3Dである場合、端末は、StencilBuffer(テンプレートバッファ)に基づいて、遮蔽が許可されない仮想オブジェクトの材質をマークすることができ、例えば、シャドウ投影面に遮蔽が許可される仮想オブジェクトのStencil Pass材質をReplaceとしてマークして、シャドウ投影面に遮蔽が許可されない仮想オブジェクトのStencil Pass材質をIncrSatとしてマークするようにしてよく、シャドウレンダリングのプロセスでは、端末は、このシャドウが投影された仮想オブジェクトの材質を検査し、StencilがComp Equalである場合にのみ、サンプリングおよび描画を行い、これによって、シャドウが仮想オブジェクトを遮蔽することが回避され、仮想シーンのレンダリング効果が最適化されることができる。
【0071】
いくつかの実施形態では、端末は、上記のステップ210を実行せずに、複数のピクセルポイントのモデル座標を取得した後、下記のステップ211を直接に実行し、少なくとも1つのシャドウマップをサンプリングするようにしてもよく、これにより、シャドウレンダリングの時間が短縮され、シャドウレンダリング効率を向上させることが。
【0072】
211で、端末は、この複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、この複数のピクセルポイントに対応する複数のサンプリングポイントを得て、各シャドウマッピングが、1つのシャドウのテクスチャ情報を提供するために使用されるものである。
【0073】
上記のプロセスでは、端末は、この複数のピクセルポイントのモデル座標に基づいて、上記のステップ202で取得された少なくとも1つのシャドウマッピングをサンプリングし、この複数のピクセルポイントのモデル座標が[0,1]空間にあり、各シャドウマッピングのテクスチャ情報も[0,1]空間にあるため、各レンダリング構造体における複数のピクセルポイントにとって、端末は、このレンダリング構造体が対応する仮想オブジェクトのシャドウマッピングにおいて、この複数のピクセルポイントのうちの各ピクセルポイントと一対一に対応する複数のサンプリングポイントを見つけることができる。
【0074】
上記のステップ211におけるサンプリングプロセスは、下記の通りであり、即ち、各ピクセルポイントに対して、端末は、このピクセルポイントのモデル座標に対応する点を1つのサンプリングポイントとして取得し、各レンダリング構造体に対して、上記のサンプルプロセスを繰り返し実行し、各レンダリング構造体の複数のサンプリングポイントを得る。例えば、あるピクセルポイントのモデル座標が(0.5,0.5)である場合、シャドウマップにおいて(0.5,0.5)位置にあるものを、このピクセルポイントのサンプリングポイントとして決定された。
【0075】
212で、端末は、この仮想シーンにおいて、この複数のサンプリングポイントをレンダリングし、少なくとも1つのシャドウを得る。
【0076】
上記のプロセスでは、端末は、この複数のサンプリングポイントに基づいてレンダリングする場合、内蔵された描画インターフェース(draw call)を呼び出して、端末のGPU(graphics processing unit、グラフィックスプロセッシングユニット)にアクセスし、この複数のサンプリングポイントを描画し、この少なくとも1つのシャドウを得ることができる。
【0077】
いくつかの実施形態では、端末は、上記のステップ201を実行しなくてもよく、即ち、この少なくとも1つのシャドウマップを取得せずに、直接にローカルに1つまたは複数のターゲットシャドウマップを記憶することにより、上記のステップ211~212で、この複数のピクセルポイントのモデル座標に基づいて、この1つまたは複数のターゲットシャドウマップをサンプリングして、この複数のピクセルポイントに対応する複数のサンプリングポイントを得、この仮想シーンでこの複数のサンプリングポイントをレンダリングし、少なくとも1つのシャドウを得る。
【0078】
ターゲットシャドウマップが1つである場合、すべてのレンダリング構造体が同一のターゲットシャドウマップをサンプリングすることにより、すべての仮想オブジェクトが同じシャドウを持つようにしてよく、例えば、このターゲットシャドウマップは円片であってもよい。もちろん、このターゲットシャドウマップが複数である場合、異なるレンダリング構造体は、異なるターゲットシャドウマップをサンプリングすることにより、異なる仮想オブジェクトが異なるシャドウを有するようになり、例えば、このターゲットシャドウマップは円片と方片を含み、人物に対応するレンダリング構造体は円片をサンプリングし、建物に対応するレンダリング構造体は方片をサンプリングする。
【0079】
図5は、本願の実施形態によって提供されるレンダリング効果の概略図であり、図5を参照すると、端末は、上記のステップ210における材質マーカーを実行したので、図中の人物のブーツは、シャドウによって遮蔽されない効果に回復する。
【0080】
図6は、本願の実施形態によって提供されるレンダリング効果の概略図であり、図6を参照すると、端末は、上記のステップ202でシャドウマップを取得するプロセスを実行したので、レンダリングされたシャドウは、仮想オブジェクト自体の輪郭と一致しており、ローカルに記憶されているターゲットシャドウマップを採用すれば、例えば、このターゲットシャドウマップが円片を採用する場合、レンダリングされたシャドウの輪郭は、図4に示すようになる。
【0081】
上記のステップ201~202では、端末は、レンダリングエンジンの機能を十分に利用することで、シャドウレンダリング方法を提供することができ、この方法には、余計な記憶オーバーヘッドがなく、余計な作成オーバーヘッドがなく、動作時に余計なメモリがなく、動作効率が安定的で仮想オブジェクトの移動によって影響されず、また、拡張可能性が強い。
【0082】
上記のすべてのオプションの技術案は、任意の組み合わせを採用して本開示のオプションの実施形態を形成することができ、ここでは、説明を省略する。
【0083】
本願の実施形態によって提供される方法によれば、仮想シーンにおける光照射方向に基づいて、この仮想シーンにおける少なくとも1つのレンダリング構造体を取得することにより、この少なくとも1つのレンダリング構造体をシャドウレンダリングのモデルとし、現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのモデル座標を取得し、これにより、モデル座標とシャドウマップのUV空間は一対一に対応するようになり、この複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、この複数のピクセルポイントに対応する複数のサンプリングポイントを得て、この仮想シーンにおいてこの複数のサンプリングポイントをレンダリングし、この少なくとも1つのシャドウを得、これによって、シャドウレンダリング効果を向上させ、レンダリングエンジン自体の機能に基づいてシャドウのリアルタイムレンダリングが実現され、端末CPUの処理効率を向上させることもできる。
【0084】
さらに、光照射方向の視点行列により座標系の変換を行い、現在の視角の単一カメラから、直接にシャドウマップを得ることにより、光源に新しいカメラを設定することが回避され、レンダリングカメラの数を低減させ、端末のレンダリング時間が短縮され、端末のレンダリング効率を向上させる。
【0085】
さらに、光照射方向に基づいて、少なくとも1つのレンダリング構造体の初期サイズと初期方向を調整し、これにより、各レンダリング構造体がシャドウ領域をカバーし、かつシャドウレンダリングの効果に影響を及ぼさない場合、このレンダリング構造体においてレンダリングが必要とされるピクセルポイントの数を低減させ、レンダリング効率を向上させることができる。
【0086】
さらに、複数のピクセルポイントのスクリーン座標に基づいて、複数のピクセルポイントの深度情報を決定し、深度マップを取得する際に、深度マップを、この深度スタンプと同じ深度マップコピーとして保存し、その後のレンダリング時に直接にこの深度マップコピーにアクセスして、端末のレンダリング負担を低減させることができる。
【0087】
さらに、いずれかのピクセルポイントのワールド座標に基づいて、このピクセルポイントのローカル座標を取得し、さらにローカル座標をUV空間にマッピングし、このピクセルポイントのモデル座標を得、これにより、各シャドウマップのUV情報に基づいてサンプリングおよび描画が容易になる。
【0088】
さらに、遮蔽が許可されない仮想オブジェクトの材質を事前にマークすることにより、端末は、ターゲット材質がマークされたいずれかの仮想オブジェクトに対してオーバーラップレンダリングを実行できないようにして、つまり、シャドウが仮想オブジェクトを遮蔽することが回避され、仮想シーンのレンダリング効果が最適化され、シャドウレンダリングの擬真度を向上させる。
【0089】
本願の各実施形態における各ステップは、必ずしもステップ番号で示される順序に従って順次に実行されるものではない、ということが理解されるべきである。本明細書で明示的に説明されていない限り、これらのステップの実行は、厳密な順序制限がなくて、これらのステップが他の順序で実行されてもよい。また、各実施形態における少なくとも一部のステップは、複数のサブステップまたは複数の段階を含むようにしてよいし、これらのサブステップまたは段階は、必ずしも同じタイミングで実行されるものではなく、異なるタイミングで実行されてもよく、これらのサブステップまたは段階の実行順序が、必ずしも順次に行われる必要はなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と順次または交替で実行されるようにしてよい。
【0090】
上記の本願の実施形態によって提供されるシャドウレンダリング方法による有益な効果をさらに直観的に説明するために、表1には、端末上で静止時の14個の高精度モデルをテストする場合の3つ方法のシャドウレンダリング効率が示されている。
【0091】
【表1】
表1からわかるように、レンダリングエンジンunity3Dオリジナル方法は、1フレームのシャドウをレンダリングする際に42ミリ秒(ms)が必要であり、かつFPS(frames per second、1秒あたりに送信されるフレーム数、すなわち、フレームレート)は24である一方、本願の技術案およびサードパーティ・プラグイン(Fast Shadow Receiver、高速シャドウレシーバー)は、1フレームのシャドウをレンダリングする際に37msが必要であり、かつFPSはいずれも27である。したがって、本願の技術案とFast Shadow Receiverは、モデルが静止している間に、シャドウレンダリング効率が同じであるが、いずれもunity3Dオリジナル方法のシャドウレンダリング効率よりも高い。
【0092】
さらに、表2には、モデル移動時の2つの方法のシャドウレンダリング効率が示されており、表2に示す動的圧力テストでは、使用される100個の円片シャドウが同一の仮想シーンで急速に移動する。
【0093】
【表2】
表2からわかるように、モデル移動時に、本願の技術案は、1フレームシャドウをレンダリングする際に29msしか必要とされず、かつFPSは34である一方、Fast Shadow Receiverは、1フレームシャドウをレンダリングする際に40msも掛かる必要があり、かつFPSは25である。したがって、本願の技術案は、モデル移動時に、Fast Shadow Receiverのシャドウレンダリング効率よりも高い。
【0094】
上記の表1と表2によれば、モデルの静止時と移動時のシャドウレンダリング効率を総合的に考慮し、Fast Shadow Receiverと比べて、本願の技術案は、さらに、1フレームシャドウをレンダリングする際に掛かる時間を短縮し、1秒あたりにシャドウが送信されるフレーム数を増加し、即ち、端末のシャドウレンダリング効率を向上させ、また、余計なオーバーヘッドおよび負担がないため、端末CPUの処理効率をも向上させる。
【0095】
図7は、本願の実施形態によって提供されるシャドウレンダリング装置の構成図であり、図7を参照すると、この装置は、第1取得モジュール701と、第2取得モジュール702と、サンプリングモジュール703と、レンダリングモジュール704と、を備える。
【0096】
第1取得モジュール701は、仮想シーンにおける光照射方向に基づいて、この仮想シーンにおける少なくとも1つのレンダリング構造体を取得し、この少なくとも1つのレンダリング構造体が、少なくとも1つの仮想オブジェクトの少なくとも1つのシャドウをレンダリングするために使用されるものであり、各レンダリング構造体には、複数のピクセルポイントが含まれる。
【0097】
第2取得モジュール702は、現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのモデル座標を取得し、1つのモデル座標が、1つの仮想オブジェクトのモデル基点に対する1つのピクセルポイントのテクスチャ情報を記述するために使用されるものである。
【0098】
サンプリングモジュール703は、この複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、この複数のピクセルポイントに対応する複数のサンプリングポイントを得、各シャドウマップが、1つのシャドウのテクスチャ情報を提供するために使用されるものである。
【0099】
レンダリングモジュール704は、この仮想シーンにおいて、この複数のサンプリングポイントをレンダリングし、この少なくとも1つのシャドウを得る。
【0100】
本願の実施形態に係る装置によれば、仮想シーンにおける光照射方向に基づいて、この仮想シーンにおける少なくとも1つのレンダリング構造体を取得することにより、この少なくとも1つのレンダリング構造体をシャドウレンダリングのモデルとし、現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのモデル座標を取得することにより、モデル座標がシャドウマップのUV空間に一対一に対応するようにすることができ、この複数のピクセルポイントのモデル座標に基づいて、少なくとも1つのシャドウマップをサンプリングし、この複数のピクセルポイントに対応する複数のサンプリングポイントを得て、この仮想シーンにおいてこの複数のサンプリングポイントをレンダリングし、この少なくとも1つのシャドウを得ることにより、レンダリングエンジン本体の機能に基づいてシャドウのリアルタイムレンダリングを実現し、端末のメモリリソースを節約し、端末CPUの処理効率を向上させることができる。
【0101】
1つの可能な実装形態では、図7の装置構成に基づいて、第2取得モジュール702は、
この現在の視角と、この複数のピクセルポイントの深度情報とに基づいて、この複数のピクセルポイントのワールド座標を取得する第1取得ユニットであって、1つのワールド座標が、この仮想シーンのシーン基点に対する1つのピクセルポイントの位置情報を記述するために使用されるものである第1取得ユニットと、
この複数のピクセルポイントのワールド座標に基づいて、この複数のピクセルポイントのモデル座標を取得する第2取得ユニットと、を備える。
【0102】
1つの可能な実装形態では、第1取得ユニットは、
各ピクセルポイントに対して、この現在の視角の視点を射線端点とし、この視点と、このピクセルポイントとによって決定された射線方向において、この視点との間の距離がこのピクセルポイントの深度情報に合致するターゲットピクセルポイントを決定し、
このターゲットピクセルポイントのワールド座標をこのピクセルポイントのワールド座標として決定する。
【0103】
1つの可能な実装形態では、第2取得ユニットは、
この現在の視角の視点行列を、この複数のピクセルポイントのワールド座標に左乗算することにより、この複数のピクセルポイントのローカル座標を得、この視点行列が、ワールド座標系からモデル座標系にマッピングされる変換行列であり、
この複数のピクセルポイントのローカル座標をテクスチャマッピング空間にマッピングし、この複数のピクセルポイントのモデル座標を得る。
【0104】
1つの可能な実装形態では、図7の装置構成に基づいて、この装置は、さらに、
この複数のピクセルポイントのスクリーン座標に基づいて、深度マップからこの複数のピクセルポイントの深度情報を取得し、1つのスクリーン座標が、端末スクリーンのスクリーン基点に対する1つのピクセルポイントの位置情報を記述するために使用されるものである。
【0105】
1つの可能な実装形態では、第1取得モジュール701は、
この少なくとも1つの仮想オブジェクトに基づいて、この少なくとも1つのレンダリング構造体の初期サイズと初期位置を決定し、この初期サイズと初期位置が、この少なくとも1つの仮想オブジェクトとマッチングし、
この光照射方向に基づいて、この少なくとも1つのレンダリング構造体の方向を決定し、この初期サイズと初期位置を調整し、この少なくとも1つのレンダリング構造体を得る。
【0106】
1つの可能な実装形態では、この少なくとも1つのレンダリング構造体は、立方体、球体または円柱体である。
【0107】
1つの可能な実装形態では、図7の装置構成に基づいて、この装置は、さらに、
この光照射方向の視点行列を少なくとも1つの仮想オブジェクトのワールド座標に左乗し、この光照射方向からこの少なくとも1つの仮想オブジェクトに対してシャドウ投影を行う少なくとも1つのシャドウマップを生成する。
【0108】
1つの可能な実装形態では、図7の装置構成に基づいてき、この装置は、さらに、
遮蔽が許可されない仮想オブジェクトの材質をターゲット材質としてマークし、このターゲット材質が、レンダリング中にシャドウレンダリングがサポートされていないタ材質である。
【0109】
説明すべきものとして、上記の実施形態によって提供されるシャドウレンダリング装置は、シャドウをレンダリングする際に、上記の各機能ブロックの分割のみを例に挙げて説明するが、実際の適用では、必要に応じて、上記の機能を完成するように異なる機能モジュールに割り当てもよく、つまり、端末の内部構造を異なる機能ブロックに分割することにより、上記の機能の全部または一部を完了する。また、上記の実施形態によって提供されるシャドウレンダリング装置と、シャドウレンダリング方法の実施形態は、同一の構想に属し、その具体的な実現プロセスについて、シャドウレンダリング方法の実施形態を参照でき、ここでは説明を省略する。
【0110】
図8は、本願の実施形態によって提供される端末800の構成の概略図である。この端末800は、スマートフォン、タブレットコンピュータ、MP3(moving picture experts group audio layer III、動画専門家グループオーディオレイヤ3)プレイヤー、MP4(moving picture experts group Aadio layer IV、動画専門家グループオーディオレイヤ4)プレイヤー、ノートパソコンやデスクトップコンピュータであってもよい。端末800は、ユーザデバイス、携帯型端末、ラップトップ型端末、デスクトップ型端末などの他の名称と呼ばれることもある。
【0111】
一般的に、端末800は、プロセッサ801とメモリ802とを備える。
【0112】
プロセッサ801は、1つまたは複数の処理コアを備えるようにしてよく、例えば、4コアプロセッサ、8コアプロセッサなどである。プロセッサ801は、DSP(digital signal processing、デジタル信号処理)、FPGA(field-programmable gate array、フィールドプログラマブルゲートアレイ)、PLA(programmable Lplogic array、プログラマブルロジックアレイ)のうちの少なくとも1つのハードウェア形式を採用して実現するようにしてもよい。プロセッサ801は、メインプロセッサとコプロセッサとを備えるようにしてもよく、メインプロセッサは、起動状態でのデータを処理するためのプロセッサであり、CPU(central processing unit、中央プロセッサ)とも呼ばれ、コプロセッサは、待機状態でのデータを処理するための低消費電力プロセッサである。いくつかの実施形態では、プロセッサ801は、GPU(graphics processing unit、グラフィックスプロセッシングユニット)が集積されるようにしてもよく、GPUは、ディスプレイに表示する必要のあるコンテンツへのレンダリングおよび描画を担当するために使用される。いくつかの実施形態では、プロセッサ801は、AI(artiphicial intelligence、人工知能)プロセッサを備えるようにしてもよく、このAIプロセッサは、マシン学習に関するコンピューティング動作を処理するために使用される。
【0113】
メモリ802は、1つまたは複数のコンピュータ読み取り可能な記憶媒体を備えるようにしてよく、このコンピュータ読み取り可能な記憶媒体は、非一時的なものであってもよい。メモリ802はまた、高速ランダムアクセスメモリと、不揮発性メモリとを備えるようにしてもよく、例えば、1つまたは複数の磁気ディスク記憶デバイス、フラッシュメモリ記憶デバイスなどである。いくつかの実施形態では、メモリ802における非一時的なコンピュータ読み取り可能な記憶媒体は、少なくとも1つの命令を記憶するために使用され、この少なくとも1つの命令は、プロセッサ801によって実行されることで、本願のシャドウレンダリング方法の実施形態によって提供されるシャドウレンダリング方法を実現するために使用されるものである。
【0114】
いくつかの実施形態では、端末800は、オプションとして、周辺デバイスインターフェース803と、少なくとも1つの周辺デバイスとを備えるようにしてもよい。プロセッサ801、メモリ802、および周辺デバイスインターフェース803の間では、バスまたは信号線によって接続されるようにしてもよい。各周辺デバイスは、バス、信号線、または回路ボードを介して周辺デバイスインターフェース803と接続されるようにしてもよい。具体的に、周辺デバイスには、無線周波数回路804と、ディスプレイ805と、カメラコンポーネント806と、オーディオ回路807と、位置決めコンポーネント808と、電源809とのうちの少なくとも1つが含まれる。
【0115】
周辺デバイスインターフェース803は、I/O(input/output、入力/出力)に関連する少なくとも1つの周辺デバイスをプロセッサ801およびメモリ802に接続するために使用されてもよい。いくつかの実施形態では、プロセッサ801、メモリ802、および周辺デバイスインターフェース803は、同一のチップまたは回路ボードに集積され、いくつかの他の実施形態では、プロセッサ801、メモリ802、および周辺デバイスインターフェース803のうちのいずれかの1つまたは2つは、単独のチップまたは回路ボード上で実現されてもよいし、本実施形態は、これに対して限定しない。
【0116】
無線周波数回路804は、RF(radio frequency、無線周波数)信号(電磁信号とも呼ばれる)を受送信するために使用される。無線周波数回路804は、電磁信号を介して通信ネットワークおよび他の通信デバイスと通信を行う。無線周波数回路804は、電気信号を電磁信号に変換して送信を行うか、または受信した電磁信号を電気信号に変換する。オプションとして、無線周波数回路804は、アンテナシステム、RFトランシーバ、1つまたは複数の増幅器、チューナ、発振器、デジタル信号プロセッサ、コーデックチップセット、ユーザ身分モジュールカードなどを備えている。無線周波数回路804は、少なくとも1つの無線通信プロトコルによって他の端末と通信するようにしてよい。この無線通信プロトコルは、メトロポリタンエリアネットワーク、各世代転送通信ネットワーク(2G、3G、4Gおよび5G)、無線LANおよび/またはWiFi(Wireless fidelity、ワイヤレスフィデリティ)ネットワークを含むが、これらに限定されない。いくつかの実施形態では、無線周波数回路804は、NFC(near field communication、近距離無線通信)に関する回路を備えるようにしてもよいし、本願は、これに対して限定しない。
【0117】
ディスプレイ805は、UI(user interface、ユーザインターフェース)を表示するために使用される。このUIは、グラフ、テキスト、アイコン、ビデオおよびそれらの任意の組み合わせを含むようにしてもよい。ディスプレイ805がタッチディスプレイである場合、ディスプレイ805は、ディスプレイ805の表面または表面の上方にあるタッチ信号を収集する能力を持っている。このタッチ信号は、制御信号として、プロセッサ801に入力して処理されるようにしてもよい。このとき、ディスプレイ805は、また、仮想ボタンおよび/または仮想キーボード(ソフトボタンおよび/またはソフトキーボードとも呼ばれる)を提供するために使用されるようにしてもよい。いくつかの実施形態では、ディスプレイ805は、1つであってもよく、端末800の前面パネルに設置されてもよいし、他の実施形態では、ディスプレイ805は、少なくとも2つであってもよく、端末800の異なる表面にそれぞれ設置されてもよく、または折り畳みされた設計として表示されてもよいし、また、いくつかの実施形態では、ディスプレイ805は、フレキシブルディスプレイであってもよく、端末800の曲げ面または折りたたみ面に設けられてもよい。さらに、ディスプレイ805は、非長方形の不規則な図形に設置されるようにしてもよく、つまり、異形のディスプレイとなる。ディスプレイ805は、LCD(Liquid Crystal Display、液晶ディスプレイ)、OLED(Organic Light-Emiting Diode、有機発光ダイオード)などの材質で製造されるようにしてよい。
【0118】
カメラコンポーネント806は、画像またはビデオを収集するために使用される。オプションとして、カメラコンポーネント806は、フロントカメラおよびバックカメラを含む。通常、フロントカメラは、端末の前面パネルに設置されており、バックカメラは、端末の背面に設置されている。いくつかの実施形態では、バックカメラは、少なくとも2つがあり、それぞれが、メインカメラ、被写界深度カメラ、広角カメラ、望遠カメラのうちのいずれかであり、これによって、メインカメラと被写界深度カメラの融合による背景ボケ機能の実現、メインカメラと広角カメラの融合によるパノラマ撮影およびVR(virtual reality、バーチャルリアリティ)撮影機能、またはその他の融合撮影機能が実現される。いくつかの実施形態では、カメラコンポーネント806は、フラッシュをさらに備えるようにしてもよい。フラッシュは、単色温度フラッシュであってもよく、二色温度フラッシュであってもよい。二色温度フラッシュとは、暖かい光のフラッシュと冷たい光のフラッシュの組み合わせを指し、異なる色温度での光線補償に使用されるようにしてもよい。
【0119】
オーディオ回路807は、マイクロフォンとスピーカとを備えるようにしてもよい。マイクロフォンは、ユーザおよび環境の音波を収集して、音波を電気信号に変換してプロセッサ801に入力して処理し、または無線周波数回路804に入力して音声通信を実現するために使用される。ステレオの収集またはノイズ低減の目的から、マイクロフォンは、複数があってもよく、それぞれが端末800の異なる部分に設けられてもよい。マイクロフォンは、アレイマイクロフォンまたは全方向性収集型マイクロフォンであってもよい。スピーカは、プロセッサ801または無線周波数回路804からの電気信号を音波に変換するために使用される。スピーカは、伝統的な薄膜スピーカであってもよく、圧電セラミックスピーカーであってもよい。スピーカは、圧電セラミックスピーカーであると、電気信号を人間の聞こえる音波に変換するだけでなく、電気信号を人間の聞こえない音波に変換することで距離測定などの用途のために使用されてもよい。いくつかの実施形態では、オーディオ回路807は、ヘッドホンジャックを備えるようにしてもよい。
【0120】
位置決めコンポーネント808は、端末800の現在の地理的位置を位置決めることで、ナビゲーションまたはLBS(location based service、位置に基づくサービス)を実現するために使用される。位置決めコンポーネント808は、米国のGPS(global positioning system、グローバル・ポジショニング・システム)、中国の北斗システム、ロシアのグレイナスシステム、または欧州連合のガリレオシステムの位置決めコンポーネントに基づくものであってよい。
【0121】
電源809は、端末800における各コンポーネントに電力を供給するために使用される。電源809は、交流、直流、使い捨て電池、または充電式電池であってもよい。電源809が充電式電池を含む場合、この充電式電池は、有線充電または無線充電をサポートすることができる。この充電式電池は、高速充電技術をサポートするために使用されるようにしてもよい。
【0122】
いくつかの実施形態では、端末800は、1つまたは複数のセンサ810を備えるようにしてもよい。この1つまたは複数のセンサ810は、加速度センサ811、ジャイロセンサ812、圧力センサ813、指紋センサ814、光学センサ815、および近接センサ816を含むが、これらに限定されない。
【0123】
加速度センサ811は、端末800により確立された座標系の3つの座標軸での加速度の大きさを検出することができる。例えば、加速度センサ811は、重力加速度の3つの座標軸での成分を検出するために使用されるようにしてもよい。プロセッサ801は、加速度センサ811によって収集された重力加速度信号に基づいて、ディスプレイ805が横方向または縦方向のビューによってユーザインターフェースの表示を行うように制御することができる。加速度センサ811は、ゲームまたはユーザの動きデータの収集にも使用され得る。
【0124】
ジャイロセンサ812は、端末800の本体方向および回転角度を検出することができ、ジャイロセンサ812は、加速度センサ811と協働して、ユーザによる端末800への3D動作を収集することができる。プロセッサ801は、ジャイロセンサ812によって収集されたデータに基づいて、動作感知(例えば、ユーザの傾き操作に応じてUIを変化させる)、撮影時の画像安定、ゲーム制御、および慣性ナビゲーションなどの機能を実現することができる。
【0125】
圧力センサ813は、端末800のサイドフレームおよび/またはディスプレイ805の下部に設けられてもよい。圧力センサ813は、端末800のサイドフレームに設けられる場合、ユーザによる電子デバイス800への把持信号を検出することができ、プロセッサ801は、圧力センサ813によって収集された把持信号に基づいて、左手と右手の識別またはショートカット操作を行う。圧力センサ813は、ディスプレイ805の下部に設けられる場合、プロセッサ801は、ユーザによるディスプレイ805への圧力操作に応じて、UIインターフェース上の操作可能なコントロールに対する制御を実現する。操作可能なコントロールは、ボタンコントロール、スクロールバーコントロール、アイコンコントロール、メニューコントロールのうちの少なくとも1つを含む。
【0126】
指紋センサ814は、ユーザの指紋を収集するために使用され、プロセッサ801は、指紋センサ814によって収集された指紋からユーザの身分を識別するか、または、指紋センサ814は、収集した指紋からユーザの身分を識別する。ユーザの身分が信頼できる身分であると識別された場合、プロセッサ801は、そのユーザに対して、関連する敏感な操作を実行するように許可し、この敏感な操作は、スクリーンのロック解除、暗号化情報の閲覧、ソフトウェアのダウンロード、支払い、および設定の変更などを含む。指紋センサ814は、端末800の正面、背面、または側面に設けられてもよい。端末800に物理的なキーまたはベンダーLogoが設けられている場合、指紋センサ814は、物理的なキーまたはベンダーLogoと一体化されることができる。
【0127】
光学センサ815は、環境光強度を収集するために使用される。一実施形態では、プロセッサ801は、光学センサ815によって収集された環境光強度に応じて、ディスプレイ805の表示輝度を制御するようにしてよい。具体的に、環境光強度が高い場合、ディスプレイ805の表示輝度を高くし、環境光強度が低い場合、ディスプレイ805の表示輝度を低くする。別の実施形態では、プロセッサ801は、光学センサ815によって収集された環境光強度に従って、カメラコンポーネント806の撮影パラメータを動的に調整することもできる。
【0128】
近接センサ816は、距離センサとも呼ばれ、通常、端末800の前面パネルに設けられている。近接センサ816は、ユーザと端末800の正面との間の距離を収集するために使用される。1つの実施形態では、近接センサ816が、ユーザと端末800の正面との距離が徐々に小さくなっていることを検出した場合、プロセッサ801は、点灯状態から消灯状態に切り換えるように、ディスプレイ805を制御し、近接センサ816が、ユーザと端末800の正面との距離が徐々に大きくなっていることを検出した場合、プロセッサ801は、消灯状態から点灯状態に切り替えるように、ディスプレイ805を制御する。
【0129】
当業者であれば、図8に示す構造は、端末800に対する限定を構成するものではなく、図示のものよりも多いまたは少ないコンポーネントを含んだり、またはいくつかのコンポーネントを組み合わせたり、あるいは異なるコンポーネントの配置を採用したりすることができる、ということを理解することができる。
【0130】
例示的な実施形態では、例えば、命令を含むメモリのようなコンピュータ読み取り可能な記憶媒体も提供され、上記命令は、上記の実施形態におけるシャドウレンダリング方法を完了するように、端末におけるプロセッサによって実行されてもよい。例えば、このコンピュータ読み取り可能な記憶媒体は、ROM(read-only memory、リードオンリーメモリ)、RAM(random access memory、ランダムアクセスメモリ)、CD-ROM(compect discread-only memory、リードオンリーディスク)、テープ、フロッピーディスク、光データ記憶装置などであってもよい。
【0131】
当業者は、上記の実施形態の方法の全てまたは一部のプロセスを実現することは、コンピュータプログラムによって、関連するハードウェアを命令することによって達成され得ると理解でき、前記コンピュータプログラムは、不揮発性コンピュータ読み取り可能な記憶媒体に記憶されてもよく、このコンピュータプログラムが実行される場合、上記の各方法の実施形態のプロセスを含むようにしてよい。ここで、本願によって提供される各実施形態で使用されるメモリ、ストレージ、データベース、または他の媒体への任意の参照は、不揮発性および揮発性メモリのうちの少なくとも1つを含むようにしてよい。不揮発性メモリは、リードオンリーメモリ(Read-Only Memory、ROM)、磁気テープ、フロッピーディスク、フラッシュメモリまたは光メモリなどを含むようにしてよい。揮発性メモリは、ランダムアクセスメモリ(Random Access Memory、RAM)または外部キャッシュメモリを含むようにしてよい。限定ではなく、説明として、RAMは、静的ランダムアクセスメモリ(Static Random Access Memory、SRAM)または動的ランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)などの様々な形態であってもよい。
【0132】
上記は、本願の好ましい実施形態にすぎず、本願を制限するものではなく、本願の精神および原則の範囲内に、実行されたいかなる修正、均等置換、改善などは、いずれも、本願の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6
図7
図8