(57)【要約】【課題】  ３Ｄシーンをレンダリングする３Ｄレンダリング方法及び３Ｄレンダリング装置を提供すること。【解決手段】  一実施形態に係る３Ｄレンダリング装置は、３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定し、シェーディングポイントに対してシェーディングを行う。３Ｄレンダリング装置は、シェーディングポイントのシェーディング結果に基づいて３Ｄシーンに対するシェーディング情報を決定する。【選択図】      図２
2017091523.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄシーンをレンダリングする３Ｄレンダリング方法であって、
前記３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定するステップと、
前記シェーディングポイントに対してシェーディングを行うステップと、
前記シェーディングポイントのシェーディング結果に基づいて前記３Ｄシーンに対するシェーディング情報を決定するステップと、
を含む、３Ｄレンダリング方法。
【請求項２】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点を前記シェーディングポイントとして決定する、請求項１に記載の３Ｄレンダリング方法。
【請求項３】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンで３Ｄオブジェクトの頂点及び前記３Ｄオブジェクト内の追加地点を前記シェーディングポイントとして決定する、請求項１に記載の３Ｄレンダリング方法。
【請求項４】
前記シェーディングポイントは、前記３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点のみを含む、請求項１ないし３のいずれか一項に記載の３Ｄレンダリング方法。
【請求項５】
前記シェーディングポイントは、前記３Ｄシーンで３Ｄオブジェクトの頂点ではない地点を含む、請求項１ないし４のいずれか一項に記載の３Ｄレンダリング方法。
【請求項６】
前記シェーディングポイントは、前記３Ｄオブジェクトの頂点のうちの一部の頂点をさらに含む、請求項５に記載の３Ｄレンダリング方法。
【請求項７】
前記シェーディングポイントは、前記３Ｄオブジェクトの全ての頂点を含む、請求項５に記載の３Ｄレンダリング方法。
【請求項８】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点及び前記３Ｄオブジェクト内の追加地点を前記シェーディングポイントとして決定する、請求項１に記載の３Ｄレンダリング方法。
【請求項９】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンの空間的特性及び時間的特性のうち少なくとも１つに基づいて前記シェーディングが行われるシェーディングポイントを決定する、請求項１ないし８のいずれか一項に記載の３Ｄレンダリング方法。
【請求項１０】
前記シェーディングポイントを決定するステップは、仮想光源に関する情報、仮想カメラに関する情報、前記３Ｄシーンに含まれる３Ｄオブジェクトに関する情報、及び以前の画像フレームのシェーディング結果のうち少なくとも１つに基づいて前記シェーディングポイントを決定する、請求項９に記載の３Ｄレンダリング方法。
【請求項１１】
前記仮想光源に関する情報は、前記仮想光源の位置、カラー、明るさ、方向、角度、及び移動速度のうち少なくとも１つに関する情報を含み、
前記仮想カメラに関する情報は、前記仮想カメラの位置、方向、角度、及び移動速度のうち少なくとも１つに関する情報を含み、
前記３Ｄオブジェクトに関する情報は、前記３Ｄオブジェクトの形状、カラー、及び材質のうち少なくとも１つに関する情報を含む、請求項１０に記載の３Ｄレンダリング方法。
【請求項１２】
前記シェーディングポイントを決定するステップは、
前記３Ｄシーンの頂点を頂点グループにグループ化するステップと、
前記頂点グループごとに１つ以上の前記シェーディングポイントを決定するステップと、
を含む、請求項１ないし１１のいずれか一項に記載の３Ｄレンダリング方法。
【請求項１３】
前記３Ｄシーンの頂点を頂点グループにグループ化するステップは、前記頂点の位置、前記頂点の法線、以前の画像フレームのシェーディング結果、及び前記頂点が同一の３Ｄオブジェクトに含まれるか否かのうちの少なくとも１つに基づいて前記頂点を前記頂点グループにグループ化する、請求項１２に記載の３Ｄレンダリング方法。
【請求項１４】
前記シェーディングポイントを決定するステップは、仮想光源の動き、仮想カメラの動き、３Ｄオブジェクトの動き、隣接頂点間の明るさ差、及び頂点の位置のうち少なくとも１つに基づいてシェーディングレベルを決定するステップをさらに含む、請求項１２又は１３に記載の３Ｄレンダリング方法。
【請求項１５】
前記シェーディングポイントを決定するステップは、前記シェーディングレベルに応じて前記頂点グループごとにシェーディングが行われる前記シェーディングポイントを決定する、請求項１４に記載の３Ｄレンダリング方法。
【請求項１６】
前記３Ｄシーンの頂点を頂点グループにグループ化するステップは、前記頂点グループごとに前記シェーディングポイントに対する階層的な構造情報を決定するステップを含む、請求項１２ないし１５のいずれか一項に記載の３Ｄレンダリング方法。
【請求項１７】
前記シェーディング情報を決定するステップは、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点のシェーディング値を決定するステップを含む、請求項１ないし１６のいずれか一項に記載の３Ｄレンダリング方法。
【請求項１８】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記の決定された頂点のシェーディング値を補間して前記３Ｄシーンのレンダリング結果画像に含まれるピクセルのカラー値を決定するステップを含む、請求項１７に記載の３Ｄレンダリング方法。
【請求項１９】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記頂点のシェーディング値をテクスチャバッファに格納するステップを含む、請求項１７又は１８に記載の３Ｄレンダリング方法。
【請求項２０】
画像に含まれるピクセルのカラー値を決定するために前記テクスチャバッファに格納されたシェーディング値を用いてピクセルシェーディング動作を行うステップをさらに含む、請求項１９に記載の３Ｄレンダリング方法。
【請求項２１】
前記シェーディングを行うステップは、直接仮想光源及び間接仮想光源のうち少なくとも１つによる照明効果に基づいて前記シェーディングポイントのカラー値を決定し、
前記照明効果は、遮られることによる影効果を含む、請求項１ないし２０のいずれか一項に記載の３Ｄレンダリング方法。
【請求項２２】
請求項１ないし２１のいずれか一項に記載の３Ｄレンダリング方法をコンピューティングハードウェアに実行させるコンピュータプログラム。
【請求項２３】
少なくとも１つのプロセッサを含み、
前記少なくとも１つのプロセッサは、
３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定する動作と、
前記シェーディングポイントに対してシェーディングを行う動作と、
前記シェーディングポイントのシェーディング結果に基づいて前記３Ｄシーンに対するシェーディング情報を決定する動作と、
を行う、３Ｄレンダリング装置。
【請求項２４】
前記少なくとも１つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも１つに基づいて、次の画像フレームに含まれる前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行う、請求項２３に記載の３Ｄレンダリング装置。
【請求項２５】
前記シェーディングポイントを決定する動作は、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点及び他のシェーディングポイントのうち少なくとも１つのシェーディング値を決定する動作を含む、請求項２３又は２４に記載の３Ｄレンダリング装置。
【請求項２６】
前記シェーディングポイントを決定する動作は、
前記３Ｄシーンの頂点を頂点グループにグループ化する動作と、
シェーディングレベルに基づいて前記頂点グループごとに１つ以上の前記シェーディングポイントを決定する動作と、
を含む、請求項２３ないし２５のいずれか一項に記載の３Ｄレンダリング装置。
【請求項２７】
前記少なくとも１つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも１つに基づいて、次の画像フレームで前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行う、請求項２３ないし２６のいずれか一項に記載の３Ｄレンダリング装置。
【請求項２８】
頂点シェーダ及びピクセルシェーダを含むグラフィックスパイプラインと、
シェーディングポイントシェーダと、
を含み、
前記シェーディングポイントシェーダは、
３Ｄシーンでシェーディングが行われるシェーディングポイントを決定し、
前記の決定されたシェーディングポイントに対してシェーディングを実行し、
前記シェーディングポイントのシェーディング結果に基づいて前記３Ｄシーンに対するシェーディング情報を決定する、３Ｄレンダリング装置。
【請求項２９】
前記シェーディングポイントシェーダは、テクスチャバッファにシェーディング情報を格納し、前記ピクセルシェーダは、前記テクスチャバッファに格納された前記シェーディング情報に基づいて画像をレンダリングするためのピクセルカラー情報を生成する、請求項２８に記載の３Ｄレンダリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３Ｄレンダリングを行う画像処理技術に関する。
【背景技術】
【０００２】
３Ｄコンピュータグラフィックスでグラフィックスパイプライン（ｇｒａｐｈｉｃｓ  ｐｉｐｅｌｉｎｅ）又はレンダリングパイプライン（ｒｅｎｄｅｒｉｎｇ  ｐｉｐｅｌｉｎｅ）は３Ｄ画像を２Ｄラスタ画像に表現するための段階的な方法を示す。ここで、ラスタとは、コンピュータで画像情報を表現する１つの方法であって、画像を２次元の配列形態のピクセルに構成し、一定間隔のピクセルで画像情報を表現することを示す。グラフィックスパイプラインは、３Ｄオブジェクトの頂点（ｖｅｒｔｅｘ）情報に数学的な演算を行うことにより３Ｄオブジェクトの特別な効果を提供する頂点シェーダ（ｖｅｒｔｅｘ  ｓｈａｄｅｒ）と各ピクセルのカラーを算出するピクセルシェーダ（ｐｉｘｅｌ  ｓｈａｄｅｒ）とを含む。頂点シェーダは、頂点情報に基づいて３Ｄオブジェクトを特別な位置に移動させたり、テクスチャを変えたり又はカラーを変えたりするなどの作業を行う。ピクセルシェーダは、テクスチャからカラーを読み出したり光を適用したりすること、又は影、反射光、及び透明処理などの複雑な現象を適用し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、３Ｄシーンの空間的特性及び／又は時間的特性に基づいてシェーディングが行われるシェーディングポイントを適応的に決定することで、レンダリング結果画像の画質低下なしに又は少なくシェーディングをより速く実行させることにある。
【課題を解決するための手段】
【０００４】
一態様に係る３Ｄレンダリング方法は、３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定するステップと、前記シェーディングポイントに対してシェーディングを行うステップと、前記シェーディングポイントのシェーディング結果に基づいて前記３Ｄシーンに対するシェーディング情報を決定するステップとを含む。
【０００５】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点を前記シェーディングポイントとして決定し得る。
【０００６】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンで３Ｄオブジェクトの頂点及び前記３Ｄオブジェクト内の追加地点を前記シェーディングポイントとして決定し得る。
【０００７】
前記シェーディングポイントは、前記３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点のみを含み得る。
【０００８】
前記シェーディングポイントは、前記３Ｄシーンで３Ｄオブジェクトの頂点ではない地点を含み得る。
【０００９】
前記シェーディングポイントは、前記３Ｄオブジェクトの頂点のうちの一部の頂点をさらに含み得る。
【００１０】
前記シェーディングポイントは、前記３Ｄオブジェクトの全ての頂点を含み得る。
【００１１】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点及び前記３Ｄオブジェクト内の追加地点を前記シェーディングポイントとして決定し得る。
【００１２】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンの空間的特性及び時間的特性のうち少なくとも１つに基づいて前記シェーディングが行われるシェーディングポイントを決定し得る。
【００１３】
前記シェーディングポイントを決定するステップは、仮想光源に関する情報、仮想カメラに関する情報、前記３Ｄシーンに含まれる３Ｄオブジェクトに関する情報、及び以前の画像フレームのシェーディング結果のうち少なくとも１つに基づいて前記シェーディングポイントを決定し得る。
【００１４】
前記仮想光源に関する情報は、前記仮想光源の位置、カラー、明るさ、方向、角度、及び移動速度のうち少なくとも１つに関する情報を含み、前記仮想カメラに関する情報は、前記仮想カメラの位置、方向、角度、及び移動速度のうち少なくとも１つに関する情報を含み、前記３Ｄオブジェクトに関する情報は、前記３Ｄオブジェクトの形状、カラー、及び材質のうち少なくとも１つに関する情報を含み得る。
【００１５】
前記シェーディングポイントを決定するステップは、前記３Ｄシーンの頂点を頂点グループにグループ化するステップと、前記頂点グループごとに１つ以上の前記シェーディングポイントを決定するステップとを含み得る。
【００１６】
前記３Ｄシーンの頂点を頂点グループにグループ化するステップは、前記頂点の位置、前記頂点の法線、以前の画像フレームのシェーディング結果、及び前記頂点が同一の３Ｄオブジェクトに含まれるか否かのうちの少なくとも１つに基づいて前記頂点を前記頂点グループにグループ化し得る。
【００１７】
前記シェーディングポイントを決定するステップは、仮想光源の動き、仮想カメラの動き、３Ｄオブジェクトの動き、隣接頂点間の明るさ差、及び頂点の位置のうち少なくとも１つに基づいてシェーディングレベルを決定するステップをさらに含み得る。
【００１８】
前記シェーディングポイントを決定するステップは、前記シェーディングレベルに応じて前記頂点グループごとにシェーディングが行われる前記シェーディングポイントを決定し得る。
【００１９】
前記３Ｄシーンの頂点を頂点グループにグループ化するステップは、前記頂点グループごとに前記シェーディングポイントに対する階層的な構造情報を決定するステップを含み得る。
【００２０】
前記シェーディング情報を決定するステップは、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点のシェーディング値を決定するステップを含み得る。
【００２１】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記の決定された頂点のシェーディング値を補間して前記３Ｄシーンのレンダリング結果画像に含まれるピクセルのカラー値を決定するステップを含み得る。
【００２２】
前記シェーディング情報を決定するステップは、前記シェーディングポイントのシェーディング値及び前記頂点のシェーディング値をテクスチャバッファに格納するステップを含み得る。
【００２３】
一態様に係る３Ｄレンダリング方法は、画像に含まれるピクセルのカラー値を決定するために前記テクスチャバッファに格納されたシェーディング値を用いてピクセルシェーディング動作を行うステップをさらに含み得る。
【００２４】
前記シェーディングを行うステップは、直接仮想光源及び間接仮想光源のうち少なくとも１つによる照明効果に基づいて前記シェーディングポイントのカラー値を決定し、前記照明効果は、遮られることによる影効果を含み得る。
【００２５】
一態様に係る３Ｄレンダリング装置は、少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定する動作と、前記シェーディングポイントに対してシェーディングを行う動作と、前記シェーディングポイントのシェーディング結果に基づいて前記３Ｄシーンに対するシェーディング情報を決定する動作とを行う。
【００２６】
前記少なくとも１つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも１つに基づいて、次の画像フレームに含まれる前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行い得る。
【００２７】
前記シェーディングポイントを決定する動作は、複数のシェーディングポイントのシェーディング値を補間して前記シェーディングポイントに隣接する頂点及び他のシェーディングポイントのうち少なくとも１つのシェーディング値を決定する動作を含み得る。
【００２８】
前記シェーディングポイントを決定する動作は、前記３Ｄシーンの頂点を頂点グループにグループ化する動作と、シェーディングレベルに基づいて前記頂点グループごとに１つ以上の前記シェーディングポイントを決定する動作とを含み得る。
【００２９】
前記少なくとも１つのプロセッサは、現在の頂点とスクリーンとの間の距離及び前記現在の頂点が影領域に存在するか否かのうち少なくとも１つに基づいて、次の画像フレームで前記現在の頂点のシェーディング値をアップデートするか否かを決定する動作をさらに行い得る。
【００３０】
一態様に係る３Ｄレンダリング装置は、頂点シェーダ及びピクセルシェーダを含むグラフィックスパイプラインと、シェーディングポイントシェーダとを含み、前記シェーディングポイントシェーダは、３Ｄシーンでシェーディングが行われるシェーディングポイントを決定し、前記の決定されたシェーディングポイントに対してシェーディングを実行し、前記シェーディングポイントのシェーディング結果に基づいて前記３Ｄシーンに対するシェーディング情報を決定する。
【００３１】
前記シェーディングポイントシェーダは、テクスチャバッファにシェーディング情報を格納し、前記ピクセルシェーダは、前記テクスチャバッファに格納された前記シェーディング情報に基づいて画像をレンダリングするためのピクセルカラー情報を生成し得る。
【発明の効果】
【００３２】
一実施形態によると、３Ｄシーンの空間的特性及び／又は時間的特性に基づいてシェーディングが行われるシェーディングポイントを適応的に決定することで、レンダリング結果画像の画質低下なしに又は少なくシェーディングをより速く行うことができる。
【図面の簡単な説明】
【００３３】
【図１】３Ｄシーン及び３Ｄシーンの頂点構造の一例を示す図である。
【図２】一実施形態に係る３Ｄレンダリング方法の動作を説明するためのフローチャートである。
【図３】一実施形態に係るシェーディングポイントを決定する動作をより具体的に説明するためのフローチャートである。
【図４】一実施形態に係るシェーディングポイントを決定する一例を説明するための図である。
【図５】一実施形態に係るシェーディングレベルに応じてシェーディングポイントを決定する一例を説明するための図である。
【図６】一実施形態に係るシェーディングポイントのシェーディング結果に基づいて他の頂点のシェーディング値を決定する一例を説明するための図である。
【図７】一実施形態に係るシェーディングポイントのシェーディング値に基づいてレンダリング画像のピクセル値を決定する一例を説明するための図である。
【図８Ａ】一実施形態に係る直接仮想光源と間接仮想光源との間の関係を説明するための図である。
【図８Ｂ】一実施形態に係る直接仮想光源と間接仮想光源との間の関係を説明するための図である。
【図９】一実施形態に係る３Ｄレンダリング装置の構成を示す図である。
【図１０Ａ】他の実施形態に係る３Ｄレンダリング装置の構成を示す図である。
【図１０Ｂ】更なる実施形態に係る３Ｄレンダリング装置の構成を示す図である。
【発明を実施するための形態】
【００３４】
以下、添付する図面を参照しながら実施形態を詳細に説明する。
【００３５】
以下の特定な構造的乃至機能的な説明は、単に実施形態を説明するための目的で例示するものであり、特許出願の範囲が本明細書で説明される内容に限定されるものと解釈されてはならない。
【００３６】
説明する分野に属する通常の知識を有する者であれば、このような記載から様々な修正及び変形可能である。本明細書で「一実施形態」又は「実施形態」に対する言及はその実施形態と関連して説明する特定の特徴、構造又は特性が少なくとも１つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」に対する言及が全て同一の実施形態を指すものと理解されてはならない。
【００３７】
第１又は第２などの用語は、複数のコンポーネントを区分するために用いることができるが、構成要素が第１又は第２などの用語によって限定されると解釈されてはいけない。また、実施形態で用いる用語は、単に特定の実施形態を説明するために用いられるものであって、実施形態を限定しようとする意図はない。単数の表現は文脈上明白に異なるように意味しない限り、複数の表現を含む。
【００３８】
本明細書において、「含む」又は「有する」などの用語は明細書に記載される特徴、数字、ステップ、処理、構成要素、部品又はその組み合わせの存在を指定するためのものであって、１つ又は複数の他の特徴や数字、ステップ、処理、構成要素、部品又はそれを組み合わせたものの存在又は付加の可能性を予め排除しないものとして理解されなければならない。
【００３９】
以下にて説明する実施形態は、３Ｄシーンをレンダリングしてレンダリング結果画像を生成するために適用され得る。３Ｄシーンをレンダリングする動作は、３Ｄシーンに照明効果を提供する仮想光源から放射される光に基づいて３Ｄオブジェクトのカラーを決定するシェーディング過程を含む。
【００４０】
以下、添付する図面を参照しながら実施形態を詳細に説明する。添付図面を参照して説明するに際し、符号に関係なく同一の構成要素には同一の参照符号を付与し、これに対する重複する説明は省略する。
【００４１】
図１は、３Ｄシーン及び３Ｄシーンの頂点構造の一例を示す図である。図１を参照すると、符号１１０はレンダリングしようとする３Ｄシーンを示し、符号１４０は３Ｄシーン１１０の頂点構造を示す。
【００４２】
頂点ベースのシェーディングでは、３Ｄオブジェクトの複数の頂点に対してシェーディングが実行された後、頂点のシェーディング値を補間してピクセルのカラー値が決定される。頂点構造の複雑度は領域ごとの幾何学的な複雑度に基づき、シェーディングの複雑度は陰影処理の複雑度又は鏡面反射（ｓｐｅｃｕｌａｒ  ｒｅｆｌｅｃｔｉｏｎ）、乱反射（ｄｉｆｆｕｓｅｄ  ｒｅｆｌｅｃｔｉｏｎ）などの特殊の効果適用の有無に基づく。したがって、頂点ベースのシェーディングにおいて、３Ｄシーン１１０の領域ごとの幾何学的な複雑度はシェーディングの複雑度と一致しないことがある。例えば、頂点に基づいてシェーディングを行う場合、シェーディングの複雑度は高いものの、幾何学的な複雑度は低いことから、頂点の個数が少ない領域１２０では画質の低下が発生する恐れがある。一方、シェーディングの複雑度は低いものの幾何学的な複雑度は高いため、頂点の個数が多い領域１３０ではシェーディング演算の浪費が発生する恐れがある。
【００４３】
以下で説明する３Ｄレンダリング方法及び３Ｄレンダリング装置は、３Ｄシーン１１０の空間的特性及び／又は時間的特性に基づいてシェーディングが行われるシェーディングポイントを適応的に決定し、決定されたシェーディングポイントに対してシェーディングを行うことによってレンダリング結果画像の画質が低下することなく又は画質の低下が少なく、シェーディングをより迅速に行うことができる。例えば、３Ｄレンダリング方法及び３Ｄレンダリング装置は、領域１３０のように、シェーディングの複雑度に比べて頂点の個数が多い領域ではシェーディングポイントの密度を小さくしてシェーディング処理回数の減少を図ることができるため、レンダリング処理速度はより速くなる。
【００４４】
図２は、一実施形態に係る３Ｄレンダリング方法の動作を説明するためのフローチャートである。３Ｄレンダリング方法は、３Ｄレンダリング装置（例えば、図９ないし図１０Ａ又は図１０Ｂに示される３Ｄレンダリング装置）によって実行され得る。
【００４５】
図２を参照すると、ステップＳ２１０において、３Ｄレンダリング装置は、３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定する。３Ｄレンダリング装置は、３Ｄシーン内のいずれの地点でもシェーディングポイントとして決定し得る。例えば、３Ｄレンダリング装置は、３Ｄシーンに含まれる３Ｄオブジェクトの頂点が位置する地点のみならず、頂点が位置していない地点でもシェーディングが行われるシェーディングポイントとして決定し得る。このようなシェーディングポイントは、３Ｄシーンの空間的特性及び時間的特性のうちの１つ以上に基づいて決定される。３Ｄシーンの空間的特性及び／又は時間的特性に応じてシェーディングが行われる地点が変わり得る。
【００４６】
例えば、３Ｄレンダリング装置は、照明効果を提供する仮想光源に関する情報、３Ｄオブジェクトを見る視点を決定する仮想カメラに関する情報、３Ｄシーンに示される３Ｄオブジェクトに関する情報、又は以前の画像フレームのシェーディング情報などに基づいてシェーディングポイントを決定する。ここで、仮想光源に関する情報は、仮想光源の位置、カラー、明るさ、方向、移動の速度、仮想光源と３Ｄオブジェクトとの間の距離、及び／又は仮想光源と３Ｄオブジェクトがなす角度などに関する情報を含む。仮想カメラに関する情報は、仮想カメラの位置、方向、移動の速度、及び／又は仮想カメラと３Ｄオブジェクトがなす角度などに関する情報を含む。３Ｄオブジェクトに関する情報は、３Ｄオブジェクトの形状、カラー、及び／又は材質に関する情報を含む。以前の画像フレームのシェーディング情報は、以前の画像フレームで用いられた頂点に対するシェーディング値を含む。
【００４７】
一実施形態によると、３Ｄレンダリング装置は、頂点を複数の頂点グループにグループ化し、各頂点グループごとにシェーディングされるシェーディングポイントを決定する。一実施形態によると、３Ｄレンダリング装置は、細かいシェーディングが必要であると判断されれば、頂点グループに含まれる頂点のみならず、追加的に３Ｄシーン内の追加地点をシェーディングポイントとして指定してシェーディングが行われる地点を増やし得る。３Ｄレンダリング装置は、概略的なシェーディングが必要であると判断されれば、頂点グループに含まれる頂点のうちの一部の頂点のみをシェーディングポイントとして決定したり、又は頂点にかかわらず３Ｄシーン内の１つ以上の地点をシェーディングポイントとして決定したりする。又は、場合に応じて、３Ｄレンダリング装置は、３Ｄシーンで３Ｄオブジェクトの頂点のうちの一部の頂点と共に３Ｄシーン内で頂点ではない地点をシェーディングポイントとして決定してもよい。３Ｄレンダリング装置は、３Ｄシーンに含まれる３Ｄオブジェクトの頂点又はピクセルの全てに対してシェーディングを行うことなく、３Ｄシーンの空間的特性及び／又は時間的特性に基づいてシェーディングポイントを決定することにより、シェーディングをより効率よく行うことができる。
【００４８】
３Ｄレンダリング装置がシェーディングポイントを決定する動作については図３を参照してより詳しく説明する。
【００４９】
ステップＳ２２０において、３Ｄレンダリング装置は、ステップＳ２１０で決定されたシェーディングポイントに対してシェーディングを行う。３Ｄレンダリング装置は、シェーディングポイントでシェーディングを行ってシェーディングポイントのシェーディング値であるカラー値を決定し得る。シェーディング過程は、１つ以上の仮想光源による照明効果に基づく。ここで、照明効果は、仮想光源から放射される光の特性（例、カラー及び方向など）及び３Ｄオブジェクトの特性（例、カラー及び材質など）に基づいて遮られることによる影効果を含む。仮想光源は、３Ｄオブジェクトに光を直接放射する直接仮想光源及び直接仮想光源から放射された光が反射、回折又は屈折された領域で光を放射する間接仮想光源を含む。直接仮想光源及び間接仮想光源については図８Ａ及び図８Ｂを参照して下記でより詳しく説明する。
【００５０】
ステップＳ２３０において、３Ｄレンダリング装置は、ステップＳ２２０におけるシェーディング結果に基づいて３Ｄシーンに対するシェーディング情報を決定する。３Ｄレンダリング装置は、３Ｄシーンの全体的なシェーディング情報を決定するために補間を用いる。一実施形態によると、３Ｄレンダリング装置は、複数のシェーディングポイントのシェーディング値を補間してシェーディングポイントに隣接する頂点のシェーディング値を決定する。ここで、頂点と各シェーディングポイントとの間の距離を加重値にして補間を行う重心補間方式が用いられるが、実施形態の範囲が上記の補間方式に限定されることはなく、様々な補間方式を用いることができる。
【００５１】
３Ｄレンダリング装置は、このようにシェーディングが実行されたシェーディングポイントのシェーディング値及び補間によって決定された頂点のシェーディング値を格納する。シェーディングポイントのシェーディング値及び頂点のシェーディング値は、例えば、グラフィックス処理装置（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＧＰＵ）のテクスチャバッファに格納され、格納されたシェーディング値は次の画像フレームのシェーディング過程で用いられる。また、シェーディングポイント及び頂点の位置及び属性に関する情報がテクスチャバッファに格納され得る。３Ｄレンダリング装置は、格納されたシェーディング値を用いることによって、シェーディング演算に求められる演算量を削減させることでチラつき（ｆｌｉｃｋｅｒｉｎｇ）の発生を低減させることができる。
【００５２】
一実施形態によると、３Ｄレンダリング装置は、３Ｄシーンに対する連続する画像フレームで頂点のシェーディング値を適応的にアップデートする。そのため、画像フレームの間で互いに対応する頂点のシェーディング値が互いに異なる時間間隔でアップデートされ得る。シェーディング値のアップデート過程は、シェーディングを行って頂点のカラー値を決定する過程を含む。例えば、３Ｄレンダリング装置は、スクリーンと距離が近い頂点は、画像フレームごとにシェーディングを行ってカラー値をアップデートし、スクリーンと距離が遠いか影領域に存在する頂点は、画像フレームごとにカラー値をアップデートすることなく、特定個数の画像フレーム間隔でカラー値をアップデートすることができる。
【００５３】
３Ｄレンダリング装置は、３Ｄシーンに対するシェーディング情報に基づいてレンダリング結果画像を生成する。３Ｄレンダリング装置は、シェーディングポイントのシェーディング値及び補間によって決定された頂点のシェーディング値に基づいてレンダリング結果画像を構成するピクセルのカラー値を決定し得る。例えば、３Ｄレンダリング装置は、現在のピクセルに隣接するシェーディングポイント及び頂点のシェーディング値を補間して現在のピクセルのピクセル値を決定する。このような補間過程は、レンダリング結果画像を構成するそれぞれのピクセルに対して繰り返し行われ、繰り返し行われた結果、レンダリング結果画像を生成することができる。
【００５４】
図３は、一実施形態に係るシェーディングポイントを決定する動作をより具体的に説明するためのフローチャートである。図３を参照すると、ステップＳ３１０において、３Ｄレンダリング装置は、３Ｄシーンの頂点を複数の頂点グループにグループ化する。３Ｄレンダリング装置は、頂点の位置、頂点の属性（例えば、法線、カラーなど）、以前の画像フレームのシェーディング結果及び／又は頂点が同一の３Ｄオブジェクトに含まれるか否かなどに基づいて頂点をグループ化する。例えば、３Ｄレンダリング装置は、頂点のうち類似の属性を有すると推定される頂点を１つの頂点グループとして設定する。
【００５５】
一実施形態によると、３Ｄレンダリング装置は、互いに隣接して位置し、法線、深度又はカラーなどの属性が類似の頂点をグループ化する。３Ｄレンダリング装置は、事前予測又は以前の画像フレームのシェーディング結果に基づいて類似の属性を有すると推定される頂点を決定する。３Ｄレンダリング装置は、例えば、以前の画像フレームで類似のカラーを有する頂点をグループ化する。
【００５６】
他の実施形態によると、３Ｄレンダリング装置は、同一の３Ｄオブジェクトを構成する頂点をグループ化したり、類似の形状特性を有する頂点をグループ化したりする。更なる実施形態によると、３Ｄレンダリング装置は、時間による頂点のカラー変化に基づいて、空間上では離れているがカラーが時間によって類似に変化する頂点をグループ化する。
【００５７】
３Ｄレンダリング装置は、頂点グループごとにシェーディングポイントに対する階層的な構造情報を決定する。階層的な構造情報は、ステップＳ３２０で決定されるシェーディングレベルに応じてシェーディングが行われるシェーディングポイントの階層的構造を定義する。例えば、階層的な構造情報では、シェーディングレベルに応じて、どのような頂点又はどのような地点がシェーディングポイントとして決定されるかが定義される。シェーディングレベルが上がるほど、頂点グループで決定されるシェーディングポイントの個数は減少し、シェーディングレベルが下がるほど、頂点グループで決定されるシェーディングポイントの個数は増加する。
【００５８】
ステップＳ３２０において、３Ｄレンダリング装置は、シェーディングポイントに対する階層的な構造情報に基づいて頂点グループごとにシェーディングレベルを決定する。シェーディングレベルに応じて、頂点グループでシェーディングが行われる１つ以上のシェーディングポイントを決定する。ここで、頂点グループに含まれる頂点のうちの一部の頂点がシェーディングポイントとして決定されたり、又は頂点が位置する地点ではない３Ｄシーン内の他の地点がシェーディングポイントとして決定されたりする。
【００５９】
３Ｄレンダリング装置は、時間による仮想光源、仮想カメラ、及び３Ｄオブジェクトの動きなどのような３Ｄシーンの時間的特性、及び／又は頂点の位置及び隣接頂点間の明るさ差などのような３Ｄシーンの空間的特性に基づいてシェーディングレベルを決定し得る。３Ｄシーンの時間的特性及び／又は空間的特性に応じて、頂点グループごとに互いに異なるシェーディングレベルが決定され得る。
【００６０】
一実施形態によると、時間領域で仮想光源、仮想カメラ、又は３Ｄオブジェクトの移動速度が閾値よりも速い場合、３Ｄレンダリング装置はシェーディングレベルを上げるように調整することでシェーディングポイントの個数を減らし得る。そのため、シェーディング処理に要する時間を減らすことができる。また、３Ｄレンダリング装置は、速いレンダリング処理が要求される場合、シェーディングレベルを全体的に上げるように調整する。仮想光源、仮想カメラ又は３Ｄオブジェクトの移動速度が閾値よりも遅い場合、３Ｄレンダリング装置はより細かい表現のためにシェーディングレベルを下げるように調整してシェーディングポイントの個数を増やし得る。
【００６１】
一実施形態によると、シェーディングレベルは、３Ｄシーンの時間的特性に応じて適応的に決定され得る。例えば、仮想カメラ又は３Ｄオブジェクトの移動速度が速いほどシェーディングレベルが上がるように調整され、移動速度が遅いほどシェーディングレベルが下がるように調整される。
【００６２】
一実施形態によると、３Ｄレンダリング装置は、以前の画像フレームのカラー情報を用いて時間による領域ごとの明るさ変化を推定し、明るさ変化が大きい領域ではシェーディングレベルを下げるように調整し、明るさ変化が小さい領域ではシェーディングレベルを上げるように調整する。
【００６３】
一実施形態によると、空間領域において頂点がスクリーンの中央領域（又は、関心領域）に位置する場合、又は隣接頂点間の明るさ差が大きい領域の場合、３Ｄレンダリング装置はより細かい表現のためにシェーディングレベルを下げるように調整する。頂点がスクリーンの周辺領域に位置する場合、又は隣接頂点間の明るさ差が小さい領域の場合、３Ｄレンダリング装置は、シェーディングポイントの個数を減少させてレンダリング処理速度をより速くするためにシェーディングレベルを上げるように調整する。ここで、３Ｄレンダリング装置は、以前の画像フレームのシェーディング情報を用いて現在の画像フレームでの隣接頂点間の明るさ差を推定することができる。
【００６４】
一実施形態によると、３Ｄレンダリング装置は、フォーカスされる領域と残りの領域とに互いに異なるシェーディングレベルを設定したり、又はブラー（ｂｌｕｒｉｎｇ）効果が適用される領域と残りの領域との間に互いに異なるシェーディングレベルを設定したりし得る。例えば、ＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）などのようなレンズ利用の機器ではユーザの目に見えるピクセルの大きさ及び密度がそれぞれ異なる。この場合、３Ｄレンダリング装置は、フォーカスされる中央領域には相対的にシェーディングポイントの密度を高く設定（シェーディングレベルを下げるように調整）し、外側領域には相対的にシェーディングポイントの密度を低く設定（シェーディングレベルを上げるように調整）する。
【００６５】
一実施形態によると、３Ｄレンダリング装置は、最も概略的なシェーディングレベルである最上位シェーディングレベルから下位シェーディングレベルに下げていきながら頂点グループごとに最適なシェーディングレベルを決定し得る。例えば、３Ｄレンダリング装置は、シェーディングポイントに対する階層的な構造情報に基づいて最上位の第１シェーディングレベルに応じたシェーディング結果と第１シェーディングレベルよりも下位である第２シェーディングレベルに応じたシェーディング結果とを比較し、比較結果に基づいてシェーディングレベル差によるカラー値の差分を算出する。第２シェーディングレベルは、第１シェーディングレベルよりも下位であるため、第２シェーディングレベルでは第１シェーディングレベルよりもさらに多い数のシェーディングポイントが決定される。算出したカラー値の差分が閾値よりも小さい場合、３Ｄレンダリング装置は、現在のシェーディングレベルである第１シェーディングレベルを現在の頂点グループのシェーディングレベルとして決定する。カラー値の差分が閾値以上である場合、３Ｄレンダリング装置は、第２シェーディングレベルよりも下位である第３シェーディングレベルに基づいて、第２シェーディングレベルと第３シェーディングレベルに応じたカラー値の差分を算出し、算出された差分が閾値よりも小さいか否かを判定する。差分が閾値よりも小さい場合、３Ｄレンダリング装置は、第２シェーディングレベルを現在の頂点グループのシェーディングレベルとして決定する。３Ｄレンダリング装置は、上記の過程を繰り返してカラー値の差分が閾値よりも小さくなるシェーディングレベルを現在の頂点グループに適用される最終シェーディングレベルとして決定する。
【００６６】
３Ｄレンダリング装置が、最上位シェーディングレベルから始めて、頂点グループに適用される最適なシェーディングレベルを決定する動作は、基本的に画像フレームごとがレンダリングされるごとに実行されてもよく、カメラの視点、光源の位置又はオブジェクトの位置が変化するごとに行われてもよい。ただし、実施形態の範囲がこれに限定されることはなく、３Ｄレンダリング装置は、連続する画像フレーム間でカメラの視点、光源の位置又はオブジェクトの位置の変化が大きくないと判定した場合は、現在の画像フレームでシェーディングレベルを決定する過程を省略して、以前の画像フレームで決定されたシェーディングレベルを用いてもよい。
【００６７】
ステップＳ３３０において、３Ｄレンダリング装置は、シェーディングレベルに応じて頂点グループごとに１つ以上のシェーディングポイントを決定する。３Ｄレンダリング装置は、各頂点グループに対する階層的な構造情報に基づいて、シェーディングレベルに応じて実際にシェーディング演算が行われるシェーディングポイントを決定する。
【００６８】
一実施形態によると、シェーディングレベルに基づいて各頂点グループごとに次の（１）〜（６）のうちいずれか１つによってシェーディングポイントが決定される。（１）現在の頂点グループに属する頂点全体がシェーディングポイントとして決定される。（２）頂点全体及び頂点ではない追加地点がシェーディングポイントとして決定される。（３）現在の頂点グループに属する頂点全体のうちの一部の頂点がシェーディングポイントとして決定される。（４）一部の頂点及び頂点ではない追加地点がシェーディングポイントとして決定される。（５）頂点ではない１つ以上の地点がシェーディングポイントとして決定される。（６）現在の頂点グループに対してシェーディングポイントが決定されない。例えば、全体３Ｄシーンにおいて、１つの頂点グループに対応する領域では（１）によって該当の頂点グループに属する頂点全体がシェーディングポイントとして決定され、他の頂点グループに対応する領域では（５）によって他の頂点グループに属する頂点ではない１つ以上の地点がシェーディングポイントとして決定されることが可能である。
【００６９】
図４は、一実施形態に係るシェーディングポイントを決定する一例を説明するための図である。図４を参照すると、符号４１０は複数の頂点４２２〜４３４を含む３Ｄオブジェクトを示し、符号４４０は３Ｄオブジェクト４１０に対して決定されたシェーディングポイント４２２、４２４、４３０、４３４、４５０、４５２、４５４、４５６を示す。
【００７０】
頂点ベースのシェーディングでは、３Ｄオブジェクト４１０の頂点４２２〜４３４のそれぞれに対してシェーディングが行われるが、３Ｄレンダリング装置は、３Ｄシーンの時間的特性及び／又は空間的特性に基づいてシェーディング演算が行われる地点を適応的に決定し得る。例えば、３Ｄレンダリング装置は、図４に示された一態様のように、３Ｄオブジェクト４１０の頂点４２２〜４３４のうちの一部の頂点４２２、４２４、４３０、４３４とシェーディングが必要であると判断された地点４５０、４５２、４５４、４５６を、シェーディングを行うシェーディングポイントとして決定する。３Ｄレンダリング装置は、シェーディングポイント４２２、４２４、４３０、４３４、４５０、４５２、４５４、４５６に対してシェーディングを行った後、シェーディング結果に基づいてシェーディングが実行されていない頂点４２６、４２８、４３２のシェーディング値を決定する。例えば、３Ｄレンダリング装置は、シェーディングポイント４３０、４５２、４５４のシェーディング値を補間して頂点４３２のシェーディング値を決定し得る。
【００７１】
図５は、一実施形態に係るシェーディングレベルに応じてシェーディングポイントを決定する一例を説明するための図である。図５を参照すると、符号５１０は、複数の頂点５１５で構成される３Ｄオブジェクトを示す。３Ｄレンダリング装置は、３Ｄオブジェクト５１０の頂点５１５に対する階層的な構造情報を生成し、階層的な構造情報に基づいてシェーディングレベルに応じてシェーディングポイントを決定する。シェーディングレベルに応じて、３Ｄオブジェクト５１０の領域でシェーディングが行われるシェーディングポイントが決定され得る。シェーディングレベルが下がるほどシェーディングが行われるシェーディングポイントの個数は増加する。
【００７２】
一実施形態によると、第１シェーディングレベル５２０では、３Ｄオブジェクト５１０の頂点５１５のうちの一部の頂点５２２のみがシェーディングポイントとして決定される。したがって、第１シェーディングレベル５２０では、シェーディングポイントとして決定された頂点５２２とシェーディングポイントとして決定されない頂点５２５が存在する。３Ｄレンダリング装置は、シェーディングポイントとして決定された頂点５２２に対してシェーディングを行ってシェーディング値を決定し、頂点５２２のシェーディング値を補間してシェーディングポイントとして決定されていない頂点５２５のシェーディング値を決定する。３Ｄレンダリング装置は、全体ではない一部の頂点５２２についてのみシェーディング演算することで、レンダリングをより速く行うことができる。
【００７３】
一実施形態によると、３Ｄレンダリング装置は、シェーディング値が決定されたシェーディングポイントに対してドローネー三角分割（Ｄｅｌａｕｎａｙ  Ｔｒｉａｎｇｕｌａｔｉｏｎ）を行って、領域を、三角形態を有する複数のサブ領域に分割し、シェーディングポイントのシェーディング値に基づいた補間によってシェーディング値が決定されていない頂点のシェーディング値を決定することができる。他の実施形態によると、３Ｄレンダリング装置は、３Ｄオブジェクトのメッシュを広げたアトラス（ａｔｌａｓ）上にシェーディングポイントを決定し、シェーディングポイントに対してシェーディングした後、シェーディングポイントのシェーディング値に基づいた補間によりシェーディング値が決定されていない頂点のシェーディング値を決定することができる。
【００７４】
第２シェーディングレベル５３０では、３Ｄオブジェクト５１０の頂点５１５が全てシェーディングポイントとして決定されることなく、代わりに、頂点ではない地点５３５がシェーディングポイントとして決定される。３Ｄレンダリング装置は、シェーディングポイントとして決定された地点５３５に対してシェーディングを行い、シェーディング結果値の補間過程によりシェーディングポイントとして決定されていない頂点５３２のシェーディング値を決定し得る。
【００７５】
第３シェーディングレベル５４０では、第１シェーディングレベル５２０に類似するように、３Ｄオブジェクト５１０の頂点５１５のうち、シェーディングポイントとして決定された頂点５４２とシェーディングポイントとして決定されない頂点５４５が存在する。また、３Ｄオブジェクト５１０の領域内で頂点ではない地点５４６が追加的にシェーディングポイントとして決定され得る。地点５４６の位置は、例えば、３Ｄオブジェクト５１０の領域内の任意の位置に決定されたり、又は３Ｄオブジェクト５１０の領域内の明るさ値分布による確率値に基づいて決定されたりし得る。明るさ値が大きいほど、シェーディングポイントとして決定される地点として決定される確率値がより大きい。３Ｄレンダリング装置は、シェーディングポイントとして決定された頂点５４２及び地点５４６に対してシェーディングを行い、シェーディング結果値を補間してシェーディングポイントとして決定されていない頂点５４５のシェーディング値を決定し得る。
【００７６】
第４シェーディングレベル５５０では、３Ｄオブジェクト５１０の頂点５１５の全てがシェーディングポイントとして決定され、各頂点５１５に対してシェーディングが行われ得る。
【００７７】
第５シェーディングレベル５６０では、３Ｄオブジェクト５１０の頂点５１５のみならず、３Ｄオブジェクト５１０上で３Ｄオブジェクト５１０の頂点５１５ではない地点５６５が追加的にシェーディングポイントとして決定され得る。３Ｄレンダリング装置は、３Ｄオブジェクト５１０が表現される３Ｄシーンの時間的特性及び／又は空間的特性に基づいて追加的にシェーディングを行う地点５６５を決定する。例えば、より細かいシェーディング効果を実現する必要がある場合（例えば、照明効果が複雑な場合）、３Ｄレンダリング装置は、３Ｄオブジェクト５１０の領域内にシェーディングが行われる地点５６５をさらに指定する。３Ｄレンダリング装置は、頂点５１５及び追加的に決定された地点５６５に対してシェーディングを行うことができる。
【００７８】
図６は、一実施形態に係るシェーディングポイントのシェーディング結果に基づいて他の頂点のシェーディング値を決定する一例を説明するための図である。図６に示された実施形態では、３Ｄオブジェクト６１０が頂点６１２〜６２６を含むと仮定する。また、３Ｄレンダリング装置は、頂点６１２〜６２６のうちの一部の頂点６１４、６１６、６２２、６２４及び３Ｄオブジェクト６１０上の地点６３２、６３４、６３６を、シェーディングが行われるシェーディングポイントとして決定したと仮定する（６３０）。３Ｄレンダリング装置は、シェーディングポイント６１４、６１６、６２２、６２４、６３２、６３４、６３６に対してシェーディングを行い、シェーディング実行によって決定されたシェーディングポイント６１４、６１６、６２２、６２４、６３２、６３４、６３６のシェーディング値（例えば、カラー値）に基づいてシェーディングが実行されていない頂点６１２、６１８、６２０、６２６のシェーディング値を決定する。例えば、頂点６２６の場合、３Ｄレンダリング装置は、頂点６２６に隣接するシェーディングポイント６２２、６２４、６３４、６３６のシェーディング値を補間して頂点６２６のシェーディング値を決定する（６４０）。３Ｄレンダリング装置は、シェーディングが実行されない残りの頂点６１２、６１８、６２０に対しても、これに類似な過程を通じてシェーディング値を決定することができる。シェーディングポイント６１４、６１６、６２２、６２４、６３２、６３４、６３６のシェーディング値及び補間によって決定された頂点６１２、６１８、６２０、６２６のシェーディング値は格納され、格納されたシェーディング値は、次の画像フレームに対するシェーディング過程で用いられる。
【００７９】
図７は、一実施形態に係るシェーディングポイントのシェーディング値に基づいてレンダリング画像のピクセル値を決定する一例を説明するための図である。図７に示す実施形態では、頂点７１５、７２０、７２５及び３Ｄオブジェクト上の地点７３０、７３５でシェーディング値が決定されたと仮定する（７１０）。３Ｄレンダリング装置は、頂点７１５、７２０、７２５のシェーディング値及び地点７３０、７３５のシェーディング値に基づいて、各ピクセルごとにカラー補間を行ってピクセルのカラー値を決定する（７４０）。例えば、３Ｄレンダリング装置は、ピクセル７２０に隣接する頂点７２５のシェーディング値及び地点７３０、７３５のカラー値を補間してピクセル７２０のカラー値を決定する。３Ｄレンダリング装置は、残りのピクセルに対してもこれに類似な過程を繰り返してレンダリング結果画像を構成するピクセルのカラー値を決定することができる。
【００８０】
図８Ａ及び図８Ｂは、一実施形態に係る直接仮想光源と間接仮想光源との間の関係を説明するための図である。直接仮想光源及び間接仮想光源は、コンピュータグラフィックスで３Ｄオブジェクトに照明効果を付与する仮想の光源を示す。上述したように、直接仮想光源は３Ｄオブジェクトに光を直接放射する仮想光源であり、間接仮想光源は直接仮想光源から放射された光が反射、回折又は屈折された領域で光を放射する仮想光源である。
【００８１】
図８Ａは、３Ｄモデルを構成する３Ｄオブジェクト８２０、８３０と直接仮想光源８１０とを示している。ここで、説明の便宜のために１つの直接仮想光源８１０のみを示すが、３Ｄモデルには複数の直接仮想光源が存在し得る。直接仮想光源８１０は３Ｄオブジェクト８２０に光を直接放射する。直接仮想光源８１０と３Ｄオブジェクト８２０との間の位置関係によって３Ｄオブジェクト８２０がレンダリングされる仮想空間で一次的に明るい領域と暗い領域とが決定される。直接仮想光源８１０から放射された光は、３Ｄオブジェクト８２０によって反射、屈折又は回折される。例えば、直接仮想光源８１０から出力された光８４０は３Ｄオブジェクト８２０で反射した後、他の３Ｄオブジェクト８３０、例えば、オブジェクト８２０の周辺領域を取り囲んでいる壁面で再び反射する。３Ｄオブジェクト８２０、８３０は仮想カメラ８１５の視点でレンダリングされ、レンダリング結果画像がユーザに提供され得る。
【００８２】
３Ｄレンダリング装置は、直接仮想光源８１０から出力された光による直接光効果だけではなく、間接仮想光源から出力された光による照明効果を適用して詳細なレンダリング結果画像を生成する。３Ｄレンダリング装置は、直接仮想光源だけではなく、間接仮想光源を３Ｄ空間上に適切に配置し、よりリアルな照明効果を実現することができる。
【００８３】
図８Ｂを参照すると、図８Ａで直接仮想光源８１０から出力された光８４０が３Ｄオブジェクト８２０で反射した領域に位置する間接仮想光源８５５及び光８４０が他の３Ｄオブジェクト８３０で反射した領域に位置する間接仮想光源８５０、８６０が図示されている。３Ｄオブジェクト８２０、８３０のレンダリング過程において、直接仮想光源８１０だけではなく間接仮想光源８５０、８５５、８６０による照明効果が３Ｄオブジェクト８２０、８３０に適用され得る。間接仮想光源８５０、８５５、８６０は、直接仮想光源８１０だけではなく、各間接仮想光源８５０、８５５、８６０が位置する領域の特性に影響を受ける。例えば、間接仮想光源８５０、８５５、８６０による照明効果は、各間接仮想光源８５０、８５５、８６０が位置する３Ｄオブジェクトの表面のカラー又は材質に影響を受ける。
【００８４】
図９は、一実施形態に係る３Ｄレンダリング装置の構成を示す図である。図９を参照すると、３Ｄレンダリング装置９００は、頂点シェーダ９１０、ピクセルシェーダ９２０、シェーディングポイントシェーダ９３０を含む。
【００８５】
頂点シェーダ９１０は、頂点が有する空間上位置、カラー、法線ベクトル、テクスチャなどのような、頂点の属性情報に基づいて３Ｄシーンに示された頂点に対して頂点変換を行う。頂点変換過程は、頂点の位置を移動させる過程、頂点の法線ベクトルを変換する過程、頂点に対する光の効果を算出する過程、頂点のカラーを算出する過程、及びテクスチャ座標を生成及び変換する過程のうちの１つ以上を含む。
【００８６】
シェーディングポイントシェーダ９３０は、図１〜図８Ｂを参照して前述した動作のうち、シェーディング過程に関する動作を行うことができる。例えば、シェーディングポイントシェーダ９３０は、３Ｄシーンに示された頂点を複数の頂点グループにグループ化し、各頂点グループごとにシェーディングレベルを決定する。シェーディングポイントシェーダ９３０は、決定されたシェーディングレベルに応じて各頂点グループごとにシェーディングを行うシェーディングポイントを決定し、決定されたシェーディングポイントに対してシェーディングを行う。シェーディングポイントシェーダ９３０は、シェーディングが実行されたシェーディングポイントのシェーディング値を補間してシェーディングが実行されていない頂点のシェーディング値を決定することで、３Ｄ画像に対するシェーディング情報を決定することができる。
【００８７】
シェーディングポイントシェーダ９３０は、頂点単位のカラーシェーディングを行い、このようなカラーシェーディングは、頂点シェーダ９１０及びピクセルシェーダ９２０の各レンダリング処理過程とは別に処理される。一実施形態によると、シェーディングポイントシェーダ９３０によって実行されるシェーディング過程は、頂点シェーダ９１０及びピクセルシェーダ９２０のパイプラインとは別の過程として行われる。そのため、シェーディングポイント及び頂点に対するシェーディング値が格納される。格納されたシェーディング値は次の画像フレームのシェーディング情報を決定するために用いられ、これによって、画像フレーム間の相関度が増加してチラつき現象が減少し、演算量を低減させることができる。
【００８８】
一実施形態によると、シェーディングポイントシェーダ９３０は、シェーディング結果に基づいて頂点グループごとにシェーディングレベルを決定し得る。シェーディングポイントシェーダ９３０は、シェーディングレベルに応じたカラー値の差分に基づいて各頂点グループに適用される最適なシェーディングレベルを決定し得る。例えば、シェーディングポイントシェーダ９３０は、現在のシェーディングレベルに基づいてシェーディングを行った結果と現在のシェーディングレベルより下位のシェーディングレベルに基づいてシェーディングを行った結果とを比較し、レベル差によるカラー値の差分を算出し、差分が閾値以上である場合に現在のシェーディングレベルを調整する。シェーディングポイントシェーダ９３０は、調整されたシェーディングレベルに基づいて上記の過程を繰り返し、シェーディングレベル差によるカラー値の差分が閾値よりも小さくなるシェーディングレベルを、頂点グループに適用される最適なシェーディングレベルとして決定し得る。
【００８９】
３Ｄシーンに対するシェーディング情報が決定されれば、シェーディングポイントシェーダ９３０はシェーディング情報をピクセルシェーダ９２０に伝達し、ピクセルシェーダ９２０はシェーディング情報に基づいて各ピクセルごとにカラー補間を行う。ピクセルシェーダ９２０は、ピクセルが属するポリゴン（ｐｏｌｙｇｏｎ）（例えば、三角形）を形成している頂点のカラー値及びシェーディングが実行されたシェーディングポイントのカラー値を用いてカラー補間を実行することで、レンダリングの結果画像に含まれる各ピクセルのカラー値を決定することができる。また、ピクセルシェーダ９２０は、３Ｄオブジェクト上にテクスチャを被せるテクスチャマッピングの過程を行って仮想の３Ｄオブジェクトに材質感を表現する。
【００９０】
他の実施形態によると、３Ｄレンダリング装置９００は、間接仮想光源をサンプリングする間接仮想光源サンプラー９４０をさらに含み得る。シェーディングポイントシェーダ９３０は直接仮想光源による照明情報だけではなく、間接仮想光源による照明情報を用いてシェーディングを実行し、該当の間接仮想光源は間接仮想光源サンプラー９４０によってサンプリングされ得る。間接仮想光源のサンプリング過程は、３Ｄ空間内に間接仮想光源を配置させる過程を含む。間接仮想光源サンプラー９４０は、間接仮想光源が配置される領域又は３Ｄ空間に配置される間接仮想光源の個数を調整して３Ｄオブジェクトに適用される間接照明効果を制御する。
【００９１】
一実施形態によると、間接仮想光源サンプラー９４０は、ライト視点レンダリング（ｌｉｇｈｔ  ｖｉｅｗ  ｒｅｎｄｅｒｉｎｇ）の結果画像から間接仮想光源をサンプリングしたり、又は光に対する光線追跡方式を用いて間接仮想光源をサンプリングしたりする。例えば、間接仮想光源サンプラー９４０は、ライト視点レンダリングの結果画像の明るさ分布に基づいて明るさに比例する確率マップを生成し、確率マップによって決定された位置に間接仮想光源を配置させ得る。他の例として、間接仮想光源サンプラー９４０は、光線追跡方式によって光が３Ｄオブジェクトと衝突する位置を決定し、決定された位置に間接仮想光源を配置させ得る。
【００９２】
図１０Ａは、他の実施形態に係る３Ｄレンダリング装置の構成を示す図である。図１０Ａを参照すると、３Ｄレンダリング装置１０１０は、１つ以上のプロセッサ１０２０及び１つ以上のメモリ１０３０を含む。
【００９３】
プロセッサ１０２０は、図１〜図９を参照して前述した１つ以上の動作を行うことができる。例えば、プロセッサ１０２０は、３Ｄシーン上でシェーディングが行われるシェーディングポイントを決定し、決定されたシェーディングポイントに対してシェーディングを行う。ここで、プロセッサ１０２０は、３Ｄシーンの頂点を頂点グループにグループ化し、頂点グループごとに決定されたシェーディングレベルに基づいてシェーディングポイントを決定する。プロセッサ１０２０は、シェーディングポイントのシェーディング結果に基づいて３Ｄシーンに対するシェーディング情報を決定し、シェーディング情報に基づいてレンダリング結果画像を生成する。
【００９４】
このようなプロセッサ１０２０は、複数の論理ゲートのアレイで具現化できるが、別の形態のハードウェアで具現化されることは本実施形態が属する技術分野で通常の知識を有する者であれば理解できるであろう。また、プロセッサ１０２０は、３Ｄオブジェクトのレンダリングを行うための１つ以上のグラフィックス処理装置を含み得る。頂点及びシェーディングポイントに対するシェーディング情報は、グラフィックス処理装置のテクスチャバッファに格納され、格納されたシェーディング情報は、次の画像フレームに対するシェーディング過程で使用され得る。
【００９５】
メモリ１０３０は、図１〜図９を参照して前述した１つ以上の動作を行うための命令を格納したり、又は３Ｄレンダリング装置１０１０が動作している間に取得したデータと結果を格納したりする。一部の実施形態において、メモリ１０３０は、非一時的なコンピュータで読み取り可能な記録媒体、例えば、高速ランダムアクセスメモリ及び／又は不揮発性のコンピュータで読み取り可能な格納媒体（例えば、１つ以上のディスク記憶デバイス、フラッシュメモリデバイス、又は、その他の不揮発性固体メモリデバイス）を含み得る。
【００９６】
図１０Ｂは、更なる実施形態に係る３Ｄレンダリング装置の構成を示す図である。図１０Ｂを参照すると、３Ｄレンダリング装置１０１５は、図１０Ａに類似するように、１つ以上のプロセッサ１０２０及び１つ以上のメモリ１０３０を含み、１つ以上のディスプレイ１０４０及びユーザインタフェース１０５０をさらに含み得る。プロセッサ１０２０は、例えば、固定型装置又はモバイル装置の動作だけでなく、上記で説明したいずれかの動作又は動作の組合せを行う単一プロセッサであり得る。異なる例として、プロセッサ１０２０は、図９に示す１つ以上のグラフィックスパイプライン、シェーディングポイントシェーダ、及び間接仮想光源サンプラーを含むＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）を含む複数のプロセッサであってもよく、複数のプロセッサのうちの１つ以上は上記で説明した動作を行ってもよい。プロセッサ１０２０は、上記で説明したシェーディング動作に基づいて決定されたピクセルカラー情報をディスプレイ１０４０に提供する。ディスプレイ１０４０上でレンダリングされる画像は変わり得る。又は、ディスプレイ１０４０上でレンダリングされる画像は、ユーザインタフェース１０５０を介した３Ｄレンダリング装置１０１５とのインタラクションに応答して自動的に変わり得る。
【００９７】
上述した実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現化される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、又は命令を実行して応答する異なる装置のように、１つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現化される。処理装置は、オペレーティングシステム（ＯＳ）及びＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータにアクセスし、データを格納、操作、処理、及び生成する。理解の便宜のために、処理装置は１つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）及び／又は複数種類の処理要素を含むことが分かるであろう。例えば、処理装置は、複数のプロセッサ又は１つのプロセッサ及び１つのコントローラを含む。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成も可能である。
【００９８】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの１つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は集合的に処理装置に命令する。ソフトウェア及び／又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる種類の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは伝送される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されたり実行されたりする。ソフトウェア及びデータは１つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【００９９】
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現化され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独で又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよいし、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成してもよく、その逆も同様である。
【０１００】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０１０１】
１０１０、１０１５：３Ｄレンダリング装置
１０２０：プロセッサ
１０３０：メモリ
１０４０：ディスプレイ
１０５０：ユーザインタフェース
【図１】
2017091523.tif 000003
【図２】
2017091523.tif 000004
【図３】
2017091523.tif 000005
【図４】
2017091523.tif 000006
【図５】
2017091523.tif 000007
【図６】
2017091523.tif 000008
【図７】
2017091523.tif 000009
【図８Ａ】
2017091523.tif 000010
【図８Ｂ】
2017091523.tif 000011
【図９】
2017091523.tif 000012
【図１０Ａ】
2017091523.tif 000013
【図１０Ｂ】
2017091523.tif 000014