(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-25
(45)【発行日】2023-10-03
(54)【発明の名称】ライトプローブの生成方法、装置、コンピュータプログラム、及びコンピュータ装置
(51)【国際特許分類】
G06T 15/50 20110101AFI20230926BHJP
【FI】
G06T15/50
(21)【出願番号】P 2022517244
(86)(22)【出願日】2020-09-25
(86)【国際出願番号】 CN2020117565
(87)【国際公開番号】W WO2021109688
(87)【国際公開日】2021-06-10
【審査請求日】2022-03-16
(31)【優先権主張番号】201911236004.9
(32)【優先日】2019-12-05
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲劉▼ ▲電▼
(72)【発明者】
【氏名】屈 禹呈
【審査官】中田 剛史
(56)【参考文献】
【文献】特開2001-236522(JP,A)
【文献】特開2008-262493(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/50
(57)【特許請求の範囲】
【請求項1】
コンピュータ装置が実行する、ライトプローブの生成方法であって、
仮想シーンにおける目標対象の陰影点を選定するステップと、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップと、
前記陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得るステップと、
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップと、
を含む、
ライトプローブの生成方法。
【請求項2】
前記仮想シーンにおける目標対象の陰影点を選定するステップは、
前記仮想シーンのバウンディングボックスにおいて点格子を生成するステップと、
光源が前記バウンディングボックスにおいて前記仮想シーンに光線を投光する時に、前記光線が前記点格子における点と交差し、且つ前記光線が前記目標対象と交差することを決定し、交差した交点を前記目標対象の陰影点として抽出するステップと
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
光源が前記バウンディングボックスにおいて前記仮想シーンに光線を投光する時に、前記点格子における各点を参考点として前記光源の方向に沿って半直線を引くステップと、
前記半直線が前記目標対象における目標点の何れともと交差する場合、前記目標点及び対応する参考点を目標対象の陰影点として抽出するステップと
をさらに含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記バウンディングボックスにおいて前記仮想シーンに光線を投光する時に
、前記光線によって形成された
前記目標対象の陰影領域を決定するステップと、
前記陰影領域を囲む多面体を生成するステップと、
をさらに含み、
前記選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップは、
前記陰影領域を囲む多面体を、ボクセル化された陰影ボクセル対象に変換するステップを含むことを特徴とする請求項2に記載の方法。
【請求項5】
前記選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップは、
第1多面体を取得するステップと、
前記第1多面体を各前記陰影点にコピーし、対応する陰影体を得るステップと、
前記陰影体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップは、
選定された各陰影点を囲むための第2多面体を生成するステップと、
前記第2多面体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップと
を含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記陰影ボクセル対象における頂点の数を削減するステップは、
前記陰影ボクセル対象における隣接する少なくとも2つの頂点を合併するステップ、又は、
前記陰影ボクセル対象における頂点の数を低減させるように、前記陰影ボクセル対象における隣接する少なくとも2つの平面に対して平滑化処理を行うステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項8】
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップは、
前記頂点削減後の陰影ボクセル対象を内縮させ、内縮した陰影ボクセル対象を得るステップと、
前記内縮した陰影ボクセル対象の頂点位置に、陰影内のライトプローブを生成するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップは、
前記頂点削減後の陰影ボクセル対象を外拡し、外拡された陰影ボクセル対象を得るステップと、
前記外拡された陰影ボクセル対象の頂点位置に、陰影外のライトプローブを生成するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項10】
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップは、
前記頂点削減後の陰影ボクセル対象を内縮させ、内縮した陰影ボクセル対象を得るステップと、
前記頂点削減後の陰影ボクセル対象を外拡し、外拡された陰影ボクセル対象を得るステップと、
内縮した陰影ボクセル対象の頂点位置及び前記外拡された陰影ボクセル対象の相応する頂点位置に、ライトプローブを生成するステップと
を含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記目標対象は動的対象を含み、前記方法は
前記動的対象の運動中の位置を決定するステップと、
前記位置に基づいて対応するライトプローブの照射情報を取得するステップと、
前記照射情報に基づいて前記動的対象に対してレンダリングを行い、全局的な照射の動画効果を得るステップと、
をさらに含むことを特徴とする請求項1~9のいずれか1項に記載の方法。
【請求項12】
仮想シーンにおける目標対象の陰影点を選定する選定モジュールと、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換する変換モジュールと、
前記陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得る削減モジュールと、
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成する生成モジュールと
を備えることを特徴とするライトプローブの生成装置。
【請求項13】
プロセッサに請求項1~11のいずれか1項に記載の方法のステップを実行させるコンピュータプログラム。
【請求項14】
コンピュータプログラムが記憶されたメモリとプロセッサとを備え、前記コンピュータプログラムが前記プロセッサに実行される時、前記プロセッサに請求項1~11のいずれか1項に記載の方法のステップを実行させるコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2019年12月05日に中国特許庁に提出された、出願番号が201911236004.9であり、発明の名称が「ライトプローブの生成方法、装置、記憶媒体、及びコンピュータ装置」である中国特許出願に基づく優先権を主張するものであり、該中国特許出願の全内容を参照として本出願に援用する。
【0002】
本出願は、画像レンダリング技術分野に関し、特に、ライトプローブの生成方法、装置、記憶媒体、及びコンピュータ装置に関する。
【背景技術】
【0003】
ライトプローブは照明のレンダリング技術であり、四周の各方向から受け取った照射情報を収集してから、照射情報をレンダリング対象物体に作用させることで、レンダリング対象物体の最終的な照射効果に影響を与える。
【0004】
ライトプローブの数及び分布位置について、一般には、仮想シーンに対応する点格子に基づいて多数のライトプローブを均一に配置する。しかし、このような配置方式は、大量のメモリを占有するとともに、配置にもかなり時間がかかる。
【発明の概要】
【課題を解決するための手段】
【0005】
本出願は、多様な実施例に基づいて、ライトプローブの生成方法及び装置並びに記憶媒体、コンピュータ装置を提供する。
【0006】
コンピュータが実行するライトプローブの生成方法であって、
仮想シーンにおける目標対象の陰影点を選定するステップと、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップと、
前記陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得るステップと、
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップと、を含むライトプローブの生成方法。
【0007】
ライトプローブの生成装置であって、
仮想シーンにおける目標対象の陰影点を選定する選定モジュールと、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換する変換モジュールと、
前記陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得る削減モジュールと、
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成する生成モジュールと、を備えるライトプローブの生成装置。
【0008】
コンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムがプロセッサに実行される時、前記プロセッサに、
仮想シーンにおける目標対象の陰影点を選定するステップと、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップと、
前記陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得るステップと、
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップと、を実行させるコンピュータ読み取り可能な記憶媒体。
【0009】
コンピュータプログラムが記憶されたメモリとプロセッサとを備え、前記コンピュータプログラムが前記プロセッサに実行される時、前記プロセッサに、
仮想シーンにおける目標対象の陰影点を選定するステップと、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップと、
前記陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得るステップと、
前記頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップと、を実行させるコンピュータ装置。
【0010】
本願の一つ又は複数の実施例の詳細は以下の図面及び記載に言及される。本発明の他の特徴や利点は、明細書や図面や特許請求の範囲によって明らかになる。
【図面の簡単な説明】
【0011】
【
図1】一実施例におけるライトプローブの生成方法の適用環境図である。
【
図2】一実施例におけるライトプローブの生成方法のフローチャートである。
【
図3】一実施例における点格子における各点を参考点として光源の反対方向に沿って半直線を引く概略図である。
【
図4】一実施例における仮想シーンで陰影点を決定する概略図である。
【
図5】一実施例における光源が目標対象を照射する時に生成される陰影の概略図である。
【
図6】一実施例における陰影ボクセル対象の概略図である。
【
図7】一実施例における陰影ボクセル対象の頂点数を削減して平滑化処理を行った概略図である。
【
図8】別の実施例におけるライトプローブの生成方法のフローチャートである。
【
図9】一実施例における仮想シーンにライトプローブを配置する概略図である。
【
図10】一実施例におけるライトプローブの生成装置の構成を示すブロック図である。
【
図11】別の実施例におけるライトプローブの生成装置の構成を示すブロック図である。
【
図12】一実施例におけるコンピュータ装置の構成を示すブロック図である。
【発明を実施するための形態】
【0012】
本出願の目的、技術案及び利点をより明確にするために、以下は図面及び実施例を参照しながら、本出願をさらに詳述する。ここに記載される具体的な実施例は本出願を説明するために過ぎなく、本出願を限定するものではないと理解されよう。
【0013】
図1は一実施例におけるライトプローブの生成方法の適用環境図である。
図1に示すように、このライトプローブの生成方法はライトプローブの生成システムに適用される。このライトプローブの生成システムは端末110とサーバ120とを備える。端末110とサーバ120とはネットワークを介して接続されている。端末110は仮想シーンにおける目標対象の陰影点を選定し、選定された陰影点を、ボクセル化された陰影ボクセル対象に変換し、陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得、頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成する。
【0014】
ここで、端末110は具体的に、デスクトップ端末や携帯端末であってもよく、携帯端末は具体的に携帯電話、タブレットコンピュータ、ノートパソコンなどのうち少なくとも一つであってもよい。サーバ120は単独のサーバ又は複数のサーバからなるサーバ群で実現することができる。
【0015】
図2に示すように、一実施例においては、
図1における端末又はサーバで実行し、又は端末とサーバで協働実行するライトプローブの生成方法を提供する。本実施例は、主に、この方法を上記の
図1における端末110に適用することを例として説明する。
図2に示すように、このライトプローブの生成方法は、具体的に以下のようなステップを含む。
【0016】
S202において仮想シーンにおける目標対象の陰影点を選定する。
【0017】
ここで、仮想シーンとはコンピュータで生成される仮想的なシーン環境であり、マルチメディアの仮想世界を提供することができ、ユーザが装置やインタフェースを操作することによって仮想シーンにおける操作可能な仮想対象を制御することができ、仮想対象の視点で仮想シーンにおける物体、動物、人物、風景などの仮想物体を観察し、又は仮想対象を介して、仮想シーンにおける物体、動物、人物、風景などの仮想物体又は他の仮想対象などとインタラクティブを行うことができる。仮想シーンは、一般には、端末などのコンピュータ装置におけるアプリケーションプログラムによって生成され、端末におけるハードウェア(例えばスクリーン)によって表示される。
【0018】
目標対象は仮想シーンにおける物体、動物、人物、及び地物を有する風景などの仮想物体であってもよい。物体は仮想シーンにおける建物や樹木などであってもよい。人物は仮想シーンにおけるキャラクタであってもよい。動物は仮想シーンにおけるペットやモンスターであってもよい。この風景は仮想シーンにおけるある地形と地物を有する山であってもよい。
【0019】
陰影点について、光源が目標対象に光線を投光する時、目標対象が光源と背向する側に陰影領域を形成し、陰影領域全体における点が陰影点であってもよい。
【0020】
一実施例においては、端末が第1開発エンジンを起動し、この第1開発エンジンにおいて仮想シーンのバウンディングボックス(Bounding box)を算出する。S202は、具体的に、端末は仮想シーンのバウンディングボックスにおいて点格子を生成するステップと、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、光線が点格子における点と交差し、且つ光線が目標対象と交差することを決定し、交差した交点を目標対象の陰影点として抽出するステップとを含むことができる。ここで、この光線は光源が発する照射光線を指すことができ、照射の経路及び方向を示す。
【0021】
一実施例においては、端末は第1開発エンジンによって仮想の光源を仮想化して表示し、この光源によってライトを模擬し、即ち仮想シーンに、対応する光線を投光する。
【0022】
例えば、端末はUnityエンジンを起動し、Unityエンジンにおいて仮想シーンのバウンディングボックスを算出し、このバウンディングボックスにおいて均一に分布する点格子を生成し、
図3に示すように、図における小さな黒い点はバウンディングボックスにおいて生成された均一に分布する点格子である。バウンディングボックスにおいて、端末はUnityエンジンによって光源(
図3における大きな黒い点)を仮想化して表示し、該光源によって仮想シーンに光線を投光する。ある光線が点格子における点と交差し、且つ目標対象とも交差する場合、即ち光線が点格子における点と交点を有し、かつ目標対象とも交点を有する場合、上記交点を目標対象の陰影点とする。
【0023】
一実施例においては、目標対象の陰影点を選定するステップは、端末は光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、点格子における各点を参考点として光源の方向に沿って半直線を引くステップと、半直線が目標対象における目標点の何れともと交差する場合、目標点及び対応する参考点を目標対象の陰影点として抽出するステップとをさらに含むことができる。
【0024】
点格子における点を参考点として光源の方向に沿って半直線を引き、
図3に示すように、即ち
図3における小さな黒い点を出発点とし、大きな黒い点の方向を沿って半直線を引き、半直線と目標対象(この目標対象が
図3に示されていない)とが交点があれば、この交点及び対応する黒い点(即ち点格子における点)を陰影点とする。以降同様に、全ての陰影点を探し出し、点格子から全ての陰影点を選出する。
【0025】
また、例えば、
図4に示すように、仮想シーンのバウンディングボックスで、均一に分布する点格子を生成し、半直線を引くことによって山の陰影における点を算出する。
【0026】
一実施例においては、端末は目標対象の全ての陰影点を抽出した後、これらの陰影点を点格子情報ファイルに保存し、そしてこの点格子情報ファイルを第1開発エンジンからエクスポートする。例えば、これらの陰影点を拡張子名が.plyであるファイルに保存し、ここで、.plyは位置情報のみを保存するファイルである。
【0027】
S204において、選定された陰影点を、ボクセル化された陰影ボクセル対象に変換する。
【0028】
ここで、ボクセルとは、体積画素(Volume Pixel)の略称であり、二次元における画素に類似し、三次元における単位長さを有する空間であり、立体レンダリング又は所定の閾値輪郭の多角形等値面を抽出することで表すことができる。ボクセル化とは、不規則な三次元物体を単位格子状のボクセルに簡略化することである。ボクセル化された陰影ボクセル対象とは、選定された陰影点を単位格子状のボクセル対象に変換し、このボクセル対象は陰影点の表面情報を含むだけでなく、この陰影点の内部属性を表すことができる。
【0029】
一実施例においては、バウンディングボックスにおいて仮想シーンに光線を投光する時に、端末は仮想対象が光線によって形成された陰影領域を決定し、陰影領域を囲む多面体を生成する。S204は具体的に、端末が陰影領域を囲む多面体を、ボクセル化された陰影ボクセル対象に変換するステップを含むことができる。
【0030】
一実施例においては、バウンディングボックスにおいて仮想シーンに光線を投光する時に、光線を目標対象の縁から射出し、このとき、端末はこの光線と目標対象の縁との第1交点、及びこの光線を遮断する他の障害物との第2交点を決定し、この第1交点と第2交点とを繋げて直線を得、このとき、目標対象の光の届かない領域と直線との間の領域は陰影領域である。
【0031】
例えば、シャドウボリューム(Shadow Volume)の方式を用いて、選定された各陰影点を囲む陰影ボクセル対象を取得し、即ち光源の投光で目標対象の陰影領域が生じ、この陰影領域に基づいて対応する多面体を直接生成し、この多面体が各目標対象の陰影領域全体を囲み、そしてこの多面体をボクセル化して陰影ボクセル対象を得る。
図5に示すように、仮にこの立方体を目標対象とすると、光源でこの目標対象を照射する場合、三次元陰影領域ABCDEFを形成し、この三次元陰影領域ABCDEFに基づいて対応する多面体を生成し、そしてボクセル化をして陰影ボクセル対象を得る。
【0032】
一実施例においては、端末は陰影点が保存された点格子情報ファイルを第2開発エンジンにインポートし、第2開発エンジンによって陰影点を、ボクセル化された陰影ボクセル対象に変換する。
【0033】
一実施例においては、S204は具体的に、端末が第1多面体を取得し、第2開発エンジンによって第1多面体を各陰影点にコピーし、それによって、対応する陰影体を得、そして陰影体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップを含むことができる。この第1多面体は、四面体や立方体や他の多面体であってもよい。各第1多面体の体積が小さい。
【0034】
例えば、端末はHoudiniエンジンにおけるCopyToノードを利用して四面体を陰影点にコピーすることで、陰影体を得ることができ、陰影体を構成するこれらの四面体の面はいずれも互いに交差し、且つ数が極めて多い。この時、端末は陰影体全体をボクセル化する必要があり、
図6に示すように、ボクセル化された陰影ボクセル対象は中空の袋状モデルである。
【0035】
別の実施例において、S204は具体的に、端末が選定された各陰影点を囲むための第2多面体を生成するステップと、第2多面体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップとを含むことができる。
【0036】
ここで、第2多面体は陰影点の輪郭に密着する多面体であってもよく、この陰影点の輪郭は第2多面体の内面に密着する。
【0037】
一実施例においては、端末は陰影点の内外面に描画の経路をそれぞれ決定し、この経路に基づいて内外面に、互いに接続される多角形をそれぞれ描画することで、選定された各陰影点を囲むように、内外面に多角形格子の薄膜がそれぞれ形成され、これらの2層の多角形格子の薄膜が第2多面体である。
【0038】
S206において陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得る。
【0039】
ここで、陰影ボクセル対象は陰影体がボクセル化された後に得られるものであり、またこの陰影体は多面体で構成され、そのため、陰影ボクセル対象の頂点及び平面の数が多く、頂点及び平面の数を低減させる必要がある。そのため、陰影ボクセル対象の頂点位置にライトプローブを生成してライトプローブの数を低減させる。
【0040】
一実施例においては、S206は具体的に、端末が陰影ボクセル対象における隣接する少なくとも2つの頂点を合併するステップ、又は陰影ボクセル対象における頂点の数を低減させるように、陰影ボクセル対象における隣接する少なくとも2つの平面に対して平滑化処理を行うステップを含むことができる。
【0041】
具体的に、端末は陰影ボクセル対象における隣接する多面体の少なくとも2つの隣接する頂点を合併することで、陰影ボクセル対象の頂点の数を低減させるとともに、陰影ボクセル対象の平面の数も低減させる。又は、端末は陰影ボクセル対象における隣接する多面体の少なくとも2つの隣接する平面に対して平滑化処理を行うことで、
図7に示すように、この少なくとも2つの平面を一つの曲面にさせ、陰影ボクセル対象における頂点の数の低減が図れる。
【0042】
S208において、頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成する。
【0043】
一実施例においては、S208は具体的に、端末が頂点削減後の陰影ボクセル対象を内縮させ、内縮した陰影ボクセル対象を得るステップと、内縮した陰影ボクセル対象の頂点位置に、陰影内のライトプローブを生成するステップとを含むことができる。
【0044】
一実施例においては、端末が陰影ボクセル対象の縮小比例を決定し、この縮小比例でこの陰影ボクセル対象を縮小することで、内縮した陰影ボクセル対象を得、この内縮した陰影ボクセル対象が目標対象の各陰影点の内面に密着する。
【0045】
別の実施例において、S208は具体的に、頂点削減後の陰影ボクセル対象を外拡し、外拡された陰影ボクセル対象を得るステップと、外拡された陰影ボクセル対象の頂点位置に、陰影外のライトプローブを生成するステップとを含むことができる。
【0046】
一実施例においては、端末が陰影ボクセル対象の外拡比例を決定し、この外拡比例でこの陰影ボクセル対象を拡大し、外拡された陰影ボクセル対象を得、この外拡された陰影ボクセル対象が目標対象の各陰影点の外面に密着する。内縮した陰影ボクセル対象及び外拡された陰影ボクセル対象を2層の薄膜とすることで、目標対象の各陰影点を囲み、これらの2層の薄膜の頂点位置は陰影の内外におけるライトプローブの所在位置であり、この位置にライトプローブを生成し、
図7に示されるように陰影ボクセル対象表面の接続線が形成される。
【0047】
一実施例においては、目標対象は、動的対象を含み、S208の後、この方法は、端末が動的対象の運動中の位置を決定するステップと、位置に基づいて対応するライトプローブの照射情報を取得するステップと、照射情報に基づいて動的対象をレンダリングし、全局的な照射の動画効果を得るステップとをさらに含む。
【0048】
ここで、動的対象は仮想シーンにおける人物や動物であってもよい。人物は仮想シーンにおけるキャラクタであってもよい。動物は、仮想的なシーンにおけるペットやモンスターであってもよい。
【0049】
一実施例においては、端末が球面調和関数を利用して、照射情報に基づいて、動的対象への照射に対してレンダリングを行い、動的対象の全局的な照射の動画効果を得る。
【0050】
一実施例においては、目標対象は静的対象を含み、S208の後、この方法は、端末が静的対象の位置を決定するステップと、静的対象の位置に基づいて対応するライトプローブの照射情報を取得するステップと、照射情報に基づいて、静的対象に対してレンダリングし、全局的な照射の動画効果を得るステップとをさらに含む。
【0051】
上記実施例において、仮想シーンにおける目標対象の陰影点を選定し、選定された陰影点を、ボクセル化された陰影ボクセル対象に変換し、さらに陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成することで、仮想シーンにおける全ての領域に均一にライトプローブを配置することを回避し、目標対象にライトプローブを配置するだけでよく、ライトプローブの配置数の低減が図れる。また、陰影ボクセル対象の頂点によってライトプローブの配置位置を決定し、陰影ボクセル対象は複数の規則の多面体で頂点を削減することで形成されるものであってもよく、ライトプローブが頂点削減後の陰影ボクセル対象の頂点位置に配置される場合、ライトプローブの分布が相対的に均一になり、疎密程度が一致しないという課題を解決する。また、ライトプローブが生成される前に、陰影ボクセル対象における頂点の数を削減することで、ライトプローブの数をさらに低減させる。
【0052】
一例として、本実施例のライトプローブの生成ステップは、Unityエンジン→Houdini→Unityエンジンとの三つの段階に分けることができる。
図8に示すように、具体的には、
【0053】
(1)第1段階において、Unityエンジンにおいて、仮想シーンのバウンディングボックスを算出し、このバウンディングボックスにおいて、均一に分布する点格子(
図3に示す)を生成し、光源がバウンディングボックスに光線を投光する時に、点格子における各点について、点格子における各点を参考点として、光源の方向へ半直線を引き、この半直線と仮想シーンにおける目標対象との交点が存在するか否かを判定する。交点が存在すれば、点格子における対応する点を陰影点とし、各目標対象の全ての陰影点が見つかるまで継続する。そして、これらの陰影点をすべて.plyファイルに保存する(.plyは位置情報のみを保存できるファイルである)。
【0054】
(2)第2段階において、Houdiniにおいて、.plyファイルをインポートし、そしてCopyToノードを利用して四面体を各陰影点にコピーし、一つずつの「シャドウボリュームの山」である陰影体として積み重ねる。陰影体を構成するこれらの四面体の面はいずれも互いに交差し、且つ数が極めて大きいため、簡略化する必要があり、簡略化の方式は陰影体全体をボクセル化することであってもよく、ボクセル化後の陰影体(すなわち得られた陰影ボクセル対象)が一つの中空の袋状モデルになる。そしてこの中空の袋状モデルに対して自動的に面の削減を行い、面を削減した後の陰影ボクセル対象を得、さらにそれを内縮させ、このようにして目標対象の陰影内部に密着する薄膜を得、それによって一つの陰影ボクセル対象によって目標対象の陰影内部を形成する。そして、陰影ボクセル対象を外拡し、このようにして目標対象の陰影外部に密着する薄膜を得、それによって一つの陰影ボクセル対象によって目標対象の陰影外部を形成する。陰影内部及び外部という2層の薄膜の頂点位置はライトプローブがある位置である。
【0055】
陰影体を取得するステップにおいて、シャドウボリューム(Shadow Volume)の方式で取得してもよく、即ち、目標対象によって形成された陰影に基づいて一つの多面体を直接生成し、この多面体で囲まれたブロックをシャドウボリュームとする。
【0056】
(3)第3段階において、Unityエンジンにおいて、ライトプローブの位置をUnityエンジンにインポートし、スクリプトによって対応するエンジンフォーマットに書き込む(UnityエンジンにおいてLightmapDataAssetと呼ぶ)。
【0057】
本実施例において、仮想シーンにおける仮想物体(例えば山、樹木及び建物等)に対して2層のライトプローブを生成する同時に、仮想シーンにおける仮想人物に対しても2層のライトプローブを生成し、最後に2種類のライトプローブを統合し、ライトプローブが記憶される情報ファイルをコードで修正し、最後にエンジンで利用可能なライトプローブの位置情報を得ることで、ゲーム中に仮想シーンの仮想物体及び仮想人物に対して照明のレンダリング処理を行い、全局的な照射の動画効果を得るようにする。
【0058】
なお、本実施例はUnity及びHoudiniプラットフォームを採用しているが、Unity及びHoudiniプラットフォームに限らず、光線投光及びボクセル化の機能を有するプラットフォームであれば、いずれも本実施例の態様を実現することができる。
【0059】
図9に示すように、ライトプローブ全体の分布が非常に有機的であることが分かり、場所の状況に応じてライトプローブを自動的に配置することができる。全体は必要に応じて配置されるため、図における密度は、シーンの変化が多く、光影の変化が多い場所にはより多くのライトプローブが配分され、空いている場所には非常に少ない。
【0060】
いくつかのカラー照射情報が必要であれば、最後に、比較的大きな間隔距離の点格子を1層積み重ねることができ、この点格子の間隔距離は人為的に指定することができ、またカラー照射情報が環境において一般的に極めて低い頻度で使用されるものであるため、このような間隔距離を大きくしてもよく、このように本発明の実施例の態様に基づいて、最高のコストパフォーマンスで優れた全局的な照射効果を達成することができる。
【0061】
上記実施例の態様を実行することによって、以下のような有益な効果を奏する。
【0062】
時間について、時間を節約し、全てを生成するには5~10分間しかかからず、人工配置の場合、絶えることなく投入する必要があり、一般には、1つのシーンの1回の反復に1人/日がかかる。
【0063】
効果の一致性について、手動による局部操作を削減し、疎密及び精度が一致しない状況を回避することができる。
【0064】
メモリの節約について、同様の精度条件で、本態様に係るライトプローブの占有するメモリが9倍低減され、仮想シーンの画像の占有するメモリを大幅に節約する。
【0065】
壁透過の最適化について、本態様は従来の配置態様よりライトプローブの配置を多角形の陰影境界に近づくことができ、通常の配置態様より同じ精度条件で33%以上の壁透過問題を削減し、同じメモリ条件で壁透過効果を平均80%低減させる。
【0066】
図2は実施例におけるライトプローブの生成方法のフローチャートである。なお、
図2のフローチャートの各ステップは、矢印に示す順で表示されるが、必ずしも矢印に示す順で実行するわけではない。明記されない限り、これらのステップの実行は厳密な順序に限定されず、これらのステップは他の順序で実行してもよい。また、
図2における少なくとも一部のステップは複数のサブステップ又は複数の段階を含むことができ、これらのサブステップ又は段階は必ずしも同一時刻に実行完了するわけではなく、異なる時刻に実行することができ、これらのサブステップや段階の実行順序も必ずしも順次に行うわけではなく、他のステップ又は他のステップのサブステップや段階の少なくとも一部とローテーションや交互に実行することができる。
【0067】
図10に示すように、一実施例においては、
仮想シーンにおける目標対象の陰影点を選定する選定モジュール1002と、
選定された陰影点を、ボクセル化された陰影ボクセル対象に変換する変換モジュール1004と、
陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得る削減モジュール1006と、
頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成する生成モジュール1008を具体的に備えるライトプローブの生成装置を提供する。
【0068】
一実施例においては、選定モジュール1002は、さらに、仮想シーンのバウンディングボックスにおいて点格子を生成し、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、光線が点格子における点と交差し、且つ光線が目標対象と交差することを決定し、交差した交点を目標対象の陰影点として抽出するように構成されている。
【0069】
一実施例においては、選定モジュール1002は、さらに、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、点格子における各点を参考点として光源の方向に沿って半直線を引き、半直線が目標対象における目標点の何れともと交差する場合、目標点及び対応する参考点を目標対象の陰影点として抽出するように構成されている。
【0070】
一実施例においては、変換モジュール1004は、さらに、バウンディングボックスにおいて仮想シーンに光線を投光する時に、仮想対象が光線によって形成された陰影領域を決定し、陰影領域を囲む多面体を生成し、陰影領域を囲む多面体を、ボクセル化された陰影ボクセル対象に変換するように構成されている。
【0071】
一実施例においては、変換モジュール1004は、さらに、第1多面体を取得し、第1多面体を各陰影点にコピーし、対応する陰影体を得、陰影体に対してボクセル化処理を行い、陰影ボクセル対象を得るように構成されている。
【0072】
一実施例においては、変換モジュール1004は、さらに、選定された各陰影点を囲むための第2多面体を生成し、第2多面体に対してボクセル化処理を行い、陰影ボクセル対象を得るように構成されている。
【0073】
一実施例においては、削減モジュール1006は、さらに、陰影ボクセル対象における隣接する少なくとも2つの頂点を合併するか、あるいは、陰影ボクセル対象における頂点の数を低減させるように、陰影ボクセル対象における隣接する少なくとも2つの平面に対して平滑化処理を行うように構成されている。
【0074】
一実施例においては、生成モジュール1008は、さらに、頂点削減後の陰影ボクセル対象を内縮させ、内縮した陰影ボクセル対象を得、内縮した陰影ボクセル対象の頂点位置に、陰影内のライトプローブを生成するように構成されている。
【0075】
一実施例においては、生成モジュール1008は、さらに、頂点削減後の陰影ボクセル対象を外拡し、外拡された陰影ボクセル対象を得、外拡された陰影ボクセル対象の頂点位置に、陰影外のライトプローブを生成するように構成されている。
【0076】
一実施例においては、
図11に示すように、この装置は、
動的対象の運動中の位置を決定する決定モジュール1010と、
位置に基づいて対応するライトプローブの照射情報を取得する取得モジュール1012と、
照射情報に基づいて動的対象をレンダリングし、全局的な照射の動画効果を得るレンダリングモジュール1014と、をさらに備える。
【0077】
上記実施例において、仮想シーンにおける目標対象の陰影点を選定し、選定された陰影点を、ボクセル化された陰影ボクセル対象に変換し、さらに陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成することで、仮想シーンにおける全ての領域に均一にライトプローブを配置することを回避し、目標対象にライトプローブを配置するだけでよく、ライトプローブの配置数の低減が図れる。また、陰影ボクセル対象の頂点によってライトプローブの配置位置を決定し、陰影ボクセル対象は複数の規則の多面体で頂点を削減することで形成されるものであってもよく、ライトプローブが頂点削減後の陰影ボクセル対象の頂点位置に配置される場合、ライトプローブの分布が相対的に均一になり、疎密程度が一致しないという課題を解決する。また、ライトプローブを生成する前に、陰影ボクセル対象における頂点の数を削減することで、ライトプローブの数をさらに低減させる。
【0078】
図12は一実施例におけるコンピュータ装置の内部構成図を示す。このコンピュータ装置は
図1における端末110又はサーバ120であってもよく、このコンピュータ装置が端末110であることを例として説明する。
図12に示すように、このコンピュータ装置はシステムバスで接続されるプロセッサと、メモリと、ネットワークインターフェースと、入力装置と、表示パネルとを備える。ここで、メモリは不揮発性記憶媒体と内部メモリとを備える。このコンピュータ装置の不揮発性記憶媒体にオペレーティングシステムが記憶され、さらにコンピュータプログラムが記憶され、このコンピュータプログラムがプロセッサに実行されるとき、プロセッサにライトプローブの生成方法を実現することができる。この内部メモリにもコンピュータプログラムが記憶されてもよく、このコンピュータプログラムがプロセッサに実行されるとき、プロセッサにライトプローブの生成方法を実現することができる。コンピュータ装置の表示パネルは液晶表示パネル又は電子インク表示パネルであってもよく、コンピュータ装置の入力装置は表示パネルに被覆されるタッチ層であってもよく、コンピュータ装置のハウジングに設けられるボタンやトラックボールやタッチパッドであってもよく、外付けのキーボードやタッチパッドやマウスなどであってもよい。
【0079】
当業者は、
図12に示す構成が、本出願の態様に関する一部の構成のみのブロック図にすぎなく、本出願の態様を適用するコンピュータ装置を限定するものではなく、具体的なコンピュータ装置が図示より多い又は少ない部品を含んだり、それらの部品を組合せたり、若しくは異なる部品配置を有することができることを理解すべきである。
【0080】
一実施例においては、本願の提供するライトプローブの生成装置はコンピュータプログラムの形態として実現することができ、コンピュータプログラムは
図12に示すコンピュータ装置で実行することができる。コンピュータ装置のメモリにこのライトプローブの生成装置を構成する各プログラムモジュールが記憶されることができ、例えば、
図10に示す選定モジュール1002、変換モジュール1004、削減モジュール1006及び生成モジュール1008である。各プログラムモジュールからなるコンピュータプログラムは、本明細書に記載の本願の各実施形態に係るライトプローブの生成方法における各ステップをプロセッサに実行させる。
【0081】
例えば、
図12に示すコンピュータ装置は、
図10に示すライトプローブの生成装置における選定モジュール1002を介してS202を実行することができる。コンピュータ装置は、変換モジュール1004を介してS204を実行することができる。コンピュータ装置は、削減モジュール1006を介してS206を実行することができる。コンピュータ装置は生成モジュール1008を介してS208を実行することができる。
【0082】
一実施例においては、メモリ及びプロセッサを備え、メモリにコンピュータプログラムが記憶され、コンピュータプログラムがプロセッサに実行される時、プロセッサに、仮想シーンにおける目標対象の陰影点を選定するステップと、選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップと、陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得、頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップとを実行させるコンピュータ装置を提供する。
【0083】
一実施例においては、コンピュータプログラムは仮想シーンにおける目標対象の陰影点を選定するステップがプロセッサに実行されるとき、プロセッサに、具体的に、仮想シーンのバウンディングボックスにおいて点格子を生成するステップと、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、光線が点格子における点と交差し、且つ光線が目標対象と交差することを決定し、交差した交点を目標対象の陰影点として抽出するステップとを実行させる。
【0084】
一実施例においては、コンピュータプログラムは、光線と点格子における目標点と目標対象との交点に基づいて、目標対象の陰影点を選定するステップがプロセッサに実行されるとき、プロセッサに、具体的に、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、点格子における各点を参考点として光源の方向に沿って半直線を引くステップと、半直線が目標対象における目標点の何れともと交差する場合、目標点及び対応する参考点を目標対象の陰影点として抽出するステップとを実行させる。
【0085】
一実施例においては、コンピュータプログラムはプロセッサに実行されるとき、プロセッサに、バウンディングボックスにおいて仮想シーンに光線を投光する時に、仮想対象が光線によって形成された陰影領域を決定するステップと、陰影領域を囲む多面体を生成するステップと、陰影領域を囲む多面体を、ボクセル化された陰影ボクセル対象に変換するステップとをさらに実行させる。
【0086】
一実施例においては、コンピュータプログラムは選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップがプロセッサに実行されるとき、プロセッサに、具体的に、第1多面体を取得するステップと、第1多面体を各陰影点にコピーし、対応する陰影体を得るステップと、陰影体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップとを実行させる。
【0087】
一実施例においては、コンピュータプログラムは選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップがプロセッサに実行されるとき、プロセッサに、具体的に、選定された各陰影点を囲むための第2多面体を生成するステップと、第2多面体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップとを実行させる。
【0088】
一実施例においては、コンピュータプログラムは陰影ボクセル対象における頂点の数を削減するステップがプロセッサに実行されるとき、プロセッサに、具体的に、陰影ボクセル対象における隣接する少なくとも2つの頂点を合併するステップ、又は、陰影ボクセル対象における頂点の数を低減させるように、陰影ボクセル対象における隣接する少なくとも2つの平面に対して平滑化処理を行うステップを実行させる。
【0089】
一実施例においては、コンピュータプログラムは頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップがプロセッサに実行されるとき、プロセッサに、具体的に、頂点削減後の陰影ボクセル対象を内縮させ、内縮した陰影ボクセル対象を得るステップと、内縮した陰影ボクセル対象の頂点位置に、陰影内のライトプローブを生成するステップを実行させる。
【0090】
一実施例においては、コンピュータプログラムは頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップがプロセッサに実行されるとき、プロセッサに、具体的に、頂点削減後の陰影ボクセル対象を外拡し、外拡された陰影ボクセル対象を得るステップと、外拡された陰影ボクセル対象の頂点位置に、陰影外のライトプローブを生成するステップとを実行させる。
【0091】
一実施例においては、目標対象は動的対象を含み、コンピュータプログラムはプロセッサに実行されるとき、プロセッサに、動的対象の運動中の位置を決定するステップと、位置に基づいて対応するライトプローブの照射情報を取得するステップと、照射情報に基づいて動的対象をレンダリングし、全局的な照射の動画効果を得るステップとを実行させる。
【0092】
一実施例においては、コンピュータプログラムが記憶され、コンピュータプログラムがプロセッサに実行される時、プロセッサに、仮想シーンにおける目標対象の陰影点を選定するステップと、選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップと、陰影ボクセル対象における頂点の数を削減し、頂点削減後の陰影ボクセル対象を得、頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップとを実行させるコンピュータの読み取り可能な記憶媒体を提供する。
【0093】
一実施例においては、コンピュータプログラムは仮想シーンにおける目標対象の陰影点を選定するステップがプロセッサに実行されるとき、プロセッサに、具体的に、仮想シーンのバウンディングボックスにおいて点格子を生成するステップと、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、光線が点格子における点と交差し、且つ光線が目標対象と交差することを決定し、交差した交点を目標対象の陰影点として抽出するステップとを実行させる。
【0094】
一実施例においては、コンピュータプログラムは光線と点格子における目標点と目標対象との交点に基づいて、目標対象の陰影点を選定するステップがプロセッサに実行されるとき、プロセッサに、具体的に、光源がバウンディングボックスにおいて仮想シーンに光線を投光する時に、点格子における各点を参考点として光源の方向に沿って半直線を引くステップと、半直線が目標対象における目標点の何れともと交差する場合、目標点及び対応する参考点を目標対象の陰影点として抽出するステップとを実行させる。
【0095】
一実施例においては、コンピュータプログラムはプロセッサに実行されるとき、プロセッサに、バウンディングボックスにおいて仮想シーンに光線を投光する時に、仮想対象が光線によって形成された陰影領域を決定するステップと、陰影領域を囲む多面体を生成するステップと、陰影領域を囲む多面体を、ボクセル化された陰影ボクセル対象に変換するステップとをさらに実行させる。
【0096】
一実施例においては、コンピュータプログラムは選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップがプロセッサに実行されるとき、プロセッサに、具体的に、第1多面体を取得するステップと、第1多面体を各陰影点にコピーし、対応する陰影体を得るステップと、陰影体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップとを実行させる。
【0097】
一実施例においては、コンピュータプログラムは選定された陰影点を、ボクセル化された陰影ボクセル対象に変換するステップがプロセッサに実行されるとき、プロセッサに、具体的に、選定された各陰影点を囲むための第2多面体を生成するステップと、第2多面体に対してボクセル化処理を行い、陰影ボクセル対象を得るステップとを実行させる。
【0098】
一実施例においては、コンピュータプログラムは陰影ボクセル対象における頂点の数を削減するステップがプロセッサに実行されるとき、プロセッサに、具体的に、陰影ボクセル対象における隣接する少なくとも2つの頂点を合併するステップ、又は、陰影ボクセル対象における頂点の数を低減させるように、陰影ボクセル対象における隣接する少なくとも2つの平面に対して平滑化処理を行うステップを実行させる。
【0099】
一実施例においては、コンピュータプログラムは頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップがプロセッサに実行されるとき、プロセッサに、具体的に、頂点削減後の陰影ボクセル対象を内縮させ、内縮した陰影ボクセル対象を得るステップと、内縮した陰影ボクセル対象の頂点位置に、陰影内のライトプローブを生成するステップを実行させる。
【0100】
一実施例においては、コンピュータプログラムは頂点削減後の陰影ボクセル対象の頂点位置にライトプローブを生成するステップがプロセッサに実行されるとき、プロセッサに、具体的に、頂点削減後の陰影ボクセル対象を外拡し、外拡された陰影ボクセル対象を得るステップと、外拡された陰影ボクセル対象の頂点位置に、陰影外のライトプローブを生成するステップとを実行させる。
【0101】
一実施例においては、目標対象は動的対象を含み、コンピュータプログラムはプロセッサに実行されるとき、プロセッサに、動的対象の運動中の位置を決定するステップと、位置に基づいて対応するライトプローブの照射情報を取得するステップと、照射情報に基づいて動的対象をレンダリングし、全局的な照射の動画効果を得るステップとを実行させる。
【0102】
当業者は、上記実施例の方法における全部又は一部のフローが、コンピュータプログラムによって関連するハードウェアを指示することで完成することができ、前記プログラムは不揮発性のコンピュータ読み取り可能な記憶媒体に記憶されることができ、このプログラムを実行する時、上記各方法の実施例のフローを含むことができる。そのうち、本願に係る各実施例に用いられるメモリ、記憶、データベースその他の媒体に関するいずれの参照も、不揮発性及び/又は揮発性メモリを含むことができる。不揮発性メモリとしては、ROM(Read Only Memory)、PROM (ProgrammableROM)、EPROM(Erasable Programmable ROM)、EEPROM (Electrically Erasable Programmable ROM)、又はフラッシュメモリなどがある。揮発性メモリはランダムアクセスメモリ(RAM)又は外部キャッシュメモリを含むことができる。説明であるが制限するものではないこととして、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、デュアルデータレートSDRAM(DDRSDRAM)、エンハンスメント型SDRAM(ESDRAM)、シンクロナスリンクDRAM(SLDRAM)、メモリバス(Rambus)ダイレクトRAM(RDRAM)、ダイレクトメモリバスダイナミックRAM(DRDRAM)、メモリバスダイナミックRAM(RDRAM)等の種々の形態で利用可能である。
【0103】
以上の実施例の各技術的特徴は任意の組み合わせを行うことができ、説明を簡潔にするために、上記実施例における各技術的特徴の全ての可能な組み合わせについて説明していないが、これらの技術的特徴の組み合わせに矛盾が存在しない限り、本明細書に記載の範囲と考えるべきである。
【0104】
以上に記載の実施例は本出願のいくつかの実施形態のみを述べて、その記載は比較的に具体かつ詳細であるが、本出願の特許範囲を限定するものと解釈することができない。なお、当業者は、本出願の趣旨から逸脱することなく、いくつかの変形や改良を行うことができ、これらはいずれも本出願の保護範囲に属する。したがって、本出願の特許の保護範囲は添付の請求項に準じる。
【符号の説明】
【0105】
110 端末
120 サーバ
1002 選定モジュール
1004 変換モジュール
1006 削減モジュール
1008 生成モジュール
1010 決定モジュール
1012 取得モジュール
1014 レンダリングモジュール