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

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

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

特許7397979画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム
<>
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図1
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図2
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図3
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図4
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図5
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図6
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図7
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図8
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図9
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図10
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図11
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図12
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図13
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図14
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図15
  • 特許-画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-05
(45)【発行日】2023-12-13
(54)【発明の名称】画像レンダリング方法および関連装置、並びにコンピュータデバイスおよびプログラム
(51)【国際特許分類】
   G06T 15/60 20060101AFI20231206BHJP
【FI】
G06T15/60
【請求項の数】 15
(21)【出願番号】P 2022523583
(86)(22)【出願日】2020-11-10
(65)【公表番号】
(43)【公表日】2023-01-18
(86)【国際出願番号】 CN2020127667
(87)【国際公開番号】W WO2021155690
(87)【国際公開日】2021-08-12
【審査請求日】2022-05-13
(31)【優先権主張番号】202010081668.9
(32)【優先日】2020-02-06
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュー,ファビン
(72)【発明者】
【氏名】カオ,シュン
(72)【発明者】
【氏名】ウェイ,ナン
(72)【発明者】
【氏名】クイ,シャオシュン
(72)【発明者】
【氏名】リー,コンビン
(72)【発明者】
【氏名】ゾー,ロンシン
(72)【発明者】
【氏名】リー,ウェンヤン
【審査官】鈴木 圭一郎
(56)【参考文献】
【文献】特開2016-100017(JP,A)
【文献】特表2015-515030(JP,A)
【文献】国際公開第2018/227100(WO,A1)
【文献】特表2012-505445(JP,A)
【文献】特開平04-222076(JP,A)
【文献】米国特許出願公開第2016/0148420(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/60
(57)【特許請求の範囲】
【請求項1】
コンピュータデバイスが実行する画像レンダリング方法であって、
ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得するステップであって、前記第1シャドウマップの解像度が、前記第2シャドウマップの解像度よりも小さいステップと、
前記第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定するステップであって、前記第1テクセル範囲が、シャドウエッジのトランジション距離に基づいて設定され、前記トランジション距離が、前記第1シャドウマップにおける前記ターゲット仮想オブジェクトのシャドウエッジを示すために使用されるステップと、
前記中心点に基づいて、スケーリング係数を使用して前記第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得るステップであって、前記スケーリング係数が、前記第1シャドウマップの解像度と前記第2シャドウマップの解像度との比率に基づいて得られるステップと、
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップと、
を含むことを特徴とする画像レンダリング方法。
【請求項2】
前記中心点に基づいて、スケーリング係数を使用して前記第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得るステップの後に、前記画像レンダリング方法は、さらに、
前記中心点から前記第2テクセル範囲内のテクセル点までの距離集合を取得するステップと、
前記距離集合から抽出条件を満たすテクセル点を抽出することで、エッジ距離を決定するステップと、
前記エッジ距離に基づいて、前記ターゲット仮想オブジェクトのシャドウのエッジ領域を決定するステップと、を含み、
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップは、
前記シャドウのエッジ領域に基づいて、前記第2シャドウマップの対応する部分をレンダリングすることで、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップ、を含む、
ことを特徴とする請求項1に記載の画像レンダリング方法。
【請求項3】
前記中心点から前記第2テクセル範囲内のテクセル点までの距離集合を取得するステップは、
前記第1シャドウマップの第1シャドウ値を決定するステップであって、前記第1シャドウ値が、第1半直線と前記ターゲット仮想オブジェクトとの交差状況に基づいて決定され、前記第1半直線が、前記第1シャドウマップと光源との接続線を示すステップと、
前記第2シャドウマップの第2シャドウ値を決定するステップであって、前記第2シャドウ値が、第2半直線と前記ターゲット仮想オブジェクトとの交差状況に基づいて決定され、前記第2半直線が、前記第2シャドウマップと光源との接続線を示すステップと、
前記第1シャドウ値と前記第2シャドウ値とが異なる場合、前記中心点から前記第2テクセル範囲内のテクセル点までの距離集合を取得するステップとを含む、
ことを特徴とする請求項2に記載の画像レンダリング方法。
【請求項4】
前記中心点から前記第2テクセル範囲内のテクセル点までの距離集合を取得するステップは、
第2テクセル範囲内の、前記ターゲット仮想オブジェクトが占有している画素によってカバーされたテクセル点を決定するステップと、
前記画素によってカバーされたテクセル点に基づいて前記距離集合を決定するステップと、を含む、
ことを特徴とする請求項3に記載の画像レンダリング方法。
【請求項5】
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップは、
前記第2テクセル範囲内のテクセル点を前記第1テクセル範囲内の対応するテクセル点にマッピングすることで関連テクセルを生成するステップであって、前記関連テクセルが、前記第1テクセル範囲内の1つのテクセル点と前記第2テクセル範囲内の複数のテクセル点との対応関係を示すステップと、
前記関連テクセルにおける距離フィールド値をそれぞれ決定するステップと、
前記距離フィールド値に基づいてシャドウレンダリングを行うステップと、を含む、
ことを特徴とする請求項1に記載の画像レンダリング方法。
【請求項6】
前記距離フィールド値に基づいてシャドウレンダリングを行うステップは、
前記距離フィールド値に基づいて反復計算を行うことで、前記距離フィールド値の変化状況を決定するステップと、
前記距離フィールド値の変化状況に基づいて、前記距離フィールド値の最小値を決定するステップと、
前記距離フィールド値の最小値に基づいて、シャドウレンダリングを行うステップと、を含む、
ことを特徴とする請求項5に記載の画像レンダリング方法。
【請求項7】
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップは、
光源の形状情報を取得するステップと、
前記形状情報および前記第2テクセル範囲に基づいて、半影パラメータを決定するステップと、
前記半影パラメータに基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップと、を含む、
ことを特徴とする請求項1~6のいずれか1項に記載の画像レンダリング方法。
【請求項8】
前記ターゲット仮想オブジェクトは、ゲームにおける仮想オブジェクトである、
ことを特徴とする請求項1に記載の画像レンダリング方法。
【請求項9】
コンピュータデバイスが実行する画像レンダリング方法であって、
マップパケットを取得するステップであって、前記マップパケットは、ターゲット仮想オブジェクトのシャドウレンダリングを示すためのものであり、前記マップパケットが、少なくとも2つの解像度でのシャドウマップを含むステップと、
第一プロセッサにおいて前記マップパケットの事前処理を行うステップと、
事前処理されたマップパケットを第二プロセッサに入力することで、請求項1~8のいずれか1項に記載の画像レンダリング方法を行うステップと、
を含むことを特徴とする画像レンダリング方法。
【請求項10】
前記第一プロセッサにおいて前記マップパケットの事前処理を行うステップは、
前記第一プロセッサによって前記マップパケットにおけるシーン情報を解析するステップと、
前記シーン情報に基づいて、少なくとも2つの解像度でのシャドウマップを同一の座標系に変換するステップと、を含む、
ことを特徴とする請求項9に記載の画像レンダリング方法。
【請求項11】
前記第一プロセッサにおいて前記マップパケットの事前処理を行うステップは、
前記第一プロセッサによって前記ターゲット仮想オブジェクトをラスタライズすることで、複数のターゲットパッチを得るステップであって、前記ターゲットパッチが、シャドウ領域の位置を示すステップ、を含む、
ことを特徴とする請求項9に記載の画像レンダリング方法。
【請求項12】
画像レンダリング装置であって、
ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得する取得ユニットであって、前記第1シャドウマップの解像度が前記第2シャドウマップの解像度よりも小さい取得ユニットと、
前記第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定する決定ユニットであって、前記第1テクセル範囲が、シャドウエッジのトランジション距離に基づいて設定され、前記トランジション距離が、前記第1シャドウマップにおける前記ターゲット仮想オブジェクトのシャドウエッジを示すために使用される決定ユニットと、
前記中心点に基づいて、スケーリング係数を使用して前記第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得るスケーリングユニットであって、前記スケーリング係数が、前記第1シャドウマップの解像度と前記第2シャドウマップの解像度との比率に基づいて得られるスケーリングユニットと、
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うレンダリングユニットと、
を含むことを特徴とする画像レンダリング装置。
【請求項13】
画像レンダリング装置であって、
マップパケットを取得する取得ユニットであって、前記マップパケットが、ターゲット仮想オブジェクトのシャドウレンダリングを示す取得ユニットと、
第一プロセッサにおいて前記マップパケットの事前処理を行う処理ユニットと、
事前処理されたマップパケットを第二プロセッサに入力することで、請求項1~8のいずれか1項に記載の画像レンダリング方法を行うレンダリングユニットと、
を含むことを特徴とする画像レンダリング装置。
【請求項14】
プロセッサと、前記プロセッサに接続されるメモリとを含むコンピュータデバイスであって、
前記メモリは、プログラムを記憶しており、
前記プロセッサは、前記プログラムを実行することで、請求項1~8のいずれか1項に記載の画像レンダリング方法、または、請求項9~11のいずれか1項に記載の画像レンダリング方法を実現するように構成される、
ことを特徴とするコンピュータデバイス。
【請求項15】
コンピュータに、請求項1~8または9~11のいずれか1項に記載の画像レンダリング方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年2月6日に中国特許局に提出され、出願番号が202010081668.9であり、出願名称が「画像レンダリング方法および関連装置」である中国特許出願の優先権を主張し、その全ての内容は、参照により本願に組み込まれている。
[技術分野]
本願は、コンピュータの技術分野に関し、特に、画像レンダリング方法および関連装置に関する。
【背景技術】
【0002】
3次元仮想環境を構築する多くのアプリケーションでは、仮想オブジェクトのシャドウ表示は、3次元仮想環境の表示効果を向上させる重要な手段である。
【0003】
一般的に、ゲームのレンダリングでは、物体のシャドウをリアルタイムで計算するために、シャドウマップ(shadow map)技術が通常に使用され、まず、光源の視点でシーンに対してシャドウマップレンダリングを行い、物体から光源までの距離情報を記憶し、そして、通常のレンダリングを視点から行って、シーンにおける各画素について光源までの位置を計算し、シャドウマップに記憶されている距離と比較して、物体がシャドウの中にあるかどうかを判定し、さらに、シャドウの状況に基づいて、物体のシャドウを計算する。
【0004】
ただし、光源の視点に基づいてシャドウマップをレンダリングする必要があり、また、通常のレンダリングを行う時にシャドウ計算のためにシャドウマップをサンプリングする必要もある。そのため、シーンの複雑さが非常に高い場合、つまり大量の物体および光源が存在している場合、シーン全体のシャドウ計算を光源ごとに実行すれば、計算量が膨大になり、シャドウのレンダリング効率に影響を及ぼす場合があり、シャドウ計算のために部分サンプリングを使用すれば、エッジのジャギー現象が発生しやすくなり、シャドウのレンダリング効果に影響を与えてしまう。
【発明の概要】
【発明が解決しようとする課題】
【0005】
これに鑑みて、本願は、少なくとも、複雑なシーンでシャドウレンダリングの計算量が大きいという問題を効果的に解決し、画像レンダリングプロセスの効率とレンダリング効果を向上させることができる画像レンダリング方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
本願の第1態様は、端末デバイスにおいて画像レンダリング機能を含むシステムまたはプログラムに適用可能な画像レンダリング方法を提供し、この方法は、具体的に、
ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得するステップであって、前記第1シャドウマップの解像度が、前記第2シャドウマップの解像度よりも小さいステップと、
前記第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定するステップであって、前記第1テクセル範囲が、シャドウエッジのトランジション距離に基づいて設定され、前記トランジション距離が、前記第1シャドウマップにおける前記ターゲット仮想オブジェクトのシャドウエッジを示すために使用されるステップと、
前記中心点に基づいて、スケーリング係数を使用して前記第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得るステップであって、前記スケーリング係数が、前記第1シャドウマップの解像度と前記第2シャドウマップの解像度との比率に基づいて得られるステップと、
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うステップと、を含む。
【0007】
本願の第2態様は、画像レンダリング装置を提供し、該装置は、
ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得する取得ユニットであって、前記第1シャドウマップの解像度が前記第2シャドウマップの解像度よりも小さい取得ユニットと、
前記第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定する決定ユニットであって、前記第1テクセル範囲が、シャドウエッジのトランジション距離に基づいて設定され、前記トランジション距離が、前記第1シャドウマップにおける前記ターゲット仮想オブジェクトのシャドウエッジを示すために使用される決定ユニットと、
前記中心点に基づいて、スケーリング係数を使用して前記第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得るスケーリングユニットであって、前記スケーリング係数が、前記第1シャドウマップの解像度と前記第2シャドウマップの解像度との比率に基づいて得られるスケーリングユニットと、
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うレンダリングユニットと、を含む。
【0008】
本願の第3態様は、画像レンダリング方法を提供し、該方法は、
マップパケットを取得するステップであって、前記マップパケットは、ターゲット仮想オブジェクトのシャドウレンダリングを示すためのものであり、前記マップパケットが、少なくとも2つの解像度でのシャドウマップを含むステップと、
中央プロセッサ(第一プロセッサともいう。以下、同様である。)において前記マップパケットの事前処理を行うステップと、
事前処理されたマップパケットをグラフィックプロセッサ(第二プロセッサともいう。以下、同様である。)に入力することで、上記の第1態様に記載の画像レンダリング方法を行うステップと、を含む。
【0009】
本願の第4態様は、画像レンダリング装置を提供し、該装置は、
マップパケットを取得する取得ユニットであって、前記マップパケットが、ターゲット仮想オブジェクトのシャドウレンダリングを示す取得ユニットと、
前記中央プロセッサにおいて前記マップパケットの事前処理を行う処理ユニットと、
事前処理されたマップパケットをグラフィックプロセッサに入力することで、上記の第1態様に記載の画像レンダリング方法を行うレンダリングユニットと、を含む。
【0010】
本願の第5態様は、プロセッサとメモリとを含むコンピュータデバイスを提供し、前記メモリは、プログラムコードを記憶し、前記プロセッサは、前記プログラムコードにおける命令に基づいて、上記の第1態様または第3態様に記載の画像レンダリング方法を実行する。
【0011】
本願の第6態様は、命令が記憶されているコンピュータ読み取り可能な記憶媒体を提供し、前記命令がコンピュータ上で実行されるとき、上記の第1態様または第3態様に記載の画像レンダリング方法を実行させる。
【0012】
本願の第7態様は、命令を含むコンピュータプログラム製品を提供し、前記命令がコンピュータ上で実行されるとき、上記の第1態様または第3態様に記載の画像レンダリング方法を実行させる。
【発明の効果】
【0013】
以上から分かるように、本願の実施例は、以下のような利点を有し、即ち、ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得し、ここで、第1シャドウマップの解像度が第2シャドウマップの解像度よりも小さく、次に、第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定し、中心点に基づいて、スケーリング係数を使用して第1テクセル範囲をスケーリング処理することで、第2テクセル範囲を得て、さらに、第2テクセル範囲に基づいて、ターゲット仮想オブジェクトに対してシャドウレンダリングを行う。これにより、シャドウマップに基づく画像レンダリングプロセスが実現され、低解像度のマップによりマップ位置を決定するため、計算量が少なくなり、画像レンダリングの効率を向上させ、その後、この位置に基づいて高解像度のシャドウマップをレンダリングし、これによって、シャドウの明瞭さが確保され、エッジジャギーの発生が回避され、画像レンダリングの効果を向上させる。
【図面の簡単な説明】
【0014】
図1】画像レンダリングシステムが動作する場合のネットワークのアーキテクチャ図である。
図2】本願の実施例によって提供される画像レンダリングのフローのアーキテクチャ図である。
図3】本願の実施例によって提供される画像レンダリング方法のフローチャートである。
図4】本願の実施例によって提供される画像レンダリング方法のシーンの概略図ある。
図5】本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図である。
図6】本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図である。
図7】本願の実施例によって提供される別の画像レンダリング方法のフローチャートである。
図8】本願の実施例によって提供される別の画像レンダリング方法のフローチャートである。
図9】本願の実施例によって提供される別の画像レンダリング方法のフローチャートである。
図10】本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図である。
図11】本願の実施例によって提供される別の画像レンダリング方法のフローチャートである。
図12】本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図である。
図13】本願の実施例によって提供される画像レンダリング装置の構成の概略図である。
図14】本願の実施例によって提供される別の画像レンダリング装置の構成の概略図である。
図15】本願の実施例によって提供される端末デバイスの構成の概略図である。
図16】本願の実施例によって提供されるサーバの構成の概略図である。
【発明を実施するための形態】
【0015】
本願の実施例は、画像レンダリング方法および関連装置を提供し、端末デバイスにおける、画像レンダリング機能を含むシステムまたはプログラムに適用され得て、即ち、ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得し、ここで、第1シャドウマップの解像度が第2シャドウマップの解像度よりも小さく、次に、第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定し、中心点に基づいて、スケーリング係数を使用して第1テクセル範囲をスケーリング処理することで、第2テクセル範囲を得て、さらに、第2テクセル範囲に基づいて、ターゲット仮想オブジェクトに対してシャドウレンダリングを行う。これにより、シャドウマップに基づく画像レンダリングプロセスが実現され、低解像度のマップによりマップ位置を決定するため、計算量が少なくなり、画像レンダリングの効率を向上させ、その後、この位置に基づいて高解像度のシャドウマップをレンダリングし、これによって、シャドウの明瞭さが確保され、エッジジャギーの発生が回避され、画像レンダリングの効果を向上させる。
【0016】
まず、本願の実施例において出現するいくつかの名詞について説明する。
【0017】
距離フィールド(DF:Distance Field)は、画像に対して距離変換を行った結果であり、ここで、距離変換は、画像におけるポイントのあるターゲット(例えば、エッジなど)上の最も近いポイントに対する距離を算出し、また、算出された最も近い距離を使用して該画素ポイントの階調を識別するために使用される。
【0018】
shadow mapは、光源の視点からシーン全体をレンダリングすることで、リアルタイムシャドウを生成する技術である。
【0019】
シャドウベーキング(Shadow baking)処理は、計算量の巨大な仮想ライティング(Virtual lighting)のためにテクスチャを生成するために使用され、シャドウマッピングとも呼ばれる。
【0020】
仮想オブジェクト(Virtual Object)は、3次元仮想環境におけるオブジェクトを指す。当該仮想オブジェクトは、仮想建築、仮想植物、仮想地形、仮想キャラクタ、仮想家具、仮想キャリア、および仮想動物/ペットのうちの少なくとも1つであり得る。
【0021】
符号付き距離フィールド関数(SDF:Signed Distance Function)については、メトリック空間には、集合Aが存在しており、符号付き距離フィールド関数は、所定のポイントxから集合Aのエッジまでの最短距離を定義するために使用される。xが集合Aの内側にある場合、関数値は0より大きく、xがエッジに近づくにつれて、関数値も0に近づき、xが集合Aの外側にある場合、関数値は0より小さくなる。符号付き距離フィールド関数は、下記のように定義されてもよく、即ち、xが集合Aの内側にある場合、関数値が0より小さく、xが集合Aの外側にある場合、関数値が0より大きい。
【0022】
テクセル(Texel)は、テクスチャ画素(Texture pixel)であり、テクスチャマップ(Texture mapping)の基本的な構成単位である。画像が1グループの画素(Pixel)で構成されるように、テクスチャ空間では、テクスチャマップも1グループのテクセルで構成される。
【0023】
半影については、不透明体が光源を遮る場合、光源が比較的大きな発光体であれば、発生するシャドウは2つの部分があり、完全に暗い部分を本影、半明半暗の部分を半影と呼ばれる。
【0024】
光線追跡(ray tracing)については、光線追跡は、コンピュータグラフィックスにおいて仮想シーンをレンダリングするための技術である。レンダリングを行うときに、画像における各画素から仮想シーンに向けて半直線を放出し、物体とシーンとの交差点を計算して、シェーディングレンダリング(Shading Rendering)を行う。光線追跡は、現実感の高いシーン効果をレンダリングすることができるが、相対的に、すごく高い計算オーバーヘッドも必要になる。
【0025】
理解すべきものとして、本願によって提供される画像レンダリング方法は、端末デバイスにおける、画像レンダリング機能を含むシステムまたはプログラム、例えば3次元シーンゲームに適用され得る。具体的には、画像レンダリングシステムは、図1に示すネットワークアーキテクチャにおいて動作することができ、図1に示すようなものは、画像レンダリングシステムが動作する場合のネットワークアーキテクチャ図であり、図から分かるように、画像レンダリングシステムは、複数の情報源との画像レンダリングを提供することができ、端末は、ネットワークを介して、サーバとの接続を確立し、さらにサーバから送信された複数のレンダリングデータを受信し、さらに端末内の仮想シーンにおける仮想オブジェクトのシャドウをレンダリングする。理解できるものとして、図1において、複数タイプの端末デバイスが示されているが、実際のシーンでは、より多くまたはより少ないタイプの端末デバイスは、画像レンダリングのプロセスに参加することができ、具体的な数やタイプは、実際のシーンによって決定され、ここでは限定されない。また、図1において、1つのサーバが示されているが、実際のシーンでは、複数のサーバも参加することができ、特に、複数の仮想オブジェクトがインタラクションを行うシーンでは、具体的なサーバ数は、実際のシーンによって決定される。
【0026】
注意すべきものとして、本実施例によって提供される画像レンダリング方法は、サーバの参加を必要とせずにオフラインで実行され得る。この場合、端末は、ローカルで他の端末と接続し、さらに、端末間の画像レンダリングプロセスを行う。
【0027】
理解できるものとして、上記の画像レンダリングシステムは、画像レンダリングの処理結果を提供するために、パーソナルモバイル端末上で実行されてもよく(たとえば、ローカルゲームシーン最適化ソフトウェアなど)、サーバ上で実行されてもよいし、サードパーティ機器上で実行されてもよい。具体的な画像レンダリングシステムは、プログラムの形式で上記の機器で実行されてもよく、上記の機器におけるシステムコンポーネントとして実行されてもよいし、クラウドサービスプログラムの一種として実行されてもよい。具体的な実行モードは、実際のシーンによって決定され、ここでは限定されない。
【0028】
3次元仮想環境を構築する多くのアプリケーションでは、仮想オブジェクトのシャドウ表示は、3次元仮想環境の表示効果を向上させる重要な手段である。
【0029】
一般的に、ゲームのレンダリングでは、物体のシャドウをリアルタイムで計算するために、シャドウマップ(shadow map)技術が通常に使用され、まず、光源の視点でシーンに対してシャドウマップレンダリングを行い、物体から光源までの距離情報を記憶し、そして、通常のレンダリングを視点から行って、シーンにおける各画素について光源までの位置を計算し、シャドウマップに記憶されている距離と比較して、物体がシャドウの中にあるかどうかを判定し、さらに、シャドウの状況に基づいて、物体のシャドウを計算する。
【0030】
ただし、光源の視点に基づいてシャドウマップをレンダリングする必要があり、また、通常のレンダリングを行う時にシャドウ計算のためにシャドウマップをサンプリングする必要もある。このため、シーンの複雑さが非常に高い場合、つまり大量の物体および光源が存在している場合、シーン全体のシャドウ計算を光源ごとに実行すれば、計算量が膨大になり、シャドウのレンダリング効率に影響を及ぼす場合があり、シャドウ計算のために部分サンプリングを使用すれば、エッジのジャギー現象が発生しやすくなり、シャドウのレンダリング効果に影響を与えてしまう。
【0031】
上記の問題を解決するために、本願は、画像レンダリング方法を提出する。この方法は、図2に示す画像レンダリングのフローフレームワークに適用され、図2に示すようなものは、本願の実施例によって提供される画像レンダリングのフローのアーキテクチャ図であり、まず、ターゲット仮想オブジェクトに対する高解像度のシャドウデータ(例えば、高解像度のシャドウマップ)と、低解像度のシャドウデータ(例えば、低解像度のシャドウマップ)とを画像データベースから取得し、低解像度のシャドウデータにより、ターゲット仮想オブジェクトのシャドウレンダリング位置を決定し、高解像度のデータにより、ターゲット仮想オブジェクトのシャドウのエッジを最適化し、これによって、ターゲット仮想オブジェクトの画像レンダリングの最適化が実現される。
【0032】
理解できるものとして、本願によって提供される方法は、プログラムの書き込みであり得、これにより、ハードウェアシステムにおける処理ロジックとしてもよく、または上記の処理ロジックを統合または外部接続の方式で実現するための画像レンダリング装置としてもよい。一実施形態として、この画像レンダリング装置は、ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得し、ここで、第1シャドウマップの解像度が第2シャドウマップの解像度よりも小さく、次に、第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定し、中心点に基づいて、スケーリング係数を用いて第1テクセル範囲をスケーリング処理して第2テクセル範囲を得て、さらに、第2テクセル範囲に従ってターゲット仮想オブジェクトにシャドウレンダリングを行う。これにより、シャドウマップに基づく画像レンダリングプロセスが実現され、低解像度のマップによりマップ位置を決定するため、計算量が少なくなり、画像レンダリングの効率を向上させ、その後、この位置に基づいて高解像度のシャドウマップをレンダリングし、これによって、シャドウの明瞭さが確保され、エッジジャギーの発生が回避され、画像レンダリングの効果を向上させる。
【0033】
上記のプロセスアーキテクチャを参照しながら、以下では、本願における画像レンダリング方法を説明し、図3を参照すると、図3は、本願の実施例によって提供される画像レンダリング方法のフローチャートであり、本願の実施例は、少なくとも、ステップ301~304を含む。
【0034】
301で、ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得する。
【0035】
本実施例では、第1シャドウマップの解像度は、第2シャドウマップの解像度よりも小さく、例えば、第1シャドウマップの解像度は32*32であり、第2シャドウマップの解像度は128*128である。これにより、解像度の低い第1シャドウマップに基づいてシャドウ位置を決定し、そして、そのシャドウ位置を基にして、解像度の高い第2シャドウマップに基づいてシャドウのエッジのレンダリングを行う。一方では、低解像度のマップにより位置を決定すると、データ処理量が少なくなり、大量のデータ処理リソースの占有が回避され、他方では、高解像度のマップによりシャドウのエッジの最適化を行うと、低解像度のマップでエッジジャギーが発生しやすいという問題が回避され、シャドウのレンダリングの効果を向上させる。例えば、実際のシーンでは、第1シャドウマップの解像度は、第2シャドウマップよりはるかに小さく、一般的に、高解像度のマップの幅と高さは、低解像度の約10倍であるため、異なる解像度のシャドウマップを取得することによって、データ処理量が大幅に削減されるとともに、シャドウレンダリングの効果が確保され得る。
【0036】
理解できるものとして、第1シャドウマップは、第2シャドウマップに対して距離フィールド変換を行って得られたものであってもよく、すなわち、高解像度シャドウマップの符号化に基づいて変換を行って得られた低解像度シャドウマップ、例えば、高解像度シャドウマップの符号化に対してダウンサンプリングを行うことによって得られた低解像度シャドウマップであってもよい。また、第1シャドウマップと第2シャドウマップは、それぞれ、光線追跡によって取得されたものであってもよく、具体的な方式が実際のシーンに応じて決定される。異なる解像度のマップは、相互に関連付けられているため、距離フィールド符号化によって変換され得て、これにより、シャドウレンダリングの柔軟性を向上させる。
【0037】
オプションとして、低解像度データで高解像度を表現する効果を達成するために、実際のシーンでは、第1シャドウマップの解像度と第2シャドウマップの解像度とは、ある倍数関係、すなわちスケーリング係数が存在する可能性があり、例えば、第2シャドウマップの解像度は、第1シャドウマップの解像度に対する比率が4であり、つまり、スケーリング係数は4である。
【0038】
理解できるものとして、上記のデータは、単なる概略的なものに過ぎず、シャドウマップは、データ形式の1種であり、低解像度データを使用して位置を特定することにより、部分的または全体的に高解像度データを使用してターゲットインターフェースをレンダリングする他のプロセスは、本願の実施例にも適用され得る。
【0039】
302で、第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定する。
【0040】
本実施例では、第1テクセル範囲は、シャドウのエッジからのトランジション距離(Transition Distance)に基づいて設定され、トランジション距離は、第1シャドウマップにおけるターゲット仮想オブジェクトのシャドウのエッジを示すために使用される。
【0041】
第1テクセル範囲の決定に関しては、図4を参照することができ、図4は、本願の実施例によって提供される画像レンダリング方法のシーンの概略図であり、図においては、仮想オブジェクトA2を通過するように各テクセルが光源A1に対して半直線を放出し、これにより、シャドウ値を計算することでシャドウのエッジを決定し、その後、テクセル間の距離から距離フィールドの範囲A3を計算し、すなわちシャドウ内のテクセルを決定し、さらに距離フィールドの範囲に基づいて、範囲の中心点A4を決定することができる。
【0042】
具体的には、シャドウ値の計算について、各テクセルに対して、光源に半直線を放出し、半直線と物体が交差している場合、物体はシャドウの中にあり、シャドウ値は0であり、交差していない場合、シャドウ値は1であり、シャドウのエッジに半影が存在している可能性がある情況に対して、この場合、シャドウ値は0~1の間である。
【0043】
また、距離フィールドの範囲の決定については、距離フィールドシャドウマップにおいて、各画素からシャドウのエッジまでの距離の値を計算すれば、膨大な計算オーバーヘッドをもたらす、ということを考慮すると、実際の計算では、シャドウエッジのトランジション距離を設定し、テクセルからシャドウのエッジのまでの距離がこの数値より大きい場合、物体はすでにシャドウのエッジにないことが示され、シャドウの距離フィールド値を計算する必要はなくなる。
【0044】
理解できるものとして、トランジション距離は、手動により予め設定されたパラメータであってもよく、普通のスタッフは、表現したいシーンスタイルに基づいてトランジション距離の変更を行うことがあり、トランジション距離は、画像レンダリングの履歴データにおける数値に基づいて決定されてもよく、トランジション距離は、現在のシーンに応じて調整されてもよいし、例えば、インターフェースのシーンが晴天から夕暮れに変化されるとき、シャドウがより長いである効果を表現すべきであるため、トランジション距離を大きくすることができる。
【0045】
具体的には、シャドウマップに基づく画像レンダリングでは、シャドウ距離フィールドにおける個々の要素に対して計算および符号化を行うる必要がある。まず、テクセルの中心点から最も近いシャドウのエッジまでの絶対距離を計算し、ここで、テクセルがシャドウ内にある場合、符号付き距離signedDistanceは、0より小さく、絶対距離の逆数であり、次に、以下の方法によって符号付き距離を0~1の間に正規化する。
【0046】
具体的には、以下の式によって行ってもよい。
【0047】
【数1】
ここで、
(外1)
は、テクセルの中心点から最も近いシャドウのエッジまでの絶対距離であり、
(外2)
は、符号付き距離であり、
(外3)
は、トランジション距離であり、
(外4)
は、正規化された距離である。正規化により、正規化後の距離が0であればシャドウの範囲内にある最大距離が示され、正規化後の距離が1であればシャドウの範囲外にある最大距離が示され、0.5であればシャドウのエッジが示される。
【0048】
303で、中心点に基づいて、スケーリング係数を使用して第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得る。
【0049】
本実施例では、スケーリング係数は、第1シャドウマップの解像度と第2シャドウマップの解像度との比率に基づいて得られる。
【0050】
具体的には、第2テクセル範囲の決定について、第1テクセル範囲の全てをカバーすることであってもよく、すなわち、第1シャドウマップの全体は第2シャドウマップに置き換えられ、第2テクセル範囲におけるテクセルと第2シャドウマップとの対応性により、第2シャドウマップをインターフェース内で便利で容易に生成することができ、これにより、仮想オブジェクトの画像レンダリングプロセスが実現される。
【0051】
オプションとして、実際の適用では、高解像度のマップ(第2シャドウマップ)の解像度は、通常、低解像度のマップ(第1シャドウマップ)の解像度の10倍の幅と高さ、つまり100倍のデータサイズである、ということを考慮すると、第2シャドウマップを直接に生成すると、大量のグラフィックスメモリが占有され、レンダリングプロセスの安定性に影響を与えてしまう。したがって、第1シャドウマップのエッジでジャギーが発生する可能性がある問題を解決するために、シャドウのエッジのみを第2シャドウマップのエッジ部分としてレンダリングするエッジレンダリング方法が採用され得る。具体的には、中心点から第2テクセル範囲におけるテクセル点までの距離の集合を取得し、そして、距離の集合のうち、抽出条件(例えば、距離の最小値)を満たすテクセル点を抽出してエッジ距離を決定し、さらに、エッジ距離に基づいて、ターゲット仮想オブジェクトのシャドウのエッジ領域を決定する。シャドウのエッジ領域を取得することにより、レンダリングプロセス中のグラフィックスメモリの占有率が低減され、レンダリングプロセスの安定性を向上させることができる。
【0052】
また、シャドウのエッジ領域は、一般的に、仮想オブジェクトによってカバーされた画素の近傍に出現される、ということを考慮すると、図5に示すように、本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図であり、図においては、仮想オブジェクトによってカバーされた画素B1と、第2テクセル範囲B2と、中心点B3(O)と、仮想オブジェクトがカバーしている画素によってカバーされたテクセルB4(P)と、最小距離B5とが含まれており、第1テクセル範囲の中心点B3から、第1テクセル範囲とスケーリング係数Sとに基づいて、第2テクセル範囲を得、そして、第2テクセル領域P毎に、テクセルPと中心点Oのシャドウ値が異なる場合、世界空間におけるPとOとの間の距離を計算して最小距離を更新し、さらに、最小距離の結線に基づいて、シャドウのエッジ領域を決定する。
【0053】
具体的には、第2テクセル範囲は、次の式によって計算され得る。
【0054】
【数2】
ここで、
(外5)
は、第2テクセル範囲であり、
(外6)
は、第1テクセル範囲であり、Sは、スケーリング係数である。
【0055】
世界空間におけるPとOの距離については、次の式を参照することができる。
【0056】
【数3】
ここで、dは、世界空間におけるPとOと間の距離であり、xおよびyは、Oの横軸と縦軸であり、xおよびyは、Pの横座標と縦座標である。
【0057】
仮想オブジェクトによってカバーされた画素に基づいて、シャドウエッジの更なる最適化を行うことにより、シャドウのエッジ領域の決定は、より正確になり、これによって、シャドウエッジで高解像度のマップを正確に生成することが確保され、画像レンダリングの正確性を向上させる。
【0058】
304で、第2テクセル範囲に基づいて、ターゲット仮想オブジェクトに対してシャドウレンダリングを行う。
【0059】
本実施例では、上記のステップ303で決定された第2テクセル範囲に基づいて、第2シャドウマップの生成を行い、ここで、第2シャドウマップの全体を挿入してもよく、第2シャドウマップに対してシャドウのエッジ領域を決定してから挿入してもよい。
【0060】
オプションとして、第2テクセル範囲内のテクセル点が比較的多いということを考慮すると、レンダリングプロセスの中に、応対し処理する必要があるテクセル点の数が多くなり、データ量が大きくなるため、第2テクセル範囲内のテクセル点を位置情報に基づいて第1テクセル範囲内のテクセル点にマッピングすることができ、すなわち、第1テクセル範囲内の1つのテクセル点が第2テクセル範囲内の複数のテクセル点に対応し、これにより、第1テクセル範囲内のテクセル点に基づいてレンダリングを行い、データ処理量を削減することができる。具体的には、まず、第2テクセル範囲内のテクセル点を、対応する第1テクセル範囲内のテクセル点にマッピングすることで、第1テクセル範囲内の1つのテクセル点と第2テクセル範囲内の複数のテクセル点との対応関係を示すための関連テクセルを生成し、そして、関連テクセルにおける距離フィールド値をそれぞれ決定し、さらに、距離フィールド値に基づいてシャドウレンダリングを行う。例えば、第2テクセル範囲内に9個のテクセル点が存在し、スケーリング係数が3であれば、9個のテクセル点を第1テクセル範囲内の1つのテクセル点の距離フィールドの計算過程に対応させることができ、これによって、データの処理量が低減され得る。
【0061】
オプションとして、レンダリングプロセスの正確性を確保するために、上記のマッピングプロセスは、複数回の反復(iteration)で実行されてもよく、つまり、複数回のマッピングが行われて、第2テクセル範囲内の距離フィールド値の最小値に基づいてシャドウレンダリングを行うことで、マッピングプロセスの正確性を向上させることができる。
【0062】
オプションとして、ターゲット仮想シーンにおける光源は、一般的に、固定の点ではなく、光源は、一定の形状が存在する可能性があるため、半影が生成されやすくなり、第2シャドウマップを第2テクセル範囲としてレンダリングした後、この半影に基づいて、レンダリングプロセスに対してさらなる最適化を行うすることもできる。具体的には、まず、光源の形状情報を取得し、そして、形状情報および第2テクセル範囲に基づいて、半影パラメータを決定し、さらに、半影パラメータに基づいて、ターゲット仮想オブジェクトに対してシャドウレンダリングを行う。図6に示すように、本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図であり、図においては、半影パラメータに対応する領域の計算プロセスに関連する各パラメータが示されており、具体的な式は、以下の通りである。
【0063】
【数4】
ここでは、
(外7)
は、半影領域C1であり、
(外8)
は、光源からインターフェースまでの距離C2であり、
(外9)
は、光源から遮蔽物までの距離C3、すなわち、光源から仮想オブジェクトまでの距離であり、
(外10)
は、光源形状パラメータC4である。
【0064】
さらに、半影領域C1と光源形状パラメータC4との比率に基づいて半影パラメータを決定して、シャドウマップをさらにレンダリングすることにより、レンダリング効果を向上させる。
【0065】
上記の実施例を参照して分かるように、ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得し、ここで、第1シャドウマップの解像度が第2シャドウマップの解像度よりも小さく、次に、第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定し、中心点に基づいて、スケーリング係数を使用して第1テクセル範囲をスケーリング処理することで、第2テクセル範囲を得て、さらに、第2テクセル範囲に基づいて、ターゲット仮想オブジェクトに対してシャドウレンダリングを行う。これにより、シャドウマップに基づく画像レンダリングプロセスが実現され、低解像度のマップによりマップ位置を決定するため、計算量が少なくなり、画像レンダリングの効率を向上させ、その後、この位置に基づいて高解像度のシャドウマップをレンダリングし、これによって、シャドウの明瞭さが確保され、エッジジャギーの発生が回避され、画像レンダリングの効果を向上させる。
【0066】
上記の実施例は、アンリアルエンジン(UE:Unreal Engine)の主要な機能である画像レンダリングのプロセスを説明している。UEでは、距離フィールドシャドウマップは、中央プロセッサ(CPU:Central Processing Unit)を介してオフラインでベーキングされて生成される必要があり、通常にベーキングされたシャドウマップには、物体がシャドウの中にあるかどうかが直接に記憶されることとは異なり、その各テクセルには、世界空間におけるこのテクセルの中心点からシャドウのエッジまでの距離と、このテクセルのシャドウ値との2つの部分のデータが含まれる。テクセルの中心からシャドウのエッジまでの距離を計算するために、光線追跡技術により、高解像度シャドウのエッジを計算し、その後、各テクセルに対して、がシャドウのエッジまでの距離を計算し、設定されたエッジトランジション距離により、距離フィールドを符号化して記憶する必要がある。
【0067】
ただし、CPUを使用して距離フィールドシャドウマップの計算を行うため、ベーキングにおいて、CPUの計算負荷が高くて、レンダリングプロセスの安定性に影響を与える。
【0068】
上記の問題を解決するために、以下では、具体的なレンダリングフローを参照しながら説明し、図7を参照すると、図7は、本願の実施例によって提供される別の画像レンダリング方法のフローチャートであり、本実施例は、ステップ701~703を含む。
【0069】
701で、マップパケットを取得する。
【0070】
本実施例では、マップパケットは、ターゲット仮想オブジェクトのシャドウレンダリングを示すためのものであり、このマップパケットは、少なくとも2つの解像度でのシャドウマップを含み得て、また、これらのシャドウマップは、レンダリングプロセス中の呼び出しを容易にするために、あるスケーリング係数での解像度を使用して選択され得る。
【0071】
702で、中央プロセッサにおいてマップパケットの事前処理を行う。
【0072】
本実施例では、後続のグラフィックプロセッサ(GPU:Graphic Processing Unit)におけるマルチスレッド処理を容易にするために、CPUにおいてマップパケットを事前処理することができる。
【0073】
具体的には、中央プロセッサによりターゲット仮想オブジェクトをラスタライズすることで、複数のターゲットパッチ(patch)を取得することができ、ターゲットパッチは、シャドウ領域の位置を示し、これにより、光線追跡中のシャドウ値の正確性が確保される。
【0074】
オプションとして、異なる仮想シーンの座標系は異なる可能性があるため、中央プロセッサによってマップパケットにおけるシーン情報を解析し、そして、シーン情報に基づいて、少なくとも2つの解像度でのシャドウマップを同一の座標系に変換することができる。
【0075】
703で、事前処理されたマップパケットをグラフィックプロセッサに入力することで、画像レンダリングを行う。
【0076】
本実施例では、事前処理されたマップパケットに対するグラフィックプロセッサの処理は、主に、OptixおよびCudaプラットフォームに基づいて行われる。一方では、CUDAによって提供されるプログラミングAPIに基づいて、GPU上で並列ユニットを利用してシャドウ計算を並列に高速化することができ、即ち、上記の図3に示す実施例における反復計算のプロセスである。
【0077】
他の一方では、Optimxの光線追跡フレームワークに基づいて、シーンをグラフィックスカードにアップロードすることで、GPUの光線追跡コアを使用して、光線追跡に対してハードウェアで高速化することができ、これにより、光線追跡の効率を大幅に向上させる。
【0078】
上記の実施例を参照しながら分かるように、GPU反復に基づく距離フィールドシャドウマップのベーキング方法は、テクセル間の計算の相互独立性を有し、GPUの並行性特性に適しており、これにより、距離フィールドシャドウのベーキング性能を大幅に向上させ、異なるシーンの複雑さおよびマップの解像度に基づいて、単一物体の距離フィールドシャドウのベーキング時間は100ms~1sである。また、CPU全体がフル負荷で多忙な状態になることが回避され得て、つまり、CPUの計算をGPUに移行することで、CPU使用率が大幅に低減され得る。
【0079】
さらに、各物体のマップパケットは互いに独立しているため、物体ごとにレンダリングする方式は、ベーキングシステムの応答速度を向上させ、開発効率を向上させることができる。GPUに基づくベーキングシステムは、CPUの使用率を低下させるだけではなく、GPUに記憶されている距離フィールドシャドウマップは、CUDAを介してゲームシーンにデータを直接に伝送することができ、ゲームシーンのシャドウベーキングに対してより適している。
【0080】
以下、具体的なフローを参照しながら、上記の画像レンダリング方法について説明し、本願の実施例によって提供される別の画像レンダリング方法のフローチャートである図8に示すように、まず、CPUは、単一物体の距離フィールドシャドウマップのレンダリングについて、少なくとも2つの解像度用のバッファ(Buffer)データを準備する必要があり、また、2つの解像度用のBufferにおける各テクセルは、世界座標系での位置を記憶する必要がある。ここで、高解像度用のBufferは、主に、テクセルがシャドウにあるかどうかを計算するために使用され、これにより、高解像度でのシャドウのエッジが決定される。低解像度用のBufferは、主に、テクセルの中心からシャドウのエッジまでの距離を計算するために使用され、これにより、高解像度用のBufferでのレンダリングが容易に実行される。また、CPUには、物体のメッシュデータ、およびメッシュ頂点ごとのLight map座標が記憶されており、これらのデータを準備するために、CPUは、物体のメッシュデータをラスタライズし、空間位置、およびテクセルがマッピングされたかどうかのための識別子をBufferに書き込む必要がある。
【0081】
次に、これらのシーンデータおよびマップデータをGPUにアップロードして、さらに、テクセル間のマッピングを決定し、例えば、テクセルは、物体にマッピングされず、このようなテクセルについては、シャドウを計算する必要がなく、距離フィールド値を計算する必要もないし、これらの画素を1つの識別ビットで識別し、これにより、必要ではない計算オーバーヘッドが低減され得る。
【0082】
さらに、レンダリングを必要とする物体がインターフェースにおいて存在するかどうかを判断し、インターフェースにおいて存在している場合、関連するデータを呼び出し、上記の図9で説明したような画像レンダリングプロセスを呼び出すことで、レンダリング結果を得る。本願の実施例によって提供される別の画像レンダリング方法のフローチャートである図9に示すように、レンダリングプロセスが開始された後、準備された第1シャドウマップと第2シャドウマップをそれぞれ光線追跡することでシャドウ値を決定し、さらに、第1シャドウマップについて、トランジション距離によってテクセル範囲を決定し、第2シャドウマップについて、エッジ検出を行うことで、テクセルからシャドウのエッジまでの最小距離を決定し、これにより、第2シャドウマップをシャドウ部分でレンダリングして、さらに、距離フィールドの符号化を行い、符号化されたものに対応するシャドウ画像を調整する。また、第2シャドウマップに対する光線追跡を行った後に、インターフェースから遮蔽物までの距離を計算することで、半影パラメータを計算して、レンダリングされたシャドウマップをさらにレンダリングすることができ、これにより、GPUに基づく画像レンダリングプロセスが実現され、一方では、CPUの使用率が低減され、レンダリングプロセスの正常な動作が確保され、他の一方では、シャドウマップのエッジのジャギーが発生する情況が低減され、レンダリング効果を向上させる。本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図である図10に示すように、図におけるシャドウエッジD1でジャギーが表現されてしまうが、上記のフローにより処理を行ってシャドウエッジD2が得られ、ここから分かるように、上記のフローを採用することにより、シャドウのエッジのジャギーが明らかに消失している。
【0083】
本実施例における画像レンダリング方法は、ゲームの画像レンダリングプロセスに適用され得ており、以下では、ゲームという具体的なシーンを参照しながら説明して、本実施例によって提供される別の画像レンダリング方法のフローチャートである図11に示すように、本実施例は、ステップ1101~1103を含む。
【0084】
1101で、ゲームにおける特徴要素のトリガー状況を取得する。
【0085】
本実施例では、特徴要素は、シャドウ表示を開始するためのボタンであってもよく、ある閾値の判定であってもよい。例えば、特徴要素は、ゲームインターフェースにおいてプレイヤの仮想オブジェクトの光源に対する角度を示すものであり、この角度が30°よりも大きい場合、この特徴要素がトリガーされたとみなされ、すなわち、画像レンダリングプロセスが呼び出される。
【0086】
1102で、レンダリングを必要とする仮想オブジェクトを決定する。
【0087】
本実施例では、仮想オブジェクトは、仮想建物、仮想植物、仮想地形、仮想キャラクタ、仮想家具、仮想キャリア、および仮想動物/ペットのうちの少なくとも1種であってもよい。
【0088】
具体的には、レンダリングを必要とする仮想オブジェクトは、ゲームインターフェースにおいてシャドウ効果が存在している仮想オブジェクトであり、例えば、プレイヤが制御するキャラクタである。
【0089】
1103で、レンダリングされたシャドウマップをグラフィックプロセッサによって呼び出して、シーンを更新する。
【0090】
本実施例では、画像レンダリングのプロセスについて、上記の図3または図7の実施例によって説明される方法を参照し、ここでは、詳しく説明しない。
【0091】
具体的には、本願の実施例によって提供される別の画像レンダリング方法のシーンの概略図である図12に示すように、図には、シャドウエッジE1でジャギーが表示されてしまうが、上記のフローにより処理を行ってシャドウエッジE2が得られ、ここから分かるように、上記の画像レンダリングプロセスを採用することにより、シャドウのエッジのジャギーが明らかに消失している。
【0092】
ゲームシーンにおける仮想オブジェクトを画像レンダリングすることにより、ゲーム中の立体感を向上させ、特に、3次元ゲームにおいて、ゲームシーンの豊かさを向上させ、ユーザの体験を向上させる。
【0093】
本願の実施例の上記の実施形態をより良く実行するために、以下では、上記の実施形態を実行するための関連装置が提供される。図13を参照すると、図13は、本願の実施例によって提供される画像レンダリング装置の構成の概略図であり、画像レンダリング装置1300は、
ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得する取得ユニット1301であって、前記第1シャドウマップの解像度が前記第2シャドウマップの解像度よりも小さい取得ユニット1301と、
前記第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定する決定ユニット1302であって、前記第1テクセル範囲が、シャドウエッジのトランジション距離に基づいて設定され、前記トランジション距離が、前記第1シャドウマップにおける前記ターゲット仮想オブジェクトのシャドウエッジを示すために使用される決定ユニット1302と、
前記中心点に基づいて、スケーリング係数を使用して前記第1テクセル範囲をスケーリング処理することで第2テクセル範囲を得るスケーリングユニット1303であって、前記スケーリング係数が、前記第1シャドウマップの解像度と前記第2シャドウマップの解像度との比率に基づいて得られるスケーリングユニット1303と、
前記第2テクセル範囲に基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うレンダリングユニット1304と、を含む。
【0094】
オプションとして、本願のいくつかの可能な実施形態において、前記スケーリングユニット1303は、また、前記中心点から前記第2テクセル範囲内のテクセル点までの距離集合を取得するために使用される。
【0095】
前記スケーリングユニット1303は、また、前記距離集合から抽出条件を満たすテクセル点を抽出することで、エッジ距離を決定するために使用される。
【0096】
前記スケーリングユニット1303は、また、前記エッジ距離に基づいて、前記ターゲット仮想オブジェクトのシャドウのエッジ領域を決定するために使用される。
【0097】
前記レンダリングユニット1304は、具体的に、前記シャドウのエッジ領域に基づいて、前記第2シャドウマップの対応する部分をレンダリングすることで、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うために使用される。
【0098】
オプションとして、本願のいくつかの可能な実施形態において、前記スケーリングユニット1303は、具体的に、前記第1シャドウマップの第1シャドウ値を決定するために使用され、前記第1シャドウ値が、第1半直線と前記ターゲット仮想オブジェクトとの交差状況に基づいて決定され、前記第1半直線が、前記第1シャドウマップと光源との接続線を示すために使用され、
前記スケーリングユニット1303は、具体的に、前記第2シャドウマップの第2シャドウ値を決定するために使用され、前記第2シャドウ値が、第2半直線と前記ターゲット仮想オブジェクトとの交差状況に基づいて決定され、前記第2半直線が、前記第2シャドウマップと光源との接続線を示すために使用され、
前記スケーリングユニット1303は、具体的に、前記第1シャドウ値と前記第2シャドウ値とが異なる場合、前記中心点から前記第2テクセル範囲内のテクセル点までの距離集合を取得するために使用される。
【0099】
オプションとして、本願のいくつかの可能な実施形態において、前記スケーリングユニット1303は、具体的に、第2テクセル範囲内の、前記ターゲット仮想オブジェクトが占有している画素によってカバーされたテクセル点を決定するために使用され、
前記スケーリングユニット1303は、具体的に、前記画素によってカバーされたテクセル点に基づいて前記距離集合を決定するために使用される。
【0100】
オプションとして、本願のいくつかの可能な実施形態において、前記レンダリングユニット1304は、具体的に、前記第2テクセル範囲内のテクセル点を前記第1テクセル範囲内の対応するテクセル点にマッピングすることで関連テクセルを生成するために使用され、前記関連テクセルが、前記第1テクセル範囲内の1つのテクセル点と前記第2テクセル範囲内の複数のテクセル点との対応関係を示すために使用され、
前記レンダリングユニット1304は、具体的に、前記関連テクセルにおける距離フィールド値をそれぞれ決定するために使用され、
前記レンダリングユニット1304は、具体的に、前記距離フィールド値に基づいてシャドウレンダリングを行うために使用される。
【0101】
オプションとして、本願のいくつかの可能な実施形態において、前記レンダリングユニット1304は、具体的に、前記距離フィールド値に基づいて反復計算を行うことで、前記距離フィールド値の変化状況を決定するために使用され、
前記レンダリングユニット1304は、具体的に、前記距離フィールド値の変化状況に基づいて、前記距離フィールド値の最小値を決定するために使用され、
前記レンダリングユニット1304は、具体的に、前記距離フィールド値の最小値に基づいて、シャドウレンダリングを行うために使用される。
【0102】
オプションとして、本願のいくつかの可能な実施形態において、前記レンダリングユニット1304は、さらに、光源の形状情報を取得するために使用され、
前記レンダリングユニット1304は、具体的に、前記形状情報および前記第2テクセル範囲に基づいて、半影パラメータを決定するために使用され、
前記レンダリングユニット1304は、具体的に、前記半影パラメータに基づいて、前記ターゲット仮想オブジェクトに対してシャドウレンダリングを行うために使用される。
【0103】
ターゲット仮想オブジェクトの第1シャドウマップおよび第2シャドウマップを取得し、ここで、第1シャドウマップの解像度が第2シャドウマップの解像度よりも小さく、次に、第1シャドウマップにおける各テクセルの第1テクセル範囲および中心点を決定し、中心点に基づいて、スケーリング係数を使用して第1テクセル範囲をスケーリング処理することで、第2テクセル範囲を得て、さらに、第2テクセル範囲に基づいて、ターゲット仮想オブジェクトに対してシャドウレンダリングを行う。これにより、シャドウマップに基づく画像レンダリングプロセスが実現され、低解像度のマップによりマップ位置を決定するため、計算量が少なくなり、画像レンダリングの効率を向上させ、その後、この位置に基づいて高解像度のシャドウマップをレンダリングし、これによって、シャドウの明瞭さが確保され、エッジジャギーの発生が回避され、画像レンダリングの効果を向上させる。
【0104】
本発明の実施例は、また、別の画像レンダリング装置1400を提供し、本願の実施例によって提供される他の画像レンダリング装置の構成の概略図である図14に示すように、下記のユニっと、即ち、
マップパケットを取得する取得ユニット1401であって、前記マップパケットが、ターゲット仮想オブジェクトのシャドウレンダリングを示す取得ユニット1401と、
中央プロセッサにおいて前記マップパケットの事前処理を行う処理ユニット1402と、
事前処理されたマップパケットをグラフィックプロセッサに入力することで、第1態様に記載の画像レンダリング方法を行うレンダリングユニット1403と、を含む。
【0105】
オプションとして、本願のいくつかの可能な実施形態において、前記処理ユニット1402は、具体的に、前記中央プロセッサによって前記マップパケットにおけるシーン情報を解析するために使用され、
前記処理ユニット1402は、具体的に、前記シーン情報に基づいて、少なくとも2つの解像度でのシャドウマップを同一の座標系に変換するために使用される。
【0106】
オプションとして、本願のいくつかの可能な実施形態において、前記処理ユニット1402は、具体的に、前記中央プロセッサによって前記ターゲット仮想オブジェクトをラスタライズすることで、複数のターゲットパッチを得るために使用され、前記ターゲットパッチが、シャドウ領域の位置を示すために使用される。
【0107】
本願の実施例は、また、端末デバイスを提供し、本願の実施例によって提供される別の端末デバイスの構造の概略図である図15に示すように、説明を容易にするために、本願の実施例に関連する部分のみが示されており、具体的な技術的詳細内容が開示されておらず、本願の実施例の方法の部分を参照されたい。この端末は、携帯電話、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA:personal digital assistant)、販売端末(POS:point of sales)、車載コンピュータなどを含む任意の端末デバイスであり得る。端末が携帯電話である場合を例にする。
【0108】
図15は、本願の実施例によって提供される端末に係る携帯電話の部分的な構造を示すブロック図である。図15を参照すると、携帯電話は、無線周波数(RF:radio frequency)回路1510、メモリ1520、入力ユニット1530、表示ユニット1540、センサー1550、オーディオ回路1560、ワイファイ(WiFi:wireless fidelity)モジュール1570、プロセッサ1580、および電源1590などの構成要素を含む。当業者は、図15に示される携帯電話の構造は、携帯電話の限定を構成するものではなく、図よりも多くまたは少ない構成要素を含んでもよく、または、いくつかの構成要素を組み合わせてもよいし、または、異なる構成要素の配置を採用してもよいこと、ということを理解されたい。
【0109】
以下では、図15を参照しながら、携帯電話の様々な構成要素について具体的に説明する。
【0110】
RF回路1510は、情報の送受信または通話中に使用され、信号の受信および送信の後、特に、基地局の下り情報を受信した後、処理するためにプロセッサ1580に提供し、また、アップリンクように設計されたデータを基地局に送信する。通常、RF回路1510は、アンテナ、少なくとも1つの増幅器、送受信機、カプラ、低雑音増幅器(LNA:low noise amplifier)、デュプレクサなどを含むが、これらに限定されない。さらに、RF回路1510は、無線通信を介してネットワークおよび他のデバイスと通信することもできる。上記の無線通信は、任意の通信規格またはプロトコルを使用することができ、グローバル移動体通信システム(GSM:global system of mobile communication)、汎用パケット無線サービス(GPRS:general packet radio service)、符号分割多元接続(CDMA:code division multiple access)、広帯域符号分割多元接続(WCDMA:Wideband code division multiple access)、長期的進化(LTE:Long Term Evolution)、電子メール、ショートメッセージサービス(SMS:short messaging service)などを含むが、これらに限定されない。
【0111】
メモリ1520は、ソフトウェアプログラムおよびモジュールを記憶するために使用され得ており、プロセッサ1580は、メモリ1520に記憶されているソフトウェアプログラムおよびモジュールを実行することによって、携帯電話の様々な機能アプリケーションおよびデータ処理を実行する。メモリ1520は、主に、記憶プログラム領域と記憶データ領域とを含み得ており、ここで、記憶プログラム領域には、オペレーティングシステム、少なくとも1つの機能(例えば、音声再生機能、画像再生機能など)に必要とされるアプリケーションプログラムが記憶され得て、記憶データ領域には、携帯電話の使用に応じて作成されたデータ(例えば、オーディオデータ、電話帳など)などが記憶され得る。さらに、メモリ1520は、高速ランダムアクセスメモリを含んでもよく、少なくとも1つの磁気ディスクメモリデバイス、フラッシュメモリデバイス、または他の不揮発性固体メモリデバイスのような不揮発性メモリを含んでもよい。
【0112】
入力ユニット1530は、入力された数字または文字情報を受信し、携帯電話のユーザ設定および機能制御に関連するキー信号入力を生成するために使用され得る。具体的には、入力ユニット1530は、タッチパネル1531および他の入力デバイス1532を含んでもよい。タッチパネル1531は、タッチスクリーンとも呼ばれ、ユーザによるその上またはその近傍でのタッチ操作(例えば、ユーザによって指、スタイラスなどの任意の適切な物体またはアクセサリを使用して、タッチパネル1531上またはタッチパネル1531の近傍での操作、およびタッチパネル1531上のある範囲内の遠隔タッチ操作)を収集して、予め設定されたプログラムに基づいて、対応する接続装置を駆動することができる。オプションとして、タッチパネル1531は、タッチ検出装置とタッチコントローラとの2つの部分を含んでもよい。ここで、タッチ検出装置は、ユーザのタッチ方位を検出して、タッチ操作によってもたらされる信号を検出し、これらの信号をタッチコントローラに送信し、タッチコントローラは、タッチ検出装置からタッチ情報を受信し、それを接触点の座標に変換して、さらにプロセッサ1580に送信し、プロセッサ1580から送信された命令を受信して実行することができる。また、タッチパネル1531は、抵抗式、静電容量式、赤外線および表面音波などの多様なタイプで実装され得る。入力ユニット1530は、タッチパネル1531に加えて、他の入力デバイス1532を含んでもよい。具体的には、他の入力デバイス1532は、物理キーボード、ファンクションキー(例えば、音量制御キー、スイッチキーなど)、トラックボール、マウス、操作レバーなどのうちの1つまたは複数を含んでもよいが、これらに限定されない。
【0113】
表示ユニット1540は、ユーザによって入力された情報またはユーザに提供された情報、および携帯電話の様々なメニューを表示するために使用され得る。表示ユニット1540は、表示パネル1541を含んでもよく、オプションとして、表示パネル1541は、液晶ディスプレイ(LCD:Liquid Crystal display)、有機発光ダイオード(OLED:Organic Light-emitting diode)などの形態で構成されてもよい。さらに、タッチパネル1531は、表示パネル1541を覆うことができ、タッチパネル1531がその上またはその近傍でのタッチ操作を検出した後、タッチイベントのタイプを決定するためにプロセッサ1580に送信し、その後、プロセッサ1580は、タッチイベントのタイプに応じて、対応する視覚的出力を表示パネル1541上に提供する。図15では、タッチパネル1531と表示パネル1541は、2つの独立した構成要素として携帯電話の入力および出力機能を実現するものであるが、いくつかの実施例では、タッチパネル1531と表示パネル1541とを統合して携帯電話の入力および出力機能を実現してもよい。
【0114】
携帯電話は、また、少なくとも1つのセンサー1550を含んでもよく、例えば光センサー、動きセンサー、および他のセンサーなどである。具体的には、光センサーは、環境光の明暗に応じて表示パネル1541の明るさを調整することができる環境光センサーと、携帯電話が耳元に移動したときに表示パネル1541および/またはバックライトをオフにすることができる近接センサーとを含んでもよい。動きセンサーの一つとして、加速度計センサーは、各方向(一般的には、3軸)の加速度の大きさを検出し、静止時に重力の大きさおよび方向を検出することができ、携帯電話の姿勢を認識するための用途(例えば、縦横画面の切り替え、関連ゲーム、磁力計の姿勢校正)、振動識別関連機能(例えば、歩数計、ノック)などに適用され得、携帯電話にも搭載可能なジャイロスコープ、気圧計、湿度計、温度計、赤外線センサーなどの他のセンサーについては、ここでは詳しく説明しない。
【0115】
オーディオ回路1560、スピーカ1561、およびマイクロフォン1562は、ユーザと携帯電話との間のオーディオインターフェースを提供することができる。オーディオ回路1560は、受信したオーディオデータを変換して得られた電気信号をスピーカ1561に送信し、スピーカ1561は、それを音声信号に変換して出力し、他の一方で、マイクロフォン1562は、収集した音声信号を電気信号に変換し、オーディオ回路1560は、それを受信した後にオーディオデータに変換し、処理するためにこのオーディオデータをプロセッサ1580に出力してRF回路1510を介して例えば別の携帯電話に送信するか、または、さらに処理するためにこのオーディオデータをメモリ1520に出力する。
【0116】
WiFiは、近距離無線伝送技術に属し、携帯電話は、WiFiモジュール1570を介して、ユーザの電子メールの送受信、Webページの閲覧やストリーミングメディアへのアクセスなどをサポートすることができ、ワイヤレスブロードバンドインターネットアクセスをユーザに提供する。図15は、WiFiモジュール1570を示しているが、理解できるものとして、それは、携帯電話の必須構成ではなく、必要に応じて、発明の本質を変更しない範囲内で省略されてもよい。
【0117】
プロセッサ1580は、携帯電話の制御センターであり、様々なインターフェースおよび回線を利用して携帯電話全体の各部を接続し、メモリ1520内に記憶されているソフトウェアプログラムおよび/またはモジュールを作動または実行し、メモリ1520内に記憶されているデータを呼び出すことで、携帯電話の様々な機能を実行してデータを処理し、これにより、携帯電話の全体を監視する。オプションとして、プロセッサ1580は、1つまたは複数の処理ユニットを含んでもよく、オプションとして、プロセッサ1580は、オペレーティングシステム、ユーザインターフェース、およびアプリケーションプログラムなどを主に処理するためのアプリケーションプロセッサと、無線通信を主に処理するためのモデムプロセッサとを集積することができる。理解できるものとして、上記のモデムプロセッサは、プロセッサ1580に統合されなくてもよい。
【0118】
携帯電話は、また、各構成要素に電力を供給するための電源1590(例えば、バッテリ)を含み、オプションとして、電源は、電源管理システムを介して、プロセッサ1580に論理的に接続されてもよく、これにより、電源管理システムを介して、充放電の管理および電力消費の管理などの機能を実現することができる。
【0119】
図示されていないが、携帯電話は、また、カメラ、ブルートゥースモジュールなども含んでもよいが、ここでは詳しく説明しない。
【0120】
本願の実施例では、この端末に含まれるプロセッサ1580は、また、上記の画像レンダリング方法の各ステップを実行する機能を有する。
【0121】
本願の実施例は、また、サーバを提供し、図16を参照して、図16は本願の実施例によって提供されるサーバの構造の概略図であり、このサーバ1600は、構成や性能によって比較的大きな差異が生じる場合があり、1つまたは複数の中央プロセッサ(CPU:central processing units)1622(例えば、1つまたは複数のプロセッサ)およびメモリ1632と、アプリケーションプログラム1642またはデータ1644を記憶する1つまたは複数の記憶媒体1630(例えば、1つまたは複数の大容量記憶デバイス)と、を含んでもよい。ここで、メモリ1632および記憶媒体1630は、一時的に記憶してもよく、永続的に記憶っしてもよい。記憶媒体1630に記憶されているプログラムは、1つまたは複数のモジュール(図示せず)を含んでもよく、各モジュールは、サーバにおける一連の命令動作を含んでもよい。さらに、中央プロセッサ1622は、記憶媒体1630と通信して、サーバ1600上で記憶媒体1630における一連の命令動作を実行するように構成され得る。
【0122】
サーバ1600は、また、1つまたは複数の電源1626、1つまたは複数の有線または無線ネットワークインターフェース1650、1つまたは複数の入出力インターフェース1658、および/または、1つまたは複数のオペレーティングシステム1641、例えば、Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTMなどを含んでもよい。
【0123】
上記の実施例において、画像レンダリング装置によって実行されるステップは、この図16に示すサーバ構成に基づくものであってもよい。
【0124】
本願の実施例では、コンピュータ読み取り可能な記憶媒体も提供され、このコンピュータ読み取り可能な記憶媒体には、画像レンダリング命令が記憶されており、画像レンダリング命がコンピュータ上で実行されるとき、上記の図2図12に記載の実施例で説明された方法において画像レンダリング装置によって実行されるステップを、コンピュータに実行させる。
【0125】
本願の実施例では、画像レンダリング命令を含むコンピュータプログラム製品も提供され、このコンピュータプログラム製品がコンピュータ上で実行されるとき、図2図12に記載の実施例で説明された方法において画像レンダリング装置によって実行されるステップを、コンピュータに実行させる。
【0126】
本願の実施例は、また、画像レンダリングシステムを提供し、前記画像レンダリングシステムは、図13に記載の実施例における画像レンダリング装置、または図15に記載の端末デバイスを含み得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16