特許第6910130号(P6910130)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 三星電子株式会社の特許一覧

特許69101303Dレンダリング方法及び3Dレンダリング装置
<>
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000002
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000003
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000004
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000005
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000006
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000007
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000008
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000009
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000010
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000011
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000012
  • 特許6910130-3Dレンダリング方法及び3Dレンダリング装置 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6910130
(24)【登録日】2021年7月8日
(45)【発行日】2021年7月28日
(54)【発明の名称】3Dレンダリング方法及び3Dレンダリング装置
(51)【国際特許分類】
   G06T 15/80 20110101AFI20210715BHJP
【FI】
   G06T15/80
【請求項の数】29
【全頁数】22
(21)【出願番号】特願2016-214922(P2016-214922)
(22)【出願日】2016年11月2日
(65)【公開番号】特開2017-91523(P2017-91523A)
(43)【公開日】2017年5月25日
【審査請求日】2019年7月16日
(31)【優先権主張番号】10-2015-0156129
(32)【優先日】2015年11月6日
(33)【優先権主張国】KR
(31)【優先権主張番号】10-2016-0068960
(32)【優先日】2016年6月2日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】河 仁 友
(72)【発明者】
【氏名】安 民 修
(72)【発明者】
【氏名】李 炯 旭
(72)【発明者】
【氏名】孫 ▲みん▼ 廷
【審査官】 浜岸 広明
(56)【参考文献】
【文献】 米国特許出願公開第2015/0070355(US,A1)
【文献】 特開平05−266212(JP,A)
【文献】 Christopher A. Burns, et al,A Lazy Object-Space Shading Architecture With Decoupled Sampling,High-Performance Graphics 2010: ACM SIGGRAPH / EUROGRAPHICS SYMPOSIUM PROCEEDINGS,The Eurographics Association,2010年 6月25日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06T 11/00−19/20
(57)【特許請求の範囲】
【請求項1】
3Dシーンをレンダリングする3Dレンダリング方法であって、
前記3Dシーン上でシェーディングが行われるシェーディングポイントを決定するステップと、
前記シェーディングポイントに対してシェーディングを行うステップと、
前記シェーディングポイントのシェーディング結果に基づいて前記3Dシーンに対するシェーディング情報を決定するステップと、を含み、
前記シェーディングポイントを決定するステップは、
複数の頂点によって形成される幾何学的な複雑度が、前記3Dシーンの第1の領域のシェーディングの複雑度に対して低い場合に、前記第1の領域のシェーディングポイントの数を増やすステップと、
複数の頂点によって形成される幾何学的な複雑度が、前記3Dシーンの第2の領域のシェーディングの複雑度に対して高い場合に、前記第2の領域のシェーディングポイントの数を減らすステップと、を含
前記シェーディングの複雑度は、陰影処理の複雑度又は特殊効果の適用の有無に基づく、
3Dレンダリング方法。
【請求項2】
前記シェーディングポイントを決定するステップは、前記3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点を前記シェーディングポイントとして決定する、請求項1に記載の3Dレンダリング方法。
【請求項3】
前記シェーディングポイントを決定するステップは、前記3Dシーンで3Dオブジェクトの頂点及び前記3Dオブジェクト内の追加地点を前記シェーディングポイントとして決定する、請求項1に記載の3Dレンダリング方法。
【請求項4】
前記シェーディングポイントは、前記3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点のみを含む、請求項1ないし3のいずれか一項に記載の3Dレンダリング方法。
【請求項5】
前記シェーディングポイントは、前記3Dシーンで3Dオブジェクトの頂点ではない地点を含む、請求項1ないし4のいずれか一項に記載の3Dレンダリング方法。
【請求項6】
前記シェーディングポイントは、前記3Dオブジェクトの頂点のうちの一部の頂点をさらに含む、請求項5に記載の3Dレンダリング方法。
【請求項7】
前記シェーディングポイントは、前記3Dオブジェクトの全ての頂点を含む、請求項5に記載の3Dレンダリング方法。
【請求項8】
前記シェーディングポイントを決定するステップは、前記3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点及び前記3Dオブジェクト内の追加地点を前記シェーディングポイントとして決定する、請求項1に記載の3Dレンダリング方法。
【請求項9】
前記シェーディングポイントを決定するステップは、前記3Dシーンの空間的特性及び時間的特性のうち少なくとも1つに基づいて前記シェーディングが行われるシェーディングポイントを決定する、請求項1ないし8のいずれか一項に記載の3Dレンダリング方法。
【請求項10】
前記シェーディングポイントを決定するステップは、仮想光源に関する情報、仮想カメラに関する情報、前記3Dシーンに含まれる3Dオブジェクトに関する情報、及び以前の画像フレームのシェーディング結果のうち少なくとも1つに基づいて前記シェーディングポイントを決定する、請求項9に記載の3Dレンダリング方法。
【請求項11】
前記仮想光源に関する情報は、前記仮想光源の位置、カラー、明るさ、方向、角度、及び移動速度のうち少なくとも1つに関する情報を含み、
前記仮想カメラに関する情報は、前記仮想カメラの位置、方向、角度、及び移動速度のうち少なくとも1つに関する情報を含み、
前記3Dオブジェクトに関する情報は、前記3Dオブジェクトの形状、カラー、及び材質のうち少なくとも1つに関する情報を含む、請求項10に記載の3Dレンダリング方法。
【請求項12】
前記シェーディングポイントを決定するステップは、
前記3Dシーンの頂点を頂点グループにグループ化するステップと、
前記頂点グループごとに1つ以上の前記シェーディングポイントを決定するステップと、
を含む、請求項1ないし11のいずれか一項に記載の3Dレンダリング方法。
【請求項13】
前記3Dシーンの頂点を頂点グループにグループ化するステップは、前記頂点の位置、前記頂点の法線、以前の画像フレームのシェーディング結果、及び前記頂点が同一の3Dオブジェクトに含まれるか否かのうちの少なくとも1つに基づいて前記頂点を前記頂点グループにグループ化する、請求項12に記載の3Dレンダリング方法。
【請求項14】
前記シェーディングポイントを決定するステップは、仮想光源の動き、仮想カメラの動き、3Dオブジェクトの動き、隣接頂点間の明るさ差、及び頂点の位置のうち少なくとも1つに基づいてシェーディングレベルを決定するステップをさらに含む、請求項12又は13に記載の3Dレンダリング方法。
【請求項15】
前記シェーディングポイントを決定するステップは、前記シェーディングレベルに応じて前記頂点グループごとにシェーディングが行われる前記シェーディングポイントを決定する、請求項14に記載の3Dレンダリング方法。
【請求項16】
前記3Dシーンの頂点を頂点グループにグループ化するステップは、前記頂点グループごとに前記シェーディングポイントに対する階層的な構造情報を決定するステップを含む、請求項12ないし15のいずれか一項に記載の3Dレンダリング方法。
【請求項17】
前記シェーディング情報を決定するステップは、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点のシェーディング値を決定するステップを含む、請求項1ないし16のいずれか一項に記載の3Dレンダリング方法。
【請求項18】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記の決定された頂点のシェーディング値を補間して前記3Dシーンのレンダリング結果画像に含まれるピクセルのカラー値を決定するステップを含む、請求項17に記載の3Dレンダリング方法。
【請求項19】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記頂点のシェーディング値をテクスチャバッファに格納するステップを含む、請求項17又は18に記載の3Dレンダリング方法。
【請求項20】
画像に含まれるピクセルのカラー値を決定するために前記テクスチャバッファに格納されたシェーディング値を用いてピクセルシェーディング動作を行うステップをさらに含む、請求項19に記載の3Dレンダリング方法。
【請求項21】
前記シェーディングを行うステップは、直接仮想光源及び間接仮想光源のうち少なくとも1つによる照明効果に基づいて前記シェーディングポイントのカラー値を決定し、
前記照明効果は、遮られることによる影効果を含む、請求項1ないし20のいずれか一項に記載の3Dレンダリング方法。
【請求項22】
請求項1ないし21のいずれか一項に記載の3Dレンダリング方法をコンピューティングハードウェアに実行させるコンピュータプログラム。
【請求項23】
少なくとも1つのプロセッサを含み、
前記少なくとも1つのプロセッサは、
3Dシーン上でシェーディングが行われるシェーディングポイントを決定する動作と、
前記シェーディングポイントに対してシェーディングを行う動作と、
前記シェーディングポイントのシェーディング結果に基づいて前記3Dシーンに対するシェーディング情報を決定する動作と、
を行うように構成され、
前記シェーディングポイントを決定する動作は、
複数の頂点によって形成される幾何学的な複雑度が、前記3Dシーンの第1の領域のシェーディングの複雑度に対して低い場合に、前記第1の領域のシェーディングポイントの数を増やす動作と、
複数の頂点によって形成される幾何学的な複雑度が、前記3Dシーンの第2の領域のシェーディングの複雑度に対して高い場合に、前記第2の領域のシェーディングポイントの数を減らす動作と、を
含み、
前記シェーディングの複雑度は、陰影処理の複雑度又は特殊効果の適用の有無に基づく、
3Dレンダリング装置。
【請求項24】
前記少なくとも1つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも1つに基づいて、次の画像フレームに含まれる前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行う、請求項23に記載の3Dレンダリング装置。
【請求項25】
前記シェーディングポイントを決定する動作は、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点及び他のシェーディングポイントのうち少なくとも1つのシェーディング値を決定する動作を含む、請求項23又は24に記載の3Dレンダリング装置。
【請求項26】
前記シェーディングポイントを決定する動作は、
前記3Dシーンの頂点を頂点グループにグループ化する動作と、
シェーディングレベルに基づいて前記頂点グループごとに1つ以上の前記シェーディングポイントを決定する動作と、
を含む、請求項23ないし25のいずれか一項に記載の3Dレンダリング装置。
【請求項27】
前記少なくとも1つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも1つに基づいて、次の画像フレームで前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行う、請求項23ないし26のいずれか一項に記載の3Dレンダリング装置。
【請求項28】
頂点シェーダ及びピクセルシェーダを含むグラフィックスパイプラインと、
シェーディングポイントシェーダと、
を含み、
前記シェーディングポイントシェーダは、
3Dシーンでシェーディングが行われるシェーディングポイントを決定し、
前記の決定されたシェーディングポイントに対してシェーディングを実行し、
前記シェーディングポイントのシェーディング結果に基づいて前記3Dシーンに対するシェーディング情報を決定し、
前記シェーディングポイントを決定することにおいて、複数の頂点によって形成される幾何学的な複雑度が、前記3Dシーンの第1の領域のシェーディングの複雑度に対して低い場合に、前記第1の領域のシェーディングポイントの数が増やされ、複数の頂点によって形成される幾何学的な複雑度が、前記3Dシーンの第2の領域のシェーディングの複雑度に対して高い場合に、前記第2の領域のシェーディングポイントの数が減らされ、
前記シェーディングの複雑度は、陰影処理の複雑度又は特殊効果の適用の有無に基づく、
3Dレンダリング装置。
【請求項29】
前記シェーディングポイントシェーダは、テクスチャバッファにシェーディング情報を格納し、前記ピクセルシェーダは、前記テクスチャバッファに格納された前記シェーディング情報に基づいて画像をレンダリングするためのピクセルカラー情報を生成する、請求項28に記載の3Dレンダリング装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3Dレンダリングを行う画像処理技術に関する。
【背景技術】
【0002】
3Dコンピュータグラフィックスでグラフィックスパイプライン(graphics pipeline)又はレンダリングパイプライン(rendering pipeline)は3D画像を2Dラスタ画像に表現するための段階的な方法を示す。ここで、ラスタとは、コンピュータで画像情報を表現する1つの方法であって、画像を2次元の配列形態のピクセルに構成し、一定間隔のピクセルで画像情報を表現することを示す。グラフィックスパイプラインは、3Dオブジェクトの頂点(vertex)情報に数学的な演算を行うことにより3Dオブジェクトの特別な効果を提供する頂点シェーダ(vertex shader)と各ピクセルのカラーを算出するピクセルシェーダ(pixel shader)とを含む。頂点シェーダは、頂点情報に基づいて3Dオブジェクトを特別な位置に移動させたり、テクスチャを変えたり又はカラーを変えたりするなどの作業を行う。ピクセルシェーダは、テクスチャからカラーを読み出したり光を適用したりすること、又は影、反射光、及び透明処理などの複雑な現象を適用し得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、3Dシーンの空間的特性及び/又は時間的特性に基づいてシェーディングが行われるシェーディングポイントを適応的に決定することで、レンダリング結果画像の画質低下なしに又は少なくシェーディングをより速く実行させることにある。
【課題を解決するための手段】
【0004】
一態様に係る3Dレンダリング方法は、3Dシーン上でシェーディングが行われるシェーディングポイントを決定するステップと、前記シェーディングポイントに対してシェーディングを行うステップと、前記シェーディングポイントのシェーディング結果に基づいて前記3Dシーンに対するシェーディング情報を決定するステップとを含む。
【0005】
前記シェーディングポイントを決定するステップは、前記3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点を前記シェーディングポイントとして決定し得る。
【0006】
前記シェーディングポイントを決定するステップは、前記3Dシーンで3Dオブジェクトの頂点及び前記3Dオブジェクト内の追加地点を前記シェーディングポイントとして決定し得る。
【0007】
前記シェーディングポイントは、前記3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点のみを含み得る。
【0008】
前記シェーディングポイントは、前記3Dシーンで3Dオブジェクトの頂点ではない地点を含み得る。
【0009】
前記シェーディングポイントは、前記3Dオブジェクトの頂点のうちの一部の頂点をさらに含み得る。
【0010】
前記シェーディングポイントは、前記3Dオブジェクトの全ての頂点を含み得る。
【0011】
前記シェーディングポイントを決定するステップは、前記3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点及び前記3Dオブジェクト内の追加地点を前記シェーディングポイントとして決定し得る。
【0012】
前記シェーディングポイントを決定するステップは、前記3Dシーンの空間的特性及び時間的特性のうち少なくとも1つに基づいて前記シェーディングが行われるシェーディングポイントを決定し得る。
【0013】
前記シェーディングポイントを決定するステップは、仮想光源に関する情報、仮想カメラに関する情報、前記3Dシーンに含まれる3Dオブジェクトに関する情報、及び以前の画像フレームのシェーディング結果のうち少なくとも1つに基づいて前記シェーディングポイントを決定し得る。
【0014】
前記仮想光源に関する情報は、前記仮想光源の位置、カラー、明るさ、方向、角度、及び移動速度のうち少なくとも1つに関する情報を含み、前記仮想カメラに関する情報は、前記仮想カメラの位置、方向、角度、及び移動速度のうち少なくとも1つに関する情報を含み、前記3Dオブジェクトに関する情報は、前記3Dオブジェクトの形状、カラー、及び材質のうち少なくとも1つに関する情報を含み得る。
【0015】
前記シェーディングポイントを決定するステップは、前記3Dシーンの頂点を頂点グループにグループ化するステップと、前記頂点グループごとに1つ以上の前記シェーディングポイントを決定するステップとを含み得る。
【0016】
前記3Dシーンの頂点を頂点グループにグループ化するステップは、前記頂点の位置、前記頂点の法線、以前の画像フレームのシェーディング結果、及び前記頂点が同一の3Dオブジェクトに含まれるか否かのうちの少なくとも1つに基づいて前記頂点を前記頂点グループにグループ化し得る。
【0017】
前記シェーディングポイントを決定するステップは、仮想光源の動き、仮想カメラの動き、3Dオブジェクトの動き、隣接頂点間の明るさ差、及び頂点の位置のうち少なくとも1つに基づいてシェーディングレベルを決定するステップをさらに含み得る。
【0018】
前記シェーディングポイントを決定するステップは、前記シェーディングレベルに応じて前記頂点グループごとにシェーディングが行われる前記シェーディングポイントを決定し得る。
【0019】
前記3Dシーンの頂点を頂点グループにグループ化するステップは、前記頂点グループごとに前記シェーディングポイントに対する階層的な構造情報を決定するステップを含み得る。
【0020】
前記シェーディング情報を決定するステップは、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点のシェーディング値を決定するステップを含み得る。
【0021】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記の決定された頂点のシェーディング値を補間して前記3Dシーンのレンダリング結果画像に含まれるピクセルのカラー値を決定するステップを含み得る。
【0022】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記頂点のシェーディング値をテクスチャバッファに格納するステップを含み得る。
【0023】
一態様に係る3Dレンダリング方法は、画像に含まれるピクセルのカラー値を決定するために前記テクスチャバッファに格納されたシェーディング値を用いてピクセルシェーディング動作を行うステップをさらに含み得る。
【0024】
前記シェーディングを行うステップは、直接仮想光源及び間接仮想光源のうち少なくとも1つによる照明効果に基づいて前記シェーディングポイントのカラー値を決定し、前記照明効果は、遮られることによる影効果を含み得る。
【0025】
一態様に係る3Dレンダリング装置は、少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、3Dシーン上でシェーディングが行われるシェーディングポイントを決定する動作と、前記シェーディングポイントに対してシェーディングを行う動作と、前記シェーディングポイントのシェーディング結果に基づいて前記3Dシーンに対するシェーディング情報を決定する動作とを行う。
【0026】
前記少なくとも1つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも1つに基づいて、次の画像フレームに含まれる前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行い得る。
【0027】
前記シェーディングポイントを決定する動作は、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点及び他のシェーディングポイントのうち少なくとも1つのシェーディング値を決定する動作を含み得る。
【0028】
前記シェーディングポイントを決定する動作は、前記3Dシーンの頂点を頂点グループにグループ化する動作と、シェーディングレベルに基づいて前記頂点グループごとに1つ以上の前記シェーディングポイントを決定する動作とを含み得る。
【0029】
前記少なくとも1つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも1つに基づいて、次の画像フレームで前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行い得る。
【0030】
一態様に係る3Dレンダリング装置は、頂点シェーダ及びピクセルシェーダを含むグラフィックスパイプラインと、シェーディングポイントシェーダとを含み、前記シェーディングポイントシェーダは、3Dシーンでシェーディングが行われるシェーディングポイントを決定し、前記の決定されたシェーディングポイントに対してシェーディングを実行し、前記シェーディングポイントのシェーディング結果に基づいて前記3Dシーンに対するシェーディング情報を決定する。
【0031】
前記シェーディングポイントシェーダは、テクスチャバッファにシェーディング情報を格納し、前記ピクセルシェーダは、前記テクスチャバッファに格納された前記シェーディング情報に基づいて画像をレンダリングするためのピクセルカラー情報を生成し得る。
【発明の効果】
【0032】
一実施形態によると、3Dシーンの空間的特性及び/又は時間的特性に基づいてシェーディングが行われるシェーディングポイントを適応的に決定することで、レンダリング結果画像の画質低下なしに又は少なくシェーディングをより速く行うことができる。
【図面の簡単な説明】
【0033】
図1】3Dシーン及び3Dシーンの頂点構造の一例を示す図である。
図2】一実施形態に係る3Dレンダリング方法の動作を説明するためのフローチャートである。
図3】一実施形態に係るシェーディングポイントを決定する動作をより具体的に説明するためのフローチャートである。
図4】一実施形態に係るシェーディングポイントを決定する一例を説明するための図である。
図5】一実施形態に係るシェーディングレベルに応じてシェーディングポイントを決定する一例を説明するための図である。
図6】一実施形態に係るシェーディングポイントのシェーディング結果に基づいて他の頂点のシェーディング値を決定する一例を説明するための図である。
図7】一実施形態に係るシェーディングポイントのシェーディング値に基づいてレンダリング画像のピクセル値を決定する一例を説明するための図である。
図8A】一実施形態に係る直接仮想光源と間接仮想光源との間の関係を説明するための図である。
図8B】一実施形態に係る直接仮想光源と間接仮想光源との間の関係を説明するための図である。
図9】一実施形態に係る3Dレンダリング装置の構成を示す図である。
図10A】他の実施形態に係る3Dレンダリング装置の構成を示す図である。
図10B】更なる実施形態に係る3Dレンダリング装置の構成を示す図である。
【発明を実施するための形態】
【0034】
以下、添付する図面を参照しながら実施形態を詳細に説明する。
【0035】
以下の特定な構造的乃至機能的な説明は、単に実施形態を説明するための目的で例示するものであり、特許出願の範囲が本明細書で説明される内容に限定されるものと解釈されてはならない。
【0036】
説明する分野に属する通常の知識を有する者であれば、このような記載から様々な修正及び変形可能である。本明細書で「一実施形態」又は「実施形態」に対する言及はその実施形態と関連して説明する特定の特徴、構造又は特性が少なくとも1つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」に対する言及が全て同一の実施形態を指すものと理解されてはならない。
【0037】
第1又は第2などの用語は、複数のコンポーネントを区分するために用いることができるが、構成要素が第1又は第2などの用語によって限定されると解釈されてはいけない。また、実施形態で用いる用語は、単に特定の実施形態を説明するために用いられるものであって、実施形態を限定しようとする意図はない。単数の表現は文脈上明白に異なるように意味しない限り、複数の表現を含む。
【0038】
本明細書において、「含む」又は「有する」などの用語は明細書に記載される特徴、数字、ステップ、処理、構成要素、部品又はその組み合わせの存在を指定するためのものであって、1つ又は複数の他の特徴や数字、ステップ、処理、構成要素、部品又はそれを組み合わせたものの存在又は付加の可能性を予め排除しないものとして理解されなければならない。
【0039】
以下にて説明する実施形態は、3Dシーンをレンダリングしてレンダリング結果画像を生成するために適用され得る。3Dシーンをレンダリングする動作は、3Dシーンに照明効果を提供する仮想光源から放射される光に基づいて3Dオブジェクトのカラーを決定するシェーディング過程を含む。
【0040】
以下、添付する図面を参照しながら実施形態を詳細に説明する。添付図面を参照して説明するに際し、符号に関係なく同一の構成要素には同一の参照符号を付与し、これに対する重複する説明は省略する。
【0041】
図1は、3Dシーン及び3Dシーンの頂点構造の一例を示す図である。図1を参照すると、符号110はレンダリングしようとする3Dシーンを示し、符号140は3Dシーン110の頂点構造を示す。
【0042】
頂点ベースのシェーディングでは、3Dオブジェクトの複数の頂点に対してシェーディングが実行された後、頂点のシェーディング値を補間してピクセルのカラー値が決定される。頂点構造の複雑度は領域ごとの幾何学的な複雑度に基づき、シェーディングの複雑度は陰影処理の複雑度又は鏡面反射(specular reflection)、乱反射(diffused reflection)などの特殊の効果適用の有無に基づく。したがって、頂点ベースのシェーディングにおいて、3Dシーン110の領域ごとの幾何学的な複雑度はシェーディングの複雑度と一致しないことがある。例えば、頂点に基づいてシェーディングを行う場合、シェーディングの複雑度は高いものの、幾何学的な複雑度は低いことから、頂点の個数が少ない領域120では画質の低下が発生する恐れがある。一方、シェーディングの複雑度は低いものの幾何学的な複雑度は高いため、頂点の個数が多い領域130ではシェーディング演算の浪費が発生する恐れがある。
【0043】
以下で説明する3Dレンダリング方法及び3Dレンダリング装置は、3Dシーン110の空間的特性及び/又は時間的特性に基づいてシェーディングが行われるシェーディングポイントを適応的に決定し、決定されたシェーディングポイントに対してシェーディングを行うことによってレンダリング結果画像の画質が低下することなく又は画質の低下が少なく、シェーディングをより迅速に行うことができる。例えば、3Dレンダリング方法及び3Dレンダリング装置は、領域130のように、シェーディングの複雑度に比べて頂点の個数が多い領域ではシェーディングポイントの密度を小さくしてシェーディング処理回数の減少を図ることができるため、レンダリング処理速度はより速くなる。
【0044】
図2は、一実施形態に係る3Dレンダリング方法の動作を説明するためのフローチャートである。3Dレンダリング方法は、3Dレンダリング装置(例えば、図9ないし図10A又は図10Bに示される3Dレンダリング装置)によって実行され得る。
【0045】
図2を参照すると、ステップS210において、3Dレンダリング装置は、3Dシーン上でシェーディングが行われるシェーディングポイントを決定する。3Dレンダリング装置は、3Dシーン内のいずれの地点でもシェーディングポイントとして決定し得る。例えば、3Dレンダリング装置は、3Dシーンに含まれる3Dオブジェクトの頂点が位置する地点のみならず、頂点が位置していない地点でもシェーディングが行われるシェーディングポイントとして決定し得る。このようなシェーディングポイントは、3Dシーンの空間的特性及び時間的特性のうちの1つ以上に基づいて決定される。3Dシーンの空間的特性及び/又は時間的特性に応じてシェーディングが行われる地点が変わり得る。
【0046】
例えば、3Dレンダリング装置は、照明効果を提供する仮想光源に関する情報、3Dオブジェクトを見る視点を決定する仮想カメラに関する情報、3Dシーンに示される3Dオブジェクトに関する情報、又は以前の画像フレームのシェーディング情報などに基づいてシェーディングポイントを決定する。ここで、仮想光源に関する情報は、仮想光源の位置、カラー、明るさ、方向、移動の速度、仮想光源と3Dオブジェクトとの間の距離、及び/又は仮想光源と3Dオブジェクトがなす角度などに関する情報を含む。仮想カメラに関する情報は、仮想カメラの位置、方向、移動の速度、及び/又は仮想カメラと3Dオブジェクトがなす角度などに関する情報を含む。3Dオブジェクトに関する情報は、3Dオブジェクトの形状、カラー、及び/又は材質に関する情報を含む。以前の画像フレームのシェーディング情報は、以前の画像フレームで用いられた頂点に対するシェーディング値を含む。
【0047】
一実施形態によると、3Dレンダリング装置は、頂点を複数の頂点グループにグループ化し、各頂点グループごとにシェーディングされるシェーディングポイントを決定する。一実施形態によると、3Dレンダリング装置は、細かいシェーディングが必要であると判断されれば、頂点グループに含まれる頂点のみならず、追加的に3Dシーン内の追加地点をシェーディングポイントとして指定してシェーディングが行われる地点を増やし得る。3Dレンダリング装置は、概略的なシェーディングが必要であると判断されれば、頂点グループに含まれる頂点のうちの一部の頂点のみをシェーディングポイントとして決定したり、又は頂点にかかわらず3Dシーン内の1つ以上の地点をシェーディングポイントとして決定したりする。又は、場合に応じて、3Dレンダリング装置は、3Dシーンで3Dオブジェクトの頂点のうちの一部の頂点と共に3Dシーン内で頂点ではない地点をシェーディングポイントとして決定してもよい。3Dレンダリング装置は、3Dシーンに含まれる3Dオブジェクトの頂点又はピクセルの全てに対してシェーディングを行うことなく、3Dシーンの空間的特性及び/又は時間的特性に基づいてシェーディングポイントを決定することにより、シェーディングをより効率よく行うことができる。
【0048】
3Dレンダリング装置がシェーディングポイントを決定する動作については図3を参照してより詳しく説明する。
【0049】
ステップS220において、3Dレンダリング装置は、ステップS210で決定されたシェーディングポイントに対してシェーディングを行う。3Dレンダリング装置は、シェーディングポイントでシェーディングを行ってシェーディングポイントのシェーディング値であるカラー値を決定し得る。シェーディング過程は、1つ以上の仮想光源による照明効果に基づく。ここで、照明効果は、仮想光源から放射される光の特性(例、カラー及び方向など)及び3Dオブジェクトの特性(例、カラー及び材質など)に基づいて遮られることによる影効果を含む。仮想光源は、3Dオブジェクトに光を直接放射する直接仮想光源及び直接仮想光源から放射された光が反射、回折又は屈折された領域で光を放射する間接仮想光源を含む。直接仮想光源及び間接仮想光源については図8A及び図8Bを参照して下記でより詳しく説明する。
【0050】
ステップS230において、3Dレンダリング装置は、ステップS220におけるシェーディング結果に基づいて3Dシーンに対するシェーディング情報を決定する。3Dレンダリング装置は、3Dシーンの全体的なシェーディング情報を決定するために補間を用いる。一実施形態によると、3Dレンダリング装置は、複数のシェーディングポイントのシェーディング値を補間してシェーディングポイントに隣接する頂点のシェーディング値を決定する。ここで、頂点と各シェーディングポイントとの間の距離を加重値にして補間を行う重心補間方式が用いられるが、実施形態の範囲が上記の補間方式に限定されることはなく、様々な補間方式を用いることができる。
【0051】
3Dレンダリング装置は、このようにシェーディングが実行されたシェーディングポイントのシェーディング値及び補間によって決定された頂点のシェーディング値を格納する。シェーディングポイントのシェーディング値及び頂点のシェーディング値は、例えば、グラフィックス処理装置(Graphics Processing Unit:GPU)のテクスチャバッファに格納され、格納されたシェーディング値は次の画像フレームのシェーディング過程で用いられる。また、シェーディングポイント及び頂点の位置及び属性に関する情報がテクスチャバッファに格納され得る。3Dレンダリング装置は、格納されたシェーディング値を用いることによって、シェーディング演算に求められる演算量を削減させることでチラつき(flickering)の発生を低減させることができる。
【0052】
一実施形態によると、3Dレンダリング装置は、3Dシーンに対する連続する画像フレームで頂点のシェーディング値を適応的にアップデートする。そのため、画像フレームの間で互いに対応する頂点のシェーディング値が互いに異なる時間間隔でアップデートされ得る。シェーディング値のアップデート過程は、シェーディングを行って頂点のカラー値を決定する過程を含む。例えば、3Dレンダリング装置は、スクリーンと距離が近い頂点は、画像フレームごとにシェーディングを行ってカラー値をアップデートし、スクリーンと距離が遠いか影領域に存在する頂点は、画像フレームごとにカラー値をアップデートすることなく、特定個数の画像フレーム間隔でカラー値をアップデートすることができる。
【0053】
3Dレンダリング装置は、3Dシーンに対するシェーディング情報に基づいてレンダリング結果画像を生成する。3Dレンダリング装置は、シェーディングポイントのシェーディング値及び補間によって決定された頂点のシェーディング値に基づいてレンダリング結果画像を構成するピクセルのカラー値を決定し得る。例えば、3Dレンダリング装置は、現在のピクセルに隣接するシェーディングポイント及び頂点のシェーディング値を補間して現在のピクセルのピクセル値を決定する。このような補間過程は、レンダリング結果画像を構成するそれぞれのピクセルに対して繰り返し行われ、繰り返し行われた結果、レンダリング結果画像を生成することができる。
【0054】
図3は、一実施形態に係るシェーディングポイントを決定する動作をより具体的に説明するためのフローチャートである。図3を参照すると、ステップS310において、3Dレンダリング装置は、3Dシーンの頂点を複数の頂点グループにグループ化する。3Dレンダリング装置は、頂点の位置、頂点の属性(例えば、法線、カラーなど)、以前の画像フレームのシェーディング結果及び/又は頂点が同一の3Dオブジェクトに含まれるか否かなどに基づいて頂点をグループ化する。例えば、3Dレンダリング装置は、頂点のうち類似の属性を有すると推定される頂点を1つの頂点グループとして設定する。
【0055】
一実施形態によると、3Dレンダリング装置は、互いに隣接して位置し、法線、深度又はカラーなどの属性が類似の頂点をグループ化する。3Dレンダリング装置は、事前予測又は以前の画像フレームのシェーディング結果に基づいて類似の属性を有すると推定される頂点を決定する。3Dレンダリング装置は、例えば、以前の画像フレームで類似のカラーを有する頂点をグループ化する。
【0056】
他の実施形態によると、3Dレンダリング装置は、同一の3Dオブジェクトを構成する頂点をグループ化したり、類似の形状特性を有する頂点をグループ化したりする。更なる実施形態によると、3Dレンダリング装置は、時間による頂点のカラー変化に基づいて、空間上では離れているがカラーが時間によって類似に変化する頂点をグループ化する。
【0057】
3Dレンダリング装置は、頂点グループごとにシェーディングポイントに対する階層的な構造情報を決定する。階層的な構造情報は、ステップS320で決定されるシェーディングレベルに応じてシェーディングが行われるシェーディングポイントの階層的構造を定義する。例えば、階層的な構造情報では、シェーディングレベルに応じて、どのような頂点又はどのような地点がシェーディングポイントとして決定されるかが定義される。シェーディングレベルが上がるほど、頂点グループで決定されるシェーディングポイントの個数は減少し、シェーディングレベルが下がるほど、頂点グループで決定されるシェーディングポイントの個数は増加する。
【0058】
ステップS320において、3Dレンダリング装置は、シェーディングポイントに対する階層的な構造情報に基づいて頂点グループごとにシェーディングレベルを決定する。シェーディングレベルに応じて、頂点グループでシェーディングが行われる1つ以上のシェーディングポイントを決定する。ここで、頂点グループに含まれる頂点のうちの一部の頂点がシェーディングポイントとして決定されたり、又は頂点が位置する地点ではない3Dシーン内の他の地点がシェーディングポイントとして決定されたりする。
【0059】
3Dレンダリング装置は、時間による仮想光源、仮想カメラ、及び3Dオブジェクトの動きなどのような3Dシーンの時間的特性、及び/又は頂点の位置及び隣接頂点間の明るさ差などのような3Dシーンの空間的特性に基づいてシェーディングレベルを決定し得る。3Dシーンの時間的特性及び/又は空間的特性に応じて、頂点グループごとに互いに異なるシェーディングレベルが決定され得る。
【0060】
一実施形態によると、時間領域で仮想光源、仮想カメラ、又は3Dオブジェクトの移動速度が閾値よりも速い場合、3Dレンダリング装置はシェーディングレベルを上げるように調整することでシェーディングポイントの個数を減らし得る。そのため、シェーディング処理に要する時間を減らすことができる。また、3Dレンダリング装置は、速いレンダリング処理が要求される場合、シェーディングレベルを全体的に上げるように調整する。仮想光源、仮想カメラ又は3Dオブジェクトの移動速度が閾値よりも遅い場合、3Dレンダリング装置はより細かい表現のためにシェーディングレベルを下げるように調整してシェーディングポイントの個数を増やし得る。
【0061】
一実施形態によると、シェーディングレベルは、3Dシーンの時間的特性に応じて適応的に決定され得る。例えば、仮想カメラ又は3Dオブジェクトの移動速度が速いほどシェーディングレベルが上がるように調整され、移動速度が遅いほどシェーディングレベルが下がるように調整される。
【0062】
一実施形態によると、3Dレンダリング装置は、以前の画像フレームのカラー情報を用いて時間による領域ごとの明るさ変化を推定し、明るさ変化が大きい領域ではシェーディングレベルを下げるように調整し、明るさ変化が小さい領域ではシェーディングレベルを上げるように調整する。
【0063】
一実施形態によると、空間領域において頂点がスクリーンの中央領域(又は、関心領域)に位置する場合、又は隣接頂点間の明るさ差が大きい領域の場合、3Dレンダリング装置はより細かい表現のためにシェーディングレベルを下げるように調整する。頂点がスクリーンの周辺領域に位置する場合、又は隣接頂点間の明るさ差が小さい領域の場合、3Dレンダリング装置は、シェーディングポイントの個数を減少させてレンダリング処理速度をより速くするためにシェーディングレベルを上げるように調整する。ここで、3Dレンダリング装置は、以前の画像フレームのシェーディング情報を用いて現在の画像フレームでの隣接頂点間の明るさ差を推定することができる。
【0064】
一実施形態によると、3Dレンダリング装置は、フォーカスされる領域と残りの領域とに互いに異なるシェーディングレベルを設定したり、又はブラー(bluring)効果が適用される領域と残りの領域との間に互いに異なるシェーディングレベルを設定したりし得る。例えば、HMD(Head Mounted Display)などのようなレンズ利用の機器ではユーザの目に見えるピクセルの大きさ及び密度がそれぞれ異なる。この場合、3Dレンダリング装置は、フォーカスされる中央領域には相対的にシェーディングポイントの密度を高く設定(シェーディングレベルを下げるように調整)し、外側領域には相対的にシェーディングポイントの密度を低く設定(シェーディングレベルを上げるように調整)する。
【0065】
一実施形態によると、3Dレンダリング装置は、最も概略的なシェーディングレベルである最上位シェーディングレベルから下位シェーディングレベルに下げていきながら頂点グループごとに最適なシェーディングレベルを決定し得る。例えば、3Dレンダリング装置は、シェーディングポイントに対する階層的な構造情報に基づいて最上位の第1シェーディングレベルに応じたシェーディング結果と第1シェーディングレベルよりも下位である第2シェーディングレベルに応じたシェーディング結果とを比較し、比較結果に基づいてシェーディングレベル差によるカラー値の差分を算出する。第2シェーディングレベルは、第1シェーディングレベルよりも下位であるため、第2シェーディングレベルでは第1シェーディングレベルよりもさらに多い数のシェーディングポイントが決定される。算出したカラー値の差分が閾値よりも小さい場合、3Dレンダリング装置は、現在のシェーディングレベルである第1シェーディングレベルを現在の頂点グループのシェーディングレベルとして決定する。カラー値の差分が閾値以上である場合、3Dレンダリング装置は、第2シェーディングレベルよりも下位である第3シェーディングレベルに基づいて、第2シェーディングレベルと第3シェーディングレベルに応じたカラー値の差分を算出し、算出された差分が閾値よりも小さいか否かを判定する。差分が閾値よりも小さい場合、3Dレンダリング装置は、第2シェーディングレベルを現在の頂点グループのシェーディングレベルとして決定する。3Dレンダリング装置は、上記の過程を繰り返してカラー値の差分が閾値よりも小さくなるシェーディングレベルを現在の頂点グループに適用される最終シェーディングレベルとして決定する。
【0066】
3Dレンダリング装置が、最上位シェーディングレベルから始めて、頂点グループに適用される最適なシェーディングレベルを決定する動作は、基本的に画像フレームごとがレンダリングされるごとに実行されてもよく、カメラの視点、光源の位置又はオブジェクトの位置が変化するごとに行われてもよい。ただし、実施形態の範囲がこれに限定されることはなく、3Dレンダリング装置は、連続する画像フレーム間でカメラの視点、光源の位置又はオブジェクトの位置の変化が大きくないと判定した場合は、現在の画像フレームでシェーディングレベルを決定する過程を省略して、以前の画像フレームで決定されたシェーディングレベルを用いてもよい。
【0067】
ステップS330において、3Dレンダリング装置は、シェーディングレベルに応じて頂点グループごとに1つ以上のシェーディングポイントを決定する。3Dレンダリング装置は、各頂点グループに対する階層的な構造情報に基づいて、シェーディングレベルに応じて実際にシェーディング演算が行われるシェーディングポイントを決定する。
【0068】
一実施形態によると、シェーディングレベルに基づいて各頂点グループごとに次の(1)〜(6)のうちいずれか1つによってシェーディングポイントが決定される。(1)現在の頂点グループに属する頂点全体がシェーディングポイントとして決定される。(2)頂点全体及び頂点ではない追加地点がシェーディングポイントとして決定される。(3)現在の頂点グループに属する頂点全体のうちの一部の頂点がシェーディングポイントとして決定される。(4)一部の頂点及び頂点ではない追加地点がシェーディングポイントとして決定される。(5)頂点ではない1つ以上の地点がシェーディングポイントとして決定される。(6)現在の頂点グループに対してシェーディングポイントが決定されない。例えば、全体3Dシーンにおいて、1つの頂点グループに対応する領域では(1)によって該当の頂点グループに属する頂点全体がシェーディングポイントとして決定され、他の頂点グループに対応する領域では(5)によって他の頂点グループに属する頂点ではない1つ以上の地点がシェーディングポイントとして決定されることが可能である。
【0069】
図4は、一実施形態に係るシェーディングポイントを決定する一例を説明するための図である。図4を参照すると、符号410は複数の頂点422〜434を含む3Dオブジェクトを示し、符号440は3Dオブジェクト410に対して決定されたシェーディングポイント422、424、430、434、450、452、454、456を示す。
【0070】
頂点ベースのシェーディングでは、3Dオブジェクト410の頂点422〜434のそれぞれに対してシェーディングが行われるが、3Dレンダリング装置は、3Dシーンの時間的特性及び/又は空間的特性に基づいてシェーディング演算が行われる地点を適応的に決定し得る。例えば、3Dレンダリング装置は、図4に示された一態様のように、3Dオブジェクト410の頂点422〜434のうちの一部の頂点422、424、430、434とシェーディングが必要であると判断された地点450、452、454、456を、シェーディングを行うシェーディングポイントとして決定する。3Dレンダリング装置は、シェーディングポイント422、424、430、434、450、452、454、456に対してシェーディングを行った後、シェーディング結果に基づいてシェーディングが実行されていない頂点426、428、432のシェーディング値を決定する。例えば、3Dレンダリング装置は、シェーディングポイント430、452、454のシェーディング値を補間して頂点432のシェーディング値を決定し得る。
【0071】
図5は、一実施形態に係るシェーディングレベルに応じてシェーディングポイントを決定する一例を説明するための図である。図5を参照すると、符号510は、複数の頂点515で構成される3Dオブジェクトを示す。3Dレンダリング装置は、3Dオブジェクト510の頂点515に対する階層的な構造情報を生成し、階層的な構造情報に基づいてシェーディングレベルに応じてシェーディングポイントを決定する。シェーディングレベルに応じて、3Dオブジェクト510の領域でシェーディングが行われるシェーディングポイントが決定され得る。シェーディングレベルが下がるほどシェーディングが行われるシェーディングポイントの個数は増加する。
【0072】
一実施形態によると、第1シェーディングレベル520では、3Dオブジェクト510の頂点515のうちの一部の頂点522のみがシェーディングポイントとして決定される。したがって、第1シェーディングレベル520では、シェーディングポイントとして決定された頂点522とシェーディングポイントとして決定されない頂点525が存在する。3Dレンダリング装置は、シェーディングポイントとして決定された頂点522に対してシェーディングを行ってシェーディング値を決定し、頂点522のシェーディング値を補間してシェーディングポイントとして決定されていない頂点525のシェーディング値を決定する。3Dレンダリング装置は、全体ではない一部の頂点522についてのみシェーディング演算することで、レンダリングをより速く行うことができる。
【0073】
一実施形態によると、3Dレンダリング装置は、シェーディング値が決定されたシェーディングポイントに対してドローネー三角分割(Delaunay Triangulation)を行って、領域を、三角形態を有する複数のサブ領域に分割し、シェーディングポイントのシェーディング値に基づいた補間によってシェーディング値が決定されていない頂点のシェーディング値を決定することができる。他の実施形態によると、3Dレンダリング装置は、3Dオブジェクトのメッシュを広げたアトラス(atlas)上にシェーディングポイントを決定し、シェーディングポイントに対してシェーディングした後、シェーディングポイントのシェーディング値に基づいた補間によりシェーディング値が決定されていない頂点のシェーディング値を決定することができる。
【0074】
第2シェーディングレベル530では、3Dオブジェクト510の頂点515が全てシェーディングポイントとして決定されることなく、代わりに、頂点ではない地点535がシェーディングポイントとして決定される。3Dレンダリング装置は、シェーディングポイントとして決定された地点535に対してシェーディングを行い、シェーディング結果値の補間過程によりシェーディングポイントとして決定されていない頂点532のシェーディング値を決定し得る。
【0075】
第3シェーディングレベル540では、第1シェーディングレベル520に類似するように、3Dオブジェクト510の頂点515のうち、シェーディングポイントとして決定された頂点542とシェーディングポイントとして決定されない頂点545が存在する。また、3Dオブジェクト510の領域内で頂点ではない地点546が追加的にシェーディングポイントとして決定され得る。地点546の位置は、例えば、3Dオブジェクト510の領域内の任意の位置に決定されたり、又は3Dオブジェクト510の領域内の明るさ値分布による確率値に基づいて決定されたりし得る。明るさ値が大きいほど、シェーディングポイントとして決定される地点として決定される確率値がより大きい。3Dレンダリング装置は、シェーディングポイントとして決定された頂点542及び地点546に対してシェーディングを行い、シェーディング結果値を補間してシェーディングポイントとして決定されていない頂点545のシェーディング値を決定し得る。
【0076】
第4シェーディングレベル550では、3Dオブジェクト510の頂点515の全てがシェーディングポイントとして決定され、各頂点515に対してシェーディングが行われ得る。
【0077】
第5シェーディングレベル560では、3Dオブジェクト510の頂点515のみならず、3Dオブジェクト510上で3Dオブジェクト510の頂点515ではない地点565が追加的にシェーディングポイントとして決定され得る。3Dレンダリング装置は、3Dオブジェクト510が表現される3Dシーンの時間的特性及び/又は空間的特性に基づいて追加的にシェーディングを行う地点565を決定する。例えば、より細かいシェーディング効果を実現する必要がある場合(例えば、照明効果が複雑な場合)、3Dレンダリング装置は、3Dオブジェクト510の領域内にシェーディングが行われる地点565をさらに指定する。3Dレンダリング装置は、頂点515及び追加的に決定された地点565に対してシェーディングを行うことができる。
【0078】
図6は、一実施形態に係るシェーディングポイントのシェーディング結果に基づいて他の頂点のシェーディング値を決定する一例を説明するための図である。図6に示された実施形態では、3Dオブジェクト610が頂点612〜626を含むと仮定する。また、3Dレンダリング装置は、頂点612〜626のうちの一部の頂点614、616、622、624及び3Dオブジェクト610上の地点632、634、636を、シェーディングが行われるシェーディングポイントとして決定したと仮定する(630)。3Dレンダリング装置は、シェーディングポイント614、616、622、624、632、634、636に対してシェーディングを行い、シェーディング実行によって決定されたシェーディングポイント614、616、622、624、632、634、636のシェーディング値(例えば、カラー値)に基づいてシェーディングが実行されていない頂点612、618、620、626のシェーディング値を決定する。例えば、頂点626の場合、3Dレンダリング装置は、頂点626に隣接するシェーディングポイント622、624、634、636のシェーディング値を補間して頂点626のシェーディング値を決定する(640)。3Dレンダリング装置は、シェーディングが実行されない残りの頂点612、618、620に対しても、これに類似な過程を通じてシェーディング値を決定することができる。シェーディングポイント614、616、622、624、632、634、636のシェーディング値及び補間によって決定された頂点612、618、620、626のシェーディング値は格納され、格納されたシェーディング値は、次の画像フレームに対するシェーディング過程で用いられる。
【0079】
図7は、一実施形態に係るシェーディングポイントのシェーディング値に基づいてレンダリング画像のピクセル値を決定する一例を説明するための図である。図7に示す実施形態では、頂点715、720、725及び3Dオブジェクト上の地点730、735でシェーディング値が決定されたと仮定する(710)。3Dレンダリング装置は、頂点715、720、725のシェーディング値及び地点730、735のシェーディング値に基づいて、各ピクセルごとにカラー補間を行ってピクセルのカラー値を決定する(740)。例えば、3Dレンダリング装置は、ピクセル720に隣接する頂点725のシェーディング値及び地点730、735のカラー値を補間してピクセル720のカラー値を決定する。3Dレンダリング装置は、残りのピクセルに対してもこれに類似な過程を繰り返してレンダリング結果画像を構成するピクセルのカラー値を決定することができる。
【0080】
図8A及び図8Bは、一実施形態に係る直接仮想光源と間接仮想光源との間の関係を説明するための図である。直接仮想光源及び間接仮想光源は、コンピュータグラフィックスで3Dオブジェクトに照明効果を付与する仮想の光源を示す。上述したように、直接仮想光源は3Dオブジェクトに光を直接放射する仮想光源であり、間接仮想光源は直接仮想光源から放射された光が反射、回折又は屈折された領域で光を放射する仮想光源である。
【0081】
図8Aは、3Dモデルを構成する3Dオブジェクト820、830と直接仮想光源810とを示している。ここで、説明の便宜のために1つの直接仮想光源810のみを示すが、3Dモデルには複数の直接仮想光源が存在し得る。直接仮想光源810は3Dオブジェクト820に光を直接放射する。直接仮想光源810と3Dオブジェクト820との間の位置関係によって3Dオブジェクト820がレンダリングされる仮想空間で一次的に明るい領域と暗い領域とが決定される。直接仮想光源810から放射された光は、3Dオブジェクト820によって反射、屈折又は回折される。例えば、直接仮想光源810から出力された光840は3Dオブジェクト820で反射した後、他の3Dオブジェクト830、例えば、オブジェクト820の周辺領域を取り囲んでいる壁面で再び反射する。3Dオブジェクト820、830は仮想カメラ815の視点でレンダリングされ、レンダリング結果画像がユーザに提供され得る。
【0082】
3Dレンダリング装置は、直接仮想光源810から出力された光による直接光効果だけではなく、間接仮想光源から出力された光による照明効果を適用して詳細なレンダリング結果画像を生成する。3Dレンダリング装置は、直接仮想光源だけではなく、間接仮想光源を3D空間上に適切に配置し、よりリアルな照明効果を実現することができる。
【0083】
図8Bを参照すると、図8Aで直接仮想光源810から出力された光840が3Dオブジェクト820で反射した領域に位置する間接仮想光源855及び光840が他の3Dオブジェクト830で反射した領域に位置する間接仮想光源850、860が図示されている。3Dオブジェクト820、830のレンダリング過程において、直接仮想光源810だけではなく間接仮想光源850、855、860による照明効果が3Dオブジェクト820、830に適用され得る。間接仮想光源850、855、860は、直接仮想光源810だけではなく、各間接仮想光源850、855、860が位置する領域の特性に影響を受ける。例えば、間接仮想光源850、855、860による照明効果は、各間接仮想光源850、855、860が位置する3Dオブジェクトの表面のカラー又は材質に影響を受ける。
【0084】
図9は、一実施形態に係る3Dレンダリング装置の構成を示す図である。図9を参照すると、3Dレンダリング装置900は、頂点シェーダ910、ピクセルシェーダ920、シェーディングポイントシェーダ930を含む。
【0085】
頂点シェーダ910は、頂点が有する空間上位置、カラー、法線ベクトル、テクスチャなどのような、頂点の属性情報に基づいて3Dシーンに示された頂点に対して頂点変換を行う。頂点変換過程は、頂点の位置を移動させる過程、頂点の法線ベクトルを変換する過程、頂点に対する光の効果を算出する過程、頂点のカラーを算出する過程、及びテクスチャ座標を生成及び変換する過程のうちの1つ以上を含む。
【0086】
シェーディングポイントシェーダ930は、図1図8Bを参照して前述した動作のうち、シェーディング過程に関する動作を行うことができる。例えば、シェーディングポイントシェーダ930は、3Dシーンに示された頂点を複数の頂点グループにグループ化し、各頂点グループごとにシェーディングレベルを決定する。シェーディングポイントシェーダ930は、決定されたシェーディングレベルに応じて各頂点グループごとにシェーディングを行うシェーディングポイントを決定し、決定されたシェーディングポイントに対してシェーディングを行う。シェーディングポイントシェーダ930は、シェーディングが実行されたシェーディングポイントのシェーディング値を補間してシェーディングが実行されていない頂点のシェーディング値を決定することで、3D画像に対するシェーディング情報を決定することができる。
【0087】
シェーディングポイントシェーダ930は、頂点単位のカラーシェーディングを行い、このようなカラーシェーディングは、頂点シェーダ910及びピクセルシェーダ920の各レンダリング処理過程とは別に処理される。一実施形態によると、シェーディングポイントシェーダ930によって実行されるシェーディング過程は、頂点シェーダ910及びピクセルシェーダ920のパイプラインとは別の過程として行われる。そのため、シェーディングポイント及び頂点に対するシェーディング値が格納される。格納されたシェーディング値は次の画像フレームのシェーディング情報を決定するために用いられ、これによって、画像フレーム間の相関度が増加してチラつき現象が減少し、演算量を低減させることができる。
【0088】
一実施形態によると、シェーディングポイントシェーダ930は、シェーディング結果に基づいて頂点グループごとにシェーディングレベルを決定し得る。シェーディングポイントシェーダ930は、シェーディングレベルに応じたカラー値の差分に基づいて各頂点グループに適用される最適なシェーディングレベルを決定し得る。例えば、シェーディングポイントシェーダ930は、現在のシェーディングレベルに基づいてシェーディングを行った結果と現在のシェーディングレベルより下位のシェーディングレベルに基づいてシェーディングを行った結果とを比較し、レベル差によるカラー値の差分を算出し、差分が閾値以上である場合に現在のシェーディングレベルを調整する。シェーディングポイントシェーダ930は、調整されたシェーディングレベルに基づいて上記の過程を繰り返し、シェーディングレベル差によるカラー値の差分が閾値よりも小さくなるシェーディングレベルを、頂点グループに適用される最適なシェーディングレベルとして決定し得る。
【0089】
3Dシーンに対するシェーディング情報が決定されれば、シェーディングポイントシェーダ930はシェーディング情報をピクセルシェーダ920に伝達し、ピクセルシェーダ920はシェーディング情報に基づいて各ピクセルごとにカラー補間を行う。ピクセルシェーダ920は、ピクセルが属するポリゴン(polygon)(例えば、三角形)を形成している頂点のカラー値及びシェーディングが実行されたシェーディングポイントのカラー値を用いてカラー補間を実行することで、レンダリングの結果画像に含まれる各ピクセルのカラー値を決定することができる。また、ピクセルシェーダ920は、3Dオブジェクト上にテクスチャを被せるテクスチャマッピングの過程を行って仮想の3Dオブジェクトに材質感を表現する。
【0090】
他の実施形態によると、3Dレンダリング装置900は、間接仮想光源をサンプリングする間接仮想光源サンプラー940をさらに含み得る。シェーディングポイントシェーダ930は直接仮想光源による照明情報だけではなく、間接仮想光源による照明情報を用いてシェーディングを実行し、該当の間接仮想光源は間接仮想光源サンプラー940によってサンプリングされ得る。間接仮想光源のサンプリング過程は、3D空間内に間接仮想光源を配置させる過程を含む。間接仮想光源サンプラー940は、間接仮想光源が配置される領域又は3D空間に配置される間接仮想光源の個数を調整して3Dオブジェクトに適用される間接照明効果を制御する。
【0091】
一実施形態によると、間接仮想光源サンプラー940は、ライト視点レンダリング(light view rendering)の結果画像から間接仮想光源をサンプリングしたり、又は光に対する光線追跡方式を用いて間接仮想光源をサンプリングしたりする。例えば、間接仮想光源サンプラー940は、ライト視点レンダリングの結果画像の明るさ分布に基づいて明るさに比例する確率マップを生成し、確率マップによって決定された位置に間接仮想光源を配置させ得る。他の例として、間接仮想光源サンプラー940は、光線追跡方式によって光が3Dオブジェクトと衝突する位置を決定し、決定された位置に間接仮想光源を配置させ得る。
【0092】
図10Aは、他の実施形態に係る3Dレンダリング装置の構成を示す図である。図10Aを参照すると、3Dレンダリング装置1010は、1つ以上のプロセッサ1020及び1つ以上のメモリ1030を含む。
【0093】
プロセッサ1020は、図1図9を参照して前述した1つ以上の動作を行うことができる。例えば、プロセッサ1020は、3Dシーン上でシェーディングが行われるシェーディングポイントを決定し、決定されたシェーディングポイントに対してシェーディングを行う。ここで、プロセッサ1020は、3Dシーンの頂点を頂点グループにグループ化し、頂点グループごとに決定されたシェーディングレベルに基づいてシェーディングポイントを決定する。プロセッサ1020は、シェーディングポイントのシェーディング結果に基づいて3Dシーンに対するシェーディング情報を決定し、シェーディング情報に基づいてレンダリング結果画像を生成する。
【0094】
このようなプロセッサ1020は、複数の論理ゲートのアレイで具現化できるが、別の形態のハードウェアで具現化されることは本実施形態が属する技術分野で通常の知識を有する者であれば理解できるであろう。また、プロセッサ1020は、3Dオブジェクトのレンダリングを行うための1つ以上のグラフィックス処理装置を含み得る。頂点及びシェーディングポイントに対するシェーディング情報は、グラフィックス処理装置のテクスチャバッファに格納され、格納されたシェーディング情報は、次の画像フレームに対するシェーディング過程で使用され得る。
【0095】
メモリ1030は、図1図9を参照して前述した1つ以上の動作を行うための命令を格納したり、又は3Dレンダリング装置1010が動作している間に取得したデータと結果を格納したりする。一部の実施形態において、メモリ1030は、非一時的なコンピュータで読み取り可能な記録媒体、例えば、高速ランダムアクセスメモリ及び/又は不揮発性のコンピュータで読み取り可能な格納媒体(例えば、1つ以上のディスク記憶デバイス、フラッシュメモリデバイス、又は、その他の不揮発性固体メモリデバイス)を含み得る。
【0096】
図10Bは、更なる実施形態に係る3Dレンダリング装置の構成を示す図である。図10Bを参照すると、3Dレンダリング装置1015は、図10Aに類似するように、1つ以上のプロセッサ1020及び1つ以上のメモリ1030を含み、1つ以上のディスプレイ1040及びユーザインタフェース1050をさらに含み得る。プロセッサ1020は、例えば、固定型装置又はモバイル装置の動作だけでなく、上記で説明したいずれかの動作又は動作の組合せを行う単一プロセッサであり得る。異なる例として、プロセッサ1020は、図9に示す1つ以上のグラフィックスパイプライン、シェーディングポイントシェーダ、及び間接仮想光源サンプラーを含むGPU(Graphics Processor Unit)を含む複数のプロセッサであってもよく、複数のプロセッサのうちの1つ以上は上記で説明した動作を行ってもよい。プロセッサ1020は、上記で説明したシェーディング動作に基づいて決定されたピクセルカラー情報をディスプレイ1040に提供する。ディスプレイ1040上でレンダリングされる画像は変わり得る。又は、ディスプレイ1040上でレンダリングされる画像は、ユーザインタフェース1050を介した3Dレンダリング装置1015とのインタラクションに応答して自動的に変わり得る。
【0097】
上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現化される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサ、又は命令を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現化される。処理装置は、オペレーティングシステム(OS)及びOS上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータにアクセスし、データを格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数種類の処理要素を含むことが分かるであろう。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0098】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの1つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は集合的に処理装置に命令する。ソフトウェア及び/又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる種類の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは伝送される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されたり実行されたりする。ソフトウェア及びデータは1つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【0099】
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現化され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独で又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよいし、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成してもよく、その逆も同様である。
【0100】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【0101】
1010、1015:3Dレンダリング装置
1020:プロセッサ
1030:メモリ
1040:ディスプレイ
1050:ユーザインタフェース
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9
図10A
図10B