(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-11
(45)【発行日】2023-05-19
(54)【発明の名称】地面のレンダリングに関するコンピュータグラフィック方法
(51)【国際特許分類】
G06T 15/04 20110101AFI20230512BHJP
G06T 17/05 20110101ALI20230512BHJP
【FI】
G06T15/04
G06T17/05
(21)【出願番号】P 2019196417
(22)【出願日】2019-10-29
【審査請求日】2021-07-20
(32)【優先日】2018-11-07
(33)【優先権主張国・地域又は機関】CA
(73)【特許権者】
【識別番号】517084612
【氏名又は名称】スクウェア エニックス、リミテッド
【氏名又は名称原語表記】SQUARE ENIX,LTD.,
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(74)【代理人】
【識別番号】100189625
【氏名又は名称】鄭 元基
(74)【代理人】
【識別番号】100196139
【氏名又は名称】相田 京子
(72)【発明者】
【氏名】ピーター シカチェフ
【審査官】村松 貴士
(56)【参考文献】
【文献】Morgan McGuire, Kyle Whitson,“Indirection Mapping for Quasi-Conformal Relief Texturing”,Proceedings of the 2008 Symposium on Interactive 3D graphics and games,米国,ACM,2008年,p.191-198
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行されるグラフィック処理方法であって、該方法は、
-地面メッシュの、オリジナルな頂点のセットを提供し、
-前記オリジナルな頂点セットに関して、少なくともいくつかの頂点において、修正された二次元(2D)位置を演算して、オリジナルな頂点のセットから新しい頂点のセットを生成する、ここで前記オリジナルな頂点のセット内の、頂点の複数のサブグループの各サブグループについて、前記演算は、該サブグループ内の頂点について平行して実行され、前記サブグループ内の前記頂点は、該サブグループ内の一つ以上の頂点の前記修正された二次元(2D)位置の影響を受ける何らかの頂点も含まれないように選択され、
-前記オリジナルな複数の頂点のセット内の与えられた頂点について、
-前記新しい頂点のセットの対応するサブセット内で、複数の頂点のテクスチャ座標を取得し、
-前記新しい頂点のセットの対応するサブセット内の前記頂点に関して取得したテクスチャ座標を組み合わせて、前記与えられた頂点に関するテクスチャ座標を得る、ことを特徴とする。
【請求項2】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、複数の頂点の新しいサブセットの対応するサブセット内で、前記複数の頂点を特定する、ことを特徴とする。
【請求項3】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、オリジナルな頂点のセット内の多数の与えられた頂点に対して、前記特定、取得及び組み合わせを実行する、ことを特徴とする。
【請求項4】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、オリジナルな頂点のセット内のそれぞれの頂点に対して、前記特定、取得及び組み合わせを実行する、ことを特徴とする。
【請求項5】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、修正された2D位置は、前記オリジナルな頂点セット内の少なくともいくつかの頂点に関して、オリジナルな2D位置とは異なっている、ことを特徴とする。
【請求項6】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、ハイトマップを提供し、オリジナルな頂点セット内の特定の頂点に関する修正された2D位置は、特定の頂点に関する三次元(3D)点とオリジナルな頂点セット内の近隣のN個の頂点についてのN個の3D点間の距離に基づいて演算され、前記近隣のN個の頂点についての3D点は、前記ハイトマップから得られた高さを持つ、ことを特徴とする。
【請求項7】
請求項6記載のコンピュータによって実行されるグラフィック処理方法であって、前記Nは、少なくとも2よりも大きな整数である、ことを特徴とする。
【請求項8】
請求項6記載のコンピュータによって実行されるグラフィック処理方法であって、オリジナルな頂点セット内の特定の頂点に関する修正された2D位置は、該特定の頂点についての3D点と、近隣のN個の頂点についてのN個の3D点を結ぶベクトルの和に基づいている、ことを特徴とする。
【請求項9】
請求項8記載のコンピュータによって実行されるグラフィック処理方法であって、前記近隣のN個の頂点は、前記特定の頂点までの2D距離が最小である、N個の頂点である、ことを特徴とする。
【請求項10】
請求項6記載のコンピュータによって実行されるグラフィック処理方法であって、前記ハイトマップは、パッチに分割されて、パッチ間のコーナー頂点及びエッジ頂点を定義しており、オリジナルな頂点のセットから新しい頂点のセットを生成する際には、古い頂点のセット内のコーナー頂点を、新しい頂点のセット内の同じ二次元(2D)位置に保つ、ことを特徴とする。
【請求項11】
請求項10記載のコンピュータによって実行されるグラフィック処理方法であって、オリジナルな頂点のセットから新しい頂点のセットを生成する際に、パッチ間のエッジ上にあるエッジ頂点を、新しい頂点のセット内の前記エッジ上に残るように制限する、ことを特徴とする。
【請求項12】
請求項6記載のコンピュータによって実行されるグラフィック処理方法であって、オリジナルな頂点のセットから新しい頂点のセットを生成する際に、2D内の前記オリジナルな頂点のセット内少なくともいくつかの頂点を、で再配置し、新しい頂点のセット内の頂点から得られる近接する3D点とハイトマップ間の距離を、オリジナルな頂点セット内の頂点から得られる近接する3D点とハイトマップ間の距離よりも均一なものに変える、ことを特徴とする。
【請求項13】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、前記頂点のセットの生成は、オリジナルな頂点のセットの中の、頂点の1/Mの最初のサブグループについて行い、次いで、オリジナルな頂点のセットの中の、頂点の1/Mの2番目のサブグループについて行い、順次、オリジナルな頂点のセットの中の、頂点の1/MのM番目のサブグループにまで行ってゆく、ことを特徴とする。
【請求項14】
請求項13記載のコンピュータによって実行されるグラフィック処理方法であって、Mは、2以上の正の整数である、ことを特徴とする。
【請求項15】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、前記生成は、前記取得又は組み合わせを実行する前に、最初に多数回実行される、ことを特徴とする。
【請求項16】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、前記取得又は組み合わせを実行する前に、前記生成を所定回数実行する。ことを特徴とする。
【請求項17】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、前記特定、取得又は組み合わせを実行する前に、前記生成を、オリジナルな頂点のセット内の、頂点の少なくとも最小閾値割合について、前記修正された2D位置が、閾値である最大割合の距離以下で変化するまで、実行する、ことを特徴とする。
【請求項18】
請求項17記載のコンピュータによって実行されるグラフィック処理方法であって、前記閾値である最大割合の距離は、10%以下であり、頂点の最小閾値割合は、90%以上である、ことを特徴とする。
【請求項19】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、新しい頂点のセットの対応するサブセットは、L個の頂点を含むが、ここで、Lは、少なくとも3よりも大きな整数である、ことを特徴とする。
【請求項20】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、新しい頂点のセットの対応するサブセットは、新しい頂点のセット内で、与えられた頂点を囲む、L個の頂点であり、Lは、少なくとも3よりも大きな整数である、ことを特徴とする。
【請求項21】
請求項2記載のコンピュータによって実行されるグラフィック処理方法であって、新しい頂点のセットの対応するサブセットは、新しい頂点のセット内で、与えられた頂点に最も近いL個の頂点であり、Lは、少なくとも3よりも大きな整数である、ことを特徴とする。
【請求項22】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、テクスチャ座標とオリジナルな頂点セットを関連付けるマッピングを提供し、新しい頂点のセットの対応するサブセット内で、頂点のテクスチャ座標を取得することは、(i)新しい頂点のセットの対応するサブセット内の頂点に対応する、オリジナルな頂点セット内の頂点を取得し、(ii)前記マッピングを(i)で取得した頂点と関連させて、これらのテクスチャ座標を取得する、ことを特徴とする。
【請求項23】
請求項22記載のコンピュータによって実行されるグラフィック処理方法であって、前記マッピングは、インプリシットマッピング(implicit mapping)である、ことを特徴とする。
【請求項24】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、前記新しい頂点セットの対応するサブセット内の頂点の取得したテクスチャ座標を組み合わせて、与えられた頂点に関するテクスチャ座標を得ることは、前記新しい頂点セットの対応するサブセット内の頂点の前記取得したテクスチャ座標の加重和を決定することを含む、ことを特徴とする。
【請求項25】
請求項24記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は更に、前記新しい頂点セットの対応するサブセット内の頂点について得られたテクスチャ座標のそれぞれについて重みを決定することを含む、ことを特徴とする。
【請求項26】
請求項25記載のコンピュータによって実行されるグラフィック処理方法であって、前記重みは、オリジナルな頂点セット内の与えられた頂点と、新しい頂点のセットの対応するサブセッと内の頂点の相対位置に基づいて演算される、ことを特徴とする。
【請求項27】
請求項25記載のコンピュータによって実行されるグラフィック処理方法であって、前記新しい頂点セットの対応するサブセット内の頂点について得られたテクスチャ座標のそれぞれについての前記重みは、オリジナルな頂点セット内の与えられた頂点が、新しい頂点のセットの対応するサブセット内の頂点により形成されるポリゴンの重心となるような重みである、ことを特徴とする。
【請求項28】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、与えられた頂点に関するテクスチャ座標を、与えられた頂点の頂点属性として格納する。ことを特徴とする。
【請求項29】
請求項1記載のコンピュータによって実行されるグラフィック処理方法であって、該方法は、更に、(i)オリジナルな頂点セットに関連したテクスチャ座標のマッピングを提供し、(ii)与えられた頂点について得られたテクスチャ座標と、与えられた頂点に関連してマッピングされた初期のテクスチャ座標間の相違情報を、該与えられた頂点に関連して格納する、ことを特徴とする。
【請求項30】
オリジナルな頂点セット及びコンピュータ可読指示を格納するコンピュータ
可読記録媒体であり、可読指示は、コンピュータ装置の処理装置で実行されると、該コンピュータ装置に以下の方法を実行させる;該方法は、
-地面メッシュのオリジナルな頂点のセットを提供し、
-前記オリジナルな頂点セットに関して、少なくともいくつかの頂点において、修正された二次元(2D)位置を演算して、オリジナルな頂点のセットから新しい頂点のセットを生成する、ここで前記オリジナルな頂点のセット内の、頂点の複数のサブグループの各サブグループについて、前記演算は、該サブグループ内の頂点について平行して実行され、前記サブグループ内の前記頂点は、該サブグループ内の一つ以上の頂点の前記修正された二次元(2D)位置の影響を受ける何らかの頂点も含まれないように選択され、
-前記オリジナルな複数の頂点のセット内の与えられた頂点について、
-新しい頂点のセットの対応するサブセット内で、複数の頂点のテクスチャ座標を取得し、
-前記新しい頂点のセットの対応するサブセット内の前記頂点に関して取得したテクスチャ座標を組み合わせて、前記与えられた頂点についてのテクスチャ座標を得る、
ことから構成される。
【請求項31】
コンピュータ装置の処理装置で実行される、コンピュータによって実行されるグラフィック処理方法であって、該方法は、
地面メッシュのオリジナルな頂点のセットを、前記処理装置により提供し、
オリジナルな頂点のセットから新しい頂点のセットを生成する、ここでオリジナルな頂点のセットから新しい頂点のセットを生成することは、オリジナルな頂点セット内の少なくともいくつかの頂点の修正された二次元(2D)位置を演算し、そして、
前記オリジナルな複数の頂点のセット内の与えられた頂点について、
前記新しい頂点のセットの対応するサブセット内で、複数の頂点のテクスチャ座標を取得し、
前記新しい頂点のセットの対応するサブセット内の前記頂点に関して取得したテクスチャ座標を組み合わせて、前記与えられた頂点に関するテクスチャ座標を得、
前記頂点の新しいサブセットの対応するサブセット内の頂点を特定する、
ここで前記特定、取得又は組み合わせを実行する前に、前記生成を、オリジナルな頂点のセット内の、頂点の少なくとも最小閾値割合について、前記修正された2D位置が、閾値以下で変化するまで、実行する、ことを特徴とする。
【請求項32】
請求項31記載のコンピュータによって実行されるグラフィック処理方法であって、前記閾値の量は三次(3D)空間内の距離である、ことを特徴とする。
【請求項33】
請求項32記載のコンピュータによって実行されるグラフィック処理方法であって、前記頂点の最小閾値割合は、90%以上である、ことを特徴とする。
【請求項34】
請求項31記載のコンピュータによって実行されるグラフィック処理方法であって、前記閾値の量は、閾値である最大割合の距離である、ことを特徴とする。
【請求項35】
請求項34記載のコンピュータによって実行されるグラフィック処理方法であって、前記閾値である最大割合の距離は、10%以下であり、頂点の最小閾値割合は、90%以上である、ことを特徴とする。
【請求項36】
オリジナルな頂点セット及びコンピュータ可読指示を格納するコンピュータ
可読記録媒体であり、可読指示は、コンピュータ装置の処理装置で実行されると、該コンピュータ装置に以下の方法を実行させる;該方法は、
地面メッシュのオリジナルな頂点のセットを提供し、
オリジナルな頂点のセットから新しい頂点のセットを生成する、ここで、オリジナルな頂点のセットから新しい頂点のセットを生成することは、オリジナルな頂点セット内の少なくともいくつかの頂点について、修正された二次元(2D)位置を演算することを含み、
前記オリジナルな頂点セット内の与えられた頂点について、
新しい頂点のセットの対応するサブセット内で、複数の頂点のテクスチャ座標を取得し、
前記新しい頂点のセットの対応するサブセット内の前記頂点に関して取得したテクスチャ座標を組み合わせて、前記与えられた頂点についてのテクスチャ座標を得、
前記頂点の新しいサブセットの対応するサブセット内の頂点を特定する、
ここで前記特定、取得又は組み合わせを実行する前に、前記生成を、オリジナルな頂点のセット内の、頂点の少なくとも最小閾値割合について、前記修正された2D位置が、閾値量以下で変化するまで、実行する、ことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、コンピュータグラフィック処理に関わり、特に3D地面のメッシュに対するテクスチャ調節を得る処理に関する。
【背景技術】
【0002】
地面のレンダリングは、現代のビデオゲームにおいて主要なチャレンジの一つである。地面のレンダリングで最も広く使用される技術の一つが、いわゆるハイトマップを利用したアプローチである。このアプローチの背景にあるアイデアは、地面を、各頂点をハイトマップから読み出した高さデータに基づいて垂直方向に移動させる、均一なメッシュ状のグリッドとしてレンダリングすることである。次いで、地面は、単純な上-下の突出テクスチャで特徴付けされる(時には、ある種のタイリング(tiling factor)ファクタでの特徴付けもある)。このアプローチの問題点は、こうした決まり切ったパラメータ化はゲーム世界空間内では極めてむらのあるものとなり得ることである。これは、ゲーム内では、地面の坂に沿ってテクスチャデータが異様に引き伸ばされた形で観察される。
【0003】
歴史的に、ビデオゲーム制作者はこの問題に、テクスチャを3方から投影して、データをブレンドする三面マッピング(triplanar mapping)により効果的に対応して来た。この技術は、ある程度の改良を生み出したが、不正確であり、遅くまた、地面が撥ねるような/バーチャルなテクスチャを与える技術とは互換性がない。
【0004】
そこで、地面のレンダリングに関する改良された手法の開発が望まれている。
【発明の概要】
【0005】
第1の広い観点によれば、コンピュータにより実行されるグラフィック処理方法を提供するものであり、それは、地面メッシュの、オリジナルな頂点のセットを提供し、該オリジナルな頂点のセットから新しい頂点のセットを生成し、オリジナルな頂点のセット内の与えられた頂点について、(i)オリジナルな頂点のセット内の与えられた頂点に対応する新しい頂点のセット内の頂点のサブセット内で、それら頂点についてのテクスチャ座標を取得し、(ii)取得したテクスチャ座標を組み合わせて、オリジナルな頂点のセット内の与えられた頂点に関するテクスチャ座標を得る。
【0006】
前記組み合わせは、取得したテクスチャ座標の加重和を決定することを含み、その重みは、オリジナルな頂点セット内の与えられた頂点が、新しい頂点のセット内の対応する頂点によって形成されるポリゴンの重心となるための重みである。
【0007】
他の第2の広い観点によると、オリジナルな頂点セット及びコンピュータ可読指示を格納するコンピュータ可読記録媒体を提供するものであり、可読指示は、コンピュータ装置の処理装置で実行されると、該コンピュータ装置に以下の方法を実行させる;該方法は、
-地面メッシュのオリジナルな頂点のセットを提供し、
-該オリジナルな頂点のセットから新しい頂点のセットを生成し、
-オリジナルな頂点のセット内の与えられた頂点について、
-新しい頂点のセットの対応するサブセット内で、頂点のテクスチャ座標を取得し、
-取得したテクスチャ座標を組み合わせて、与えられた頂点についてのテクスチャ座標を得る、
ことから構成される。
【0008】
他の広い観点によると、コンピュータで実行されるグラフィック処理方法を提供するものであり、該方法は、
-地面の頂点を、関連した高さの値で描いたハイトマップを提供し、
-テクスチャ座標と地面の頂点間のマッピングを提供し、
-地面の頂点の、与えられた一つの頂点について、
-マッピングとハイトマップに基づいてテクスチャ座標を得、
該テクスチャ座標は、地面の頂点の、与えられた一つの頂点に関連したマッピングのものとは異なっており、
-得られたテクスチャ座標に関する情報を、地面の頂点の、前記与えられた一つの頂点に関連して、メモリに格納する、
ことから構成される。
【0009】
他の広い観点によると、地面の頂点を、関連した高さの値で描いたハイトマップを格納するコンピュータ可読記録媒体を提供するものであり、テクスチャ座標と地面の頂点間のマッピング及びコンピュータ可読指示は、コンピュータ装置の処理装置で実行されると、該コンピュータ装置に、地面の頂点の与えられた頂点に関して、以下の方法を実行させる、
-マッピング及びハイトマップに基づいたテクスチャ座標を得る、該テクスチャ座標は、地面の頂点の、与えられた一つの頂点に関連したマッピングのものとは異なっており、
-得られたテクスチャ座標に関する情報を、地面の頂点の、前記与えられた一つの頂点に関連して、メモリに格納する。
【図面の簡単な説明】
【0010】
【
図1】
図1は、2D頂点グリッド及びハイトマップから3D地面メッシュをどのようにして得るかの一例を示す図。
【
図2】
図2は、テクスチャマッピングによりテクスチャが与えられた3D地面をどのようにして得るかの一例を示す図。
【
図3】
図3は、テクスチャと2D頂点グリッド間のインプリシットマッピング(implicit mapping)の一例を示す図。
【
図4】
図4は、2D頂点グリッド内の頂点のオリジナルなセットの一例を示す図。
【
図5】
図5は、非限定的な実施例に基づいて、3D地面メッシュを作成する、2D頂点のテクスチャ座標を得る際のステップを示すフローチャート。
【
図6A】
図6Aは、近接する頂点に対して、与えられた頂点のX-Y位置の一例を示す図。
【
図7】
図7は、非限定的な実施例に基づいて、
図6Aの与えられた頂点位置の変更の一例を示す図。
【
図8】
図8は、非限定的な実施例に基づいて、2D頂点グリッド内の新しい頂点セットの一例を示す図で、
図4のオリジナルな2D頂点グリッド内で、ある頂点の位置が変わっているものである。
【
図9】
図9は、
図8に似ているが、変わった頂点の元の位置を、明るい色の円で示したものである。
【
図10B】
図10Bは、
図8に似ているが、2D頂点グリッド内で移動していない頂点だけを示したものである。
【
図12】
図12は、
図8と似ているが、新たな頂点のセット内で、頂点のサブセットによって囲まれた、オリジナルな頂点のセット内の、与えられた頂点を示す図。
【
図13】
図13は、
図12の囲まれた頂点のサブセット内で、頂点の前の位置に対応するテクスチャ座標を示す図。
【
図14】
図14は、
図12の囲まれた頂点のサブセット内で、頂点の位置に対する与えられた頂点の位置を示す図。
【
図15】
図15は、非限定的な実施例に基づいて、前述のテクスチャ座標の加重合計である、結果的なテクスチャ座標の位置及び、
図12で示した頂点の囲まれたサブセット内での前の頂点位置に、インプリシットマッピング(implicit mapping)を行ったテクスチャ座標の位置を示す図。
【
図16】
図16は、非限定的な実施例に基づいて、結果的なテクスチャ座標に関連して、与えられた頂点にインプリシットマッピング(implicit mapping)がなされたテクスチャ座標を示す図。
【
図17】
図17は、非限定的な実施例に基づいて、得られた、テクスチャと2D頂点グリッド間のマッピングの非インプリシット性を示す図。
【
図19】
図19は、ここに開示した方法を実行するためのコンピュータ装置の構成の一例を示す図。
【
図20】
図20は、パッチに分解したハイトマップの一例を示す図。
【0011】
添付した図は、例示的な目的で示したものであり、非限定的な実施例を示すものである。従って、なんら限定的なものではない。
【発明を実施するための形態】
【0012】
図1に示すように、「3D地面メッシュ」110は、地面の3D表面に関するものであり、オーバーハングの無い、即ち、高さ方面に重なることのない、頂点で特徴つけられる。こうして、3D地面メッシュ110は、2D頂点のグリッド(「2D頂点グリッド」と称する)120と関連したハイトマップ130を組み合わせたものとして表現することができる。ハイトマップ130は、2D頂点グリッド120内の対応する頂点での、それぞれの地面の高さを示す値のアレイとして見ることができる。
【0013】
3D地面メッシュ110に詳細な画像を加えることには、テクスチャマッピングが含まれる。こうして、
図2に示すように、詳細な画像は、テクスチャ210A、201Bのような一つ以上のテクスチャの形を取る。各テクスチャは2D空間((u,v)空間としても知られている)での座標のセットであり、それぞれが固有の値を持つ。各テクスチャ210A、210Bは、3Dメッシュ110の1部分に「適用」(又は「マッッピング」)され、テクスチャが付加された3D地面を生成する。例えば、3D地面メッシュ110の一部にテクスチャ210Aを適用することは、2D頂点グリッド120の個々の頂点とテクスチャ210Aの個々の座標を関連付けることを含む。同じことがテクスチャ210B及び他のテクスチャに関しても行われる。こうして、2D頂点グリッド120の各頂点(及び、従って、3D地面メッシュ110の各頂点)は明度を得る。
【0014】
テクスチャ210A、210Bの個々は、2D頂点グリッド120と同じ大きさ又は、それよりも大きいか、小さい。テクスチャ210A、210Bの個々は、それらが2D頂点グリッド120にマッピングされる際に、引き伸ばされたり、圧縮されたり(及び、可能ならば回転も)することができる。多様な補完技術を、前述の引き伸ばしや圧縮に適用することが出来る。(特定のテクスチャにおいて)テクスチャ座標と(2D頂点グリッド内の)頂点間が1:1に対応しない場合がある。
【0015】
図3に示すのは、テクスチャ210Cが2D頂点グリッド120と同じ大きさであり。2D頂点グリッド120にマッピングする際に、テクスチャ210Cの何らの圧縮、引き伸ばし又は回転を行わない、簡単な場合である。テクスチャ210Cは、単純に2D頂点グリッド120上に「投影」される。そして、頂点V320からV330へのベクトルは、テクスチャ座標T320(頂点V320に対応)からテクスチャ座標T330(頂点V330に対応)へのベクトルとして2D内で、同じ大きさ及び始点を有する。これは「インプリシット」マッピング(implicit mapping)の簡単な例であり、テクスチャ210C内のテクスチャ座標は、2D頂点グリッド120内の頂点のX-Y座標(例えば、線形写像によって)から引き出すことができる。
図3に示す例では、何らの圧縮、引き伸ばし又は回転を行わない、最も簡単な場合であり、この線形写像は単一である。
【0016】
本開示のある実施例では、テクスチャ210Cを2D頂点グリッド120にマッピングする特別な方法を実行する、テクスチャマッピング処理を提供するものである。本開示のある実施例でのテクスチャマッピング処理は、頂点シェーダーからの補完されたテクスチャ座標を用いるピクセルシェーダーで行われる。ピクセルシェーダー及び頂点シェーダーは、グラフィックパイプラインの段階でありまたグラッフィク処理ユニット(GPU)により実行される。本開示のある実施例でのテクスチャマッピング処理は、テクスチャ210Cと2D頂点グリッド120間の新しいマッピングを開示するものである。新しいマッピングはそれ自体、インプリシットマッピング(implicit mapping)ではなく、テクスチャ210C内のテクスチャ座標は、2D頂点グリッド120内の頂点座標の線形写像から引き出されるものではない。新しいマッピングは、3D地面メッシュ110をレンダリングする際のリアリズムを増大させ、特に、ハイトマップ130が急な坂を示す場合に有効である。
【0017】
従って、
図4及び5を参照すると、2D頂点グリッド120内のオリジナルな頂点410のセットに対して新しいマッピングを行う一つの方法は、オリジナルな頂点のセットから新しい頂点のセットを生成(ステップ510)し、次いでオリジナルな頂点のセット内の該頂点についてのテクスチャ座標を見つける(ステップ520)ことで行われる。各ステップ510及び520ついては、以下に詳細に述べる。
【0018】
ステップ510
オリジナルな頂点410のセットから新しい頂点を生成することは、オリジナルな頂点410のセット内で少なくともいくつかの頂点について修正された2D位置(又は修正されたX-Y座標)を演算することを含む。
図6A及び6Bを参照すると、オリジナルな頂点410のセット内の特定の頂点410Aの修正された2D位置は、3D空間内の、点610A及びN個の点610Bのそれぞれの間の距離に基づいて演算することができる。点610Aは、ハイトマップ130によって上昇させられた特定の点410Aに対応する3D空間内の点である。
【0019】
N個の点610Bについては、それらを選ぶ多様な方法がある。例えば、N個の点610Bは、特定の頂点410Aの「近傍に」あるオリジナルな頂点のセット410内のN個の頂点に対応する、ハイトマップ130によって上昇させられた、3D空間内の点でもよい。特定の点410Aの「近傍に」あるN個の頂点410Bを選択することは、オリジナルな頂点のセット410内のN個の頂点が、2D頂点グリッド120内で特定の点410Aに対して最も短い距離を持っていることを意味する。言い換えると、2D頂点グリッド120をテクスチャとして扱った場合、与えられた頂点(即ち、テクスチャ内のピクセル)の隣人は、端部又は角をシェアする他の頂点(ピクセル)である。勿論、特定の点410Aの「近傍に」あるオリジナルな頂点のセット410内でN個の410Bを選択する指標は他にもある。
【0020】
Nの値は2以上の整数であり、例えば、八個の近傍の頂点410Bがある
図6A及び7に示すように、特定の点410Aに対して、8でもよい。オリジナルな頂点のセット410内の特定の点410Aに対する修正された位置を演算する際に、特定の対応する点610AとN個の点610Bを連結するN個のベクトル(3D内で)を構築し、これら3Dベクトルの互いの和を求め、結果としての3Dベクトルを与える。この2D成分は、特定の点410Aがどれだけ移動したかを示す。しかし、他の制限も可能である。例えば、Nが近傍の頂点の最大数を指定してもよい。この場合、ある最大距離を超えた場合には、演算に含まれる近傍の頂点の数は、Nよりも少なくなるかもしれない。
【0021】
オリジナルな頂点のセット410内の特定の頂点410Aの修正位置の演算の結果、特定の頂点410Aは再配置されるか(新しい2D位置を得る)か、そうで無いかである。言い方を変えると、2D頂点グリッド120内の修正位置は異なる位置か、同じ位置である。
図7に示すように、特定の頂点410Aが2D頂点グリッド120内で再配置され、そこでは特定の頂点410Aに占められていた前の位置は、空白の円710として示される。
【0022】
上記した修正位置の計算テクニックは、オリジナルな頂点のセット410内の全ての頂点に関して行われる。これを行う他の異なる方法もある。最初の方法は、修正位置の計算をオリジナルな頂点のセット410内の全ての頂点について順次実行することである。第2の方法は、オリジナルな頂点のセット410内の、頂点のサブグループ(又は、「バッチ」)に関して平行して修正位置の計算を行うことである。各バッチの頂点は、バッチ内の修正された頂点位置の影響を受けうる何らかの頂点も含まれないように選択される。実際的には、M個のバッチを生成したとして、それぞれが全ての頂点数の1/M(2D頂点グリッド120内にある程度散在して)であり、次いで、一度に1バッチずつ、修正位置の計算を順次行うが、修正位置の計算それ自体は、各バッチ内で、頂点に関して平行して行われ得る。ある実施例では、バッチの数は、即ちMは2の正の整数のべき乗であり、2,4,8などのいずれかである。近傍の頂点が、オリジナルな頂点410のセット内の頂点に関する修正位置の計算に影響を与えれば与えるほど、バッチは演算の安定性の維持が求められる。即ち、Mの実効的な値は、Nの値による。
【0023】
前述のテクニックは、何度も繰り返し実行される。即ち、オリジナルな頂点のセット410内の全ての頂点に関して、上記した修正位置の計算が一度行われると、上記したテクニックは、オリジナルな頂点のセット410内の全ての頂点について繰り返され、何度も実行される。この回数は、数に特定の限度(例えば、2,5,10,50,100回)をもうけること無く、決めることが出来るが、修正された位置が、頂点の最小閾値百分率(例えば、75%,80%,90%,99%など、この百分率は、オリジナルな頂点のセット410内又は各バッチ内のみで、全て処理された頂点の百分率である)について、閾値量(例えば、1%、5%,10%又は3Dワールド空間内のある絶対的な距離)以上に変動しなくなるのに必要な回数だけ実行させることもできる。
【0024】
図8に、新しい頂点810のセットを示す。即ち、ステップ510の修正位置の計算の後の、オリジナルな頂点410のセット内の、頂点の2D位置である。ここでは、頂点のいくつかは移動している(即ち、2D位置が変わっている)。
図9で、空白の円920は、ステップ510の結果、新しい2D位置に移動したオリジナルな頂点のセット410中の頂点の、以前の位置を示す。
図10Aは、ステップ510の結果、移動した頂点を示し、
図10Bは、ステップ510の結果、前のセット410から移動しなかった頂点を示す。最後に
図11に、オリジナルな頂点のセット410を含んだオリジナルな2D頂点グリッド120を示すが、最終的に移動した頂点は明るい円で示す。
【0025】
上述のテクニックで形成された新しい頂点のセットを見ると、頂点は、そのN個の最も近い頂点までの3D距離の加重和である量によって「移動」され、3D空間内により均等に広がった様相を呈する。それは即ち、3D空間を見上げると、新しいセット810内の頂点に伴うエッジの長さ(ハイトマップ130を考慮すると)は、オリジナルな頂点410のセット内の頂点に伴うエッジの長さよりもより均一になっている(再度、同じハイトマップ130を考慮する)。
【0026】
全体として3D地面220は、例えば、より効率的な帯域幅の用途のために、より小さなタイル(又は、より一般的には、矩形ではない「地面パッチ」)に分割される。特に、
図20に示すように、分割は、ハイトマップ130のレベルで、オリジナルな頂点のセット410から頂点を含む同様のパッチに対応する形で、複数のハイトマップパッチ130A、130B等が生成される。こうして、オリジナルな頂点のセット410内で、三個以上のパッチによってシェアされた頂点(「コーナー頂点」と呼ぶ)と、丁度二つのパッチによりシェアされた頂点(「エッジ頂点」と呼ぶ)とがあることが分かる。これらのコーナー頂点とエッジ頂点は、新しい頂点のセット810を生成する際に、オリジナルなセット410内の他の頂点とは異なる形で扱われる。
【0027】
例えば、視覚的に連続性を保持するために、コーナー頂点は、固定した位置のままに拘束される。即ち、修正された位置は該コーナー頂点については演算しない。二つのコーナー頂点間のエッジ上にあるエッジ頂点に関しては、同じエッジ上に残るように拘束される。言い換えると、オリジナルな頂点のセット410内の、エッジ頂点である特定の頂点に関する修正された位置は、同じエッジ上に残る。これも、また近接する地面パッチの境界を越えた視覚的連続性を保持する。
【0028】
ステップ520
オリジナルな頂点のセット410内で頂点のテクスチャ座標を見つける方法は、オリジナルな頂点のセット410を介して、オリジナルな頂点のセット410内の、各「古い」与えられた頂点(ステップ515,525参照)について、サブステップ520A(新しい頂点のセット内で対応する頂点のサブセットを特定する)、520B(その頂点のサブセットに関するテクスチャ座標を得る)、及び520C(得られたテクスチャ座標を組み合わせて、与えられた「古い」頂点についての最終的なテクスチャ座標を得る)を実行することである。これらのサブステップを、
図4に戻って、以下に詳細に述べる。
図4では、オリジナルな頂点のセット410内の与えられた「古い」頂点1210が、前述のサブステップ520の実行のために選択された形で特定されている。
【0029】
ステップ520の別の実施例では、新しい頂点のセット810内の特定の一つの頂点毎に、まず未だ処理されていない、オリジナルな頂点セット410内の全ての頂点について、それを囲む頂点として適切か否かを決定する(即ち、未だ処理されていないオリジナルな頂点セット410内の全ての頂点について、頂点の対応するサブセットが、新しい頂点のセット810内で特定の頂点を含むか否か)。仮に、そうならば、こうした「古い」各頂点について、(i)それを「処理済み」としてマークし、(ii)新しい頂点のセット810内の他の頂点を、問題となっている「古い」頂点についての対応するサブセットの一部として決定し、サブステップ520B及び520Cを以下に述べるように、実行して、最終的に新しい頂点のセット810内の全ての頂点が該方法で処理されるまで、新しい頂点のセット810内の次の特定の頂点に移動してゆく。
【0030】
サブステップ520A
このステップでは、新しい頂点のセット810内の頂点の「対応するサブセット」を、オリジナルな頂点セット410内の与えられた頂点1210について見つける。
図12に示すように、対応する頂点のサブセットは、少なくとも三つの頂点1220A_n、1220B_n、1220C_nを含むことが出来、これらは、与えられた頂点1210に「最も近く」であり、与えられた点1210を一緒に取り囲んでいる、新しい頂点のセット810内の三つの頂点である。「最も近く」の意味は、実際の場合に応じて、変わるかもしれない。ある場合には、三個以上の頂点が対応する頂点のサブセットにあるかもしれない。全ての頂点について繰り返して、それぞれの頂点の「対応するサブセット」を見つけることに加えて、(より高速であろう)最急降下法を使用するか、又はグラフィックパイプラインを用いて、ラスター化して2D画像で変換された頂点メッシュをレンダリングすることもできる。
【0031】
(オリジナルな頂点セット410内の)与えられた頂点1210は、ステップ510の修正位置の計算の結果、新しい頂点のセット810内では、その位置が移動、又は移動していない場合がある。
【0032】
サブステップ520B
このサブステップでは、前述の対応する頂点のサブセット(頂点1220A_n、1220B_n、1220C_nを含む)に関するテクスチャ座標を得る。これは、オリジナルな頂点セット410内で頂点1220A_n、1220B_n、1220C_nの位置を求めて、インプリシットマッピング(implicit mapping)の下、これらのオリジナルな位置に対応したテクスチャ210C内のテクスチャ座標を得ることで、達成することができる。
【0033】
図13に示した、1220A_o、1220B_o、1220C_oは、与えられた頂点1210に関する頂点の「対応するサブセット」の、三つの頂点1220A_n、1220B_n、1220C_nに対応する、オリジナルな頂点セット410における頂点を示す(この関係は、
図9にも示す)。この例では、オリジナルな頂点セット410内の頂点1220B_o、1220C_oは、新しい頂点のセット810内の頂点1220B_n、1220C_nになる際に、それぞれそのX-Y座標位置が変化している。しかし、頂点1220A_oは、移動していない。それゆえ、オリジナルな頂点セット410内の頂点1220A_oは、新しい頂点のセット810内の頂点1120A_nと同じX-Y座標である。また、実際には頂点1220A_oは、頂点1210である。つまり、与えられた頂点1210の移動したバーション(即ち1220A_n)が、与えられた頂点1210の古いバージョン(即ち、1220A_o)を囲んでいる頂角の一つであるからである。しかし、これは与えられた頂点の全ての場合に必ずしも必要ではない。
【0034】
図13は、オリジナルな頂点セット410内の頂点1220A_o、1220B_o、1220C_oに関連するテクスチャ座標T1,T2及びT3を示している。テクスチャ座標T1,T2及びT3は、テクスチャ210Cとオリジナルな頂点セット410間のインプリシットマッピング(implicit mapping)により得ることが出来る。
【0035】
サブステップ520C
このサブステップでは、サブステップ520Bで得たテクスチャ座標(この場合、T1,T2及びT3)を組み合わせて、オリジナルな頂点セット410内の与えられた頂点1210に関するテクスチャ座標を得る。これは、加重組み合わせを含む;
T_1210 = Sum i=1:3 (Wi*Ti) ,
ここで、重みW1,W2,W3は、1220A_n、1220B_n、1220C_nに対応する頂点1210の位置に関連する。特に、重みは、頂点1220A_nが、例えば、他の全ての頂点より近い場合に、このことがテクスチャ座標T1を最も有力なものとするように選択される、などである。例えば、一つの実施例では、重みW1,W2,W3は、2次元三角形1220A_n、1220B_n、1220C_n内で、頂点1210の重心座標となるように選択される。他の実施例では、重みW1,W2,W3は、頂点1210と対応する頂点1220A_n、1220B_n、1220C_n間の距離と逆の関係となるように選択される。言い方を変えると、重みは、オリジナルな頂点のセット410内の頂点1210が、新しい頂点のセット810の対応するサブセット内の、頂点1220A_n、1220B_n、1220C_nで形成されるポリゴン(この場合は三角形)の重心であるための重みである。
【0036】
得られたテクスチャ座標T_1210は、古い頂点のセット410内の与えられた頂点1210に関する新しいテクスチャ座標であり、テクスチャ座標に対応している必要は無く、2D頂点グリッド120内の与えられた頂点1210の座標の線形写像を用いて得られる。これらの違いを、
図16に示す。ここでT_implicitは、与えられた頂点1210に対してインプリシットマッピング(implicit mapping)(
図3)を逆に適用して得られるテクスチャ座標を示す。
【0037】
上記したサブステップ520A、520B,520Cがオリジナルな頂点のセット410内の全ての頂点について実行され、オリジナルな頂点のセット410内のそれぞれの頂点に関してテクスチャ210C内のテクスチャ座標を得る。こうして、頂点とテクスチャ座標との間に個々の関連が生じる。この関連は、頂点属性としてメモリに格納される。特定の頂点についての頂点属性は実際のテクスチャ座標を含むか、通常の定義されたマッピングを用いて得たテクスチャ座標と新しいテクスチャ座標間の相違を含むこともあるが、値の幅は小さく、より効率的に圧縮することができる。他の実施例では、実際、多くの頂点に関する新しいテクスチャ座標がまとめて新しいテクスチャを定義する。限定されない実施例では、地面のハイトマップが変わったときはいつでも、上記に基づいて頂点属性が再演算される。
【0038】
図17は、テクスチャ210Cをオリジナルな頂点のセット410(2D頂点グリッド120内)内の頂点にどのようにマッピングするかの影響を概念的に示す。マッピングの結果は、インプリシットマッピング(implicit mapping)の場合とは異なっている(インプリシットマッピング(implicit mapping)が処理において使用されているにも関わらず)。特に、今開示されている技術で得られるマッピングは、テクスチャ210C及び2D頂点グリッド120内の対応する対となる点の連結が、多様な角度を持った平行でない線から構成されている。
【0039】
図18Aは、インプリシットマッピング(implicit mapping)を用いて、タイル状のテクスチャで3D地面メッシュをレンダリングした結果であり、一方、
図18Bは、同じタイル状のテクスチャで同じ3D地面メッシュをレンダリングした結果を示す。急な坂のエリアにおいて、極端な引き延ばした表現が明らかに減少していることがわかる。
【0040】
こうして、コンピュータで実行されるグラフィック処理方法が適用された。この方法によれば、地面メッシュのオリジナルな頂点のセットが提供され、新しい頂点のセットが、オリジナルな頂点のセットから生成される。次いで、オリジナルな頂点のセット内の与えられた頂点に関して、(i)オリジナルな頂点のセット内の与えられた頂点に対応する、新しい頂点のセット内の頂点のサブセット内で、それら頂点に関してテクスチャ座標を得、(ii)該得られたテクスチャ座標を組み合わせて、オリジナルな頂点のセット内の与えられた頂点に関するテクスチャ座標を得る。ここで、マッピング(例えば、インプリシットマッピング(implicit mapping))が適用され、テクスチャ座標がオリジナルな頂点のセットに関連付けられる。その場合、新しい頂点のセットの対応するサブセット内で、頂点についてのテクスチャ座標を得ることは、
(i)新しい頂点のセットの対応するサブセット内の頂点(複数)に対応した、オリジナルな頂点のセット内での頂点(複数)を得、(ii)マッピングを(i)で得た頂点に関連させて、これらのテクスチャ座標を得る。テクスチャの組み合わせは、得られたテクスチャ座標の加重合計を決定することを含み、重みは、オリジナルな頂点のセット内の与えられた頂点が、新しい頂点のセット内の対応する頂点によって形成されるポリゴンの重心に対してどれだけの重みがあるかによる。
【0041】
多様な実施例が適用可能である。例えば、述べた操作の一つ以上は、一つ以上のコンピュータ可読媒体に格納されたコンピュータ読み取り可能な指示と対応することも出来る。それは、コンピュータ装置(中央処理装置、特化されたグラフィック処理ユニット(GPU)及び/又はテクスチャマッピングユニット(YMU))で実行されると、コンピュータ装置に以上に述べた運転を実行させる。
【0042】
例えば、
図19を参照すると、コンピュータ装置1910は処理装置1912及びコンピュータ可読指示を格納するメモリ1914を有している。メモリ1914は、多様な形態を取り得る。例えば、磁気ディスク又は半導体メモリ及びフラッシュメモリ、SRAM、DRAM、相変化メモリなどである。処理装置1912は、メモリ1914内のコンピュータ可読指示を実行することが出来る。そうなると、コンピュータ装置1910の処理装置1912は、コンピュータ装置1910にグラフィックパイプラインを実行させる。処理装置の例は、マイクロチップ上の算処理装置などの電子素子を含む。グラフィックパイプラインは、メモリ1914内のコンピュータ可読指示のサブセット1916としてエンコードされる。入力/出力(I/O)1918は、処理装置1912に外部との通信を可能とさせる。これらには、スクリーン(例えば、タッチスクリーン)、キーボード/マウス、ネットワークインタフェース装置/カード(例えば、NFC、WiFi、イーサネット又はセルラー/GMS/LTE通信をサポートする)が含まれる。
【0043】
非限定的な実施例では、ステップ510は、処理装置(CPUやGPUなど)1912により実行されるために、サブセット1916内の第1のコンピュータ可読指示によって規定される頂点緩和モジュール(a vertex relaxation module)によって達成することが出来、また、ステップ520は、処理装置1912で実行するために、サブセット1916内の第2のコンピュータ可読指示によって規定されるテクスチャマッピングモジュールにより実行される。他の実装例では、頂点緩和モジュール(a vertex relaxation module)とテクスチャマッピングモジュールは全く同一であり得る。処理装置1912には、オリジナルな頂点のセット410、テクスチャ210C、ハイトマップ130などの入力が供給され、地面メッシュ110内の各頂点についての頂点属性1950が出力として生成され、メモリ1914に格納される。この頂点属性はテクスチャ座標(又は相違)のセットである。
【0044】
処理装置1912及びメモリ1914及び多様な他の入出力装置などの、コンピュータ装置1910の構成部品は、バスなどの多様な相互接続体で接続される。こうした相互接続体には、PCIエキスプレスなどのペリフェラルコンポーネントインターコネクト(PCI)、ユニバーサルシリアルバス(USB)、ファイヤーワイヤー(IEEE1394)、光学バス構造などが含まれる。他の実施例では、コンピュータ装置1910の構成部品は、ネットワークによって相互接続される。例えば、メモリ1914は、ネットワークによって相互接続された、物理的に異なる位置に配置された多数の物理メモリから構成することもできる。更に、詳細な装置構成及び型式によれば、メモリ1914は、(例えば、RAMのような)揮発性のもの、(例えばROM、フラッシュメモリなどの)不揮発性のもの、又はこれらの組み合わせでもよい。メモリ1914内に格納されたコンピュータ可読指示は、ファンクション、オブジェクト、アプリケーションプログラムインタフェース(APIs)、特定のタスク又は特定のアブストラクトデータタイプを実行するデータ構造などのプロクラムモジュールとして実行することができる。典型的には、コンピュータ可読指示の機能性は、多様な環境で、所望により組み合わせ又は分配されるものである。
【0045】
更に、ここで述べたいくつかの又は全ての操作の順番は、これらの操作が順番に行われなければならないと、解釈されるべきものではない。当業者にとって、ここでの記述の利益を保ちつつ異なる順番を用いることは可能である。更に、それぞれの実施例において、全ての操作が必要なわけでは無いことは理解されるべきである。
【0046】
最後に、開示は、一つ以上の実施に関連して述べられているが、本明細書及び添付した図面を読んで理解した上に基づいた、等価的な変更及び置き換えは、当業者にとってなし得ることである。開示は、こうした全ての変更及び置き換えを含むものであり、以下のクレームの範囲によってのみ規定されるものである。特に、上記した要素(例えば、素子、リソースなど)によってなされる多様な機能に関して、こうした要素を述べるために使用する言葉は、特に断りが無い限り、述べた要素の特別な機能を達成する何らかの要素(例えば、機能的に等価な)に対応させるためのものである。それは、ここで例示的に開示されている、機能を達成するために開示された構造に、構造的に等しくない場合であっても同じである。加えて、開示の特定の特徴がいくつかの又は唯一の実施に関して開示されていても、そうした特徴は、特定の又与えられた用途にについて所望に応じて及利益を得るために、他の実施の他の一つ以上の特徴と結びつけることができるものである。