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

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

7381738画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム
<図1>
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図1
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図2
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図3
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図4
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図5A
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図5B
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図5C
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図6
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図7
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図8
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図9A
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図9B
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図10
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図11
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図12
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図13
  • -画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム
(51)【国際特許分類】
   G06T 7/11 20170101AFI20231108BHJP
   G06T 15/60 20060101ALI20231108BHJP
【FI】
G06T7/11
G06T15/60
【請求項の数】 11
(21)【出願番号】P 2022523168
(86)(22)【出願日】2020-10-26
(65)【公表番号】
(43)【公表日】2023-01-18
(86)【国際出願番号】 CN2020123495
(87)【国際公開番号】W WO2021147408
(87)【国際公開日】2021-07-29
【審査請求日】2022-05-13
(31)【優先権主張番号】202010075307.3
(32)【優先日】2020-01-22
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ツァオ,シュン
(72)【発明者】
【氏名】シュイ,ホアビン
(72)【発明者】
【氏名】ウエイ,ナン
(72)【発明者】
【氏名】ツォイ,シアオチュン
(72)【発明者】
【氏名】リ,ツォンビン
(72)【発明者】
【氏名】ジョウ,ルゥォンシン
(72)【発明者】
【氏名】リ,ウエンイェン
【審査官】新井 則和
(56)【参考文献】
【文献】中国特許出願公開第109993823(CN,A)
【文献】中国特許出願公開第104463853(CN,A)
【文献】中国特許出願公開第107730578(CN,A)
【文献】中国特許出願公開第104933754(CN,A)
【文献】米国特許第08872824(US,B1)
【文献】米国特許出願公開第2018/0122132(US,A1)
【文献】Mr F,Baking artifact-free lightmaps on the GPU,[online],2018年08月29日, [retrieved on 2023.06.13], Retrieved from the Internet : <url: https://ndotl.wordpress.com/2018/08/29/baking-artifact-free-lightmaps/>
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/11
G06T 15/60
(57)【特許請求の範囲】
【請求項1】
電子機器が実行するシャドウ領域の画素点認識方法であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得するステップと、
前記ライトマップにおける画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定するステップと、
前記画素点を開始点として、前記画素点の少なくとも1つの接線方向に沿って放射された半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記画素点がシャドウ領域に位置すると決定するステップであって、前記半直線の長さは前記カバー半径と同じである、ステップと、
前記半直線と前記非受光面との交点に基づいて、前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて、前記シャドウ領域の外に位置するように、前記画素点をオフセット処理するステップであり、少なくとも2本の半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記半直線は、前記少なくとも2本の半直線のうち、半直線の開始点から、交差した非受光面の交点までの距離が最も近い半直線である、ステップとを含む、ことを特徴とする方法。
【請求項2】
前記ライトマップにおける画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定する前記ステップは、
前記画素点と各前記隣接画素点との平均距離を決定し、前記平均距離と予め設定された比率との積を前記カバー半径とするステップ、又は、
前記画素点と各前記隣接画素点との最大距離を決定し、前記最大距離と予め設定された比率との積を前記カバー半径とするステップを含む、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記半直線と前記非受光面との交点に基づいて、前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて前記画素点をオフセット処理する前記ステップは、
前記半直線の開始点から前記交点までの距離を前記オフセット量とし、前記画素点を前記半直線の方向に沿って前記オフセット量だけ移動させるステップを含む、ことを特徴とする請求項に記載の方法。
【請求項4】
前記オフセット量は、第1のオフセット量及び第2のオフセット量を含み、
前記半直線と前記非受光面との交点に基づいて、前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて前記画素点をオフセット処理する前記ステップは、
前記半直線の開始点から前記交点までの距離を前記第1のオフセット量とし、予め設定された距離を前記第2のオフセット量とするステップと、
前記画素点を前記半直線の方向に沿って前記第1のオフセット量だけ移動させ、前記画素点を前記半直線と交差した物体の法線方向に沿って前記第2のオフセット量だけ移動させるステップとを含む、ことを特徴とする請求項に記載の方法。
【請求項5】
電子機器が実行するライトレンダリング方法であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得するステップと、
前記ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識するステップと、
前記各画素点のうち、シャドウ領域に位置する画素点を、前記シャドウ領域の外に位置するように、オフセット処理するステップと、
オフセット処理された画素点及びオフセット処理されていない画素点に基づいて、前記ターゲット物体をライトレンダリングするステップとを含
前記ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識する前記ステップは、
前記ライトマップにおけるいずれかの画素点に対して、前記画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定するステップであって、前記画素点と各前記隣接画素点との距離は、前記画素点の世界座標及び各前記隣接画素点の世界座標に基づいて決定されるものである、ステップと、
前記画素点を開始点として、前記画素点の少なくとも1つの接線方向に沿って放射された半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記画素点がシャドウ領域に位置すると決定するステップであって、前記半直線の長さは前記カバー半径と同じである、ステップとを含み、
前記各画素点のうち、シャドウ領域に位置する画素点をオフセット処理する前記ステップは、
前記ライトマップにおけるいずれかの画素点に対して、前記半直線と前記非受光面との交点に基づいて前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて前記画素点をオフセット処理するステップであり、少なくとも2本の半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記半直線は、前記少なくとも2本の半直線のうち、半直線の開始点から、交差した非受光面の交点までの距離が最も近い半直線である、ステップを含む、ことを特徴とする方法。
【請求項6】
前記半直線と前記非受光面との交点に基づいて前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて前記画素点をオフセット処理する前記ステップは、
前記半直線の開始点から前記交点までの距離を前記オフセット量とし、前記画素点を前記半直線の方向に沿って前記オフセット量だけ移動させるステップを含む、ことを特徴とする請求項に記載の方法。
【請求項7】
前記オフセット量は、第1のオフセット量及び第2のオフセット量を含み、
前記半直線と前記非受光面との交点に基づいて、前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて前記画素点をオフセット処理する前記ステップは、
前記半直線の開始点から前記交点までの距離を前記第1のオフセット量とし、予め設定された距離を前記第2のオフセット量とするステップと、
前記画素点を前記半直線の方向に沿って前記第1のオフセット量だけ移動させ、前記画素点を前記半直線と交差した物体の法線方向に沿って前記第2のオフセット量だけ移動させるステップとを含む、ことを特徴とする請求項に記載の方法。
【請求項8】
前記画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定する前記ステップは、
前記画素点と各前記隣接画素点との平均距離を決定し、前記平均距離と予め設定された比率との積を前記カバー半径とするステップ、又は、
前記画素点と各前記隣接画素点との最大距離を決定し、前記最大距離と予め設定された比率との積を前記カバー半径とするステップを含む、ことを特徴とする請求項に記載の方法。
【請求項9】
シャドウ領域の画素点認識装置であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得する第1の取得ユニットと、
前記ライトマップにおける画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定する決定ユニットと、
前記画素点を開始点として、前記画素点の少なくとも1つの接線方向に沿って放射された半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記画素点がシャドウ領域に位置すると決定する第1の認識ユニットであって、前記半直線の長さは前記カバー半径と同じである、第1の認識ユニットと、
前記半直線と前記非受光面との交点に基づいて、前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて、前記シャドウ領域の外に位置するように、前記画素点をオフセット処理する第1のオフセットユニットであり、少なくとも2本の半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記半直線は、前記少なくとも2本の半直線のうち、半直線の開始点から、交差した非受光面の交点までの距離が最も近い半直線である、第1のオフセットユニットとを含む、ことを特徴とするシャドウ領域の画素点認識装置。
【請求項10】
プロセッサ、及びプログラムコードが記憶されたメモリを含む電子機器であって、
前記プログラムコードが前記プロセッサによって実行されると、請求項1~のいずれか1項に記載の方法のステップを前記プロセッサに実行させる、ことを特徴とする電子機器。
【請求項11】
コンピュータプログラムであって、
電子機器で実行されると、請求項1~のいずれか1項に記載の方法を前記電子機器に実行させる、ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年01月22日に中国国家知識産権局に提出された、出願番号が2020100753073で、発明の名称が「画素点認識及びライトレンダリング方法、装置、電子機器及び記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は、参照により本出願に組み込まれるものとする。
【0002】
本出願は、コンピュータ技術分野に関し、特に、画素点認識及びライトレンダリング方法、装置、電子機器及び記憶媒体に関する。
【背景技術】
【0003】
ライトマップとは、静的ターゲット物体に対して、グローバルライトアルゴリズムを用いて、ライト情報が予め生成されたピクチャである。ライトマップ技術を用いて、リアルタイムでレンダリングされるレンダリングオブジェクトに対して、オフラインでライト情報を生成し、性能を確保しながら、画面品質を向上させることができる。
【0004】
関連技術では、汎用のラスタライズ方法を用いて、ライトマップのGBuffer(Geometry Buffer、ジオメトリバッファ)データを生成するが、ライトマップの解像度が低いと、シャドウリークの問題が生じやすくなる。この場合、画素は、複数の領域にまたがり、画素の中心位置はシャドウ領域内に位置することになる。現在、シャドウ領域内にある画素点を検出する方法はまだ提出されていない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本出願の各実施例によれば、シャドウ領域の画素点認識及びライトレンダリング方法、装置、電子機器及び記憶媒体が提供される。
【課題を解決するための手段】
【0006】
電子機器が実行するシャドウ領域の画素点認識方法であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得するステップと、
前記ライトマップにおける画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定するステップと、
前記画素点を開始点として、前記画素点の少なくとも1つの接線方向に沿って放射された半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記画素点がシャドウ領域に位置すると決定するステップであって、前記半直線の長さは前記カバー半径と同じである、ステップとを含む。
【0007】
電子機器が実行するライトレンダリング方法であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得するステップと、
前記ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識するステップと、
前記各画素点のうち、シャドウ領域に位置する画素点を、シャドウ領域の外に位置するように、オフセット処理するステップと、
オフセット処理された画素点及びオフセット処理されていない画素点に基づいて、前記ターゲット物体をライトレンダリングするステップとを含む。
【0008】
シャドウ領域の画素点認識装置であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得する第1の取得ユニットと、
前記ライトマップにおける画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定する決定ユニットと、
前記画素点を開始点として、前記画素点の少なくとも1つの接線方向に沿って放射された半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記画素点がシャドウ領域に位置すると決定する第1の認識ユニットであって、前記半直線の長さは前記カバー半径と同じである、第1の認識ユニットとを含む。
【0009】
任意選択的には、前記決定ユニットは、具体的には、
前記画素点と各前記隣接画素点との平均距離を決定し、前記平均距離と予め設定された比率との積を前記カバー半径とするか、又は、
前記画素点と各前記隣接画素点との最大距離を決定し、前記最大距離と予め設定された比率との積を前記カバー半径とする。
【0010】
任意選択的には、前記装置は、
前記半直線と前記ターゲット物体との交点に基づいて前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて、シャドウ領域の外に位置するように、前記画素点をオフセット処理する第1のオフセットユニットをさらに含む。
【0011】
任意選択的には、前記第1のオフセットユニットは、具体的には、
前記半直線の開始点から、非受光面の前記半直線と交差した交点までの距離を前記オフセット量とし、前記画素点を前記半直線の方向に沿って前記オフセット量だけ移動させる。
【0012】
任意選択的には、前記オフセット量は、第1のオフセット量及び第2のオフセット量を含み、
前記装置は、オフセットユニットをさらに含み、
前記オフセットユニットは、具体的には、前記半直線の開始点から、非受光面の前記半直線と交差した交点までの距離を前記第1のオフセット量とし、予め設定された距離を前記第2のオフセット量とし、
前記画素点を前記半直線の方向に沿って前記第1のオフセット量だけ移動させ、前記画素点を前記半直線と交差した物体の法線方向に沿って前記第2のオフセット量だけ移動させる。
【0013】
任意選択的には、少なくとも2本の半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記半直線は、少なくとも2本の半直線のうち、半直線開始点から、交差した非受光面の交点までの距離が最も近い半直線である。
【0014】
ライトレンダリング装置であって、
ターゲットシーンにおけるターゲット物体のライトマップを取得する第2の取得ユニットと、
前記ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識する第2の認識ユニットと、
前記各画素点のうち、シャドウ領域に位置する画素点を、シャドウ領域の外に位置するように、オフセット処理する第2のオフセットユニットと、
オフセット処理された画素点及びオフセット処理されていない画素点に基づいて、前記ターゲット物体をライトレンダリングするレンダリングユニットとを含む。
【0015】
任意選択的には、前記第2の認識ユニットは、具体的には、
前記ライトマップにおけるいずれかの画素点に対して、前記画素点の世界座標及び各前記隣接画素点の世界座標に基づいて決定された、前記画素点の各隣接画素点と前記画素点との距離に基づいて、前記画素点に対応するカバー半径を決定し、
前記画素点を開始点として、前記画素点の少なくとも1つの接線方向に沿って放射された半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記画素点がシャドウ領域に位置すると決定し、前記半直線の長さは前記カバー半径と同じである。
【0016】
任意選択的には、前記第2の認識ユニットは、具体的には、
前記画素点と各前記隣接画素点との平均距離を決定し、前記平均距離と予め設定された比率との積を前記カバー半径とするか、又は、
前記画素点と各前記隣接画素点との最大距離を決定し、前記最大距離と予め設定された比率との積を前記カバー半径とする。
【0017】
任意選択的には、前記第2のオフセットユニットは、具体的には、
前記ライトマップにおけるいずれかの画素点に対して、前記半直線と前記非受光面との交点に基づいて、前記画素点に対応するオフセット量を決定し、前記オフセット量に基づいて前記画素点をオフセット処理する。
【0018】
任意選択的には、前記第2のオフセットユニットは、具体的には、
前記半直線の開始点から、非受光面の前記半直線と交差した交点までの距離を前記オフセット量とし、前記画素点を前記半直線の方向に沿って前記オフセット量だけ移動させる。
【0019】
任意選択的には、前記オフセット量は、第1のオフセット量及び第2のオフセット量を含み、
前記第2のオフセットユニットは、具体的には、
前記半直線の開始点から、非受光面の前記半直線と交差した交点までの距離を前記第1のオフセット量とし、予め設定された距離を前記第2のオフセット量とし、
前記画素点を前記半直線の方向に沿って前記第1のオフセット量だけ移動させ、前記画素点を前記半直線と交差した物体の法線方向に沿って前記第2のオフセット量だけ移動させる。
【0020】
任意選択的には、少なくとも2本の半直線が前記ターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、前記半直線は、少なくとも2本の半直線のうち、半直線開始点と、前記非受光面の交点との距離が最も近い半直線である。
【0021】
プロセッサ及びプログラムコードが記憶されたメモリを含む電子機器であって、前記プログラムコードが前記プロセッサによって実行されると、上記いずれかのシャドウ領域の画素点認識方法又はいずれかのライトレンダリング方法のステップを前記プロセッサに実行させる。
【0022】
プログラムコードを含むコンピュータ読み取り可能な記憶媒体であって、前記プログラム製品が電子機器で実行されると、前記プログラムコードは、上記いずれかのシャドウ領域の画素点認識方法又はいずれかのライトレンダリング方法のステップを前記電子機器に実行させる。
【0023】
プログラムコードを含むコンピュータプログラム製品であって、前記プログラムコードがコンピュータ読み取り可能な記憶媒体に記憶され、電子機器のプロセッサは、前記コンピュータ読み取り可能な記憶媒体から前記プログラムコードを読み取って実行すると、上記いずれかのシャドウ領域の画素点認識方法又はいずれかのライトレンダリング方法のステップを前記電子機器に実行させる。
【0024】
本明細書の1つまたは複数の実施形態の詳細は、以下の図面および説明において記載される。本出願の他の特徴および利点は、明細書、図面および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0025】
ここで説明される図面は、本出願のさらなる理解を提供するために用いられ、本出願の一部を構成し、本出願の例示的な実施形態及びその説明は、本出願を解釈するためのものであり、本出願に対する不当な限定を構成するものではない。
図1】本出願の実施例における適用シーンの任意選択的な概略図である。
図2】本出願の実施例におけるシャドウ領域の画素点認識方法のフローチャートである。
図3】本出願の実施例における三角形重心の概略図である。
図4】本出願の実施例におけるライトマップの概略図である。
図5A】本出願の実施例における半直線を放射する概略図である。
図5B】本出願の実施例における画素点をオフセットする概略図である。
図5C】本出願の実施例における画素点をオフセットする別の概略図である。
図6】本出願の実施例におけるライトレンダリング方法のフローチャートである。
図7】本出願の実施例における半球面の概略図である。
図8】本出願の実施例におけるライトレンダリングツールの操作インターフェースの概略図である。
図9A】本出願の実施例におけるライトレンダリングの効果図である。
図9B】本出願の実施例における別のライトレンダリングの効果図である。
図10】本出願の実施例における任意選択的なライトレンダリングのフローチャート概略図である。
図11】本出願の実施例におけるシャドウ領域の画素点認識装置の構造概略図である。
図12】本出願の実施例におけるライトレンダリング装置の構造概略図である。
図13】本出願の実施例における電子機器の構造概略図である。
図14】本出願の実施例を用いる計算装置のハードウェア構造の概略図である。
【発明を実施するための形態】
【0026】
以下、本出願の実施形態の目的、技術的解決手段及び利点をより明確にするために、本出願の実施形態の図面を参照しながら、本出願の技術的解決手段を明確かつ完全に説明する。説明された実施形態は、全ての実施形態ではなく、本出願の技術的解決手段の一部の実施形態であることは明らかである。本出願書類に記載された実施形態に基づき、当業者が創造的な労働を行わずに得られるその他の実施形態は、いずれも本出願の技術案の保護の範囲に属する。
【0027】
以下、本出願の実施例に係る概念の一部について説明する。
【0028】
1、ライトマップ(lightmap):静的ターゲット物体に対してグローバルライトアルゴリズムで予めライト情報が生成されたピクチャである。グローバルライトは、3次元ソフトウェアにおける特有の名詞であり、光は、反射と屈折の性質を有する。実際の自然の場合、光が数回の反射と屈折を経て太陽から地面に照射されるので、地面のどこを見てもはっきりしている(昼間)一方、3次元ソフトウェアの場合、光も現実の光のすべての性質を持っているが、光の放射エネルギーの伝達は明らかではない。グローバルライトをオンにする前、3次元ソフトウェアは、暗い面と明るい面のみを計算するが、オンにした場合には、光の反射、屈折などの様々な光効果を計算する。
【0029】
本出願の実施例では、物体に対応するライトマップは、該物体をライトレンダリングするために用いられ、同様に、カラーレンダリング・ライトレンダリングは、物体に対してライト効果をレンダリングするために用いられ、実際のシーンにおけるライトによる物体の影響をシミュレートする。ライトマップにおける各画素点は、画素値や色値のような対応するライト情報を有し、画素点のライト情報によって物体をライトレンダリングすることができる。
【0030】
2、ラスタライズ(rasterization):頂点データをフラグメントに変換するプロセスであり、ピクチャを複数のラスターからなる画像に変換する役割を果たす。特徴は、各要素がフレームバッファ領域内の1つの画素に対応することである。ラスタライズは、頂点データをフラグメントに変換するプロセスである。フラグメントにおける各要素は、フレームバッファ領域における1つの画素に対応する。ラスタライズは、幾何学的プリミティブを2次元画像に変換するプロセスである。本出願の実施例では、ラスタライズは、複数の三角面からなる物体を三角形に変換するプロセスであり、三角形の各頂点のUV座標などの情報を得ることができる。また、三角形頂点の位置に基づいてラスタライズ補間を行うことで、この三角形を構成するのにどれだけの画素点が必要なのか、各画素点がUV座標、接線、法線などのどのような情報を得るべきかを決定することができる。
【0031】
UV座標とは、テクスチャ座標を指し、2次元空間の座標である。水平方向はU、垂直方向はVであり、U、V座標の数値範囲はいずれも0~1である。
【0032】
3、ライトマップのGBufferデータ:ライトマップのサイズを解像度とするbuffer情報であり、位置、接線、法線、テクスチャなどの複数種のラスタライズ補間後のデータを含む。一般的に、色のみをテクスチャにレンダリングするのとは異なり、GBufferは、位置情報、法線情報、接線情報、テクスチャ情報などを含むバッファ領域を指す。
【0033】
4、重心座標:三角形において、重心座標は、面積座標とも呼ばれる。三角形abcにおけるs点(重心)の重心座標は、三角形sbc、sca及びsabの(方向付き)面積に比率するからである。本出願の実施例では、三角形の重心座標の方法によって、ラスタライズ補間後のデータを計算することができる。
【0034】
5、パストレーシング(pathtracing):好ましい不偏(Unbiased)のレンダリング方法である。パストレーシング法の基本的な思想は、視点から1本の光線を放射し、光線がターゲット物体の表面と交差する場合、表面の材質属性に応じて1つの方向を継続してサンプリングし、別の光線を放射し、光線が光源に当たる(又は、シーンから出る)まで、このように反復し、光線が光源に当たる(又は、シーンから出る)と、画素の色値として光線の寄与を計算するために、モンテカルロ法を用いることである。モンテカルロ法を用いた積分の解は、不偏であり、時間が十分長い限り、最終的に画像が正確な結果に収束することができる。本出願の実施例では、主に、パストレーシング法によって、対応する画素点のライト情報をレンダリングすることができ、さらに、画素点のライト情報に基づいて物体をライトレンダリングすることができる。
【0035】
6、テクセル(Texel、textureelement又はtexture pixelの複合語):テクスチャ要素の略称であり、コンピュータグラフィックテクスチャ空間における基本単位である。画像は画素で配列されてなるように、テクスチャはテクセル配列で配列されてなる。3次元表面にテクスチャを付ける際に、テクスチャマッピング技術によって、テクセルを適切な出力画像画素にマッピングする。本出願の実施例におけるテクセルは、画素に対応する。
【0036】
7、世界座標系:システムの絶対座標系であり、ユーザ座標系が確立される前に、画面におけるすべての点の座標のそれぞれの位置は、該座標系の原点で決定される。本出願の実施例では、世界座標系は、3次元座標系であり、世界座標系における点である物体表面の点の座標は、世界座標と呼ばれる。
【0037】
8、非受光面:物体が光を受けられない領域の表面を指す。本出願の実施例では、光を受けられない物体面は、物体の裏面であり、この部分の領域の光線は遮蔽されており、物体の正面または裏面は、世界座標系における物体の法線によって区別される。
【0038】
9、モンテカルロ法:モンテ・カルロ法(Monte Carlo method)とも呼ばれ、統計シミュレート法とも呼ばれ、20世紀40年代半ばに、科学技術の発展と電子計算機の発明によって提案された、確率統計理論によって導かれる非常に重要な数値計算方法である。乱数(または、より一般的な擬似乱数)を用いて多くの計算問題を解く方法を指す。
【0039】
10、ターゲットシーン:3次元モデルを含むシーンを指し、本出願の実施例では、ターゲットシーンは、ゲームシーン、アニメーションシーンなどを指す。ターゲットシーンにおける3次元モデルは、本出願の実施例における物体であり、ターゲットシーンがゲームシーンであることを例として、ゲームシーンにおける物体は、部屋、樹木、車両などを含む。
【0040】
11、画素点:1つの画素の中心位置を指す。本出願の実施例での画素は、1つの点ではなく、小さい格子の形であり、例えば、図4に示す複数の画素からなるライトマップであり、1つの小さい格子は、1つの画素を示し、画素の中心が画素点である。
【0041】
以下、本出願の実施例の設計思想について簡単に説明する。
【0042】
コンピュータ技術の発展に伴い、美術シーンの製作は、ますます広く応用されており、例えばゲーム開発、アニメーション制作、ビデオ処理などの分野では、様々な美術シーンが、ますます精細で美しく表現される。美術シーンの制作効果をさらに最適化し、画面に対するユーザのニーズを満たすためには、美術シーンのライト効果を処理する必要がある。
【0043】
一般的な処理方法は、ライトマップを追加することであり、静的ターゲット物体に対してグローバルライトアルゴリズムで予めライト情報が生成されている。関連技術では、汎用のラスタライズ法を用いて、ライトマップのGBufferデータを生成し、その後、GBufferデータに基づいて、パストレーシングを用いてライトレンダリングすることが多く、具体的には、以下の2つのステップに分けることができる。
【0044】
先ず、簡単なラスタライズ又は汎用のラスタライズによって、ライトマップのGBufferデータを生成する。GBufferにおける各画素点は、該画素点のラスタライズ補間後の位置情報、法線情報、接線情報、テクスチャ情報などを含む。
【0045】
その後、各ライトマップにおけるGBufferにおける画素点に対して、パストレーシング法を用いてレンダリング情報を生成する。パストレーシングの開始位置は、GBufferにキャッシュされた位置情報であり、開始方向は、開始点から法線を中心とした半球面上のランダムな位置への方向である。
【0046】
しかし、汎用のラスタライズを使用して生成されたライトマップのGBufferデータは、シャドウリークの問題が生じる。ライトマップの解像度が低い場合、単一のライトマップのテクセル座標は、複数の領域にまたがる可能性がある。領域の一部がシャドウ内にあり、一部がシャドウの外にあり、サンプリングポイントがシャドウ領域内にある場合、シャドウリークの問題が生じてしまう。例えば、複数の領域が壁によって遮蔽された領域と、壁によって遮蔽されない領域とを含む場合、壁と壁との接続箇所ではシャドウリークの問題が生じやすい。
【0047】
シャドウリークの問題を処理する一般的な方法は、ライトマップの解像度を高めることであるが、解像度を高めると、ライトマップの記憶領域が増えるだけでなく、レンダリング効率の問題も引き起こしてしまう。
【0048】
そこで、本出願の実施例は、シャドウ領域の画素点認識及びライトレンダリング方法、装置、電子機器及び記憶媒体を提供する。先ず、本出願の実施例では、シャドウ領域の画素点を認識する方法が提供され、シャドウ領域内に位置する画素点を効率的に検出することができ、さらに、これに基づいて、シャドウ領域の画素点を認識した後、シャドウ領域の画素点をオフセット処理し、画素点を遮蔽された位置から遮蔽されない位置までオフセットし、それにより、オフセットした後、画素点がシャドウ領域内に位置しなくなり、ライトマップの解像度を高める必要がなくなる。オフセットされた画素点及びオフセットされていない画素点に基づいて、再びライトレンダリングすると、シャドウリークの問題を効果的に低減できる。
【0049】
以下、明細書を併せて、本出願の好適な実施形態について説明するが、ここに記載された好適な実施形態は、本出願を説明及び解釈するためのものに過ぎず、本出願を限定するものではない。なお、矛盾しない限り、本出願における実施形態及び実施形態の特徴を互いに組み合わせることが可能である。
【0050】
図1に示すように、本出願の実施例の適用シーン概略図である。該適用シーンの図は、2つの端末機器110及び1つのサーバ130を含み、端末機器110によってライトレンダリングツールの操作インターフェース120に登録することができる。端末機器110とサーバ130とは、通信ネットワークを介して通信することができる。
【0051】
1つの任意選択的な実施形態では、通信ネットワークは、有線ネットワークまたは無線ネットワークである。
【0052】
本出願の実施例では、端末機器110は、ユーザが使用する電子機器であり、該電子機器は、パーソナルコンピュータ、携帯電話、タブレットコンピュータ、ノートパソコン、電子書籍リーダーなどの一定の計算能力を有する、インスタント通信類ソフトウェア及びウェブサイト又はソーシャルソフトウェア及びウェブサイトが実行されているコンピュータ機器であってもよい。各端末機器110は、無線ネットワークを介してサーバ130に接続し、サーバ130は、1台または複数台のサーバからなるサーバクラスタまたはクラウドコンピューティングセンター、または仮想化プラットフォームである。
【0053】
本出願の実施例では、端末機器110は、ライトレンダリングツールの操作インターフェース120を介してユーザによってトリガされたライトレンダリングタスクを受信し、サーバ130との通信によって、シャドウ領域の画素点認識及びライトレンダリングを実現する。
【0054】
図2に示すように、図1に示す端末装置110またはサーバ130に適用される、本出願の実施例に係るシャドウ領域の画素点認識方法の実施フローチャートであり、該方法の具体的な実施プロセスは、以下のとおりである。
【0055】
S21:ターゲットシーンにおけるターゲット物体のライトマップを取得する。
【0056】
本出願の実施例では、ターゲットシーンとは、ゲームシーン、アニメーションシーンなどを指す。ターゲットシーンにおける3次元モデルは、物体であり、ターゲットシーンがゲームシーンであることを例にすると、ゲームシーンにおける物体は、部屋、樹木、車両などであってもよい。ゲームシーンにおける物体が実際の光線の変化をシミュレートしてシャドウ効果を生成できるように、ゲームシーンにおける物体には、一般的に、対応するライトマップがある。
【0057】
S22:ライトマップにおける画素点の各隣接画素点と画素点との距離に基づいて、画素点に対応するカバー半径を決定する。
【0058】
本出願の実施例では、物体の表面が複数の三角面で接合されてなり、ターゲット物体に対して汎用のラスタライズ処理を行うと、ライトマップにおいて、いくつかの三角形、及び、位置情報、法線情報、接線情報、テクスチャ情報などを含む各三角形頂点のGBufferデータを得ることができる。
【0059】
また、汎用のラスタライズアルゴリズムによって、GBufferにおける補間情報を計算し、即ち、三角形の内部の画素点の補間情報を計算することができる。
【0060】
補間情報は、位置情報、法線情報、接線情報、テクスチャ情報などを含む。
【0061】
なお、本出願の実施例の位置情報とは、世界座標系における3次元座標情報であり、xが水平方向、yが垂直方向、zが深さ方向を示す(x,y,z)で表すことができる。テクスチャ情報とは、2次元空間における2次元座標情報を指し、Uが水平方向、Vが垂直方向を示す(U,V)で表すことができる。
【0062】
ここで、接線情報とは、接線平面、接線ベクトル、または接線方向などの情報を指す。法線情報とは、法線平面、法線ベクトル、または法線方向などの情報を指す
本出願の実施例では、U、Vの変化がxに与える影響は線形的であり、y、zに及ぼす影響は線形的である。従って、ある三角形の頂点の位置座標が(x,y,z)、テクスチャ座標が(U,V)であるとすると、d(x,y,z)/dUが該頂点に対応する接線Tを示し、d(x,y,z)/dVが副法線Qであり、該頂点に対応する法線Nは、T×Qである。
【0063】
なお、以上は、本出願の実施例で挙げられた接線情報及び法線情報の1つの具現形態に過ぎず、その他の具現形態も本出願の実施例に適用され、ここでは、具体的には限定されない。
【0064】
1つの任意選択的な実施形態では、三角形重心座標を計算する方法によって画素点の補間情報を計算し、詳細なプロセスは以下のとおりである。
【0065】
図3に示す画素点sを例にすると、s画素点が位置する三角形は三角形abcである。該画素点sを三角形abcの重心とし、三角形重心sと頂点a、b、cを連結し、三角形をsbc、sac、sabの3つの部分に分割する。重心sの座標を(α,β,γ)とすると、重心座標の計算式は以下のとおりである。
【0066】
α=Aa/A、β=Ab/A、γ=Ac/A。
【0067】
ただし、A=Aa+Ab+Acであり、Aaは三角形sbcの面積を示し、Abは三角形sacの面積を示し、Acは三角形sabの面積を示す。
【0068】
重心座標に基づいて補間情報を計算する場合、計算式は以下のとおりである。
【0069】
Value=α*ValueA+β*ValueB+γ*ValueC。
【0070】
ただし、Valueは、位置情報、接線情報、法線情報、テクスチャ情報などのいずれかを示すことができる。
【0071】
Valueが位置情報を示すことを例にすると、画素点sの位置情報を計算するとき、上記計算式中のValueAに頂点aの位置情報、ValueBに頂点bの位置情報、ValueCに頂点cの位置情報を代入すべきであり、この場合、上記計算式により計算されたValueは画素点sの位置情報を示す。
【0072】
例えば、頂点aの位置情報は(x1,y1,z1)、頂点bの位置情報は(x2,y2,z2)、頂点cの位置情報は(x3,y3,z3)と示される。画素点sの位置情報を(x0,y0,z0)とすると、
x0=α*x1+β*x2+γ*x3、
y0=α*y1+β*y2+γ*y3、
z0=α*z1+β*z2+γ*z3
となる。
【0073】
また、Valueが接線情報、法線情報又はテクスチャ情報などの補間情報を示す場合も、同様である。
【0074】
本出願の実施例では、画素点と各隣接画素点との距離は、画素点の世界座標及び各隣接画素点の世界座標に基づいて決定される。
【0075】
1つの画素点に対応する各隣接画素点は、ライトマップに含まれ、該画素点の上下左右の隣接する画素点は、図4に示される。画素点Aに対応する各隣接画素点は、その上下左右の4つの画素点がB、C、D、Eである。
【0076】
画素点の世界座標は、世界座標系における3次元座標であり、(x,y,z)で示される。
【0077】
1つの任意選択的な実施形態では、ライトマップにおける、画素点が位置するターゲット物体の画素点の各隣接画素点と画素点との距離に基づいて、画素点に対応するカバー半径を決定するとき、具体的には、以下の2つの方法に分けられる。
【0078】
決定方法1では、画素点と各隣接画素点との平均距離を決定し、決定した平均距離と予め設定された比率との積をカバー半径とする。
【0079】
本出願の実施例では、3次元物体のマッピング後のライトマップに基づいて、いずれかの画素点の隣接画素点を決定することができ、画素点と各隣接画素点との距離を計算するとき、世界座標系における画素点の3次元座標、即ち世界座標に基づいて決定する。
【0080】
画素点Aを例にすると、図4に示すように、画素点Aの各隣接画素点は、画素点B、画素点C、画素点D、画素点Eである。
【0081】
画素点Aに対応する世界座標を(xa,ya,za)、画素点Aの各隣接画素点に対応する世界座標のそれぞれをB(xb,yb,zb)、C(xc,yc,zc)、D(xd,yd,zd)、E(xe,ye,ze)とすると、
画素点Aと画素点Bとの距離dabは、以下のとおりである。
【0082】
【数1】
同様に、画素点Aと画素点Cとの距離はdac、画素点Aと画素点Dとの距離はdad、画素点Aと画素点Eとの距離はdaeである。
【0083】
したがって、画素点Aと各隣接画素点との平均距離d=(dab+dac+dad+dae)/4である。予め設定された比率をαとすると、画素点Aに対応するカバー半径はd*rである。
【0084】
決定方法2では、画素点と各隣接画素点との最大距離を決定し、決定した最大距離と予め設定された比率との積をカバー半径とする。
【0085】
引き続き画素点Aを例とし、dab、dac、dad、daeのうちの最大距離をdacとすると、画素点Aに対応するカバー半径はdac*rである。
【0086】
任意選択的には、画素点と各隣接画素点との最大距離は、すべての方向上の最大距離、即ち、x、y、zの3つの方向上の最大距離であってもよい。
【0087】
水平隣接最大値をddx、垂直隣接最大値をddy、深さ隣接最大値をddzとすると、最大距離は、すべての方向の最大値:max(ddx,max(ddy,ddz))である。
【0088】
従って、画素点Aに対応するカバー半径は、max(ddx,max(ddy,ddz))*rである。
【0089】
本出願の実施例では、予め設定された比率は、複数の設定形態が可能である。例えば、予め設定された比率rを一般的に1/2とする。対角線距離を考慮すると、予め設定された比率rを
【0090】
【数2】

とする。
【0091】
dd=max(ddx,max(ddy,ddz))と仮定すると、対角線距離を考慮した場合、画素点Aに対応するカバー半径は
【0092】
【数3】

である。
【0093】
なお、本出願の実施例において挙げられたカバー半径の決定方法は、例にすぎず、いずれのカバー半径の決定方法も本発明の実施形態に適用される。
【0094】
S23:画素点を開始点として、画素点の少なくとも1つの接線方向に沿って放射された半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、画素点がシャドウ領域に位置すると決定する。半直線の長さはカバー半径と同じである。
【0095】
画素点を開始点とするとは、世界座標系における画素点の世界座標位置を開始点とすることであり、画素点の接線方向は、上記実施例で挙げられた画素点補間情報のうちの接線情報に基づいて決定される。
【0096】
図4に示す画素点Aを例にすると、画素点Aが位置する三角形の各頂点の接線情報に基づいて、画素点Aの接線情報を計算することができ、画素点Aの接線情報を接線Tとして示し、同様に、画素点Aの法線情報を法線Nとして示すと、接線Tは、法線Nに沿って異なる角度を回転することで、複数の接線方向に対応する複数の接線を生成することができる。
【0097】
半直線を放射するとき、1つの任意選択的な実施形態では、1つの接線方向をランダムに選択して複数の半直線を放射し、この複数の半直線は、同じ接線方向に放射される複数本の半直線である。
【0098】
他の任意選択的な実施形態では、複数の異なる接線方向をランダムに選択し、各接線方向に沿って1本の半直線を放射し、この場合、複数本の半直線は、異なる接線方向に沿って放射される。
【0099】
また、半直線を放射するとき、複数本の半直線を同時に放射してもよいし、1回に1本の半直線のみを放射してもよい。1本の半直線がターゲットシーンにおける1つの物体の非受光面と交差する場合、放射を停止するか、又は、放射回数が上限に達した場合、放射を停止する。
【0100】
ゲームシーンを例にすると、ターゲットシーンが部屋、樹木及び乗用車を含むと仮定し、ターゲット物体が部屋である場合、ターゲットシーンにおけるいずれかの物体は、部屋、樹木、乗用車のいずれかを指し、部屋であってもよいし、樹木又は乗用車であってもよい。ターゲットシーンにおけるいずれかの物体の非受光面は、ターゲット物体の裏面(ライトに面しない面)であってもよいし、ターゲットシーンにおけるターゲット物体以外の他の物体の裏面であってもよい。少なくとも1本の半直線が1つの物体裏面(backface)に当たれば、GBufferにおける該画素点の補間情報を再計算し、該画素点の補間情報をGBufferに更新することができる。
【0101】
上記実施形態では、世界座標系における、画素点とその周りの隣接画素点との距離に基づいて、該画素点に対応するカバー半径を決定し、さらに、画素点のカバー半径に応じて半直線を放射し、半直線とターゲットシーンにおける物体の非受光面とが交差するか否かに応じて、画素点が遮蔽されたか否かを決定することができる。したがって、シャドウ領域に位置する画素点を効果的に検出することができ、非受光面は、遮蔽された物体面を指す。これに基づいて、ライトマップレンダリングの品質を向上させ、ライトレンダリングの際のシャドウ領域の漏れ(リーク)を減少させるために、ライトマップのシャドウ領域に位置する画素点を検出した後、画素点をオフセットすることができる。
【0102】
本出願の実施例では、画素点がシャドウ領域に位置すると決定した場合、半直線と非受光面との交点に基づいて画素点に対応するオフセット量を決定し、オフセット量に基づいて画素点を、シャドウ領域の外に位置するように、オフセット処理する。
【0103】
少なくとも2本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、この少なくとも2本の半直線から1本の半直線を選択し、さらに、選択した半直線と非受光面との交点に基づいてオフセット量を決定する必要がある。
【0104】
任意選択的には、選択した半直線は、少なくとも2本の半直線のうち、半直線開始点から、交差した非受光面の交点までの距離が最も近い半直線である。
【0105】
図5Aに示すものを例にすると、画素点Aの中心位置を半直線の開始点とし、半直線の長さをTexelRadius/2とする。2本の半直線がターゲットシーンにおける物体1の2つの非受光面と交差すると仮定すると、半直線開始点と、交差した非受光面1の交点との距離は、画素点Aと交点1との距離であり、d1とする。半直線開始点と、交差した非受光面2の交点との距離は、画素点Aと交点2との距離であり、d2とする。明らかに、d1<d2であり、このとき、この2本の半直線から選択された半直線は、半直線1であり、交点1に基づいて、画素点Aに対応するオフセット量を決定する。
【0106】
本出願の実施例では、1本の半直線のみがターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、直接、該半直線と非受光面との交点に基づいて画素点に対応するオフセット量を決定することができる。
【0107】
ここで、半直線と非受光面との交点に基づいて、画素点に対応するオフセット量を決定することは、主に、以下の2つの実施形態に分けられる。
【0108】
1つの任意選択的な実施形態では、半直線の開始点から、非受光面の半直線と交差した交点までの距離をオフセット量とし、画素点を半直線の方向に沿ってオフセット量だけ移動する。
【0109】
図5Aに示す画素点Aを例にすると、オフセット量は、半直線1の開始点から、交点1までの距離即ちdlである。したがって、半直線1の方向に沿ってd1だけ移動すると、新しい位置は、図5Bに示すように、交点1となる。
【0110】
式で表すと、新しい位置は、以下の計算式によって決定することができる。
【0111】
new_pos=old_pos+ray.dir*hit.distance
ただし、new_posは、画素点に対してオフセット処理を行った新しい位置を示し、old_posは、画素点に対してオフセット処理を行う前の旧い位置、即ち、汎用のラスタライズアルゴリズムによって生成された位置を示し、ray.dirは、半直線の方向ベクトルを示し、hit.distanceは、半直線開始点から、非受光面との交点までの距離を示す。
【0112】
他の任意選択的な実施形態では、オフセット量は、第1のオフセット量及び第2のオフセット量を含む。
【0113】
具体的なオフセット処理プロセスは、以下のとおりである。半直線の開始点から、非受光面の半直線と交差した交点までの距離を第1のオフセット量とし、予め設定された距離を第2のオフセット量とし、画素点を半直線の方向に沿って第1のオフセット量だけ移動させ、画素点を半直線と交差した物体の法線方向に沿って第2のオフセット量だけ移動する。
【0114】
交差した物体の法線方向は、物体の正面の法線方向、即ち、受光面1の法線方向である。図5Cに示すように、第1のオフセット量は、画素点Aと交点1との距離、即ちd1で、第2のオフセット量はd3である。したがって、まず、画素点Aの中心位置を交点1に移動した後、図5Cに示す法線方向に沿って距離d3だけ移動し、最終的な画素点Aの新しい中心位置は、図5Cに示す新しい位置となる。
【0115】
式で表すと、新しい位置は、以下の計算式によって決定することができる。
【0116】
new_pos=old_pos+ray.dir*hit.distance+hit.face_normal*bias
ただし、new_posは、画素点に対してオフセット処理を行った新しい位置を示し、old_posは、画素点に対してオフセット処理を行う前の旧い位置、即ち、汎用のラスタライズアルゴリズムによって生成された位置を示し、ray.dirは、半直線の方向ベクトルを示し、hit.distanceは、半直線開始点と、非受光面の交点との距離を示し、hit.face_normalは、半直線が当たった物体の正面の法線ベクトルを示し、biasは、当たった物体の正面の法線方向に沿ってオフセットする距離を示し、外部パラメータによって設定されてもよく、即ち、上記実施例における第2のオフセット量である。
【0117】
なお、画素点Aの中心位置を半直線と交差した物体の法線方向に沿って第2のオフセット量だけ移動させてから、半直線の方向に沿って第1のオフセット量だけ移動させてもよく、本出願の実施例では、2つの順序は、いずれも可能であり、ここでは、移動の順序を具体的に限定しない。
【0118】
上記実施形態では、上記オフセット方法によって、オフセット後の画素点をライトが到達可能な領域に位置させ、遮蔽されないようにすることができる。第2のオフセット量は、浮動小数点数による誤差を解消するためであり、このようにして、オフセット処理することで得られた新しい位置は、より正確で信頼性が高い。
【0119】
図6に示すように、図1に示す端末機器110又はサーバ130に適用される、本出願の実施例に係るライトレンダリング方法の実施フローチャートである。該方法の具体的な実施プロセスは以下のとおりである。
【0120】
S61:ターゲットシーンにおけるターゲット物体のライトマップを取得する。
【0121】
S62:ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識する。
【0122】
ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識するとき、1つの任意選択的な実施形態は、以下のとおりである。
【0123】
ライトマップにおけるいずれかの画素点に対して、画素点の各隣接画素点と画素点との距離に基づいて、画素点に対応するカバー半径を決定する。画素点と各隣接画素点との距離は、画素点の世界座標及び各隣接画素点の世界座標に基づいて決定される。
【0124】
画素点を開始点として、画素点の少なくとも1つの接線方向に沿って放射された1本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、画素点がシャドウ領域に位置すると決定する。半直線の長さはカバー半径と同じである。
【0125】
任意選択的には、画素点が位置するターゲット物体のライトマップにおける、画素点の各隣接画素点と画素点との距離に基づいて、画素点に対応するカバー半径を決定するステップは、
画素点と各隣接画素点との平均距離を決定し、平均距離と予め設定された比率との積をカバー半径とするステップ、又は
画素点と各隣接画素点との最大距離を決定し、最大距離と予め設定された比率との積をカバー半径とするステップを含む。
【0126】
なお、ここで挙げられた、シャドウ領域に位置する画素点を認識するいずれかの特定の実施形態は、上記実施例を参照することができ、例えば、図2に示す方法であり、説明した部分は省略する。
【0127】
S63:各画素点のうち、シャドウ領域に位置する画素点を、シャドウ領域の外に位置するように、オフセット処理する。
【0128】
任意選択的には、各画素点のうち、シャドウ領域に位置する画素点をオフセット処理する特定の実施形態は、以下のとおりである。
【0129】
半直線と非受光面との交点に基づいて、画素点に対応するオフセット量を決定し、オフセット量に基づいて、シャドウ領域の外に位置するように、画素点をオフセット処理する。
【0130】
半直線と非受光面との交点に基づいて、画素点に対応するオフセット量を決定し、オフセット量に基づいて、画素点をオフセット処理するとき、具体的には、以下の2つのオフセット方法に分けられる。
【0131】
オフセット方法1では、半直線の開始点から、非受光面の半直線と交差した交点までの距離をオフセット量とし、画素点を半直線の方向に沿ってオフセット量だけ移動する。
【0132】
オフセット方法2では、オフセット量は、第1のオフセット量及び第2のオフセット量を含む。
【0133】
半直線と非受光面との交点に基づいて、画素点に対応するオフセット量を決定し、オフセット量に基づいて、画素点をオフセット処理するステップは、
半直線の開始点から、非受光面の半直線と交差した交点までの距離を第1のオフセット量とし、予め設定された距離を第2のオフセット量とするステップと、
画素点を半直線の方向に沿って第1のオフセット量だけ移動させ、画素点を半直線と交差した物体の法線方向に沿って第2のオフセット量だけ移動させるステップとを含む。
【0134】
任意選択的には、少なくとも2本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、該半直線は、少なくとも2本の半直線のうち、半直線開始点から、交差した非受光面の交点までの距離が最も近い半直線である。
【0135】
なお、ここで挙げられたいずれかのオフセット処理方法の特定の実施形態は、上記実施例を参照することができ、例えば、図5B又は図5Cに示され、説明した部分は省略する。
【0136】
S64:オフセット処理された画素点及びオフセット処理されていない画素点に基づいて、ターゲット物体をライトレンダリングする。
【0137】
本出願の実施例では、オフセット処理された画素点及びオフセット処理されていない画素点に基づいて、ターゲット物体に対してライトレンダリングするとき、パストレーシングアルゴリズムによって、各画素点に対応するライト情報を計算し、さらに、ライト情報に基づいてライトレンダリングすることができる。
【0138】
ここで、ライト情報は、色値であり、RGB(R(red)、G(green)、B(blue)、三原色)フォーマットである。ライトマップにおけるいずれかの画素点に対して、ライト情報を計算するとき、主に以下のステップに分けられる。
【0139】
a)該画素点を半球の中心とし、半球中心から半球面上の1つのランダム点への方向に沿って1本の半直線を放射し、半球面は、該画素点の法線正方向に対応する面、半球の半径は単位1である。
【0140】
画素点がO、法線Nが画素点に対応する法線、法線正方向が図7に示され、Pが半球面上の点であると仮定すると、OからPへの方向に沿って半直線3をランダムに放射することができる。
【0141】
b)半直線が物体と交差する場合、該画素点の画素値を計算する。
【0142】
c)交差した物体との交点を半球の中心とし、半球中心から半球面上のランダム点への方向に沿って半直線の放射を継続し、半球面は、依然として、該画素点の法線正方向に対応する面、半球の半径は単位1である。
【0143】
d)パスの最大深さを満たすまで、b)及びc)ステップを繰り返して信頼区間を狭める(最大深さを5~10とすると、基本的に良好な反射効果が得られる)。
【0144】
e)パスの最大深さを満たした後、該画素点を方向として半直線の放射を継続し、最大反復回数に達するまで、パス反復を行う。
【0145】
f)複数回反復した結果に対してモンテカルロ法を用いて該画素点のライト情報を計算し、計算方法は以下のとおりである。
【0146】
【数4】
ただし、Fは最終的な該画素点のライトデータ(RGBフォーマット)、Nは最終的に実行される反復回数、f(X)は、パス反復毎に取得される画素値、pdf(X)は、各パスに対応する確率分布関数である。
【0147】
上記ステップa)において、該画素点は、オフセット処理された画素点である場合、オフセット処理された新しい位置であり、図5Bに示す画素点Aを例にすると、中心位置は交点1である。該画素点は、オフセット処理されていない画素点である場合、旧い位置、即ち、汎用のラスタライズによって処理された位置である。
【0148】
パストレーシングは、グローバルライトの方法であり、直接照明した上で、光線は、さらに、物体と物体との間で互いに跳ね返り、現実の光線の特性をシミュレートし、それにより、シーン全体を照らすことができる。なお、本出願の実施例で挙げられた、パストレーシングアルゴリズムによって、対応する画素点のライト情報をレンダリングする方法は例にすぎず、画素点のGBufferデータに基づいて画素点のライト情報をレンダリングするいずれかの方法も、本出願の実施例に適用でき、例えば、光線トレーシングアルゴリズムなどである。
【0149】
上記実施形態では、汎用のラスタライズによってlightmapのGBufferデータを生成した後、再び不均一なラスタライズによってその一部の画素点のGBufferデータを更新し、画素点をオフセットすることによって、画素点が光線到達可能な領域にある確率を向上させることができ、したがって、シャドウリークの問題を効果的に低減することができる。また、該方法は、ライトマップの解像度を向上させる必要がなくなるため、ライトマップの記憶領域を増加させることも、レンダリング効率を低下させることもない。
【0150】
ゲームシーンにおける物体をライトレンダリングすることを例にすると、物体のライトマップをベイクするために、物体面積及びユーザによって設定されたベイク解像度に基づいて、各物体に所定のテクスチャ空間(即ちUV空間)を割り当てる。各物体の表面に複数のサンプリングポイント(即ち画素点)を設定し、次に、ベイクシステムは、グローバルライトアルゴリズムを呼び出し、各サンプリングポイントのライト情報を計算し、計算が完了した後、ライト情報をライトマップに記憶し、それにより、ゲームの実行時に、ライトマップをサンプリングすることによって物体のレンダリングを完了する。
【0151】
図8を参照すると、本出願の実施例に係るライトレンダリング用のソフトウェアGPUBakerの操作インターフェースであり、GPUBakerは、GPU(Graphics Processing Unit、グラフィックスプロセッシングユニット)でLightmapデータのベイクを実現するツールであり、主に自己開発ゲームエンジン及びスタジオにゲームシーンのオフライングローバルライトレンダリング機能を提供する。ゲームでは、ライトマップをレンダリングする際に、各物体のライトマップの解像度を設定し、ライトマップにおける、物体の各頂点のUV情報を提供し、世界座標系における法線及び接線情報などを提供し、コアコンテンツのレンダリングに、パストレーシングアルゴリズムを用いる。
【0152】
ここで、CornellBoxは、グローバルライトをテストするのに最もよく使われるシーンで、一般的なCornellBoxは、正方形のボックスであり、すべての壁は拡散反射平面であり、最上部の中央に1つのランプがあり、左右の2つの壁は異なる色であり、他は白色であり、その後、シーンにはいろいろな物体を置く。
【0153】
図8に示す実施例では、CornellBoxを例としてライトレンダリングし、Build(構築)をクリックすることにより、GPUBakerを使用することができ、Rasterization Biasは、不均一なラスタライズオフセット係数であり、即ち、上記実施例で挙げられた第2のオフセット量である。
【0154】
図8に示すツールによって、不均一なラスタライズを実現することができる。不均一なラスタライズによってlightmap空間のGBufferデータを生成した後、パストレーシングを行ってライトマップをレンダリングし、ほとんどのシャドウリーク問題を解決することができる。
【0155】
図9A及び図9Bに示す2枚のスクリーンショットのそれぞれは、通常のラスタライズによってライトレンダリングをした場合と、改良後の不均一なラスタライズを用いてライトレンダリングした場合との比較効果図である。
【0156】
図9Aを参照すると、シャドウ領域にある画素点をオフセット処理せずに、汎用のラスタライズ処理に従って画素点のGBufferデータを得た後、直接、パストレーシングアルゴリズムによってライトレンダリングした画像である。図から分かるように、3つの部分にシャドウリークが生じている。図9Bは、本出願の実施例に係るライトレンダリング方法を用いて得られた画像であり、図9Aと比較すると、図における3つの部分でのシャドウリークが解消されていることがわかる。
【0157】
図10を参照すると、本出願の実施例で挙げられた、ゲームシーンに対してオフラインでライトマップレンダリングを行う完全なフローチャートである。該方法の具体的な実施の流れは以下のとおりである。
【0158】
ステップ1000:ターゲット物体のライトマップレンダリングタスクを受信する。
【0159】
ステップ1001:ゲーム側からライトマップの解像度が送信された後、ライトマップの解像度に基づいて、同じサイズの2次元GBufferデータを初期化する。
【0160】
ステップ1002:ターゲット物体の複数組の三角面データをライトマップの座標情報に従ってGBuffer空間にマッピングする。
【0161】
ステップ1003:GBufferにおける各画素点をトラバーサルする。
【0162】
ステップ1004:マッピング後の三角形データをトラバーサルする。
【0163】
ステップ1005:現在トラバーサル中の画素点が現在トラバーサル中の三角形内にあるか否かを判断し、そうである場合、ステップ1006を行い、そうでない場合、ステップ1008を行う。
【0164】
ステップ1006:該画素点を三角形の重心とする場合、三角形内の重心座標を計算する。
【0165】
ステップ1007:重心座標に基づいて該画素点の補間情報を計算し、補間情報をGBufferに記憶する。
【0166】
ステップ1008:現在トラバーサル中の三角形が最後の三角形であるか否かを判断し、そうである場合、ステップ1009を行い、そうでない場合、ステップ1004に戻る。
【0167】
ステップ1009:すべての画素点のトラバーサルが完了したか否かを判断し、そうである場合、ステップ1010を行い、そうでない場合、ステップ1003に戻る
ステップ1010:GBufferにおける各画素点を再トラバーサルする。
【0168】
ステップ1011:世界座標系における、現在トラバーサル中の画素点と、隣接する画素点に対応する世界座標同士の距離の平均値TexRadiusを計算する。
【0169】
ステップ1012:該画素点の世界座標位置を開始点として、該画素点に対応する接平面上に1つの接線方向をランダムに選択して、長さがTexRadiusの半分である1本の半直線を放射する。
【0170】
ステップ1013:放射された半直線がターゲットシーンにおけるいずれかの物体の裏面と交差するか否かを判断し、そうである場合、ステップ1014を行い、そうでない場合、ステップ1015を行う。
【0171】
ステップ1014:交点及び交差した物体の法線情報に基づいて、該画素点の位置情報を再計算し、GBufferを更新する。
【0172】
ステップ1015:すべての画素点のトラバーサルが完了したか否かを判断し、そうである場合、ステップ1016を行い、そうでない場合、ステップ1010に戻る。
【0173】
ステップ1016:更新後のライトマップのGBufferデータをパストレーシングレンダラーに伝送する。
【0174】
ステップ1017:パストレーシングレンダラーは、GBufferにおける校正された画素点の位置情報、及び校正を必要としない画素点の位置情報を半直線開始点とし、半球の中心から法線の正方向に対応する半球面上のランダム点への方向に沿って半直線を放射して検出する。
【0175】
ステップ1018:パストレーシングレンダラーはパストレーシングアルゴリズムに基づいてライトマップデータのレンダリングを完了する。
【0176】
ステップ1001~ステップ1009は、汎用のラスタライズアルゴリズムによって処理して、各画素点のGBufferデータを得る具体的なプロセスである。ステップ1010~ステップ1016は、本出願の実施例で、シャドウ領域にある画素点を認識し、シャドウ領域にある画素点をオフセット処理し、GBufferデータを更新するプロセスである。
【0177】
ステップ1014において、交点及び交差した物体の法線情報に基づいて該画素点の位置情報を再計算するとき、new_pos=old_pos+ray.dir*hit.distance+hit.face_normal*biasに基づいて計算することができ、説明した部分は省略する。
【0178】
なお、図2図6図10のフローチャートの各ステップは、矢印に従って順次示されているが、必ずしも矢印に示された順序に従って実行されるわけではない。本明細書に明確な説明がない限り、これらのステップ実行は厳密な順序に限定されず、これらのステップは他の順序で実行されてもよい。また、図2図6図10における少なくとも一部のステップは複数のサブステップ又は複数の段階を含むことができ、これらのサブステップ又は段階は、必ず同じ時刻に実行されるわけではなく、異なる時刻に実行されてもよく、これらのサブステップ又は段階の実行順序も必ず順に行うわけではなく、他のステップ又は他のステップのサブステップ又は段階の少なくとも一部と交互に実行されてもよい。
【0179】
図11に示すように、シャドウ領域の画素点認識装置1100の構造図である。該装置は、
ターゲットシーンにおけるターゲット物体のライトマップを取得する第1の取得ユニット1101と、
ライトマップにおける画素点の各隣接画素点と画素点との距離に基づいて、画素点に対応するカバー半径を決定する決定ユニット1102であって、画素点と各隣接画素点との距離は、画素点の世界座標及び各隣接画素点の世界座標に基づいて決定されたものである決定ユニット1102と、
画素点を開始点として、画素点の少なくとも1つの接線方向に沿って放射された1本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、画素点がシャドウ領域に位置すると決定する第1の認識ユニット1103であって、半直線の長さはカバー半径と同じである、第1の認識ユニット1103とを含む。
【0180】
任意選択的には、決定ユニット1102は、具体的には、
画素点と各隣接画素点との平均距離を決定し、平均距離と予め設定された比率との積をカバー半径とするか、又は、
画素点と各隣接画素点との最大距離を決定し、最大距離と予め設定された比率との積をカバー半径とする。
【0181】
任意選択的には、該装置は、
半直線と非受光面との交点に基づいて、画素点に対応するオフセット量を決定し、オフセット量に基づいて、シャドウ領域の外に位置するように、画素点をオフセット処理する第1のオフセットユニット1104をさらに含む。
【0182】
任意選択的には、第1のオフセットユニット1104は、具体的には、
半直線の開始点から、非受光面の半直線と交差した交点までの距離をオフセット量とし、画素点を半直線の方向に沿ってオフセット量だけ移動する。
【0183】
任意選択的には、オフセット量は、第1のオフセット量及び第2のオフセット量を含み、
第1のオフセットユニット1104は、具体的には、
半直線の開始点から、非受光面の半直線と交差した交点までの距離を第1のオフセット量とし、予め設定された距離を第2のオフセット量とし、
画素点を半直線の方向に沿って第1のオフセット量だけ移動させ、画素点を半直線と交差した物体の法線方向に沿って第2のオフセット量だけ移動させる。
【0184】
任意選択的には、少なくとも2本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、該半直線は、少なくとも2本の半直線のうち、半直線開始点から、交差した非受光面の交点までの距離が最も近い半直線である。
【0185】
図12に示すように、ライトレンダリング装置1200の構造概略図であり、
ターゲットシーンにおけるターゲット物体のライトマップを取得する第2の取得ユニット1201と、
ライトマップにおける各画素点から、シャドウ領域に位置する画素点を認識する第2の認識ユニット1202と、
各画素点のうち、シャドウ領域に位置する画素点を、シャドウ領域の外に位置するように、オフセット処理する第2のオフセットユニット1203と、
オフセット処理された画素点及びオフセット処理されていない画素点に基づいて、ターゲット物体をライトレンダリングするレンダリングユニット1204と、を含むことができる。
【0186】
任意選択的には、第2の認識ユニット1202は、具体的には、
ライトマップにおけるいずれかの画素点に対して、画素点の世界座標及び各隣接画素点の世界座標に基づいて決定された、画素点の各隣接画素点と画素点との距離に基づいて、画素点に対応するカバー半径を決定し、
画素点を開始点として、画素点の少なくとも1つの接線方向に沿って放射された1本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、画素点がシャドウ領域に位置すると決定する。半直線の長さはカバー半径と同じである。
【0187】
任意選択的には、第2の認識ユニット1202は、具体的には、
画素点と各隣接画素点との平均距離を決定し、平均距離と予め設定された比率との積をカバー半径とするか、又は、
画素点と各隣接画素点との最大距離を決定し、最大距離と予め設定された比率との積をカバー半径とする。
【0188】
任意選択的には、第2のオフセットユニット1203は、具体的には、
ライトマップにおけるいずれかの画素点に対して、半直線と非受光面との交点に基づいて、画素点に対応するオフセット量を決定し、オフセット量に基づいて、画素点をオフセット処理する。
【0189】
任意選択的には、第2のオフセットユニット1203は、具体的には、
半直線の開始点から、非受光面の半直線と交差した交点までの距離をオフセット量とし、画素点を半直線の方向に沿ってオフセット量だけ移動する。
【0190】
任意選択的には、オフセット量は、第1のオフセット量及び第2のオフセット量を含み、
第2のオフセットユニット1203は、具体的には、
半直線の開始点から、非受光面の半直線と交差した交点までの距離を第1のオフセット量とし、予め設定された距離を第2のオフセット量とし、
画素点を半直線の方向に沿って第1のオフセット量だけ移動させ、画素点を半直線と交差した物体の法線方向に沿って第2のオフセット量だけ移動させる。
【0191】
任意選択的には、少なくとも2本の半直線がターゲットシーンにおけるいずれかの物体の非受光面と交差する場合、該半直線は、少なくとも2本の半直線のうち、半直線開始点から、交差した非受光面の交点までの距離が最も近い半直線である。
【0192】
説明の便宜上、以上の各部分は、機能に応じて各モジュール(又はユニット)に分けられてそれぞれ説明される。当然のことながら、本出願を実施するとき、各モジュール(又はユニット)の機能を同一又は複数のソフトウェア又はハードウェアで実現することができる。
【0193】
当業者であれば理解できるように、本出願の様々な態様は、システム、方法又はプログラム製品として実現することができる。したがって、本出願の様々な態様は、具体的には、完全なハードウェア実施形態、完全なソフトウェア実施形態(ファームウェア、マイクロコード等を含む)、又はハードウェアとソフトウェアとが組み合わせられた実施形態として実現することができる。ここでは、「回路」、「モジュール」又は「システム」とまとめて称することができる。
【0194】
いくつかの可能な実施形態では、本出願の電子機器1300は、図1における端末機器110又はサーバ130であってもよい。電子機器1300は、少なくとも1つのプロセッサ1301、及び少なくとも1つのメモリ1302を含むことができる。メモリ1302にプログラムコードが記憶され、プログラムコードがプロセッサ1301によって実行されると、本明細書に記載された、本出願の各例示的な実施形態によるシャドウ領域の画素点認識方法又はライトレンダリング方法のステップをプロセッサ1301に実行させる。例えば、プロセッサ1301は、図2又は図6に示すステップを行うことができる。
【0195】
いくつかの可能な実施形態では、本出願による計算装置は、少なくとも1つの処理ユニット、及び少なくとも1つの記憶ユニットを少なくとも含むことができる。記憶ユニットにプログラムコードが記憶され、プログラムコードが処理ユニットによって実行されると、本明細書に記載された、本出願の各例示的な実施形態によるシャドウ領域の画素点認識方法又はライトレンダリング方法のステップを処理ユニットに実行させる。例えば、処理ユニットは、図2又は図6に示すステップを行うことができる。
【0196】
以下、図14を参照して、本出願のこの実施形態に係る計算装置140について説明する。図14の計算装置140は、一例にすぎず、本発明の実施形態の機能および使用範囲に何ら制限をしない。
【0197】
図14のように、計算装置140は、汎用計算装置の形態として示される。計算装置140のコンポーネントは、少なくとも1つの処理ユニット141、上記少なくとも1つの記憶ユニット142、及び異なるシステムユニット(記憶ユニット142及び処理ユニット141を含む)を接続するバス143を含むが、これらに限定されない。
【0198】
バス143は、メモリバスまたはメモリコントローラ、周辺バス、プロセッサ、または複数のバス構造のうちの任意のバス構造を使用するローカルバスを含む、いくつかのバス構造のうちの1つまたは複数を示す。
【0199】
記憶ユニット142は、ランダムアクセスメモリ(RAM)1421および/またはキャッシュ記憶ユニット1422のような揮発性メモリの形態の読み取り可能な媒体を含むことができ、さらに、リードオンリーメモリ(ROM)1423を含むことができる。
【0200】
記憶ユニット142は、1セット(少なくとも1つ)のプログラムモジュール1424を有するプログラム/ユーティリティ1425を含むことができ、このプログラムモジュール1424は、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール及びプログラムデータを含むがこれらに限られない。これらの例の1つ又は複数の組み合わせは、ネットワーク環境の実現を含む可能性もある。
【0201】
計算装置140は、1つ又は複数の外部機器144(例えば、キーボード、指向機器等)と通信してもよく、ユーザが計算装置140と対話できるようにする1つまたは複数の機器と通信してもよく、及び/又は、該計算装置140が1つ又は複数の他の計算装置と通信できるようにする任意の機器(例えば、ルータ、モデムなど)と通信してもよい。この通信は、入出力(I/O)インターフェース145を介して行うことができる。計算装置140は、ネットワークアダプタ146を介して、1つ又は複数のネットワーク(例えば、ローカルエリアネットワーク(LAN)、広域エリアネットワーク(WAN)及び/又はインターネットのようなパブリックネットワーク)と通信することができる。図示されているように、ネットワークアダプタ146は、バス143を介して計算装置140の他のモジュールと通信する。図示されていないが、計算装置140と組み合わせて、マイクロコード、機器ドライバ、冗長プロセッサ、外部磁気ディスク駆動配列、RAIDシステム、テープドライバ及びデータバックアップストレージシステムなどを含むがこれらに限定されない他のハードウェアおよび/またはソフトウェアモジュールを使用することができることを理解されたい。
【0202】
いくつかの可能な実施形態では、本出願に係るシャドウ領域の画素点認識方法又はライトレンダリング方法の様々な態様は、プログラムコードを含むプログラム製品の形態として実現されてもよく、プログラム製品がコンピュータ機器で実行するとき、プログラムコードは、本明細書に記載された、本発明の様々な例示的な実施形態によるシャドウ領域の画素点認識方法又はライトレンダリング方法のステップをコンピュータ機器に実行させるためのものであり、例えば、コンピュータ機器は、図2又は図6に示すステップを行うことができる。
【0203】
プログラム製品は、1つ又は複数の読み取り可能な媒体の任意の組み合わせを採用することができる。読み取り可能な媒体は、読み取り可能な信号媒体又は読み取り可能な記憶媒体であってもよい。読み取り可能な記憶媒体は、例えば、電気、磁気、光、電磁、赤外線、又は半導体のシステム、装置又は機器、又は任意以上の組み合わせであってもよいがこれらに限られない。読み取り可能な記憶媒体のより具体的な例(非網羅的リスト)は、1つまたは複数のワイヤを有する電気的接続、ポータブルディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、または上記の任意の好適な組み合わせを含む。
【0204】
本出願の実施形態のシャドウ領域の画素点認識方法又はライトレンダリングのプログラム製品は、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)を用いることができ、プログラムコードを含み、計算装置で実行することができるが、しかしながら、本出願のプログラム製品はこれに限定されず、本出願において、読み取り可能な記憶媒体はプログラムを含むか又は記憶するいかなる媒体であってもよく、該プログラムは、命令実行システム、装置又は装置により使用さるか、組み合わせられて使用される。
【0205】
読み取り可能な信号媒体は、ベースバンド又は搬送波の一部として伝播されるデータ信号を含むことができ、読み取り可能なプログラムコードが担持される。このように伝播されるデータ信号は、電磁信号、光信号又は上記任意の適切な組み合わせを含むがそれらに限定されない様々な形態を採用することができる。読み取り可能な媒体は、さらに読み取り可能な記憶媒体以外の任意の読み取り可能な媒体であってもよく、該読み取り可能な媒体は、命令実行システム、装置又はデバイスにより使用さるか、組み合わせられて使用されるプログラムを送信、伝播又は伝送することができる。
【0206】
読み取り可能な媒体に含まれるプログラムコードは、無線、有線、光ケーブル、RF等、又は上記任意の適切な組み合わせを含むがそれらに限定されない任意の適切な媒体で伝送することができる。
【0207】
本願の動作を実行するためのプログラムコードは、1つまたは複数のプログラム設計言語の任意の組み合わせで記述することができ、プログラム設計言語は、Java、C++などのオブジェクト指向プログラム設計言語を含み、「C」言語または同様のプログラム言語などの従来の手続き型プログラミング言語をさらに含む。プログラムコードは、その全部がユーザ計算装置で実行されるか、一部がユーザ機器で実行されるか、独立したパッケージとして実行されるか、一部がユーザ計算装置で一部がリモート計算装置で実行されるか、或いは、全部がリモート計算装置またはサーバで実行されることができる。リモート計算装置の場合、リモート計算装置は、ローカルエリアネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザ計算装置に接続されてもよいし、外部計算装置に接続してもよい(例えばインターネットサービスプロバイダを利用してインターネットを介して接続してもよい)。
【0208】
なお、以上の詳細な説明において装置のいくつかのユニット又はサブユニットが言及されたが、このような分割は例示的なものにすぎず、強制的ではないことに留意されたい。実際には、本出願の実施形態によれば、上述した2つ以上のユニットの特徴および機能は、1つのユニットにおいて具体化することができる。逆に、上述した1つのユニットの特徴および機能は、さらに複数のユニットに分割されて具体化することができる。
【0209】
また、図面において特定の順序で本出願の方法の操作が説明されたが、該特定の順序に応じてこれらの操作を実行する必要があるか、又は、所望の結果を実現するに、全ての示される操作を実行しなければならないことを要求又は暗示するものではない。付加的又は代替的に、いくつかのステップを省略し、複数のステップを1つのステップに統合して実行し、及び/又は1つのステップを複数のステップに分解して実行することができる。
【0210】
当業者に理解されるように、本出願の実施例は、方法、システム、又はコンピュータプログラム製品として提供されてもよい。したがって、本出願は、完全なハードウェア実施例、完全なソフトウェア実施例、又はソフトウェアとハードウェアを組み合わせる実施例の形態を採用することができる。また、本出願は、コンピュータ使用可能なプログラムコードを含む1つ又は複数のコンピュータ使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリ等を含むがそれらに限定されない)で実施されたコンピュータプログラム製品の形態を採用することができる。
【0211】
ここで、コンピュータプログラム製品はプログラムコードを含み、該プログラムコードはコンピュータ可読記憶媒体に記憶される;電子機器のプロセッサはコンピュータ読み取り可能な記憶媒体からプログラムコードを読み取って実行する時、電子機器は上記任意の陰影領域の画素点の識別方法又はいずれかの光照射レンダリング方法のステップを実行する。
【0212】
本出願は、本出願の実施例に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明される。コンピュータプログラム命令は、フローチャート及び/又はブロック図における各フロー及び/又はブロック、並びにフローチャート及び/又はブロック図におけるフロー及び/又はブロックの組み合わせを実現することができると理解すべきである。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、組み込みプロセッサ又は他のプログラム可能なデータ処理装置のプロセッサに提供して機器を生成することにより、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサによって実行された命令は、フローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つのブロック又は複数のブロックに指定された機能を実現する装置を生成する。
【0213】
これらのコンピュータプログラム命令はコンピュータ又は他のプログラム可能なデータ処理装置が特定の方式で動作するように案内できるコンピュータ可読メモリに記憶されてもよく、それにより該コンピュータ可読メモリに記憶された命令は命令装置を含む製造品を生成し、該命令装置はフローチャートの一つの流れ又は複数の流れ及び/又はブロック図の一つのブロック又は複数のブロックにおいて指定された機能を実現する。
【0214】
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理機器にロードされてもよく、コンピュータ又は他のプログラム可能な機器で一連の操作ステップを実行することによって、コンピュータで実現された処理を生成し、それにより、コンピュータ又は他のプログラム可能な装置で実行された命令は、フローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つのブロック又は複数のブロックに指定された機能を実現するためのステップを提供する。
【0215】
本出願の好ましい実施例を説明したが、当業者は、基本的な進歩的な概念を知ると、これらの実施例に対して他の変更及び修正を行うことができる。したがって、添付の特許請求の範囲は、好ましい実施例及び本出願の範囲に属する全ての変更及び修正を含むと解釈される。
当業者は、本出願に対して本出願の要旨及び範囲から逸脱することなく本出願に対して様々な修正及び変形を行うことができるのは、明らかである。このように、本出願のこれらの修正及び変形が本出願の特許請求の範囲及びその均等技術の範囲内に属すれば、本出願は、これらの修正及び変形を含むことを意図する。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8
図9A
図9B
図10
図11
図12
図13
図14