(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-03
(45)【発行日】2024-04-11
(54)【発明の名称】衝突範囲決定方法並びにその、装置、機器、及びコンピュータプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20240404BHJP
【FI】
G06T19/00 C
(21)【出願番号】P 2022539664
(86)(22)【出願日】2021-04-21
(86)【国際出願番号】 CN2021088566
(87)【国際公開番号】W WO2021233046
(87)【国際公開日】2021-11-25
【審査請求日】2022-07-29
(31)【優先権主張番号】202010429935.7
(32)【優先日】2020-05-20
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】リウ,イー
【審査官】松永 隆志
(56)【参考文献】
【文献】特開平09-259303(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
モデル分析機能を有する処理装置が実行する衝突範囲決定方法であって、
処理対象モデルに基づいて対応するメッシュ平面を決定するステップであって、前記メッシュ平面は、複数のメッシュ領域を含む、ステップと、
前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得るステップであって、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおける前記メッシュ平面に対するサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分である、ステップと、
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得るステップと、を含
み、
前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得る前記ステップは、
前記メッシュ平面に対する平面視角度で、仮想カメラに基づき、前記処理対象モデルのカメラ視野を取得するステップと、
前記カメラ視野に対して前記メッシュ平面上で画像描画を行うことによって、前記高さ情報を付随するモデル2次元画像を得るステップと、を含み、
前記メッシュ領域のサイズは、サンプルレートに基づいて決定されており、一つの前記メッシュ領域に前記モデル2次元画像における一つの画素に対応させる、衝突範囲決定方法。
【請求項2】
前記カメラ視野に対して前記メッシュ平面上で画像描画を行うことによって、前記高さ情報を付随するモデル2次元画像を得る前記ステップは、
前記カメラ視野に対して画像描画を行う過程において、画素シェーダに基づいて前記モデル2次元画像における画素に対応する高さ情報を決定するステップを含む、請求項
1に記載の方法。
【請求項3】
前記メッシュ領域に対応する一つの高さ情報は、上面標識又は下面標識を含み、前記高さ情報の上面標識は、前記高さ情報が前記サブモデルにおける上面に属する位置に対応する高さ情報であることを標識するために用いられ、前記高さ情報の下面標識は、前記高さ情報が前記サブモデルにおける下面に属する位置に対応する高さ情報であることを標識するために用いられ、
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得る前記ステップは、
前記メッシュ領域に対応する高さ情報をトラバースすることによって、前記上面標識と前記下面標識に基づいて前記高さ情報に対して高さ層区分を行うステップと、
前記メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、前記処理対象モデルの衝突範囲を得るステップと、を含む、請求項1
又は2に記載の方法。
【請求項4】
モデル分析機能を有する処理装置が実行する衝突範囲決定方法であって、
処理対象モデルに基づいて対応するメッシュ平面を決定するステップであって、前記メッシュ平面は、複数のメッシュ領域を含む、ステップと、
前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得るステップであって、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおける前記メッシュ平面に対するサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分である、ステップと、
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得るステップと、を含み、
前記メッシュ領域に対応する一つの高さ情報は、上面標識又は下面標識を含み、前記高さ情報の上面標識は、前記高さ情報が前記サブモデルにおける上面に属する位置に対応する高さ情報であることを標識するために用いられ、前記高さ情報の下面標識は、前記高さ情報が前記サブモデルにおける下面に属する位置に対応する高さ情報であることを標識するために用いられ、
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得る前記ステップは、
前記メッシュ領域に対応する高さ情報をトラバースすることによって、前記上面標識と前記下面標識に基づいて前記高さ情報に対して高さ層区分を行うステップと、
前記メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、前記処理対象モデルの衝突範囲を得るステップと、を含み、
前記メッシュ領域に対応する高さ情報をトラバースすることによって、前記上面標識と前記下面標識に基づいて前記高さ情報に対して高さ層区分を行う前記ステップは、
前記メッシュ領域に対応する高さ情報をトラバースすることによって、前記上面標識と前記下面標識に基づいて前記高さ情報を複数の未定の高さ層として区分するステップと、
隣接する未定の高さ層間の間隔を決定するステップと、
間隔が閾値よりも小さい隣接する未定の高さ層を一つの高さ層として統合するステップと、
間隔が閾値以上である隣接する未定の高さ層を異なる高さ層として決定するステップと、を含む
、方法。
【請求項5】
前記閾値は、前記処理対象モデルに対応するゲームにおける制御対象のサイズに基づいて決定される、請求項
4に記載の方法。
【請求項6】
前記メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、前記処理対象モデルの衝突範囲を得る前記ステップは、
前記メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、前記メッシュ領域に基づいて前記高さ層に合う柱状構造を生成するステップと、
生成した柱状構造に基づいて前記処理対象モデルの衝突範囲を得るステップと、を含む、請求項
4に記載の方法。
【請求項7】
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得る前記ステップの前に、前記方法は、
高さ範囲によって前記高さ情報をフィルタリングし、標識した高さが前記高さ範囲内にある高さ情報を保持するステップをさらに含む、請求項1から
6のいずれか一項に記載の方法。
【請求項8】
前記方法は、前記処理装置のグラフィックスプロセッサによって実行される、請求項1から
7のいずれか一項に記載の方法。
【請求項9】
モデル分析機能を有する処理装置に配備される衝突範囲決定装置であって、前記
衝突範囲決定装置は、第一の決定ユニットと、投射ユニットと第二の決定ユニットとを含み、
前記第一の決定ユニットは、処理対象モデルに基づいて対応するメッシュ平面を決定するために用いられ、前記メッシュ平面は、複数のメッシュ領域を含み、
前記投射ユニットは、前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得るために用いられ、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおける前記メッシュ平面に対するサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分であり、
前記第二の決定ユニットは、前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得るために用いられ
、
前記投射ユニットは、具体的には、
前記メッシュ平面に対する平面視角度で、仮想カメラに基づき、前記処理対象モデルのカメラ視野を取得すること、
前記カメラ視野に対して前記メッシュ平面上で画像描画を行うことによって、前記高さ情報を付随するモデル2次元画像を得ることに用いられ、
前記メッシュ領域のサイズは、サンプルレートに基づいて決定されており、一つの前記メッシュ領域に前記モデル2次元画像における一つの画素に対応させる、衝突範囲決定装置。
【請求項10】
モデル分析機能を有する処理装置に配備される衝突範囲決定装置であって、前記衝突範囲決定装置は、第一の決定ユニットと、投射ユニットと第二の決定ユニットとを含み、
前記第一の決定ユニットは、処理対象モデルに基づいて対応するメッシュ平面を決定するために用いられ、前記メッシュ平面は、複数のメッシュ領域を含み、
前記投射ユニットは、前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得るために用いられ、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおける前記メッシュ平面に対するサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分であり、
前記第二の決定ユニットは、前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得るために用いられ、
前記メッシュ領域に対応する一つの高さ情報は、上面標識又は下面標識を含み、前記高さ情報の上面標識は、前記高さ情報が前記サブモデルにおける上面に属する位置に対応する高さ情報であることを標識するために用いられ、前記高さ情報の下面標識は、前記高さ情報が前記サブモデルにおける下面に属する位置に対応する高さ情報であることを標識するために用いられ、
前記第二の決定ユニットは、具体的には、
前記メッシュ領域に対応する高さ情報をトラバースすることによって、前記上面標識と前記下面標識に基づいて前記高さ情報に対して高さ層区分を行うこと、
前記メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、前記処理対象モデルの衝突範囲を得ることに用いられ、
前記第二の決定ユニットは、さらに、
前記メッシュ領域に対応する高さ情報をトラバースすることによって、前記上面標識と前記下面標識に基づいて前記高さ情報を複数の未定の高さ層として区分すること、
隣接する未定の高さ層間の間隔を決定すること、
間隔が閾値よりも小さい隣接する未定の高さ層を一つの高さ層として統合すること、
間隔が閾値以上である隣接する未定の高さ層を異なる高さ層として決定することに用いられる、衝突範囲決定装置。
【請求項11】
プロセッサ及びメモリを含む衝突範囲決定のための機器であって、
前記メモリは、プログラムコードを記憶し、前記プログラムコードを前記プロセッサに伝送するために用いられ、
前記プロセッサは、前記プログラムコードにおける命令に基づいて請求項1から
8のうちのいずれか一項に記載の衝突範囲決定方法を実行するために用いられる、衝突範囲決定のための機器。
【請求項12】
コンピュータに、請求項1から
8のうちのいずれか1項に記載の衝突範囲決定方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年5月20日に中国特許庁、出願番号202010429935.7、発明の名称「衝突範囲決定方法及び関連装置」の中国特許出願の優先権を主張し、その全内容を参照により本願に組み込む。
本出願は、データ処理分野に関し、特に衝突範囲決定技術に関する。
【背景技術】
【0002】
3次元シーンにおいて、シーンにおける各種の対象に対応するモデルの衝突範囲を決定する必要がある。これによって、3次元シーンにおいて対象操作のインタラクションを行う時、モデル間の衝突範囲に基づき、合理的な衝突効果を実現し、リアリティを向上させることができる。
【0003】
衝突範囲を計算する関連技術では、主に3次元空間を空間的に区分した後、モデルの全ての構成部分と区分した空間との間の関連をトラバースすることでモデルの衝突範囲を決定する。
【0004】
一つの対象のモデルが複雑になれば複雑であるほど、該モデルを構成する構成部分、例えば三角形パッチの数が多くなり、このようなトラバース方式のかる時間は、多くなり、決定効率にひどく影響を与える。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記技術課題を解決するために、本出願は、衝突範囲決定方法を提供しており、高さ情報とメッシュ平面を結び付ける方式によって、3次元モデルの全てのパッチをトラバースすることを回避することができ、それによって決定時間を節約し、決定効率を向上させた。
【課題を解決するための手段】
【0006】
本出願の実施例は、以下の技術案を開示した。
【0007】
第一の方面によれば、本出願の実施例は、衝突範囲決定方法を提供した。前記方法は、
処理対象モデルに基づいて対応するメッシュ平面を決定するステップであって、前記メッシュ平面は、複数のメッシュ領域を含む、ステップと、
前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得るステップであって、そのうち、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおける前記メッシュ平面に対するサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分である、ステップと、
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得るステップとを含む。
【0008】
第二の方面によれば、本出願の実施例は、衝突範囲決定装置を提供した。前記装置は、第一の決定ユニットと、投射ユニットと第二の決定ユニットとを含み、
前記第一の決定ユニットは、処理対象モデルに基づいて対応するメッシュ平面を決定するために用いられ、前記メッシュ平面は、複数のメッシュ領域を含み、
前記投射ユニットは、前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得るために用いられ、そのうち、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおける前記メッシュ平面に対するサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分であり、
前記第二の決定ユニットは、前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得るために用いられる。
【0009】
第三の方面によれば、本出願の実施例は、衝突範囲決定のための機器を提供した。前記機器は、プロセッサ及びメモリを含み、
前記メモリは、プログラムコードを記憶し、前記プログラムコードを前記プロセッサに伝送するために用いられ、
前記プロセッサは、前記プログラムコードにおける命令に基づいて第一の方面に記載の衝突範囲決定方法を実行するために用いられる。
【0010】
第四の方面によれば、本出願の実施例は、コンピュータ可読記憶媒体を提供した。前記コンピュータ可読記憶媒体は、コンピュータプログラムを記憶するために用いられ、前記コンピュータプログラムは、第一の方面に記載の衝突範囲決定方法を実行するために用いられる。
【発明の効果】
【0011】
上記技術案から分かるように、処理対象モデルに基づき、複数のメッシュ領域を含むメッシュ平面を決定することができる。処理対象モデルをメッシュ平面に投射することによって、メッシュ平面に対する処理対象モデルの高さ情報を得る。つまり、3次元モデルを投射することによって2次元に変換する時、投射中に処理対象モデルが各メッシュ領域の投射空間に位置する一部の高さを取得することができ、メッシュ平面と高さ情報に基づいて処理対象モデルの衝突範囲を得ることができ、処理対象モデルにおける全ての構成部分をトラバースする必要がなく、それによって衝突範囲決定に対する複雑モデルの影響を低減し、衝突範囲を決定する効率を向上させた。
【図面の簡単な説明】
【0012】
本出願の実施例又は従来技術における技術案をより明瞭に説明するために、以下、実施例又は従来の技術の記述において使用される必要がある添付図面を簡単に紹介する。自明なことに、以下の記述における添付図面は、本出願のいくつかの実施例に過ぎず、当業者にとって、創造的な労力を払わない前提で、これらの添付図面に基づき他の添付図面も得られる。
【
図1】本出願の実施例による衝突範囲決定方法のアプリケーションシナリオ概略図である。
【
図2】本出願の実施例による衝突範囲決定方法のフローチャートである。
【
図3】本出願の実施例による衝突範囲決定方法の概略図である。
【
図4】本出願の実施例による一つの立方体の3次元モデルの側面図である。
【
図5】本出願の実施例による衝突範囲決定方法の概略図である。
【
図6】本出願の実施例による実際のアプリケーションシナリオにおける衝突範囲決定方法のフローチャートである。
【
図7】本出願の実施例による衝突範囲決定装置の構造ブロック図である。
【
図8】本出願の実施例による衝突範囲決定のための機器の構造図である。
【
図9】本出願の実施例によるサーバの構造図である。
【発明を実施するための形態】
【0013】
以下では、添付図面を結び付けながら、本出願の実施例について記述する。
【0014】
コンピュータ技術の継続的な発展に伴い、3次元モデルは、3次元ゲーム、リアルシーンシミュレーションなどのようなますます多くの分野で広く応用されている。そのうち、3次元モデルをより真正にするために、3次元モデル間で衝突が発生した時に真正な衝突状況を正確にシミュレートすることができるように、関係者は、3次元モデルの衝突範囲を決定することができる。
【0015】
そのうち、3次元モデルは、主に一つ一つのパッチで構成されている。関連技術では、3次元モデルの衝突範囲を決定するために、立体方眼によって3次元モデルの各パッチを覆ってから、各パッチがその位置する方眼にある立体位置をトラバースし、最後に全てのパッチの位置を組み合わせて該3次元モデルの衝突範囲を得る必要がある。このような方法は、3次元レベルで3次元モデルの各パッチをトラバースする必要があり、時間がかり、決定効率は、比較的に低い。
【0016】
上記技術課題を解決するために、本出願は、衝突範囲決定方法を提供しており、3次元モデルの全てのパッチをトラバースすることを回避することができ、それによって決定時間を節約し、決定効率を向上させた。
【0017】
理解できるように、該方法は、処理装置に用いられてもよく、該処理装置は、モデル分析を行うことができる処理装置であり、例えば、モデル分析機能を有する端末機器又はサーバであってもよい。該方法は、端末機器又はサーバによって独立して実行されてもよく、端末機器とサーバとを通信するネットワークシーンに用いられてもよく、端末機器とサーバによって協力して実行されてもよい。そのうち、端末機器は、コンピュータ、パーソナルデジタルアシスタント(Personal Digital Assistant、PDAと略称される)、タブレットパソコンなどの機器であってもよい。サーバは、アプリケーションサーバとしてもWebサーバとしても理解されてもよく、実際に配備する時、該サーバは、独立したサーバであってもよく、クラスタサーバであってもよい。同時に、ハードウェア環境において、本技術により実現された環境は、ARMアーキテクチャプロセッサ、X86アーキテクチャプロセッサがあり、ソフトウェア環境において、本技術により実現された環境は、Androidプラットフォーム、WindowsXP及び以上のオペレーティングシステム又はLinux(登録商標)オペレーティングシステムがある。
【0018】
本出願の技術案の理解を容易にするために、以下、実際のアプリケーションシナリオを結び付けながら本出願の実施例による衝突範囲決定方法を紹介する。
【0019】
図1を参照すると、
図1は、本出願の実施例による衝突範囲決定方法のアプリケーションシナリオ概略図である。該実際のアプリケーションシナリオにおいて、処理装置は、サーバ101であり、該サーバ101は、
図1に示される一つの家屋の3次元モデルに対し衝突範囲決定を行うことができ、該家屋の3次元モデルは、床スラブ、部屋とひさしの三つの構成部分を有する。
【0020】
理解できるように、3次元モデルの衝突範囲は、一つの立体的な範囲であり、立体的な範囲を表現できるとともに、3次元モデルの各パッチを分析することを回避するために、本実際のアプリケーションシナリオにおいて、3次元モデルを全体的に分析することによって、該3次元モデルに基づいて一つの平面(該平面がメッシュ平面と呼ばれてもよい)と高さ情報を決定し、さらにメッシュ平面と高さ情報を結び付けて3次元モデルの衝突範囲を得ることができる。
【0021】
まず、該3次元モデルに対応するメッシュ平面を決定する必要がある。
図1に示すように、サーバ101は、まず、該家屋3次元モデルに基づいて一つのメッシュ平面を決定してもよく、該メッシュ平面は、図に示すように、3次元モデルの底部に位置してもよく、3次元モデルの他の部分に位置してもよい。そのうち、該メッシュ平面上で複数のメッシュ領域が分布されており、サーバ101は、該3次元モデルをメッシュ平面に投射する方式によって、該3次元モデルを該メッシュ平面上の2次元画像に変換することができ、該2次元画像は、該3次元モデルの各部分の該メッシュ平面上における投射状況を反映することができる。
図1に示すように、投射することによって、家屋3次元モデルを該メッシュ平面上の一枚の上面図に変換することができ、該上面図から、3次元モデルがメッシュ領域Aに投射された部分が一部の床スラブとひさしであることが分かる。
【0022】
メッシュ平面を取得した後、立体的な衝突範囲を形成するために、サーバ101は、該3次元モデルの各メッシュ領域における高さ情報をさらに決定する必要がある。理解できるように、サーバ101がメッシュ平面に該3次元モデルを投射するため、投射中、サーバ101は、該メッシュ平面に対する該3次元モデルの高さ情報を得ることができる。
【0023】
上記ステップにより、投射完了後、サーバ101は、高さ情報を含むメッシュ領域を含むメッシュ平面を得ることができる。そのうち、一つのメッシュ領域に対応する高さ情報は、メッシュ平面に対する該3次元モデルの一部のモデルの高さを標識することができ、該部分のモデルは、該3次元モデルの一つのサブモデルと呼ばれ、該サブモデルとは、該3次元モデルが該メッシュ領域の投射空間に位置する部分であり、メッシュ領域の投射空間とは、該メッシュ領域がメッシュ平面に垂直な方向に伸びる空間領域である。
【0024】
図1に示すように、メッシュ領域Aに対応する投射空間は、投射空間Aであり、該投射空間には、該家屋3次元モデルの一部の床スラブとひさしが含まれており、この部分の床スラブとひさしは、該3次元モデルの投射空間AにおけるサブモデルAを構成している。3次元モデルを投射する時、サーバ101は、メッシュ領域Aに対応する高さ情報、それぞれ底面の高さA、床スラブの高さB、ひさし底部の高さCとひさしのトップの高さDを得ることができ、該メッシュ領域A及び該高さ情報に合わせて、サーバ101は、該投射空間Aにおける3次元モデルに対応する衝突範囲、即ち、この部分の床スラブとひさしに対応する衝突範囲を決定することができる。
【0025】
同様に、サーバ101は、各メッシュ領域及びそれに対応する高さ情報に基づき、該3次元モデルが各メッシュ領域の投射空間に位置するサブモデルに対応する衝突範囲を決定することができ、全てのサブモデルの衝突範囲を結び付けて、該家屋3次元モデルに対応する衝突範囲を得ることができる。
【0026】
以上から分かるように、該家屋3次元モデルの衝突範囲を決定する際に、サーバ101は、該3次元モデルの各パッチをトラバースする必要がなく、3次元モデル全体をメッシュ平面に投射するだけで、得た各メッシュ領域の高さ情報によって、該家屋3次元モデルの各サブモデルに対応する衝突範囲を復元することができ、全てのサブモデルの衝突範囲を結び付けて、該家屋モデルの全体的な衝突範囲を得ることができ、それによってある程度で衝突範囲の決定時間を低減し、決定効率を向上させた。
【0027】
次に、添付図面を結び付けながら、本出願の実施例による衝突範囲方法を紹介する。
【0028】
図2を参照すると、
図2は、衝突範囲決定方法のフローチャートを示した。該方法は、以下のステップを含み、
S201:処理対象モデルに基づいて対応するメッシュ平面を決定する。
【0029】
3次元技術が普及している現在では、3次元モデルをより真正にする方法は、関係者が研究しているホットな問題となっている。そのうち、3次元モデル衝突状況に対して正確にシミュレートするか否かは、3次元モデル真正度に影響を与える重要な要素である。例えば、ゲームプレイヤーにより操作される3次元ゲーム人物がゲーム地図を歩いている時、様々なゲームにおける3次元建築に会う可能性がある。この時、ゲームをより真正にするために、ゲームサーバは、ゲーム人物の衝突範囲と建築の衝突範囲に基づき、ゲーム人物と建物との衝突状況をシミュレートすることができる。
【0030】
以上から分かるように、3次元モデルの衝突範囲は、3次元モデルの重要な属性の一つであり、該衝突範囲とは、3次元モデル衝突が発生した時、3次元モデルが空間で占有する体積範囲である。関連技術では、3次元モデルの衝突範囲は、該3次元モデルを構成するパッチに基づいて生成されている。処理装置は、まず、立体メッシュで3次元モデルの各パッチを覆い、それから各パッチから対応する立体メッシュまでの距離に基づいてパッチの位置を決定し、最後に全てのパッチの位置を組み合わせて3次元モデルの衝突範囲を得る必要がある。この方法は、3次元モデルの各パッチをトラバースする必要があるが、3次元モデルの精度が高くなるとともに、一つの3次元モデルが持つパッチ数も指数関数的に増加するため、このような方法を採用すると、3次元モデル衝突範囲の決定時間が比較的に長く、決定効率が低すぎることを引き起こす。
【0031】
3次元モデルの各パッチをトラバースすることを回避するために、本出願の実施例では、3次元モデルを2次元平面に投射する方式によって、3次元モデルをある一つの平面の2次元画像に変換し、投射中、該2次元画像の各部分に対応する3次元モデルの高さ情報を決定し、最後に、投射で得た2次元画像と高さ情報を結び付けて、空間における該3次元モデルの衝突範囲を決定することができる。該投射過程が3次元モデル全体に対する投射の過程であるため、全てのパッチをトラバースする時間を省き、2次元画像において高さ情報を生成できる3次元モデル部分を注目すればよく、ある程度で衝突範囲決定の時間を低減した。
【0032】
2次元平面への投射を実現するために、処理装置は、まず一つの投射方向を決定する必要がある。処理対象モデルを得た後、処理装置は、処理対象モデルに基づき、対応するメッシュ平面を決定することができ、該メッシュ平面は、即ち今回の投射に対応する2次元平面であり、投射方向は、即ち該メッシュ平面に対して投射する方向である。理解できるように、処理対象モデルに対して全体的な投射を行い、投射で得た2次元平面と高さ情報が投射方向に対応するため、どの方向から処理対象モデルを投射しても、それにより決定された衝突範囲は、いずれも該処理対象モデルの衝突範囲である。これに基づき、本出願の実施例では、メッシュ平面の位置を限定しない。本出願の実施例では、処理装置は、処理対象モデルの底面が位置する平面をメッシュ平面として、該処理対象モデルを該メッシュ平面に投射することができる。
【0033】
該メッシュ平面に処理対象モデル各部分の投射状況を正確に具現させるために、処理装置は、メッシュ平面において複数のメッシュ領域を区分することができ、各メッシュ領域は、該メッシュ平面の一部の面積を占有する。メッシュ平面に含まれる複数のメッシュ領域の組み合わせによって、処理対象モデル全体の投射状況を具現することができる。例えば、
図1に示されるメッシュ領域には、メッシュ領域Aが含まれ、該メッシュ領域Aには、該家屋モデルにおける一部のひさしと床スラブモデルとが含まれ、別のメッシュ領域には、該家屋モデルの一部の部屋と床スラブモデルなどを含んでもよい。複数のメッシュ領域の結び付けによって、メッシュ平面における家屋3次元モデル全体の投射状況を具現することができる。
【0034】
S202:処理対象モデルをメッシュ平面に投射することによって、メッシュ平面に対する処理対象モデルの高さ情報を得る。
【0035】
処理対象モデルを投射する過程において、メッシュ平面上のメッシュ領域に基づいて衝突範囲を決定することができるために、処理装置は、2次元平面を3次元空間における衝突範囲の決定に変換できる情報値を取得する必要がある。理解できるように、投射がメッシュ平面に垂直な方向に行われるため、投射中に処理装置は、メッシュ平面に対する該処理対象モデルが該垂直方向に交差する各面の高さ情報を取得することができる。
【0036】
そのうち、処理対象モデルが異なるメッシュ領域において投射可能な部分が異なる可能性があるため、投射で得た各メッシュ領域に対応する高さ情報は、異なる可能性もある。メッシュ領域に対応する高さ情報は、処理対象モデルにおけるメッシュ平面に対するサブモデルの高さを標識するために用いられ、該サブモデルは、処理対象モデルが該メッシュ領域の投射空間に位置する部分である。メッシュ領域の投射空間とは、メッシュ領域が自体に含まれる領域面積を基準として、メッシュ平面に垂直な方向に伸びる空間であり、該空間は、該メッシュ領域を通過する。
【0037】
理解できるように、処理装置が処理対象モデルに対する投射過程は、処理対象モデルに含まれる全てのサブモデルを対応するメッシュ領域に投射する過程と見なされてもよく、そのため、投射終了時に、各メッシュ領域には、対応するサブモデルが有する投射方向に交差する面の高さ情報が含まれてもよい。
【0038】
図1に示すように、メッシュ領域Aに対応する投射空間Aは、該メッシュ領域をボトムとして、メッシュ平面に垂直な方向に上に伸びる空間には、家屋3次元モデルを有する一部のひさしと床スラブが含まれ、この部分のひさしと床スラブは、即ち該家屋3次元モデルのサブモデルである。投射中、この部分のサブモデルが投射方向に交差する面は、ひさし上面、ひさし下面、床スラブ上面と底面であり、そのため、該メッシュ領域には、4つの高さ情報が含まれてもよい。
【0039】
理解できるように、処理対象モデルにある面は、複数の方向を含んでもよく、面が投射方向に垂直である時、処理装置は、該面の高さ情報を直接得ることができ、面が投射方向に垂直でない時、メッシュ領域が往々にして処理対象モデルよりもはるかに小さいため、メッシュ領域に投射可能な部分の該面の平均高さを、該メッシュ領域に対応する高さ情報と近似すると見なしてもよい。
【0040】
S203:メッシュ平面と高さ情報に基づき、処理対象モデルの衝突範囲を得る。
【0041】
投射終了後、処理装置は、高さ情報を有するメッシュ領域を含む一つのメッシュ平面を得ることができる。そのうち、メッシュ領域は、衝突範囲の「ボトム」と理解されてもよく、高さ情報は、衝突範囲の「トップ」と理解されてもよく、ボトムとトップの組み合わせによって、処理装置は、高さ情報を含む一つの2次元メッシュ平面に基づき、3次元の衝突範囲を決定することができる。
【0042】
処理装置は、メッシュ平面上の各メッシュ領域に対応する高さ情報に基づき、メッシュ領域の投射空間においてサブモデルに対応する衝突範囲を決定することができるが、全てのサブモデルの衝突範囲の組み合わせは、即ち処理対象モデルの衝突範囲である。
図1に示すように、メッシュ領域Aにおいて、メッシュ領域Aに対応する高さAと高さBによって、メッシュ領域A投射空間における対応する一部の床スラブの衝突範囲を決定することができ、高さCと高さDによって、一部のひさしの衝突範囲を決定することができ、他のメッシュ領域の投射空間において、他の一部のひさし、床スラブ又は部屋の衝突範囲を決定することができ、これらのサブモデルの衝突範囲を結び付けると、家屋3次元モデル全体の衝突範囲を得ることができる。
【0043】
上記技術案から分かるように、処理対象モデルに基づき、複数のメッシュ領域を含むメッシュ平面を決定することができる。処理対象モデルをメッシュ平面に投射することによって、メッシュ平面に対する処理対象モデルの高さ情報を得て、つまり、3次元モデルを投射によって2次元に変換させる時、投射中に処理対象モデルが各メッシュ領域の投射空間に位置する一部の高さを取得することができ、メッシュ平面と高さ情報に基づいて処理対象モデルの衝突範囲を得ることができ、処理対象モデルにおける全ての構成部分をトラバースする必要がなく、それによって衝突範囲決定に対する複雑モデルの影響を低減し、衝突範囲を決定する効率を向上させた。
【0044】
理解できるように、処理対象モデルを投射する方法は、複数を含んでもよい。範囲の決定スピードをより速くするために、投射中、処理装置は、処理対象モデルを2次元画像として描画する方法によって、次元低減の観点から範囲決定の時間を節約することができる。ーつの可能な実現方式では、処理装置は、一つの仮想カメラによって、メッシュ平面に対する平面視角度から処理対象モデルを撮影することによって、メッシュ平面上において処理対象モデルに対応する2次元画像を描画することができる。
【0045】
まず、処理装置は、該仮想カメラが全ての処理対象モデルを撮影できることを確保する必要がある。処理装置は、メッシュ平面に対する平面視角度で、仮想カメラに基づいて、該処理対象モデルを含むカメラ視野を取得することができる。そのうち、カメラ視野とは、該仮想カメラが2次元画像変換を行う時に変換する必要のある領域範囲であり、該カメラ視野は、処理対象モデル全体を覆うことができる必要がある。
図3に示すように、
図3のカメラ視野は、平面視角度で家屋3次元モデル全体を覆うことができる。その後、処理装置は、仮想カメラを利用し、該カメラ視野に対してメッシュ平面上で画像描画を行うことによって、高さ情報が付随されるモデル2次元画像を得ることができ、該モデル2次元画像は、即ち処理対象モデルのメッシュ平面上における投射である。
図1に示すように、
図1は、平面視角度から取得して得た家屋モデル2次元画像を展示した。理解できるように、該仮想カメラは、直交カメラであり、即ち、該仮想カメラによって処理対象モデル各部分に対して画像描画を行う時、仮想カメラの視野方向がメッシュ平面に垂直であることを確保する。
【0046】
理解できるように、画像描画を行う時、一つのメッシュ領域には、処理対象モデルによって投射されることができる一部の面積だけがあることが現れる可能性がある。しかし、衝突範囲の決定を行う時、メッシュ領域及び含まれる高さ情報に基づいて決定されるため、該メッシュ領域により決定された衝突範囲は、該メッシュ領域投射空間に位置するサブモデルの実際の衝突範囲よりも大きい可能性があり、即ち、衝突範囲の決定は、一定の誤差が存在する可能性がある。
【0047】
理解できるように、処理対象モデルの衝突範囲が一つ一つのサブモデルの衝突範囲で構成されており、それに対し、サブモデルがメッシュ領域の投射空間によって决定されるため、各メッシュ領域の投射空間に含まれるサブモデルが処理対象モデル全体に占有する割合が小さければ小さいほど、即ち、各メッシュ領域が投射で得たモデル2次元画像に占有する割合が小さければ小さいほど、ある程度で処理対象モデルの衝突範囲に対する決定の精度もより高くなる。そのうち、画素は、モデル2次元画像における分割不能な構成単位であり、一つの画素は、モデル2次元画像において一つの小さい方眼を占有し、そのため、メッシュ領域のサイズをモデル2次元画像における画素のサイズに設定すれば、ある程度で投射されたメッシュ各領域がモデル2次元画像によって満たされるようにさせ、それによって決定された衝突範囲の誤差を低減することができる。
【0048】
これに基づき、処理装置により決定された衝突範囲の精度を高くするために、ーつの可能な実現方式では、処理装置は、サンプルレートに基づいてメッシュ領域のサイズを決定することができ、一つのメッシュ領域モデルに2次元画像における一つの画素に対応させ、即ち、モデル2次元画像のラスタライズを実現した。そのうち、サンプルレートとは、メッシュ平面の同じ領域の面積に含まれるメッシュ領域の数である。同じ領域面積に含まれるメッシュ領域数が多ければ多いほど、サンプルレートは、高くなる。ラスタライズとは、画像がバリアからなる画像に変換される過程であり、一つのバリアが画像における一つの画素に対応する。本出願の実施例では、バリアは、即ちメッシュ領域である。理解できるように、処理対象モデル高さ情報を取得する方法は、複数を含んでもよい。ーつの可能な実現方式では、一つのメッシュ領域がモデル2次元画像における一つの画素に対応する時、処理装置は、カメラ視野に対して画像描画を行う過程において、画素シェーダに基づいて(Pixel Shader)モデル2次元画像における画素に対応する高さ情報を決定することができる。そのうち、画素シェーダは、各画素ラスタライズ処理期間に物理カードのGPU上で実行するプログラムであり、該プログラムは、空間内の各画素の空間における座標を検出することができ、該プログラムによって、投射中、処理装置は、モデル2次元平面に投射される処理対象モデル内の各画素が投射空間における座標値を決定することができ、さらに、各メッシュ領域に対応する画素の高さ情報を決定することができる。
【0049】
理解できるように、処理対象モデルの形状が往々にして様々な凸部と凹部を有するため、同一の処理対象モデルの異なる部分が異なる高さ層に位置する可能性がある。例えば、
図1に示される家屋モデルにおいて、ひさし部分と床スラブ部分が位置する高さ層は、異なる。処理対象モデルの衝突範囲をより細かく決定するために、処理装置は、処理対象モデルの各部分に含まれる高さ層をさらに分析することができる。
【0050】
そのうち、ひさし部分の高さ層は、ひさし底部の高さCとひさしのトップの高さDとによって構成され、床スラブ部分の高さ層は、地面の高さAと床スラブの高さBによって構成されている。以上から分かるように、処理対象モデル各部分に含まれる高さ層を決定するために、処理装置は、各高さ層の上下面の高さを決定することによって行うことができる。
【0051】
ーつの可能な実現方式では、処理装置が得たメッシュ領域に対応する一つの高さ情報は、上面標識又は下面標識を含み、そのうち、高さ情報の上面標識は、該高さ情報がサブモデルにおける上面に属する位置に対応する高さ情報であることを標識するために用いられ、高さ情報の下面標識は、高さ情報がサブモデルにおける下面に属する位置に対応する高さ情報であることを標識するために用いられる。そのうち、パッチの上下面属性は、投射時、パッチの相対的な向きに応じて决定されており、パッチの相対的な向きとは、投射方向に対する該パッチの向きである。例えば、
図1では、投射方向が上から下へ垂直投射される時、高さDのパッチが該投射方向にとって、上面であり、高さCのパッチは、投射方向にとって、下面である。
【0052】
高さ層の上下面標識を得た後、処理装置は、メッシュ領域に対応する高さ情報をトラバースすることによって、上面標識と下面標識に基づいて、高さ情報に対して高さ層の区分を行うことができる。そのうち、一つの高さ層は、下面標識を有する一つの高さ情報と上面標識を有する一つの高さ情報によって区分され得られてもよく、該サブモデルにおいて、該高さ層が占有する部分は、実体であり、及び該サブモデルに衝突が発生した時、他の3次元モデルが該サブモデルと接触している部分が該高さ層に位置する場合、該3次元モデルは、該サブモデルを通ることができない。トラバースすることによって、処理装置は、全てのメッシュ領域に含まれる高さ層を取得し、さらに処理対象モデル全体に含まれる高さ層の状況を組み合わせて得ることができる。これにより、処理装置は、メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、処理対象モデルの衝突範囲を得ることができる。
【0053】
例えば、
図1では、メッシュ領域Aに対応する高さ情報Cは、下面標識を有してもよく、高さ情報Dは、上面標識を有してもよい。サーバ101は、該標識に基づき、メッシュ領域Aに対応するサブモデルにおけるひさし部分が位置する高さ層を区分して得ることができる。他の3次元モデル、例えば一人の人物3次元モデルが該家屋3次元モデルを通過する時、処理装置は、該人物3次元モデルの高さに該ひさし高さ層に位置する部分があるか否かを判断することができ、ある場合、該人物3次元モデルがひさしと衝突することが説明される。
【0054】
理解できるように、異なる処理対象モデルの複雑さが異なるため、一部の複雑さが比較的に高い処理対象モデルには、複数の高さ層が含まれてもよい。例えば、
図1に示すように、メッシュ領域Aに対応するサブモデルには、床スラブとひさしの二つの高さ層が含まれる。そのうち、一部の高さ層間の間隔が小さすぎることによって、処理対象モデルと他の3次元モデル衝突状況を決定する時、該3次元モデルの各部分が上記高さ層間の間隔を通ることができない場合がある。この時、該3次元モデルにとって、該高さ層間の間隔は、存在しないと見なされてもよく、即ち、二つの高さ層は、実際には、一つの高さ層と見なされてもよく、該高さ層には、従来の2つの高さ層の高さが含まれ、中間間隔の高さも含まれる。このような統合によって得た高さ層と従来の2つの高さ層は、今回の衝突状況決定では、実際に表現した処理対象モデルの衝突範囲が同じである。
【0055】
そのため、処理対象モデルの衝突範囲をさらに簡略化し、衝突範囲決定の効率を向上させるために、ーつの可能な実現方式では、処理装置は、メッシュ領域に対応する高さ情報をトラバースすることによって、上面標識と下面標識に基づいて複数の未定の高さ層を区分することができ、該未定の高さ層とは、処理対象モデル自体が有する高さ層である。その後、処理装置は、隣接する未定の高さ層間の間隔を決定し、それから間隔が閾値よりも小さい隣接する未定の高さ層を一つの高さ層として統合し、間隔が閾値以上である隣接する高さ層を異なる高さ層として決定することができる。そのうち、閾値は、処理対象モデル衝突状況を決定する時、該処理対象モデルと衝突する可能性のある最小高さ部分の高さであってもよい。
【0056】
理解できるように、メッシュ領域に含まれる高さ情報における下面標識と上面標識の数が同じではない可能性がある。例えば、
図4に示すように、
図4は、一つの立方体3次元モデルの側面図であり、該立方体の内部には、一部が透かし処理されており、透かし部分が該立方体の側面に囲まれているため、該立方体の衝突範囲に依然として属する。そのため、投射時、メッシュ領域には、高さE、高さFと高さGの3つの高さ情報が含まれてもよく、そのうち、高さEと高さFがいずれも上面に属するため、上面標識を有し、高さGが下面に属するため、下面標識を有する。
【0057】
衝突範囲決定を行う時、処理装置は、上/下面標識を有する個別の高さ情報を隣接する高さ層と統合することによって、処理対象モデルの衝突範囲をより合理的に決定することができる。
図4では、高さFと高さGが一つの高さ層を構成し、高さEが個別の上面高さ層であるため、処理装置は、高さE、F、Gを同一の高さ層に構成することができ、該高さ層の上面高さは、高さEであり、下面高さは、高さGである。
【0058】
理解できるように、異なる衝突シーンでは、閾値の決定方式は、異なってもよい。ーつの可能な実現方式では、衝突シーンがゲーム内のモデル衝突である場合、ゲームプレイヤーのゲーム体験をより真正にするために、処理装置は、ゲームプレイヤーによって操作される対象の衝突真正性をシミュレートすることから、処理対象モデルに対応するゲームにおける制御対象のサイズに基づいて閾値を決定することができる。例えば、
図5に示すように、投射終了後、処理装置は、ある一つのメッシュ領域において、H0-H6の7つの高さ情報を得ることができる。そのうち、H0-H6は、「Up」又は「Down」の表面標識をそれぞれ有し、「Up」は、該高さ情報が上面標識を有することを示し、「Down」は、該高さ情報が下面標識を有することを示す。
【0059】
高さ情報を決定した後、処理装置は、まず高い順序で高さ情報を並び替え、それから下から上へ全ての高さ情報をトラバースすることができ、Layer0-Layer2の3つの高さ層を形成している。そのうち、H6が個別の上面であるため、H5とH4と共に一つの高さ層を構成する。該図では、制御対象は、プレイヤーにより操作される一つのゲーム人物であり、該ゲーム人物の頭から足までの高さは、参照高さであり、処理装置は、該参照高さを閾値に設定することができる。
【0060】
図から分かるように、Layer0とLayer1との間の間隔が該閾値よりも大きく、それに対し、LayerlとLayer2との間の間隔が該閾値よりも小さい必要があることがわかる。そのため、該ゲーム人物は、Layer0とLayerlとの間に通過できるだけで、LayerlとLayer3との間に通過することができない。以上から分かるように、該ゲーム人物にとって、LayerlとLayer2は、ーつの層に等しい。そのため、処理装置は、高さ層を統合し、図に示されるLayerlとLayer2の二つの高さ層を最終的に得ることができる。
【0061】
理解できるように、高さ層に基づいて衝突範囲を決定する方法は、複数を含んでもよい。ーつの可能な実現方式では、処理装置が上記過程において、各メッシュ領域に含まれる高さ層を得ているため、該メッシュ領域の面積は、一つの柱状構造の「ボトム」と見なされてもよく、高さ層は、一つの柱状構造の「トップ」と見なされてもよい。「ボトム」と「トップ」の結び付けによって、一つの柱状構造を決定することができる。これに基づき、処理装置は、メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、該メッシュ領域に基づいて高さ層に合う柱状構造を生成することができる。該柱状構造は、該メッシュ領域に対応するサブモデルの衝突範囲を具現することができ、しかし、全てのサブモデルの衝突範囲を組み合わせることで、処理対象モデルの衝突範囲を構成することができる。そのため、処理装置は、生成した柱状構造に基づいて、処理対象モデルの衝突範囲を得ることができる。
【0062】
例えば、
図1では、サーバ101は、メッシュ領域Aに対応する高さ層に基づき、該メッシュ領域の柱状構造を生成することができ、該柱状構造には、一部のひさしと床スラブとが含まれる。他のメッシュ領域の柱状構造には、一部の部屋、ひさし又は床スラブが含まれてもよい。サーバ101は、全ての柱状構造を組み合わせることで、完了した一つの家屋3次元モデルの衝突範囲を得ることができる。
【0063】
なお、理解できるように、処理対象モデルに含まれる可能な一部のモデルが衝突する可能性が比較的に低い。例えば、処理対象モデルが一つのビルモデルである場合、ビルの最上層の外側に一つの看板をかけてもよく、しかし、他の3次元モデル、例えば車両モデル、人物モデルなどは、この看板の高さに達しにくく、該看板と衝突する。そのため、ビルの衝突範囲を決定する時、処理装置は、該看板を直接捨て、ビルの衝突範囲に計上してもよく、衝突範囲の有効性を確保する前提で、さらに衝突範囲の決定効率をさらに向上させた。
【0064】
そのため、ーつの可能な実現方式では、処理装置は、メッシュ平面と高さ情報に基づき、処理対象モデルの衝突範囲を決定する前に、高さ範囲によってメッシュ平面に対する処理対象モデルの高さ情報をフィルタリングし、標識した高さが該高さ範囲内に位置する高さ情報を保持することができる。該高さ範囲は、処理対象モデルによって生じる可能性のある衝突によって決定されており、このようなフィルタリング方式によって、処理装置は、必要でない高さ情報を捨てることによって、より少ない高さ情報を利用して一つの有効な衝突範囲を決定することができる。
【0065】
理解できるように、本出願の実施例における衝突範囲は、一つ一つのメッシュ領域におけるサブモデルの衝突範囲によって構成されており、サブモデルの衝突範囲は、該メッシュ領域及びそれが有する高さ情報によって決定されるため、処理装置は、各メッシュ領域に基づいてそれに対応するサブモデル衝突範囲を個別に生成することができ、他のメッシュ領域の干渉を受けない。以上から分かるように、異なるメッシュ領域内の情報処理は、並列に行ってもよい。
【0066】
グラフィックスプロセッサ(Graphics Processing Unit、GPUと略称る)は、数の多い計算ユニットと超長いパイプラインによって構成され、大量のタイプが統一されるデータの処理に適す。GPUは、グラフィックス類又は非グラフィックス類の高さ並行数値計算を得意とし、それは、論理関係がない数千の数値計算スレッドを収容することができる。GPUの利点は、論理関係がないデータの並行計算であるため、本出願の実施例による衝突範囲決定方法における各メッシュ領域情報の並行処理に好適である。そのため、衝突範囲の決定効率を向上させるため、ーつの可能な実現方式では、該衝突範囲決定方法は、処理装置におけるグラフィックスプロセッサによって実行されてもよい。
【0067】
しかし、関連技術では、3次元モデルパッチのトラバースが中央処理装置(Central Processing Unit、CPUと略称される)シリアル処理によって実現されるため、処理対象モデルが比較的に複雑であり、パッチ数が比較的に多い時、衝突範囲の決定には、時間がかなりかる。本出願による方法独自の並行処理特性によって、GPUの並行処理機能に合わせて、関連技術の効率差をさらに大きくすることができる。
【0068】
次に、実際のアプリケーションシナリオを結び付けながら本出願の実施例による衝突範囲決定方法を紹介する。
図6を参照すると、
図6は、実際のアプリケーションシナリオにおける衝突範囲決定方法の概略図である。この該実際のアプリケーションシナリオにおいて、処理装置は、GPUを含むサーバであり、処理対象モデルは、ゲームにおける建物モデルである。
【0069】
S601:生成を開始する。
【0070】
サーバは、処理対象モデルを取得した後、処理対象モデルの衝突範囲の生成を開始する。
【0071】
S602:平面視カメラによる描画をする。
【0072】
サーバは、仮想カメラによって、平面視方向から処理対象モデルを描画し、対応するモデル2次元画像を得ることができる。まず、サーバは、処理対象モデルのサイズに基づき、仮想カメラのサンプルレートを決定し、サンプルレートに基づいてメッシュ領域のサイズを決定することができる。本実際のアプリケーションシナリオにおいて、平面視角度で処理対象モデルのサイズは、20m*20mであり、サーバは、メッシュ領域を0.5mに設定することによって、40*40数を含むメッシュ領域の一つのメッシュ平面を作成することができる。そのうち、該メッシュ領域のサイズは、最終的に生成したモデル2次元画像の画素サイズと同じである。
【0073】
S603:画素シェーダから高さ情報を取得する。
【0074】
サーバは、平面視角度で仮想カメラを用いてモデル2次元画像を描画する過程において、画素シェーダによって、各メッシュ領域に対応するサブモデルの高さ情報を取得することができる。
【0075】
S604:高さ範囲内にあるか否かを判断する。
【0076】
サーバは、該取得した高さ情報をフィルタリングし、高さ範囲内にない高さ情報をS605によって放棄することができ、高さ範囲内にある場合、S606に入り、該高さ情報を記憶する。
【0077】
理解できるように、GPUが並行の方式で衝突範囲を決定するために、サーバは、各メッシュ領域においてそれが衝突範囲を確立する時に必要な関連データを有するように保障する必要がある。これに基づき、サーバは、原子操作によって、即ち、各メッシュ領域に対して独立した操作を行って、それに対応する高さ情報及び高さ情報における表面標識を記録して保存することができる。そのうち、サーバは、高さ配列HeightArrayによって各メッシュ領域(即ち各画素)indexの高さ情報を保存し、カウント配列CountArrayで対応するメッシュ領域(画素)の高さ数を保存することができる。サーバがあるメッシュ領域の一つの高さ情報heightを取得した時、サーバは、原子操作によってこのメッシュ領域により記録された高さ数を1に加算し、配列は、以下の通りであり、
InterlockedADD(Count Array [index]、l、originalCount)
その後、サーバは、このメッシュ領域indexとこのメッシュ領域indexにより累積された高さ数originalCountに基づいて得た高さ情報が高さ配列のどの位置に書き込まれる必要があるかを決定することができ、配列は、
Height Array[index+originalCount]=heightの通りである。
【0078】
S607:階層を決定する。
【0079】
位置決定によって、サーバは、該メッシュ領域indexに含まれる高さ情報を並び替えることができ、それによって該メッシュ領域に対応する階層関係を計算することができる。階層を決定することは、高さ情報に基づいて複数の未定の高さ層を区分して得ることである。
【0080】
S608:隣接する未定の高さ層がキャラクタを通過するか否かを判断する。
【0081】
未定の高さ層を決定した後、サーバは、プレイヤーにより制御されたゲームキャラクタのサイズに基づいて、隣接する未定の高さ層間に該キャラクタが通過されることができるか否かを判断することができ、できれば、S610に入って隣接する未定の高さ層を独立した2層に決定し、できない場合、S609に入って隣接する未定の高さ層を1層に統合し、それによって高さ層区分を完了する。
【0082】
各メッシュ領域により決定された高さ層によって、サーバは、各メッシュ領域に対応する柱状構造を決定することができ、該柱状構造は、該メッシュ領域に対応するサブモデルの衝突範囲を具現することができる。最後、各サブモデル衝突範囲の結び付けによって、該処理対象モデル全体の衝突範囲を得ることができる。
【0083】
上記実施例による衝突範囲決定方法に基づき、本出願の実施例はさらに、衝突範囲決定装置700を提供した。装置700は、モデル分析機能を有する処理装置に配備される。
図7を参照すると、
図7は、本出願の実施例による衝突範囲決定装置の構造ブロック図である。装置700は、第一の決定ユニット701と、投射ユニット702と第二の決定ユニット703とを含み、
第一の決定ユニット701は、処理対象モデルに基づいて対応するメッシュ平面を決定するために用いられ、メッシュ平面は、複数のメッシュ領域を含み、
投射ユニット702は、処理対象モデルをメッシュ平面に投射することによって、メッシュ平面に対する処理対象モデルの高さ情報を得るために用いられ、そのうち、メッシュ領域に対応する高さ情報は、処理対象モデルにおけるメッシュ平面に対するサブモデルの高さを標識するために用いられ、サブモデルは、処理対象モデルがメッシュ領域の投射空間にある部分であり、
第二の決定ユニット703は、メッシュ平面と高さ情報に基づき、処理対象モデルの衝突範囲を得るために用いられる。
【0084】
ーつの可能な実現方式では、投射ユニット702は、具体的には、
メッシュ平面に対する平面視角度で、仮想カメラに基づいて処理対象モデルを含むカメラ視野を取得すること、
カメラ視野に対してメッシュ平面上で画像描画を行うことによって、高さ情報を付随するモデル2次元画像を得ることに用いられる。
【0085】
ーつの可能な実現方式では、メッシュ領域のサイズは、サンプルレートに基づいて決定されており、一つのメッシュ領域モデルに2次元画像における一つの画素に対応させる。
【0086】
ーつの可能な実現方式では、投射ユニット702は、具体的には、
カメラ視野に対して画像描画を行う過程において、画素シェーダに基づいてモデル2次元画像における画素に対応する高さ情報を決定するために用いられる。
【0087】
ーつの可能な実現方式では、メッシュ領域に対応する一つの高さ情報は、上面標識又は下面標識を含み、高さ情報の上面標識は、高さ情報がサブモデルにおける上面に属する位置に対応する高さ情報であることを標識するために用いられ、高さ情報の下面標識は、高さ情報がサブモデルにおける下面に属する位置に対応する高さ情報であることを標識するために用いられ、
第二の決定ユニット703は、具体的には、
メッシュ領域に対応する高さ情報をトラバースすることによって、上面標識と下面標識に基づいて高さ情報に対して高さ層区分を行うこと、
メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、処理対象モデルの衝突範囲を得ることに用いられる。
【0088】
ーつの可能な実現方式では、第二の決定ユニット703は、具体的には、
メッシュ領域に対応する高さ情報をトラバースすることによって、上面標識と下面標識に基づいて高さ情報を複数の未定の高さ層として区分すること、
隣接する未定の高さ層間の間隔を決定すること、
間隔が閾値よりも小さい隣接する未定の高さ層を一つの高さ層として統合すること、
間隔が閾値以上である隣接する未定の高さ層を異なる高さ層として決定することに用いられる。
【0089】
ーつの可能な実現方式では、閾値は、処理対象モデルに対応するゲームにおける制御対象のサイズに基づいて決定される。
【0090】
ーつの可能な実現方式では、第二の決定ユニット703は、具体的には、
メッシュ平面におけるメッシュ領域を区分し得た高さ層に基づき、メッシュ領域に基づいて高さ層に合う柱状構造を生成すること、
生成した柱状構造に基づいて処理対象モデルの衝突範囲を得ることに用いられる。
【0091】
ーつの可能な実現方式では、装置700は、フィルタリングユニットをさらに含み、
フィルタリングユニットは、高さ範囲によって高さ情報をフィルタリングし、標識した高さ範囲内にある高さ情報を保持するために用いられる。
【0092】
ーつの可能な実現方式では、装置700は、グラフィックスプロセッサを含む処理装置に配備される。
【0093】
本出願の実施例はさらに、衝突範囲決定のための機器を提供した。以下では、添付図面を結び付けながら、該機器を紹介する。
図8を参照すると、本出願の実施例は、衝突範囲決定のための機器を提供した。該機器はさらに、端末機器であってもよく、該端末機器は、携帯電話、タブレットパソコン、パーソナルデジタルアシスタント(Personal Digital Assistant、PDAと略称される)、コンピュータなどを含む任意のスマート端末であってもよい。端末機器を携帯電話として例示する。
【0094】
図8は、本出願の実施例による端末機器に関連する携帯電話の一部の構造のブロック図を示す。
図8を参照すると、携帯電話は、無線周波数(Radio Frequency、RFと略称される)回路810、メモリ820、入力ユニット830、表示ユニット840、センサ850、オーディオ回路860、ワイファイ(wireless fidelity、WiFiと略称される)モジュール870、プロセッサ880、及び電源890などの部品を含む。当業者が理解できるように、
図8に示す携帯電話構造は、携帯電話に対する限定を構成しなく、図示された部品の数よりも多く又は少ない部品、又はなんらかの部品の組み合わせ、又は異なる部品の配置を含んでもよい。
【0095】
以下、
図8を結び付けながら携帯電話の各構成部品について具体的に紹介する。
【0096】
RF回路810は、情報の送受信又は通話中の信号の受信と送信に用いられてもよく、特に、基地局の下りリンク情報を受信してから、プロセッサ880に処理させ、また、上りリンクを設計するデータを基地局に送信する。一般的には、RF回路810は、アンテナ、少なくとも一つの増幅器、送受信機、カプラ、低ノイズアンプ(Low Noise Amplifier、LNAと略称される)、デュプレクサなどを含むが、それらに限らない。なお、RF回路810はさらに、無線通信とネットワークを介して他の機器との通信を行ってもよい。上記無線通信は、いずれか一つの通信標準又はプロトコルを使用してもよく、グローバル移動通信システム(Global System of Mobile communication、GSMと略称される)、汎用パケット無線サービス(General Packet Radio Service、GPRSと略称される)、符号分割多元接続(Code Division Multiple Access、CDMAと略称される)、広帯域符号分割多元接続(Wide band Code Division Multiple Access、WCDMA(登録商標)と略称される)、長期の進化(Long Term Evolution、LTEと略称される)、電子メール、ショートメッセージサービス(Short Messaging Service、SMSと略称される)などを含むが、それらに限らない。
【0097】
メモリ820は、ソフトウェアプログラム及びモジュールを記憶するために用いられてもよく、プロセッサ880は、メモリ820に記憶されるソフトウェアプログラム及びモジュールを運行することによって、携帯電話の様々な機能アプリケーション、及び、データ処理を実行する。メモリ820は、主にプログラム記憶領域及びデータ記憶領域を含んでもよく、そのうち、プログラム記憶領域は、オペレーティングシステム、少なくとも一つの機能に必要なアプリケーションプログラム(例えば音声再生機能、画像再生機能など)などを記憶することができ、データ記憶領域は、携帯電話の使用によって作成されるデータ(例えば、オーディオデータ、電話帳など)などを記憶することができる。なお、メモリ820は、高速ランダムアクセスメモリを含んでもよく、不揮発性メモリ、例えば少なくとも一つの磁気ディスクメモリデバイス、フラッシュメモリデバイス、又は他の揮発性ソリッドステートメモリデバイスをさらに含んでもよい。
【0098】
入力ユニット830は、入力された数字又はキャラクタ情報の受信、及び携帯電話のユーザによる設置及び機能制御に関するキー信号入力の発生に用いられてもよい。具体的には、入力ユニット830は、タッチパネル831及び他の入力機器832を含んでもよい。タッチパネル831は、タッチスクリーンとも呼ばれ、その上又は付近でのユーザによるタッチ操作(例えばユーザが指、タッチペンなどの任意の適切な物体又は付属品を使用してタッチパネル831上又はタッチパネル831付近で行う操作)を收集することができ、予め設定されたプログラムに基づいて相応な接続装置を駆動する。選択的に、タッチパネル831は、タッチ検出装置とタッチコントローラという二つの部分を含んでもよい。そのうち、タッチ検出装置は、ユーザによるタッチ方位を検出し、タッチ操作による信号を検出し、信号をタッチコントローラに伝送し、タッチコントローラは、タッチ検出装置からタッチ情報を受信し、それをタッチポイント座標に変換してから、プロセッサ880に送信し、プロセッサ880から送信されてきたコマンドを受信して実行する。なお、抵抗式、静電容量式、赤外線及び表面音波などの様々なタイプを用いてタッチパネル831を実現してもよい。タッチパネル831以外、入力ユニット830は他の入力機器832をさらに含んでもよい。具体的には、他の入力機器832は、物理キーボード、機能キー(例えば、ボリューム制御ボタン、スイッチボタンなど)、トラックボール、マウス、操作レバーなどのうちの一つ又は複数を含んでもよいが、それらに限らない。
【0099】
表示ユニット840は、ユーザによって入力された情報又はユーザに提供される情報及び携帯電話の様々なメニューを表示するために用いられてもよい。表示ユニット840は、表示パネル841を含んでもよく、選択的に、液晶ディスプレイ(Liquid Crystal Display、LCDと略称される)、有機発光ダイオード(Organic Light-Emitting Diode、OLEDと略称される)などの形式で表示パネル841が配置されてもよい。さらに、タッチパネル831は、表示パネル841を覆ってもよく、タッチパネル831は、その上又は付近でのユーザによるタッチ操作を検出すると、プロセッサ880に伝送して、タッチイベントのタイプを特定し、その後、プロセッサ880は、タッチイベントのタイプに応じて表示パネル841上で相応な視覚出力を提供する。
図8では、タッチパネル831と表示パネル841は、二つの独立した部品として携帯電話の入力と入力機能を実現するものであるが、なんらかの実施例では、タッチパネル831と表示パネル841を集積して携帯電話の入力と出力機能を実現してもよい。
【0100】
携帯電話は、少なくとも一つのセンサ850、例えば光センサ、モーションセンサ及び他のセンサをさらに含んでもよい。具体的には、光センサは、環境光センサ及び接近センサを含んでもよく、そのうち、環境光センサは、環境光の明暗に応じて、表示パネル841の輝度を調整してもよい。接近センサは、携帯電話が耳元に移動した時、表示パネル841及び/又はバックライトをオフすることができる。モーションセンサの一種として、加速度計センサは、各方向(一般的には、三軸)での加速度の大きさを検出することができ、静止時、重力の大きさ及び方向を検出することができ、携帯電話の姿勢のアプリケーション(例えば縦横スクリーン切り替え、関連ゲーム、磁力計姿勢キャリブレーション)の識別、振動識別関連機能(例えば歩数計、タップ)などに用いられてもよく、携帯電話については、ジャイロ、気圧計、湿度計、温度計、赤外線センサなどの他のセンサをさらに配置してもよく、ここではこれ以上説明しない。
【0101】
オーディオ回路860、スピーカ861、マイクロホン862は、ユーザと携帯電話との間のオーディオインターフェースを提供することができる。オーディオ回路860は、受信したオーディオデータが変換された後の電気信号をスピーカ861に伝送し、スピーカ861によって音声信号に変換されて出力されてもよい。もう一方、マイクロホン862は、收集した音声信号を電気信号に変換し、オーディオ回路860が受信した後、オーディオデータに変換してから、オーディオデータ出力プロセッサ880を処理した後、RF回路810を介して、例えば別の携帯電話に送信し、又はオーディオデータをメモリ820に出力して、さらに処理を行う。
【0102】
WiFiは、短距離無線伝送技術に属し、携帯電話は、WiFiモジュール870によってユーザへの電子メールの送受信、ウェブページの閲覧、ストリーミングメディアへのアクセスなどを支援することができ、ユーザに無線のブロードバンドインターネットアクセスを提供した。
図8は、WiFiモジュール870を示したが、理解できるように、それは携帯電話の必要な構成ではなく、必要に応じて発明の本質を変更しない範囲で完全に省略されてもよい。
【0103】
プロセッサ880は、携帯電話の制御センターであり、様々なインターフェースと線路によって携帯電話全体の各部分に接続され、メモリ820に記憶されたソフトウェアプログラム及び/又はモジュールを運行又は実行すること、及びメモリ820に記憶されたデータを呼び出し、携帯電話の様々な機能を実行し、データを処理することで、携帯電話全体をモニタリングする。選択的に、プロセッサ880は、一つ又は複数の処理ユニットを含んでもよい。好ましくは、プロセッサ880は、アプリケーションプロセッサとモデムプロセッサを集積してもよく、そのうち、アプリケーションプロセッサは、主にオペレーティングシステム、ユーザインターフェース及びアプリケーションプログラムなどを処理するためのものであり、モデムプロセッサは、主に無線通信を処理するためのものである。理解できるように、上記モデムプロセッサは、プロセッサ880に集積されなくてもよい。
【0104】
携帯電話は、各部品に電力を供給する電源890(例えば電池)をさらに含み、好ましくは、電源は、電源管理システムによってプロセッサ880にロジック的に接続されてもよく、それにより、電源管理システムによって充放電管理及び消費電力管理などの機能を実現することができる。
【0105】
示されないが、携帯電話は、カメラ、ブルートゥース(登録商標)モジュールなどをさらに含んでもよく、ここではこれ以上説明しない。
【0106】
本実施例では、該端末機器に含まれるプロセッサ880はさらに、
処理対象モデルに基づいて対応するメッシュ平面を決定する機能であって、前記メッシュ平面は、複数のメッシュ領域を含む機能と、
前記処理対象モデルを前記メッシュ平面に投射することによって、前記メッシュ平面に対する前記処理対象モデルの高さ情報を得る機能であって、そのうち、前記メッシュ領域に対応する高さ情報は、前記処理対象モデルにおけるサブモデルの高さを標識するために用いられ、前記サブモデルは、前記処理対象モデルが前記メッシュ領域の投射空間に位置する部分である機能と、
前記メッシュ平面と前記高さ情報に基づき、前記処理対象モデルの衝突範囲を得る機能とを有する。
【0107】
本出願の実施例はさらに、サーバを提供した。
図9を参照すると、
図9は、本出願の実施例によるサーバ900の構造図であり、サーバ900は、配置又は性能の違いによって比較的に大きい差異が発生してもよい。一つ又は一つ以上の中央処理装置(Central Processing Units、CPUと略称される)922(例えば、一つ又は一つ以上のプロセッサ)とメモリ932、一つ又は一つ以上のアプリケーションプログラム942又はデータ944を記憶する記憶媒体930(例えば一つ又は一つ以上の大規模記憶機器)を含んでもよい。そのうち、メモリ932と記憶媒体930は、一時記憶又は永続記憶であってもよい。記憶媒体930に記憶されるプログラムは、一つ又は一つ以上のモジュール(図示は示されていない)を含んでもよく、各モジュールは、サーバ内の一連の命令に対する操作を含んでもよい。さらに、中央処理装置922は、記憶媒体930と通信するように設定されてもよく、サーバ900上で記憶媒体930内の一連の命令操作を実行する。
【0108】
サーバ900は、一つ又は一つ以上の電源926、一つ又は一つ以上の有線又は無線ネットワークインターフェース950、一つ又は一つ以上の入力出力インターフェース958、及び/又は、一つ又は一つ以上のオペレーティングシステム941、例えばWindows Server TM、Mac OS XTM、UnixTM、Linux(登録商標)TM、FreeBSDTMなどをさらに含んでもよい。
【0109】
上記実施例におけるサーバによって実行されるステップは、
図9に示されるサーバ構造に基づいてもよい。
【0110】
本出願の実施例はさらに、コンピュータプログラムを記憶するためのコンピュータ可読記憶媒体を提供した。該コンピュータプログラムは、前記各実施例に記載の衝突範囲決定方法におけるいずれか一つの実施の形態を実行するために用いられる。
【0111】
当業者が理解できるように、上記方法の実施例の全て又は一部のステップの実現は、プログラムによって関連するハードウェアを命令して完了してもよく、前記プログラムは、一つのコンピュータ可読記憶媒体に記憶されてもよく、該プログラムが実行される時、上記方法の実施例を含むステップを実行する。しかし前述した記憶媒体は、リードオンリーメモリ(英語、read-only memory、ROMと略称される)、RAM磁気ディスク又は光ディスクなどの様々なプログラムコードを記憶できる媒体のうちの少なくとも一つであってもよい。
【0112】
なお、本明細書における各実施例は、いずれも漸進的な方式で記述され、各実施例間の同じと類似部分を互いに参照してもよく、各実施例は、他の実施例との差異に焦点を当てている。特に、機器及びシステム実施例については、基本的に方法の実施例と類似しているため、記述は比較的に簡単であり、関連点は、方法の実施例の一部の説明を参照すればよい。以上に記述された機器及びシステム実施例は例示的なものに過ぎず、そのうち、分離された部品として説明されるユニットは、物理的に分離されてもよく、又は物理的に分離されなくてもよく、ユニットとして表示される部品は、物理的なユニットであってもよく、又は、物理的なユニットでなくてもよく、一つの場所に位置してもよく、又は複数のネットワークユニットに分布されてもよい。実際の必要に応じてそのうちの一部又は全てのモジュールを選択して本実施例の方案の目的を実現することができる。当業者は、創造的な労力を払わずに理解して実施することができる。
【0113】
以上に記述されているのは、本出願の一つの具体的な実施の形態に過ぎないが、本出願の保護範囲は、それに限らない。いかなる当業者が本出願に掲示される技術的範囲内に、容易に想到できる変化又は置き換えは、いずれも本出願の保護範囲内に含まれるべきである。そのため、本出願の保護範囲は、請求項の保護範囲を基にすべきである。